docs: split monthly settlement requirements

This commit is contained in:
Jarca
2026-07-11 20:58:51 +09:00
parent 8950eccc24
commit 37d23b0c5f
7 changed files with 207 additions and 169 deletions
@@ -0,0 +1,42 @@
# REQ-023 Monthly settlement dashboard shell, KPI, cashflow, and budget sections
- Status: Proposed
- Type: Interface
- Priority: High
- Owner: 렛저장인
- Source Discovery: `docs/discovery/dcy-015_20260711_monthly-settlement-page-requirements-wireframe.md`
- Depends On: REQ-022
- Created At (KST): 2026-07-11 20:56 KST
## 1. Intent
Add the visible Streamlit `월정산` page shell and implement the first user-facing sections that rely on the REQ-022 read model.
## 2. In Scope
- Add `월정산` to Streamlit routing/sidebar.
- Provide Header / 월 선택 with selected month, basis date, KST timestamp, and read-only status badge.
- Render 월간 핵심 KPI: actual income, actual expense, net cashflow, savings rate, budget overrun count, unresolved blocker count.
- Render 현금흐름 / 지출 구조 using existing category/person/cashflow groupings where available.
- Render 예산 대비 점검 with budget, actual, remaining, usage rate, and status.
- Provide user-friendly CTA/menu guidance to existing transaction/budget pages without creating new writes.
- Add AppTest coverage for page routing, headings, month selector, and key section rendering.
## 3. Out of Scope
- Detailed blocker/import/account/asset status sections.
- Evidence/next action section hardening.
- Monthly close persistence, MCP tool, or export.
## 4. Acceptance Criteria
- AC-1: Streamlit can navigate to `월정산`.
- AC-2: The page displays selected month and basis date.
- AC-3: KPI, cashflow/spending structure, and budget sections render on the synthetic fixture DB.
- AC-4: The UI calls the read-model/gateway seam rather than duplicating core formulas in `dashboard/app.py`.
- AC-5: AppTest verifies the core headings and representative KPI/budget content.
- AC-6: `python -m ruff check .` and the relevant dashboard tests pass.
## 5. Notes
This slice intentionally stops before operational blocker/import/asset sections to keep the first UI delivery small and verifiable.