50 lines
2.1 KiB
JSON
50 lines
2.1 KiB
JSON
{
|
|
"schema": "gitea-agent.contract-preservation-inventory/v1",
|
|
"owner": "jsfamily",
|
|
"repository": "jarca-ledger-mcp",
|
|
"issue": 12,
|
|
"pull_request": 13,
|
|
"contract_sha256": "6d86b591b022fcc722611bfec6d24e54a64216ab6f7c4098f357e25420218818",
|
|
"review_id": 61,
|
|
"reviewed_head": "5e721b0ddd648f3e80f341a3c304d1cc3ca47ee8",
|
|
"preserved_semantics": [
|
|
{
|
|
"criterion": "N01-loan-balance-definition",
|
|
"required": "Every valuation attached to a loan account explicitly records principal_only or principal_interest_fees; no writer or account-type transition may infer or bypass it.",
|
|
"evidence": [
|
|
"tests/test_account_valuation_edge_contracts.py",
|
|
"tests/test_issue_12_review59_account.py"
|
|
]
|
|
},
|
|
{
|
|
"criterion": "C05-current-import",
|
|
"required": "Loan cache and import operations remain successful without creating definition-less history, and late evidence never rolls back newer current cache.",
|
|
"evidence": [
|
|
"test_dated_loan_create_and_historical_update_preserve_current_cache_without_valuations",
|
|
"test_loan_import_preserves_transactions_and_current_cache_without_valuation_candidate"
|
|
]
|
|
},
|
|
{
|
|
"criterion": "C13-read-only-and-no-partial-write",
|
|
"required": "Validation failure changes neither account state nor append-only valuation history.",
|
|
"evidence": [
|
|
"test_bank_to_loan_conversion_rejects_existing_undefined_valuation_without_mutation"
|
|
]
|
|
},
|
|
{
|
|
"criterion": "compatibility",
|
|
"required": "A non-loan account with no valuation history may still be converted to loan; non-loan candidate insertion and replay are unchanged.",
|
|
"evidence": [
|
|
"test_bank_to_loan_conversion_without_valuations_remains_allowed",
|
|
"test_non_loan_candidate_still_succeeds_and_reuses_idempotently"
|
|
]
|
|
}
|
|
],
|
|
"excluded_scope": [
|
|
"No inferred or automatic liability-definition migration.",
|
|
"No schema change.",
|
|
"No changes to snapshot, reconciliation, dashboard, authentication, or menu behavior.",
|
|
"No merge, Issue close, or release operation."
|
|
]
|
|
}
|