11# review-rubric — Phase 5 mechanical gate
22
33§A runs BEFORE deploy and is a completion gate, not a suggestion. Most items
4- are verified by grep/code inspection; when the brief selects A4, item 9e also
5- requires its interactive runtime checks in local preview before the final
6- deploy. There is no post-deploy visual/screenshot review — this mechanical
7- gate is the only verification.
4+ are verified by grep/code inspection. ** Item 9f is the hard machine gate for the
5+ animated-website default: a website that ships without the scroll-scrub component
6+ + scene media (and without an explicit ` non-animated ` choice in the brief) FAILS, no matter
7+ how polished the rest is** — this is the single most common miss, so run 9f every
8+ time. For the animated website, item 9e adds its interactive runtime checks in
9+ local preview before the final deploy. There is no post-deploy visual/screenshot
10+ review — this mechanical gate is the only verification.
811
912## §A. Mechanical gate (pre-deploy, code-level)
1013
@@ -72,11 +75,14 @@ Check each item; fix every hit before deploying.
7275 build's six identity axes (palette family, type pairing, hero
7376 architecture, Tier-1 technique, CTA garments, corner language) and this
7477 build differs on ≥4; the rationed garments (drawing underline, hover
75- flood-fill, framed block) appear at most once page-wide combined; the
76- Tier-1 technique carries a ` wow-catalog.md ` ID and is interactive (not a
77- passive loop) on cinema/spectacle.
78- 9e. ** A4 seam-locked scroll scrub (conditional)** — when the brief selects
79- A4, verify every media segment has a first-frame poster extracted from the
78+ flood-fill, framed block) appear at most once page-wide combined. On the
79+ ` non-animated ` path the Tier-1 technique carries a ` wow-catalog.md ` ID and is
80+ interactive (not a passive loop); on the default ` animated-website ` path the
81+ Tier-1 technique IS the scroll-scrub animated website (enforced by 9f) — a
82+ generic wow-catalog ID does NOT satisfy the default path.
83+ 9e. ** Animated website — A4 seam-locked scroll scrub (every website by default;
84+ skip only if the user explicitly opted out)** — verify every media segment
85+ has a first-frame poster extracted from the
8086 exact deployed clip; chapter copy is server-rendered in semantic document
8187 flow (not hidden until a viewport callback); ` prefers-reduced-motion `
8288 performs no video fetch and shows the complete static story; desktop and
@@ -89,6 +95,30 @@ Check each item; fix every hit before deploying.
8995 media. Inspect each seam immediately before/after in both scroll directions
9096 and test source swapping, a fast mobile flick, and unmount/remount in local
9197 preview before final deploy.
98+ 9f. ** Animation mode gate (machine-verifiable — HARD, every website).** This is
99+ the completion gate for the animated-website default; a site that passes every
100+ other check but this one is NOT done. Steps:
101+ 1 . ` grep -n "^Animation mode:" app/design-brief.md ` — there MUST be exactly
102+ one such line. Zero matches → FAIL (the brief never declared the state).
103+ 2 . If the value is ** ` animated-website ` ** , ALL of these must hold, or FAIL:
104+ - the scroll-scrub component exists —
105+ ` ls app/src/components/scroll-scrub/scroll-scrub.tsx ` succeeds — and is
106+ actually imported/rendered by a route (grep for its import);
107+ - real film shipped — at least ONE clip (` single-shot ` ships exactly
108+ one; a ` multi-leg ` journey ships one per leg) under
109+ ` app/public/assets/**/*.mp4 ` (the seam-locked chain), each with a
110+ first-frame poster (item 9e);
111+ - the brief carries the journey block (Journey scenes + Camera
112+ architecture A/B) written in Phase 0.
113+ A website on this path with no scroll-scrub component or no scene MP4s is
114+ the failure mode this gate exists to catch — do NOT deploy it; go build the
115+ camera journey.
116+ 3 . If the value is ** ` non-animated ` ** , the line MUST record the user's choice
117+ (an intake pick or a verbatim request). No scroll-scrub artifacts are
118+ required; instead confirm the site clears the ` wow-maker.md ` craft floor and
119+ any chosen ` wow-catalog.md ` technique is actually built (9d). A
120+ ` non-animated ` with no recorded user choice → FAIL (treat as
121+ ` animated-website ` and go back to step 2).
9212210 . ** Section plan honored** — the built page matches ` app/design-brief.md ` 's
93123 section plan (families, order, no consecutive family repeats). If the plan
94124 changed during the build, the brief was updated to match.
0 commit comments