Add Review 63 verification evidence

This commit is contained in:
2026-10-07 08:19:43 +00:00
parent 15dd9f92a7
commit ce9c9f7326
4 changed files with 148 additions and 0 deletions
@@ -0,0 +1,36 @@
{
"schema": "contract-preservation-inventory/v1",
"issue": 12,
"pull_request": 13,
"review_id": 63,
"source_revision": "15dd9f92a73232c22b3ef23c17a3652ec762967a",
"contracts": [
{
"contract": "append-only immutable snapshot runs and corrections",
"preserved_by": ["test_f002_correction_replay_preserves_full_initial_response", "tests/test_asset_snapshot_idempotency.py"]
},
{
"contract": "preview-to-close authority drift protection",
"preserved_by": ["test_f001_preview_fingerprint_uses_same_unredacted_authority_and_rejects_drift"]
},
{
"contract": "conditional zero-row closes remain visible historical authority",
"preserved_by": ["test_f003_zero_row_conditional_runs_are_timeseries_authority_with_aliases"]
},
{
"contract": "closed consumers use frozen valuation identity rather than live valuation state",
"preserved_by": ["test_f004_closed_report_restores_frozen_valuation_identity_without_legacy_invention"]
},
{
"contract": "NULL and zero remain distinct and balance basis dates require an actual balance",
"preserved_by": ["test_create_rejects_basis_only_without_mutation", "test_basis_only_create_cannot_block_later_dated_import"]
},
{
"contract": "existing Issue 12 behavior outside Review 63 remains intact",
"preserved_by": ["review63-full-suite", "review63-ruff", "review63-compileall", "review63-diff-check"]
}
],
"limitations": [
"Private KB Bank and Toss Securities PDF fixtures were unavailable; four fixture-dependent tests are reported as skips."
]
}
File diff suppressed because one or more lines are too long
@@ -0,0 +1,52 @@
{
"schema": "review-finding-matrix/v1",
"issue": 12,
"pull_request": 13,
"review_id": 63,
"reviewed_head": "3b5101128d5a2cf038b8fb84facfd9d176928c26",
"source_revision": "15dd9f92a73232c22b3ef23c17a3652ec762967a",
"findings": [
{
"id": "F-001",
"status": "resolved",
"production": "jarca_ledger_mcp/application/assets_service.py",
"regression": "test_f001_preview_fingerprint_uses_same_unredacted_authority_and_rejects_drift",
"claim": "preview and close hash the same private authority representation; real drift is rejected without a run write"
},
{
"id": "F-002",
"status": "resolved",
"production": "jarca_ledger_mcp/application/assets_service.py",
"regressions": [
"test_f002_close_replay_is_byte_for_byte_equal_for_mixed_account_manual_as_of",
"test_f002_correction_replay_preserves_full_initial_response"
],
"claim": "initial and correction replays reconstruct the original immutable response, warning set, provenance, item ordering, and IDs"
},
{
"id": "F-003",
"status": "resolved",
"production": "jarca_ledger_mcp/application/assets_service.py",
"regression": "test_f003_zero_row_conditional_runs_are_timeseries_authority_with_aliases",
"claim": "timeseries enumerates both legacy snapshot and run-only basis dates and exposes the latest zero-row conditional run"
},
{
"id": "F-004",
"status": "resolved",
"production": "jarca_ledger_mcp/application/assets_service.py",
"regression": "test_f004_closed_report_restores_frozen_valuation_identity_without_legacy_invention",
"claim": "closed reports restore persisted valuation identity and currency without consulting live authority or inventing legacy IDs"
},
{
"id": "F-005",
"status": "resolved",
"production": "jarca_ledger_mcp/application/accounts_write_services.py",
"regressions": [
"test_create_rejects_basis_only_without_mutation",
"test_basis_only_create_cannot_block_later_dated_import"
],
"claim": "basis-only creates fail before mutation while zero-with-basis and unknown pairs remain valid"
}
],
"green_evidence": "evidence-manifest.json"
}
@@ -0,0 +1,59 @@
{
"schema": "review-red-evidence/v1",
"issue": 12,
"pull_request": 13,
"review_id": 63,
"reviewed_head": "3b5101128d5a2cf038b8fb84facfd9d176928c26",
"review_state": "REQUEST_CHANGES",
"findings": [
{
"id": "F-001",
"test": "test_f001_preview_fingerprint_uses_same_unredacted_authority_and_rejects_drift",
"red_observation": "unchanged preview fingerprint was rejected with authority_drift"
},
{
"id": "F-002",
"tests": [
"test_f002_close_replay_is_byte_for_byte_equal_for_mixed_account_manual_as_of",
"test_f002_correction_replay_preserves_full_initial_response"
],
"red_observation": "replay responses differed in warnings/provenance/items or conflicted"
},
{
"id": "F-003",
"test": "test_f003_zero_row_conditional_runs_are_timeseries_authority_with_aliases",
"red_observation": "zero-row closed run produced no timeseries point"
},
{
"id": "F-004",
"test": "test_f004_closed_report_restores_frozen_valuation_identity_without_legacy_invention",
"red_observation": "closed report omitted persisted valuation_id and currency"
},
{
"id": "F-005",
"tests": [
"test_create_rejects_basis_only_without_mutation",
"test_basis_only_create_cannot_block_later_dated_import"
],
"red_observation": "basis-only account creation succeeded and could suppress a real dated import balance"
}
],
"red_runs": [
{
"argv": ["pytest", "-q", "tests/test_issue_12_review63_assets.py"],
"exit_code": 1,
"result": "5 failed before production changes",
"limitation": "isolated development environment used by the delegated TDD worker"
},
{
"argv": ["uv", "run", "pytest", "-q", "tests/test_issue_12_review63_accounts.py"],
"exit_code": 1,
"result": "2 failed before production changes"
},
{
"argv": ["uv", "run", "--frozen", "--extra", "dev", "--extra", "dashboard", "pytest", "-o", "addopts=", "-q", "tests/test_issue_12_review63_assets.py::test_f002_correction_replay_preserves_full_initial_response"],
"exit_code": 1,
"result": "correction replay omitted existing_snapshot_rows and differed from the original response"
}
]
}