2.9 KiB
2.9 KiB
BAT-009 Verification
Verification summary
Status: PASS
Evidence was collected against synthetic/temp data only. No production ledger DB mutation or real financial files were used.
Acceptance criteria mapping
REQ-011
- AC-1: PASS —
manual_assetscreate/update/deactivate write path and additive schema migration/correction columns implemented indb.py/service.py; full pytest PASS confirms existing/new DB initialization succeeds. - AC-2: PASS —
preview_asset_snapshot_closeexists and targeted tests verify side-effect-free totals/warnings behavior. - AC-3: PASS —
close_asset_snapshotwrites basis-date authority-source rows with close metadata and is covered bytests/test_asset_snapshots.py. - AC-4: PASS — same-date re-close requires correction reasoning and appends correction rows via
snapshot_run_id/correction_of_run_id/is_correction; targeted tests verify append-only behavior. - AC-5: PASS — latest-run snapshot read selection plus shared valuation helpers keep read model/report consistency; targeted + full pytest PASS.
- AC-6: PASS —
docs/data-model.mdupdated for write lifecycle, close/correction metadata, and latest-run read policy.
REQ-012
- AC-1: PASS — MCP tools
create_manual_asset,update_manual_asset,deactivate_manual_assetare exposed inserver.py;hermes mcp test jarca-ledgerdiscovered all 56 tools including BAT-009 additions. - AC-2: PASS —
preview_asset_snapshot_closeMCP/service returns preview totals, warnings,source='live_authority',is_closed_snapshot=false; targeted tests PASS. - AC-3: PASS —
close_asset_snapshotMCP/service returns close metadata and correction markers withsource='snapshot',is_closed_snapshot=true; targeted tests PASS. - AC-4: PASS —
dashboard/app.pyadds자산/마감page with manual asset add/update/deactivate and snapshot preview/close UX; browser smoke rendered the page successfully. - AC-5: PASS — browser/render + targeted tests confirm
source/is_closed_snapshotaligned across preview/close/report flows and dashboard messaging. - AC-6: PASS —
tests/test_contract_regression.pyandtests/contract_snapshots/response_contract_v1_0.jsonupdated;docs/interface-contract.mdupdated; targeted/full pytest PASS.
Requirement state decision
- REQ-011: Implemented.
- REQ-012: Implemented.
Validation evidence
python3 -m py_compile jarca_ledger_mcp/*.py dashboard/app.py→ PASSpython3 -m pytest tests/test_asset_snapshots.py tests/test_contract_regression.py tests/test_dashboard_app.py -q→ PASS (12 passed)python3 -m pytest -q→ PASS (42 passed, 4 skipped)hermes mcp test jarca-ledger→ PASS (Connected,Tools discovered: 56)- Browser smoke on Streamlit
자산/마감page → PASS, JS errors 없음
Remaining issues
Hard blockers
- None.
Non-blocking follow-up
- Automatic valuation feeds and scheduled month-end close remain explicitly out of scope for BAT-009.