# Verification draft (BAT-020) ## Target - BAT-020 / REQ-025 ## Acceptance mapping - AC-1: `dashboard/app.py` renders `월정산 결과 / Evidence`, `읽기 전용 근거 요약`, `다음 액션`, and the explicit no-close wording on the 월정산 page. - AC-2: `docs/project-structure.md` and `docs/runtime-flows.md` reflect the read-only evidence/next-action flow and deferred scope. - AC-3: `tests/test_dashboard_app.py` asserts the completed page structure; `scripts/ci_dashboard_http_smoke.py` passes. - AC-4: The page remains read-only: no close persistence/write button introduced; sensitive path/payload strings remain excluded by AppTest assertions. - AC-5: lint and targeted pytest checks pass for the changed slice. ## Evidence bundle - Code/UI: `dashboard/app.py` - Tests: `tests/test_dashboard_app.py` - Baseline docs: `docs/project-structure.md`, `docs/runtime-flows.md` - Implementation notes: `docs/batches/bat-020_20260712_monthly-settlement-evidence-next-actions-verification-hardening/implementation.md` - Impl worker evidence: - `.stagepilot/worker-supervision/impl-20260712T102306Z/final-result.json` - `.stagepilot/worker-supervision/impl-20260712T102306Z/child.log` - `.stagepilot/worker-progress/impl-bat-020.md` - Runner rechecks: - `/home/ubuntu/workspaces/jarca-ledger-mcp/.venv/bin/python -m ruff check dashboard/app.py tests/test_dashboard_app.py docs/project-structure.md docs/runtime-flows.md` - `/home/ubuntu/workspaces/jarca-ledger-mcp/.venv/bin/python -m pytest -q tests/test_dashboard_app.py` - `/home/ubuntu/workspaces/jarca-ledger-mcp/.venv/bin/python scripts/ci_dashboard_http_smoke.py` ## Suspicious areas for QC - Verify that `source coverage` and follow-up copy use existing monthly-settlement inputs only and do not imply new persistence capability. - Verify that deferred scope wording is consistent between UI and docs. - Verify that no local file paths, raw payloads, or debug provenance appear in the rendered body. ## Ready for QC - Yes ## Merge-backed confirmation - PR: `#6` - Merge commit: `835728793ef9c1a64027cde70ab71ad16fd68dcf` - GitHub Actions checks: contract-regression, dashboard-app-test, dashboard-http-smoke, db-safety-smoke, lint, pytest-regression all passed before merge.