Implement BAT-011 transactional write service split
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# BAT-011 Planning
|
||||
|
||||
## Scope
|
||||
|
||||
- Implement REQ-015: transactional write path(account / transaction / budget / category rule-category mutation)를 더 좁은 write-oriented application module로 분리한다.
|
||||
- Preserve top-level service facade, MCP adapter, Streamlit gateway, dashboard call signatures and response envelope contracts.
|
||||
- Leave import/advanced workflow split for follow-up REQ/BAT under dcy-011.
|
||||
|
||||
## Dependencies
|
||||
|
||||
- dcy-011 confirmed Discovery and Approved REQ-015.
|
||||
- BAT-010 application/adapters baseline.
|
||||
- Existing pytest regression and contract-sensitive tests.
|
||||
|
||||
## Work plan
|
||||
|
||||
1. Create write-oriented application modules for accounts / transactions / budgets / category rules.
|
||||
2. Move concrete mutation implementations into those modules and keep existing broad modules as compatibility delegation layers where needed.
|
||||
3. Update `application/__init__.py` and `service.py` import surface to re-export the new modules without changing public API.
|
||||
4. Run focused syntax + regression validation, then full pytest if focused checks remain green.
|
||||
5. Update batch implementation/verification evidence and promote REQ/BAT state if ACs are satisfied.
|
||||
|
||||
## Design Gate
|
||||
|
||||
- Result: standard batch 유지.
|
||||
- Reason: package boundary 변경, compatibility delegation, category/account/transaction write contract preservation, regression evidence 정리가 함께 필요하므로 planning/design/verification depth가 필요하다.
|
||||
|
||||
## Risks and mitigations
|
||||
|
||||
- Hidden import coupling after write extraction: mitigate by preserving re-export layers and running full pytest.
|
||||
- Envelope drift on mutation responses: mitigate by preserving existing function signatures and contract-sensitive tests.
|
||||
- Category rule/category mutation helpers may still share read-side helpers: mitigate by extracting only write-focused logic first and leaving broad read/report paths untouched in this batch.
|
||||
Reference in New Issue
Block a user