77 unique pages · Lighthouse + Playwright mobile + raw HTTP · composite 0-100 + verdict tier
← Command Centre · Go-Live Dashboard → · sweep run 2026-05-14 21:30-23:25 BST · RULES SHIPPED: Sheet-write auto-pull (2026-05-15) · Lighthouse perf budget gate (2026-05-15)
reference/page-performance-budget.md. HARD ceilings (block publish): total ≤ 2,000 KB · script ≤ 1,000 KB · media ≤ 600 KB above-fold · perf ≥ 50 · LCP ≤ 4.0 s · CLS ≤ 0.25. Plus image/video/script/markup rules + the 6-step pre-publish checklist.tools/lighthouse_gate.py. Runs Lighthouse, asserts every threshold, exits 3 on HARD violation. Bypass requires LIGHTHOUSE_GATE_BYPASS_REASON + auto-logs to reference/deployment-log.md. Smoke-tested: correctly flagged UK brain-fog quiz with 6 HARD + 1 SOFT violations (LCP 15 s, 2.8 MB).PERF-DIAGNOSIS.md v1) guessed a "hero MP4" mechanism and got it wrong — there is no hero MP4. PERF-DIAGNOSIS-v2.md (ground-truth, Codex-QC'd) supersedes it: the video weight is an already-optimised bz-slide-video testimonial carousel, and the real problem is fleet-wide — 55 of 77 pages fail the HARD gate, dominated by LCP from third-party app JS. See the Corrected diagnosis section below.ops-shopify-page-builder pre-flight check #14 + ops-quiz-deploy. Banned in memory at feedback_page_performance_budget.md.Commit bf981a4 on feature/v4-migration · 6 files / 692 insertions
projects/briefs/qc-v4-sweep-2026-05-14/DECISIONS-LOG.md). Every card below is shown as BANKED ✓ — settled. The original slow_load → PROFILE_TOP3 verdict was superseded by the diagnosed slow_load_diagnosed card.| # | Decision | Verdict | Status |
|---|---|---|---|
| 1 | Console errors on 100% of pages | AUDIT_THEME_JS | BANKED |
| 2 | JSON-LD missing on 40 pages | TEMPLATE_PER_TYPE | BANKED |
| 3 | 23 exam-season city LPs | REFACTOR_TEMPLATE_NOW | BANKED |
| 4 | Accessibility < 90 on 50 pages | AXE_AUDIT | BANKED |
| 5 | OG image/title missing on 19 pages | TEMPLATE_DEFAULT | BANKED |
| 6 | qc_result schema format | KEEP_HYBRID | BANKED |
| 7 | 9 slow pages — diagnosed (ship which fixes) | SHIP_ALL_NOW ⚠ plan later invalidated — see Corrected diagnosis | BANKED |
| 8 | Lighthouse perf gate — adoption scope | RETROACTIVE_FULL | BANKED |
| — | 9 pages slow load (original framing) | PROFILE_TOP3 | SUPERSEDED |
The original PERF-DIAGNOSIS guessed the mechanism and got it wrong. Ground-truth investigation of the live themes (2026-05-15) found:
bz-slide-video testimonial carousel (8 videos on exam pages, 34 on dopamine-guide) — click-only play, posters, preload="metadata", a prior Codex desktop-preload fix. The v1 "add preload + poster" fix was already done.Live deploys were halted — the original SHIP_ALL_NOW authorised an invalidated plan. Codex 5.5 decision-QC confirmed the halt (RETHINK). Full detail: PERF-DIAGNOSIS-v2.md · THEME-JS-AUDIT.md · FINAL-PLAN.md (the last reviewed by Codex 5.5 + Gemini, both REFINE, all points folded in).
pending-tasks-registry.md §v4.0 Performance. Cards render read-only below with the decided verdict.PERF-DIAGNOSIS.md v1's wrong "hero MP4" mechanism — the preload/poster fixes it proposed are already in place. The corrected plan is in PERF-DIAGNOSIS-v2.md + FINAL-PLAN.md (Codex 5.5 + Gemini reviewed). The performance workstream is now PARKED — Calum pivoted to the ads-go-live path; the live D1–D7 app-stack decisions above carry the real fixes.| Workstream | What it actually is | Risk | Status |
|---|---|---|---|
| WS1 — Carousel mobile video | bz-slide-video Embla carousel keeps preload="metadata" on mobile (8–34 videos/page). Already optimised on desktop (click-only play, posters, Codex-reviewed preload fix). Needs a real mobile-device test before any change — the component is shared across 55+ live pages mid-T1. | High care | PARKED |
| WS2 — Theme JS baseline | The likely dominant fleet-wide LCP driver: ~440–587 KB unused JS + ~4.4 s JS execution per page from third-party apps (gtag, Judge.me, Reamaze, Meta Pixel, Hextom, Web Pixels). App-injected — fixed app-side via the D1–D6 decisions above, not in theme code. | App-side | PARKED |
| WS3 — JSON-LD + CLS | 40 pages emit zero JSON-LD (additive Liquid, low risk). sections/bz-exam-city.liquid <img> tags lack width/height — the CLS fix. Two small reviewed batches; the only genuinely low-risk work. | Low | PARKED |
| # | Mkt | Wave | Handle | Score | Perf/SEO/A11y/BP | Live URL |
|---|
| # | Mkt | Wave | Handle | Score | Perf/SEO/A11y/BP | Findings | Live URL |
|---|
| Mkt | Wave | Type | Handle | Score | P/S/A/B | Findings | Decision | Feedback |
|---|
30 pts — HTTP probe: status 200 (8) + canonical (5) + hreflang ≥3 (5) + JSON-LD ≥1 (6) + og:title+og:image (3) + meta title+desc (3).
40 pts — Lighthouse: perf×0.15 + seo×0.10 + a11y×0.10 + best-practices×0.05.
30 pts — Playwright mobile: nav 200 (10) + zero console errors (12, sliding) + load <8s (8) / <15s (4).
Verdict tiers: PASS ≥ 80 · WARN-A 70-79 · WARN-B 60-69 · FAIL < 60.
tools/registry_pull_after_write.py in the same script — codified in AGENTS.md, ops-pages-registry SKILL, and memory/feedback_sheet_write_auto_pull.md.PASS|WARN|FAIL (NN/100) alongside the lowercase enum. Schema warnings on pull dropped 69 → 2.C:/Users/PC/.claude/hooks/ stubbed to suppress the spurious MODULE_NOT_FOUND noise on every Write/Edit.