Files
genichin 835728793e feat: complete dcy-015 monthly settlement dashboard
Merge dcy-015 monthly settlement dashboard delivery after local and GitHub Actions verification.
2026-07-12 20:16:36 +09:00

57 lines
3.6 KiB
Markdown

# 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.