# Retroactive Review Plan Components built before the workflow upgrade (2026-03-27) haven't been through the full quality gate lifecycle. This plan reviews them using a lighter process focused on catching real issues, not re-polishing what already works. ## Approach Use the condensed review process from component-lifecycle.md: 1. `/normalize {tier}` — Scan the tier for cross-component consistency 2. `/audit {component}` — Score each component (only those scoring < 16/20 need fixes) 3. Fix P0/P1 issues only 4. `/preflight` → commit ## Priority Order Review bottom-up: atoms first (they're the foundation everything builds on), then molecules, then organisms. Within each tier, prioritise by usage — components used by many others matter more than standalone ones. --- ## Phase 1: Atoms (foundation layer — highest priority) ### Step 1.1 — Normalize all atoms Run `/normalize atoms` once to get a cross-component consistency report. Expected findings: token access patterns (D031), transition timing, focus styles. Fix all issues in a single batch commit. ### Step 1.2 — Audit each atom Run `/audit` on each atom. Components already audited in previous sessions have scores on record. Focus on those that scored < 16/20 or were never audited. | Atom | Last Audit Score | Priority | |------|-----------------|----------| | Button | **20/20** (2026-03-27) | ~~High~~ Done | | Typography | **18/20** (2026-04-06) | ~~Medium~~ Done — no P0/P1 | | Input | **20/20** (2026-03-27) | ~~High~~ Done | | Card | **20/20** (2026-03-27, after P1 fixes) | ~~High~~ Done | | Badge | **15/20** (2026-04-06) | ~~Medium~~ Done — P0 (role="status") reviewed, determined false positive (would create unwanted aria-live region on static labels) | | Chip | — | Low (minimal wrapper) | | Switch | — | Low (minimal wrapper) | | Radio | — | Low (minimal wrapper) | | IconButton | — | Low (minimal wrapper) | | Divider | — | Low (minimal wrapper) | | Link | — | Low (minimal wrapper) | **Estimated effort:** ~~1 session~~ Done (high/medium atoms). Low-priority atoms are minimal MUI wrappers — no further review needed. --- ## Phase 2: Molecules (composition layer) ### Step 2.1 — Normalize all molecules ~~Run `/normalize molecules` for cross-component consistency.~~ Done (2026-04-06). All 9 molecules scanned. No real P0/P1 cross-component issues. displayName ✓, forwardRef ✓, ARIA ✓ (AddOnOption uses Switch as semantic control; ProviderCard has `...rest` passthrough), no hardcoded colours ✓. ### Step 2.2 — Audit + critique priority molecules Run `/audit` and `/critique` on molecules with real layout complexity. | Molecule | Last Scores | Priority | |----------|------------|----------| | ProviderCard | Critique 33/40 (v2 iteration) | ~~Medium~~ Done (user-approved, ARIA passthrough confirmed) | | VenueCard | Critique 33/40 | ~~Medium~~ Done (user-approved) | | SearchBar | Critique 35/40 | Low (high scores already) | | ServiceOption | **Audit 13/20** (2026-03-30, P1 fixed) | ~~Medium~~ Done | | AddOnOption | **Audit 14/20** (2026-03-30, P1 fixed) | ~~Medium~~ Done | | StepIndicator | — | Low (display-only) | | LineItem | Audit 19/20 | Low (excellent score) | | ProviderCardCompact | **Audit 15/20** (2026-03-30, P2 fixed) | ~~Medium~~ Done | **Estimated effort:** ~~1 session~~ Done. --- ## Phase 3: Organisms (page-level compositions) ### Step 3.1 — Normalize all organisms ~~Run `/normalize organisms` for cross-component consistency.~~ Done (2026-04-06). 5 active organisms scanned. displayName ✓, forwardRef ✓. Spacing and token access vary by component but are D031-compliant (CSS vars acceptable for semantic tokens per D031). Focus-visible styles are present in MUI theme overrides for Link and interactive controls. ### Step 3.2 — Full review of critical organisms Run `/audit` + `/critique` + `/harden` on each. | Organism | Last Scores | Priority | |----------|------------|----------| | Navigation | **Audit 15/20** (2026-04-06) | ~~High~~ Done — no real P0/P1 after analysis (focus-visible from MUI theme, CSS vars D031-compliant) | | Footer | Critique 38/40 | Low (excellent score) | | ServiceSelector | **Audit 17/20** (2026-04-06, P0 fixed: aria-required) | ~~High~~ Done | | PackageDetail | Audit 19/20 | Low (excellent score) | | FuneralFinder V1 | Audit 14/20, Critique 29/40 | Archived (D032) | | FuneralFinder V2 | Audit 18/20, Critique 33/40 | Archived (D032) | | FuneralFinder V3 | Audit 18/20, Critique 33/40 | ~~Medium~~ Done (production version, D032) | **Estimated effort:** ~~1 session~~ Done. --- ## Phase 4: Cross-cutting concerns After individual components are clean: 1. ~~**Form error colour normalisation (D034):**~~ Done (2026-03-28). Copper error styling in MuiOutlinedInput, MuiFormHelperText, MuiFormLabel, ToggleButtonGroup. 2. ~~Run `/adapt` on all organisms + ProviderCard/VenueCard (responsive check)~~ Done (2026-03-31d). Navigation + Footer touch targets fixed (P0/P1). ProviderCard/VenueCard: no action needed (card is the touch target). 3. Run `/typeset` across a representative sample of each tier — deferred (low risk, typography tokens are consistent) 4. ~~Run `/preflight` to verify the full codebase~~ Done (2026-04-06). TypeScript ✓, ESLint ✓, Prettier ✓, Storybook build ✓. 5. ~~Commit all fixes~~ Done. **Estimated effort:** ~~0.5 session~~ Done (typeset deferred as low-priority). --- ## Total estimated effort: ~3.5 sessions | Phase | Focus | Effort | |-------|-------|--------| | 1 | Atoms normalize + audit | 1 session | | 2 | Molecules normalize + audit | 1 session | | 3 | Organisms normalize + audit/critique/harden | 1 session | | 4 | Cross-cutting (adapt, typeset, preflight) | 0.5 session | This can be interleaved with new component work — e.g., review atoms in the morning, build a new molecule in the afternoon. The review findings often improve the patterns used in new components. --- ## Decisions (confirmed 2026-03-27) 1. **FuneralFinder version** — V3 is production. V1/V2 archived (viewable in Storybook under Archive/). Only V3 gets the full review. 2. **Depth** — P0/P1 only. Don't touch P2/P3 — not worth the risk on approved components. 3. **Approach** — Interleaved. Start each session with a review pass (~30-60 min), then shift to new component work. This is automated — the agent runs it proactively at session start without being asked.