# BAT-019: Monthly settlement operational blockers, import/account, and asset status - Profile: batch-lite - Status: release-candidate - Included REQ: REQ-024 - Source Discovery: dcy-015 - Root Delivery: dcy-015_monthly-settlement - Queue Item: 1 - Created At (KST): 2026-07-12 10:31 KST - Resume Prepared At (KST): 2026-07-12 13:11 KST ## Objective Deliver the second `월정산` page slice by adding operational blocker, import/account status, and asset/net-worth status sections on top of the REQ-022 read model and REQ-023 page shell. ## Included Scope - Render the 정산 전 검토 blocker section with user-facing labels and existing-page CTA guidance. - Render import/account freshness and status information without exposing raw file paths or raw payloads. - Render asset snapshot/net-worth status by reusing the existing asset snapshot/report service boundary. - Add representative dashboard/AppTest coverage for blocker/import/asset rendering. ## Excluded Scope - KPI/cashflow/budget shell already covered by REQ-023. - Evidence/next-actions/docs/smoke hardening tracked by REQ-025. - Monthly settlement close writes, export, MCP summary tool, or policy changes outside approved REQs. ## Implementation Readiness Seed - Target area: `dashboard.app.page_monthly_settlement(db_path)` after the existing BAT-018 blocker-count caption. - Service/adapter seams: - `overview_gateway.list_cross_transfer_review_queue(limit=300, db_path=db_path)` + existing `get_transfer_review_items` helper. - `reconciliation_gateway.get_review_operating_indicators(db_path=db_path)`. - `reconciliation_gateway.get_balance_reconciliation_report(db_path=db_path)`. - `overview_gateway.list_ledger_import_batches(limit=1, db_path=db_path)` with default minimal provenance. - Add/read `overview_gateway.get_asset_snapshot_report(basis_date, db_path=db_path)` as a pass-through to existing service. - Expected data/return shape: see `.stagepilot/delivery/dcy-015_monthly-settlement/impl-bat-019-implementation-context.md` `## Return shape`. - Render insertion point: add `정산 전 검토`, `거래 반영 / 계좌 상태`, `자산 / 순자산 마감 상태` sections in that order after BAT-018 summary sections. - Representative test assertions: section labels, CTA text, representative metrics, and negative assertions for raw local path / raw payload leakage. - Forbidden data exposure: no `/home/...`, `~/.local/share/jarca/uploads`, `raw_payload`, raw PDF/XLSX contents, or debug-gated provenance. - Open questions: none for runner; if any listed seam/key is invalid, impl must write a blocker artifact instead of broad-searching. ## Documents - [planning.md](planning.md) - [implementation.md](implementation.md) - Implementation context: `.stagepilot/delivery/dcy-015_monthly-settlement/impl-bat-019-implementation-context.md` ## Delivery Notes - This slice depends on BAT-018 delivering the visible `월정산` page shell first. - REQ-021 provenance and sensitive-data policy must remain enforced on all import/account displays. - BAT-018 completed and REQ-023 is now Implemented, so BAT-019 is the active implementation slice for REQ-024. - Prior canonical supervised dev-impl launch stalled in a repeated context-compaction/read loop before code diff or completion evidence; see `.stagepilot/delivery/dcy-015_monthly-settlement/bat-019-impl-stall-escalation.md`. - Lead has rewritten this batch/context to the patch-ready harness standard before resume.