{ "schema": "review-finding-matrix/v1", "issue": 12, "pull_request": 13, "review_id": 64, "reviewed_head": "c7a9cfa50d25ac68b6b722b415dc89bea8f2ae24", "source_revision": "e41db959e4aa0093ab254ec4bb8aafd7dd57aafa", "contract_sha256": "6d86b591b022fcc722611bfec6d24e54a64216ab6f7c4098f357e25420218818", "findings": [ { "id": "C05-current-import", "classification": "valid_fix", "status": "resolved", "production": "jarca_ledger_mcp/application/accounts_write_services.py", "regression": "test_empty_balance_with_basis_date_is_rejected_without_mutation_before_import", "claim": "an empty balance cannot acquire a basis date or block a later valid dated import; zero and valid integer balances remain distinct" }, { "id": "N02-close-replay-run-binding", "classification": "valid_fix", "status": "resolved", "production": "jarca_ledger_mcp/application/assets_service.py", "regressions": [ "test_replay_preserves_redacted_unverified_candidates_after_correction", "test_replay_preserves_blocking_candidate_warning_shape" ], "claim": "immutable close replay preserves redacted candidate metadata and exact blocking or nonblocking warning shape without additional writes" }, { "id": "D03-data-model", "classification": "evidence_gap", "status": "resolved", "production": "docs/data-model.md", "regression": "test_data_model_documents_valuation_selection_contract_and_index_mapping", "claim": "the data model maps actual selection predicates to existing indexes and states their limitations without inventing new DDL" }, { "id": "IR-001-malformed-persisted-evidence", "classification": "valid_fix", "status": "resolved", "production": "jarca_ledger_mcp/application/assets_service.py", "regression": "test_malformed_persisted_evidence_fails_closed_without_snapshot_writes", "claim": "malformed persisted evidence returns a controlled data_integrity_error from report, replay, and timeseries paths without snapshot writes" } ], "green_evidence": "evidence-manifest.json" }