Add Review 63 verification evidence
This commit is contained in:
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user