Files
jarca-ledger-mcp/docs/batches/bat-009_20260701_manual-asset-crud-snapshot-close/verification.md
T

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_assets create/update/deactivate write path and additive schema migration/correction columns implemented in db.py/service.py; full pytest PASS confirms existing/new DB initialization succeeds.
  • AC-2: PASS — preview_asset_snapshot_close exists and targeted tests verify side-effect-free totals/warnings behavior.
  • AC-3: PASS — close_asset_snapshot writes basis-date authority-source rows with close metadata and is covered by tests/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.md updated 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_asset are exposed in server.py; hermes mcp test jarca-ledger discovered all 56 tools including BAT-009 additions.
  • AC-2: PASS — preview_asset_snapshot_close MCP/service returns preview totals, warnings, source='live_authority', is_closed_snapshot=false; targeted tests PASS.
  • AC-3: PASS — close_asset_snapshot MCP/service returns close metadata and correction markers with source='snapshot', is_closed_snapshot=true; targeted tests PASS.
  • AC-4: PASS — dashboard/app.py adds 자산/마감 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_snapshot aligned across preview/close/report flows and dashboard messaging.
  • AC-6: PASS — tests/test_contract_regression.py and tests/contract_snapshots/response_contract_v1_0.json updated; docs/interface-contract.md updated; 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 → PASS
  • python3 -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.