# 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.
