Pre-production hardening — validated demo-sprint review findings
Tracks the action items from the **validated external demo-sprint/UI review** (2026-06-04). An external reviewer flagged 13 "demo-ASAP shortcut" findings; each was validated against current code + our ADRs (workflow run, 19 agents) and confirmed findings adversarially re-examined.
**Verdict:** high-quality review — 8/13 fully accurate, 4 partly, 1 wrong conclusion (F10), zero hallucinations. Most findings are **already-governed debt** (ADR-027/028 fact-authoring = "intake is render-only theatre"; epic &56), not regressions. This epic collects the items that need NEW tracking.
### Production blocker (re-scoped existing issue)
- **F3 → #598** — case-detail Activity tab leaks jurisdiction-wide audit events (`render_activity_tab` ignores `household_id`). Backend filter already exists; only the canopy-web caller wiring + a stale comment remain. **Blocks a non-demo prod worker-portal release.** ADR-027 §4.
### Genuinely-new, untracked (this epic's new issues)
- **F4** — applicant portal hardcodes SNAP (`programs_requested:["snap"]`, `UPLOAD_PROGRAM="snap"`). Acceptable SNAP-UAT scope per ADR-005/008 but untracked.
- **F5** — case search renders worker-scoped program label with household-wide status (latent multi-program mismatch).
- **F8** — verification-gate UI fails open while the action fails closed (unannotated swallowed `Result`, coding-conventions §Errors).
- **F11** — queue/search program badge uses `u-status-{Program}` class matching no CSS rule (cosmetic; relates to epic &53).
### Already-governed (no new issue — listed for completeness)
F1 (ADR-027 Alt-1 rejected / epic &56) · F2 (#579) · F6 (epic &56) · F7 (ADR-027 §Context) · F9 (#664) · F12 (#666) · F13 (ADR-027/028 — the genuine intake→determination E2E lands WITH epic &56, not retrofit). **F10 refuted** — SameSite=Strict is the ratified applicant-portal CSRF control (coding-conventions §CSRF, ADR-026).
Pick up after the current Tier-0 / bff-edge-security workstream.
epic