@@ -29,8 +29,19 @@ agreement BETWEEN builders (a missing-field day reads error on ValidationSummary
2929DayEditor; an animal-setup blocker lights the AnimalView ring + closes the export gate + errors the day
3030row; the three recovery classes match across both day-list surfaces), the full severity-mapping table,
3131and a runtime descriptor-coverage check (every emitted ` WorkflowCommand.id ` is in
32- ` WORKFLOW_COMMAND_CATALOG ` ). Net-new tests only, no source change. ** Next: Phase 6 (workflow UI,
33- gated — a menu + guardrails, not one PR).**
32+ ` WORKFLOW_COMMAND_CATALOG ` ). Net-new tests only, no source change.
33+
34+ ** Post-phase-5 comprehensive review (merged) — six follow-ups:** (1) relocated ` validationSummaryRows `
35+ ` pages/ ` →` viewModels/ ` and added a ` viewmodel-imports-page ` architecture guard (the view-models no
36+ longer depend back on a page); (2) tightened ` WorkflowCommand.id ` to the catalog-derived
37+ ` WorkflowCommandId ` literal union (a typo'd id is now a compile error); (3) made
38+ ` buildDayEditorViewModel ` honor its "never throws" contract (guards the post-merge
39+ ` computeStepStatus ` /` validateDay ` , fails closed on an un-routed-issue contract violation); (4) closed
40+ boundary-test gaps (corrupt/unknown-input no-throw matrix over all 4 builders, ack-without-acks no-op,
41+ ` counts.incomplete ` non-zero, the ` orphan_no_owner ` recovery branch); (5) fixed Phase-3 comment rot
42+ (dead "mirrors X" page-symbol citations) + scaffolding-doc citations; (6) documented the
43+ ` WorkflowSeverity ` ` warning ` contract (per-issue today; reserved for a future row/section badge).
44+ ** Next: Phase 6 (workflow UI, gated — a menu + guardrails, not one PR).**
3445
3546** Deferred follow-up (logged, NOT blocking — post-Phase-3 review):**
3647
0 commit comments