Files
wyndham-ARR/.project-docs/60-reflection/cases/2026-07-29-internal-parameters-are-not-user-inputs.md
2026-07-29 16:38:05 +08:00

1.5 KiB

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.