32 lines
1.8 KiB
Markdown
32 lines
1.8 KiB
Markdown
# BAT-016 Design: Review decision persistence and reconciliation workbench
|
|
|
|
## Design Status
|
|
- Status: draft
|
|
- Owner: delivery-runner to complete with dev-impl input before implementation.
|
|
|
|
## Required Design Decisions
|
|
1. Persistence schema
|
|
- Define exact columns, indexes, uniqueness/idempotency keys, and schema migration path for `review_decisions` and `reconciliation_sessions`.
|
|
- Define whether target payload is JSON text and how sensitive content is minimized.
|
|
2. State model
|
|
- Map UI labels to internal `status` and `decision_type` values from REQ-020.
|
|
- Define allowed transitions for pending/decided/held/needs_recheck/ignored.
|
|
3. Application contracts
|
|
- Define additive fields returned by review queue, reconciliation report, and uncategorized workbench services.
|
|
- Define compatibility expectations for existing MCP and Streamlit consumers.
|
|
4. MCP tool contracts
|
|
- Define names, arguments, responses, error handling, and non-goals for review decision/session tools.
|
|
- Explicitly exclude destructive delete/reset operations.
|
|
5. Streamlit interaction model
|
|
- Define minimum UI actions, confirmation patterns, and feedback messages.
|
|
6. Verification design
|
|
- Define fixtures and representative scenarios for persistence round-trip, contract compatibility, dashboard behavior, and DB safety.
|
|
|
|
## Initial Recommendation
|
|
Use a common decision envelope with fields aligned to REQ-020 and target-specific payload fields stored as minimal JSON. Use reconciliation sessions as account/basis-date close records and allow review decisions to target either a session or a specific item.
|
|
|
|
## Design Completion Criteria
|
|
- Schema and state transitions are explicit enough for dev-impl to implement without product reinterpretation.
|
|
- MCP and Streamlit contracts are additive and testable.
|
|
- Verification scenarios map directly to REQ-020 AC 1-10.
|