Files
jarca-ledger-mcp/docs/verification/issue-12-review-60/finding-matrix.json
T

149 lines
6.2 KiB
JSON

{
"schema": "gitea-agent.finding-matrix/v1",
"review_id": 60,
"review_author": "gitea-spec-agent",
"review_state": "REQUEST_CHANGES",
"reviewed_head": "6a8a27a74ece9a9cce6f9772259677813d91ddf8",
"contract_sha256": "6d86b591b022fcc722611bfec6d24e54a64216ab6f7c4098f357e25420218818",
"findings": [
{
"finding": "60/N01-loan-balance-definition",
"reviewed_head": "6a8a27a74ece9a9cce6f9772259677813d91ddf8",
"contract": "Issue #12 확정 결정 8; REQ-003.04/05",
"classification": "valid_fix",
"implementation_paths": [
"jarca_ledger_mcp/application/account_valuation_service.py"
],
"test_paths": [
"tests/test_account_valuation_edge_contracts.py"
],
"verification": "named RED→GREEN test plus consolidated adversarial suite",
"result": "pending",
"reason": "Loan account balance alias bypasses mandatory representative liability definition."
},
{
"finding": "60/C05-current-import",
"reviewed_head": "6a8a27a74ece9a9cce6f9772259677813d91ddf8",
"contract": "Issue #12 현재값과 과거값; REQ-003.05",
"classification": "valid_fix",
"implementation_paths": [
"jarca_ledger_mcp/application/imports_service.py",
"jarca_ledger_mcp/application/accounts_write_services.py",
"jarca_ledger_mcp/infrastructure/sqlite/schema.py",
"jarca_ledger_mcp/infrastructure/sqlite/migrations.py"
],
"test_paths": [
"tests/test_import_current_balance_authority.py"
],
"verification": "named RED→GREEN sequential late-import test plus migration/full suite",
"result": "pending",
"reason": "Import compares actual evidence date against synchronization timestamp and loses current-cache basis authority."
},
{
"finding": "60/C06-idempotency",
"reviewed_head": "6a8a27a74ece9a9cce6f9772259677813d91ddf8",
"contract": "Issue #12 중복 및 정정; REQ-003.03",
"classification": "valid_fix",
"implementation_paths": [
"jarca_ledger_mcp/application/account_valuation_service.py"
],
"test_paths": [
"tests/test_account_valuation_edge_contracts.py"
],
"verification": "named RED→GREEN same-evidence correction replay and changed-payload conflict tests",
"result": "pending",
"reason": "A same source_ref/parent/effective payload correction retry without explicit key conflicts instead of reusing the child."
},
{
"finding": "60/N02-close-replay-run-binding",
"reviewed_head": "6a8a27a74ece9a9cce6f9772259677813d91ddf8",
"contract": "Issue #12 마감 불변성; REQ-003.03/07",
"classification": "valid_fix",
"implementation_paths": [
"jarca_ledger_mcp/application/assets_service.py"
],
"test_paths": [
"tests/test_asset_snapshot_idempotency.py"
],
"verification": "named RED→GREEN old-key replay-after-correction exact response binding test",
"result": "pending",
"reason": "Replay identifies the old run but loads latest-run rows and metadata."
},
{
"finding": "60/D03-data-model",
"reviewed_head": "6a8a27a74ece9a9cce6f9772259677813d91ddf8",
"contract": "Issue #12 데이터 모델 산출물; REQ-003.05",
"classification": "evidence_gap",
"implementation_paths": [
"docs/data-model.md"
],
"test_paths": [
"tests/test_valuation_contract_docs.py"
],
"verification": "named RED→GREEN canonical data-model contract assertion",
"result": "pending",
"reason": "Data model does not fix actual cache basis versus sync timestamp authority and no-rollback owner."
},
{
"finding": "60/D04-interface-contract",
"reviewed_head": "6a8a27a74ece9a9cce6f9772259677813d91ddf8",
"contract": "Issue #12 인터페이스 계약 산출물; REQ-003.04/09",
"classification": "evidence_gap",
"implementation_paths": [
"docs/interface-contract.md"
],
"test_paths": [
"tests/test_valuation_contract_docs.py"
],
"verification": "named RED→GREEN exact enum/conditional/output mapping assertion",
"result": "pending",
"reason": "Public interface delegates allowed values and loan definition/output mapping to source."
},
{
"finding": "independent-spec/C05-account-write-no-inference",
"reviewed_head": "6a8a27a74ece9a9cce6f9772259677813d91ddf8",
"contract": "Issue #12 current/history separation and no inferred basis; REQ-003.05",
"classification": "valid_fix",
"implementation_paths": [
"jarca_ledger_mcp/application/accounts_write_services.py"
],
"test_paths": [
"tests/test_import_current_balance_authority.py"
],
"verification": "named RED→GREEN explicit-basis and no-candidate account-write regression",
"result": "pending",
"reason": "Account writes inferred evidence basis and historical candidate from sync timestamp."
},
{
"finding": "independent-code/legacy-unknown-basis-reporting",
"reviewed_head": "6a8a27a74ece9a9cce6f9772259677813d91ddf8",
"contract": "Issue #12 unknown-basis non-retroactivity; REQ-003.05",
"classification": "valid_fix",
"implementation_paths": [
"jarca_ledger_mcp/application/assets_service.py"
],
"test_paths": [
"tests/test_import_current_balance_authority.py"
],
"verification": "named RED→GREEN legacy unknown-basis report regression",
"result": "pending",
"reason": "Live report exposed last_synced_at as valuation_date despite unknown evidence basis."
},
{
"finding": "independent-code/zero-row-run-replay",
"reviewed_head": "6a8a27a74ece9a9cce6f9772259677813d91ddf8",
"contract": "Issue #12 immutable close evidence; REQ-003.03/07",
"classification": "valid_fix",
"implementation_paths": [
"jarca_ledger_mcp/application/assets_service.py"
],
"test_paths": [
"tests/test_asset_snapshot_idempotency.py"
],
"verification": "named RED→GREEN empty-run replay after nonempty correction exact equality",
"result": "pending",
"reason": "Empty persisted applied_evidence triggered fallback to latest correction rows."
}
]
}