The queue and the gate for badging dental builds. Open a build, open its donor beside it (or use Compare for a split view with synced scroll), work the seven gate lines, tick them here as they go green. Ticks and notes save in this browser. A build is QC'd when all seven are ticked; then it gets committed, carded with the badge, registered in the viewer and /work/, and the worker redeployed. Source: industries/dental/_shared/DENTAL-QC-LIST-2026-09-15.md.
The gate: seven lines, all green A build integrity · B layout · C contrast · D dental content · D2 content spine · E performance · F art director · G ship
A · Build integrity
build.mjs exit 0; design/ never hand-edited
doctype + noindex,nofollow on every page
em dash 0, emoji 0; every inline SVG has a size rule
(555) phone, example email, fictional disclaimer, Ziwi credit as plain text
donor grep 0 in HTML/CSS/JS; no stale donor stylesheet; no donor glyph in the mark
no bare repeat(N,1fr); no body overflow-x:hidden masking a real overflow
overflow 0 at 390 / 1440 / 2560, every page, parent-measured
screenshot every page at 1440 and 390, eyes on each
mega probes: hover, cold click, hover-then-click, mouse-leave, focus, Escape from trigger, Escape from panel link, touch accordion
mega menu open-state shot at 1440, eyes on it: full container width aligned to the nav, solid opaque panel with shadow (no page text showing through), columns 260 px+, blurbs 2 lines max, icons 20 px+, nothing wraps, featured card reads at a glance
header behaviour: fixed on scroll, or hides on scroll down and returns on scroll up; phone + Book reachable at every scroll position, desktop and mobile
before/after slider drags; FAQ opens; tables stack at 640; forms show demo success
no headline or lead starts at opacity:0
C · Contrast, measured
header probe over the hero on every page: wordmark + nav at or above 3:1; body copy 4.5:1; buttons AA
recipe: hide the element, screenshot its box, decode in-browser, luminance-percentile the backdrop, ratio vs computed color; log the worst ratio
D · Dental content
before/after gallery present; slider on every cosmetic, restorative, ortho and perio service page
service pages explain and book: 2 to 3 upgrade-kit modules + FAQ, no two pages the same set, light CTA, no plan marquee under the CTA
mega menu on every page; booking reachable in one click from every page (sticky mobile CTA if the theme has none)
no "looks forward to" line, no unverifiable credentials or outcomes, prices illustrative
D2 · Content spine (playbook 09-15)
Tier A, all ten on every template: cost band on each service page + a cost page; insurance and financing page; membership plan page (3 tiers); new patients page; one page per doctor + team; FAQ hub + FAQPage markup; reviews count as content; emergency page with triage; related / alternatives block per service; smile gallery page
service-page spine: what it is, candidacy, benefits, options, steps, cost, insurance, proof, FAQ, alternatives, CTA; core 1,400 to 2,600 words, money pages 2,400 to 3,600
source: brands/personal/ziwi-dental-marketing/research/dental-content-playbook-2026-09-15.md (Tier B per sub-vertical, Tier C differentiators inside)
E · Performance gate
images WebP + srcset, no master over 400 KB, page under its weight budget; hero video 0.8 to 1.2 MB ping-pong with poster, or none
PSI mobile, two interleaved runs, medians, home + one service page: LCP under 1.8 s, FCP under 1.0 s, CLS under 0.05, render-blocking 0
log LCP element, medians, benchmarkIndex; score is a range, not a target; perf-engineer owns fixes
F · Art director
design-critique at 1440 + 390: zero hard blockers, scores logged, fixes applied and re-shot
G · Ship
commit in repos/theme-forge naming the slug and result
hub card above the QC divider with the QC'd class, dividers recounted, thumb recaptured
registered in design-viewer sites.json + work-v2 sites.json (launched per Brandon)
npx wrangler deploy from the theme-forge root; open the live URL once
log row in the md file + memory entry in the Ziwi brand memory