39 lines
1.5 KiB
Markdown
39 lines
1.5 KiB
Markdown
# Reflection: Internal Parameters Are Not User Inputs
|
|
|
|
## Trigger
|
|
|
|
The user corrected two successive workflow descriptions: first, year/month/cutoff values were incorrectly treated as user submissions; then a monthly-report button was still incorrectly retained as a separate user action.
|
|
|
|
## Expected Behavior
|
|
|
|
Trace the complete business event chain before designing the interaction boundary: XML upload → Agent structured result → successful database commit → automatic monthly-report dispatch.
|
|
|
|
## Actual Behavior
|
|
|
|
Internal `RunRequest` fields and an existing manual endpoint were mistaken for the intended user workflow.
|
|
|
|
## Root Cause
|
|
|
|
- Unclear ownership
|
|
- Stale docs
|
|
- Conflation of an internal execution contract with a user-facing product contract
|
|
|
|
## Evidence
|
|
|
|
- Files: `.planning/monthly_reports_database_audit/findings.md`, `arr_web/app.py`, `arr_web/static/app.js`
|
|
- Session/thread: user correction on 2026-07-29
|
|
- Docs involved: ADR-001 and `.project-docs/40-domain/business-rules.md`
|
|
|
|
## Lesson
|
|
|
|
When a report program accepts year, month, or as-of values internally, do not infer that a person supplies them. Establish who initiates the business event, where values are derived, and which boundary owns the trigger before proposing UI or API behavior.
|
|
|
|
## Action
|
|
|
|
- Update docs
|
|
- Add the confirmed boundary to the durable business rules and architecture decision.
|
|
|
|
## Promotion
|
|
|
|
Promoted to ADR-001, the business-rules document, architecture data flow, and stale-item tracking.
|