# BAT-019 Planning: Monthly settlement operational blockers, import/account, and asset status ## Planning Status - Status: ready-for-resume - Profile: batch-lite - Design Gate: no - Design Gate Rationale: REQ-024 extends the approved read-only monthly settlement UI with additional section composition and existing-service data exposure. The resume-ready context now pins exact read-only service seams, return shapes, render insertion point, tests, and forbidden data exposure, so no additional design artifact is required before implementation. ## Objective Turn REQ-024 into a bounded follow-on slice after BAT-018 so the `월정산` page can show settlement-readiness blockers and status summaries without adding writes. ## Work Slices 1. Blocker summary section - Use `overview_gateway.list_cross_transfer_review_queue` and `reconciliation_gateway.get_review_operating_indicators`. - Show user-friendly unresolved item labels and counts. - Add CTA/menu hints to existing review/import/reconciliation pages. 2. Import/account status section - Use `overview_gateway.list_ledger_import_batches(limit=1, db_path=db_path)` with minimal provenance only. - Use `reconciliation_gateway.get_balance_reconciliation_report(db_path=db_path)` for account freshness/reconciliation status. - Preserve REQ-021 privacy boundaries. 3. Asset/net-worth status section - Add/read `overview_gateway.get_asset_snapshot_report` as a pass-through to the existing service. - Show preview/closed state and net worth summary. - Add representative dashboard/AppTest assertions. ## Acceptance Source - REQ-024 Acceptance Criteria AC-1 through AC-6. ## Dependencies - REQ-022 monthly settlement summary foundation. - BAT-018 / REQ-023 page shell and navigation. - REQ-021 provenance and sensitive-data policy. ## Implementation Readiness Seed - Target area: `dashboard.app.page_monthly_settlement(db_path)` after the existing BAT-018 blocker-count caption. - Service/adapter seams: `list_cross_transfer_review_queue`, `get_review_operating_indicators`, `get_balance_reconciliation_report`, `list_ledger_import_batches`, and `get_asset_snapshot_report` through `overview_gateway` where applicable. - Expected data/return shape: defined in `.stagepilot/delivery/dcy-015_monthly-settlement/impl-bat-019-implementation-context.md`. - Render insertion point: three sections after existing KPI/cashflow/budget summary: `정산 전 검토`, `거래 반영 / 계좌 상태`, `자산 / 순자산 마감 상태`. - Representative test assertions: labels, CTA/menu hints, representative metrics, no raw path/payload strings. - Forbidden exposure: absolute upload paths, raw payloads, debug-gated provenance, source hashes, or write/close action controls on `월정산`. - Open questions: none. Invalid seam/key should become a worker blocker artifact, not broad repository exploration. ## Milestones 1. Blocker section renders with readable labels. 2. Import/account and asset sections render without sensitive leakage. 3. Relevant lint/tests pass in the isolated worktree. ## Risks - Existing import/account payloads may tempt direct raw-field display that violates REQ-021; use default minimal provenance only. - Asset snapshot preview data needs empty-state handling for fixture DBs. - CTA wording must remain tied to actual existing page names: `확인필요 큐`, `계좌`, `Import`, `자산/마감`. ## Handoff Readiness - Ready for implementation: yes, after lead rewrite to patch-ready context. - Lead authority needed before delivery: no additional user decision is currently open; scope is approved in dcy-015 / REQ-024. - Kanban status: deliberately not used.