Design Review
Review and, when requested, repair a UI branch to a high product-design bar.
This is an adversarial review and execution workflow, not a screenshot critique
or generic lint pass. Begin with the dirty worktree, trace the actual system,
prove behavior at runtime, measure relevant quality, and converge on one
canonical implementation.
Modes
- Review: inspect, prove, measure, and return corrections without editing.
- Implementation: review, implement every confirmed in-scope finding,
remove superseded paths, rerun proof, and align docs.
State the selected mode and scope before judging. A named route, component, or
motion system narrows the map but does not remove runtime proof.
Doctrine Sources
Read the repository's own design contract before applying generic taste.
Search in this order:
- Root and nested agent instructions (
AGENTS.md, equivalent runtime guides).
- Design authorities such as
docs/design*, design-system references,
product principles, brand rules, accessibility policy, and UI ADRs.
- Token sources, theme files, global CSS, NativeWind or styling config, font
declarations, motion tokens, and shared component packages.
- Component registry/configuration such as
components.json.
- The changed components, routes, tests, stories, screenshots, and consumers.
If no design contract exists, say: No repository design contract found; generic design-review gates applied. Do not invent hidden doctrine. Repository
docs own additions to refused vocabulary, brand rules, tokens, and signatures.
Taste Gates
These are non-negotiable unless a stronger repository contract supersedes them.
Bold, not enterprise-default
- Give each view one legible focal idea and match density to purpose.
- Reject template-shaped composition, default tokens, timid hierarchy, and
polish that does not clarify the product. Prefer subtraction.
Theme parity when theming exists
- If the product supports multiple themes or appearances, each must feel
intentionally art-directed and equally complete.
- Do not repair one theme by flattening the other. Verify contrast, hierarchy,
imagery, elevation, focus, status color, and motion in every appearance.
- If the repository has no theming, do not require it as part of this review.
Motion with purpose
- Movement must communicate state, causality, continuity, feedback, or
hierarchy. Decorative motion must earn its cost.
- Animate compositor-friendly
transform and opacity for continuous UI
motion. Treat layout, paint-heavy filters, and large blurred regions as risks
that require measured justification.
- Target smooth 60fps interaction on supported hardware.
- Respect reduced-motion preferences with a settled, usable end state; never
hide content merely because animation is disabled.
- Keep server-rendered output stable. Initialization must be SSR/hydration-safe,
interruptible where interaction demands it, and cleaned up.
- Assign one animation owner per element. Do not let CSS, a JS library, and a
gesture system fight over the same property.
No synthetic design filler
- No filler, invented customers, fake metrics/certifications, or decorative
numbers presented as product truth.
- No gradients whose only purpose is sophistication, or emoji as the primary
icon and interaction vocabulary.
- No arbitrary glow, glass, noise, particles, or ambient movement used to make
an unfinished hierarchy look designed.
- No generic AI-product aesthetic in place of a product-specific visual idea.
Accessibility floor
- WCAG 2.2 AA is the minimum conformance target.
- Require keyboard access, visible focus, semantics, names, usable forms,
sufficient contrast, zoom/reflow tolerance, and motion control.
- Review validation, errors, loading, empty data, dialogs, menus, and recovery.
Automation never replaces keyboard and screen-reader-aware inspection.
Refused vocabulary
The repository's own design contract owns its refused list. In its absence,
flag these common defaults unless the brief explicitly and credibly requires
them:
- mesh or lava-lamp gradients and animated gradient borders;
- generic bento or masonry collages used as a substitute for hierarchy;
- custom cursors without explicit user opt-in and an accessibility rationale;
- scroll hijacking, forced smooth scrolling, or input interception;
- glassmorphism on content surfaces where readability matters;
- the purple-to-blue AI gradient as generic brand shorthand;
- decorative-only chrome, particles, glitch effects, or floating ornaments;
- repetitive card nesting, default shadows, and arbitrary radius ladders.
If repository doctrine explicitly adopts one, judge against that contract and
note the exception rather than silently overriding it.
Craft Bar
Typography is architecture
Type scale, measure, weight, tracking, line height, and wrapping establish the
hierarchy before decoration. Remove orphans, clipping, unstable font loading,
false button hierarchy, and dense copy. Check localization and Dynamic Type.
White space is a tool
Use space to group, pace, and direct attention. Distinguish intentional density
from crowding. Prefer alignment and rhythm over card borders for grouping.
Easing must be authored
- Do not ship CSS
ease or linear for ordinary UI transitions. Use repository
motion tokens or an intentional custom curve/spring.
linear remains valid for genuinely constant-rate progress, rotation, or
other continuous physical behavior, not stateful UI easing.
- Duration, delay, stagger, and easing must fit interaction frequency.
Signature moments are scarce
A flagship surface may have one memorable interaction that expresses product
character. Do not turn every section into one; clarity precedes spectacle.
Complete micro-states
Interactive controls need six intentional states where applicable:
- default;
- hover;
- focus-visible;
- active/pressed;
- disabled;
- loading/busy.
Loading needs status feedback; focus-visible must differ from hover; disabled
controls cannot be the only explanation for unavailable actions.
Geometry and state surfaces
- Nested rounded shapes should use concentric radii rather than identical,
visually misaligned radii.
- Empty, error, offline, denied, and loading states are product surfaces. Give
each a clear next action when one exists.
- Maintain layout stability between skeleton, loaded, and error states.
Discover Named Gates
Never infer validation commands from habit. Inspect:
- package scripts, task-runner, workspace, and toolchain config;
- CI workflows, validation manifests, and package guidance;
- browser, simulator, screenshot, bundle, accessibility, and performance tools.
Record the exact gates that apply to the touched files. Prefer repository
scripts over raw binaries. A gate not run is UNVERIFIED, never passed.
Optional power tools
Use these only when installed or when installation is appropriate and allowed:
gsap-audit scan --root <path>
motion-token-audit scan --root <path>
expo-motion-audit scan --root <path>
npx motionscore@0.1.2 <url> --agent --no-upload
The three audit commands are Rust CLIs included in this repository. From a
trusted checkout they can be installed with:
cargo install --path crates/<name> --locked --force
Also discover repository Lighthouse, Core Web Vitals, bundle, screenshot,
visual-regression, and accessibility gates. Retain MotionScore --no-upload
unless external upload is approved.
Review Lanes
Run lanes independently. Use references/subagent-playbook.md only when bounded
fan-out is justified.
1. Taste and slop
Inspect hierarchy, originality, tokens, composition, theme parity, refused
vocabulary, and decoration covering weak product structure.
2. Product truth and simplicity
- State the surface's One Thing in one sentence. Count steps to first value;
prefer three or fewer when natural. For each addition, ask what can be removed.
- Inspect the back of the fence: settings, email, help, loading, empty, error,
permission, destructive, and recovery states deserve the same care as demos.
- Reject fabricated proof and dark patterns.
3. Accessibility and metadata
Check WCAG 2.2 AA, keyboard order, focus management, names, semantics, forms,
contrast, target sizes, reduced motion, title, description, canonical URL,
social metadata, structured data, and robots behavior where applicable.
4. Motion
Inspect animation ownership, curves, springs, timing, origins, interruption,
enter/exit pairing, gestures, scroll coupling, reduced-motion end states, SSR,
cleanup, and runtime smoothness. Measure rather than guessing.
5. Performance and architecture
Inspect first-load bytes, assets, fonts, rendering, hydration, layout shift,
long tasks, repeated work, Core Web Vitals, and budgets. Separate measured
regression from theoretical micro-optimization.
6. Code entropy
Find duplicate tokens, parallel components, dead styles, compatibility props,
fallback variants, aliases, stale assets, and multiple owners of one behavior.
Require one canonical source unless an external boundary is proven.
7. Data layer, only when touched
Inspect loading/error/empty ownership, over-fetching, request waterfalls,
subscription breadth, cache invalidation, optimistic rollback, authorization
boundaries, and accidental client trust. Do not broaden into a backend audit if
the UI change does not touch data behavior.
8. Native, only for React Native or Expo
Verify on a real device or simulator: safe areas, home indicators, keyboard,
44px targets, Dynamic Type, screen-reader semantics, both appearances when
supported, platform navigation, gestures, haptics, motion, and list smoothness.
Prefer platform-native behavior over fragile reimplementation.
Evidence Discipline
A confirmed finding requires all three:
- Contract: a cited repository decision or an explicitly named generic
gate from this skill.
- Runtime: proof that the cited code/value reaches the affected surface,
ideally with browser/device evidence or a traced ownership path.
- Correction: one required change tied directly to the evidence.
Use path/to/file:line citations. Attach screenshots, accessibility snapshots,
console/network output, traces, and measurements. Search hits and stylistic
differences are candidates, not findings.
Mark unsupported claims UNVERIFIED. If browser, native, accessibility,
motion, or performance evidence is unavailable, mark that lane Degraded and
the final verdict Inconclusive. A compile pass is not visual proof; browser
proof is not native proof; automated accessibility is not manual coverage.
Severity
- HIGH: blocks a core task, violates WCAG AA, breaks supported appearance or
viewport behavior, causes destructive confusion, ships fabricated product
truth, or creates a measured severe performance/motion regression.
- MEDIUM: materially weakens hierarchy, comprehension, interaction quality,
state completeness, maintainability, or a non-core performance path.
- LOW: localized craft or consistency issue with a clear correction and low
user impact. Do not inflate preferences into findings.
Use Block for hard failures even if a numeric or aggregate score looks good.
Companion Skill Routing
Load only companions present in this repository and relevant to the lane:
motion, gsap, or expo-motion for implementation-specific motion.
design-motion-audit for a read-only cross-stack motion punch list.
r3f-scene-polish for existing Three.js/R3F cinematic look development.
improve-ui for documented design-system drift and Contract/Runtime/
Correction evidence.
wcag-audit-patterns and web-interface-guidelines for web conformance.
better-ui, better-colors, better-typography, better-layout,
better-accessibility, and better-writing for focused craft ownership.
better-interface for a cross-discipline interface review/build workflow.
autoreview or multi-model-review for independent code-review support.
Workflow
- Scope the dirty worktree. Read repository instructions and design
doctrine, inspect status and diff, identify unrelated changes, and do not
overwrite work outside scope.
- Build a system map. Trace changed routes/components to tokens, shared
primitives, assets, motion owners, data producers, tests, docs, and native
surfaces. Identify canonical and superseded paths.
- Discover gates. Read scripts and CI; list applicable commands before
running them. Never invent a gate.
- Run review lanes. Cover every applicable lane and record
Complete,
Degraded, Not in scope, or Not reviewed.
- Prove and measure. For web, use a real browser in every supported theme
at desktop and a mobile viewport, with console/network inspection. For
native, use a real device or simulator. Exercise reduced motion. Run
applicable accessibility, performance, motion, and bundle measurements.
- Synthesize findings. Require Contract + Runtime + Correction, cite
files and evidence, deduplicate by root cause, and rank by severity.
- Implement every confirmed finding when requested. Make the smallest
complete correction, collapse duplicate ownership, and delete superseded
compatibility/fallback paths unless an external boundary is named.
- Re-verify. Repeat the affected browser/device flows and measurements,
then run the repository gates implied by touched files.
- Align docs. Update design, component, testing, or contributor contracts
only when behavior or ownership changed.
Verdict Ladder
- Approve: every applicable lane is complete, no confirmed issue remains,
runtime evidence is adequate, and required gates pass.
- Needs changes: correctable findings remain; provide an ordered required
action list.
- Block: a core UX, accessibility, truth, security, destructive-action,
console/runtime, or severe measured performance failure prevents approval.
- Inconclusive: required evidence or lane coverage is degraded. Never use
Approve with an unverified required lane.
Review Output Format
Return:
- Scope and mode — dirty diff, surfaces, themes/viewports, and exclusions.
- Doctrine and gates — authorities read, generic fallback if needed, gates
run, gates skipped, and
UNVERIFIED items.
- Coverage — status for every applicable review lane.
- Findings — ordered HIGH, MEDIUM, LOW; each includes Contract, Runtime,
Correction,
file:line, and before evidence.
- Implemented fixes — changed files, canonical path retained, and legacy
paths removed, or
Report-only.
- After proof — browser/device captures, console, motion, accessibility,
performance, bundle, and named gate results.
- Verdict — one value from the ladder with rationale.
- Considered but rejected — one to three plausible candidates rejected as
unsupported, out of scope, or contrary to doctrine.
- Residual gaps — explicit
UNVERIFIED risks and the command or evidence
needed to close each.
Never claim a visual, native, motion, accessibility, or performance pass from a
different kind of evidence. Evidence quality is part of the design quality.
1---2name: design-review3description: Adversarial design, frontend, and motion review for web or mobile branches. Use to inspect a dirty UI worktree, prove behavior in a real browser or device, measure motion, performance, and accessibility, and implement one canonical end state.4license: MIT5---67# Design Review89Review and, when requested, repair a UI branch to a high product-design bar.10This is an adversarial review and execution workflow, not a screenshot critique11or generic lint pass. Begin with the dirty worktree, trace the actual system,12prove behavior at runtime, measure relevant quality, and converge on one13canonical implementation.1415## Modes1617- **Review:** inspect, prove, measure, and return corrections without editing.18- **Implementation:** review, implement every confirmed in-scope finding,19 remove superseded paths, rerun proof, and align docs.2021State the selected mode and scope before judging. A named route, component, or22motion system narrows the map but does not remove runtime proof.2324## Doctrine Sources2526Read the repository's own design contract before applying generic taste.27Search in this order:28291. Root and nested agent instructions (`AGENTS.md`, equivalent runtime guides).302. Design authorities such as `docs/design*`, design-system references,31 product principles, brand rules, accessibility policy, and UI ADRs.323. Token sources, theme files, global CSS, NativeWind or styling config, font33 declarations, motion tokens, and shared component packages.344. Component registry/configuration such as `components.json`.355. The changed components, routes, tests, stories, screenshots, and consumers.3637If no design contract exists, say: `No repository design contract found;38generic design-review gates applied.` Do not invent hidden doctrine. Repository39docs own additions to refused vocabulary, brand rules, tokens, and signatures.4041## Taste Gates4243These are non-negotiable unless a stronger repository contract supersedes them.4445### Bold, not enterprise-default4647- Give each view one legible focal idea and match density to purpose.48- Reject template-shaped composition, default tokens, timid hierarchy, and49 polish that does not clarify the product. Prefer subtraction.5051### Theme parity when theming exists5253- If the product supports multiple themes or appearances, each must feel54 intentionally art-directed and equally complete.55- Do not repair one theme by flattening the other. Verify contrast, hierarchy,56 imagery, elevation, focus, status color, and motion in every appearance.57- If the repository has no theming, do not require it as part of this review.5859### Motion with purpose6061- Movement must communicate state, causality, continuity, feedback, or62 hierarchy. Decorative motion must earn its cost.63- Animate compositor-friendly `transform` and `opacity` for continuous UI64 motion. Treat layout, paint-heavy filters, and large blurred regions as risks65 that require measured justification.66- Target smooth 60fps interaction on supported hardware.67- Respect reduced-motion preferences with a settled, usable end state; never68 hide content merely because animation is disabled.69- Keep server-rendered output stable. Initialization must be SSR/hydration-safe,70 interruptible where interaction demands it, and cleaned up.71- Assign one animation owner per element. Do not let CSS, a JS library, and a72 gesture system fight over the same property.7374### No synthetic design filler7576- No filler, invented customers, fake metrics/certifications, or decorative77 numbers presented as product truth.78- No gradients whose only purpose is sophistication, or emoji as the primary79 icon and interaction vocabulary.80- No arbitrary glow, glass, noise, particles, or ambient movement used to make81 an unfinished hierarchy look designed.82- No generic AI-product aesthetic in place of a product-specific visual idea.8384### Accessibility floor8586- WCAG 2.2 AA is the minimum conformance target.87- Require keyboard access, visible focus, semantics, names, usable forms,88 sufficient contrast, zoom/reflow tolerance, and motion control.89- Review validation, errors, loading, empty data, dialogs, menus, and recovery.90 Automation never replaces keyboard and screen-reader-aware inspection.9192### Refused vocabulary9394The repository's own design contract owns its refused list. In its absence,95flag these common defaults unless the brief explicitly and credibly requires96them:9798- mesh or lava-lamp gradients and animated gradient borders;99- generic bento or masonry collages used as a substitute for hierarchy;100- custom cursors without explicit user opt-in and an accessibility rationale;101- scroll hijacking, forced smooth scrolling, or input interception;102- glassmorphism on content surfaces where readability matters;103- the purple-to-blue AI gradient as generic brand shorthand;104- decorative-only chrome, particles, glitch effects, or floating ornaments;105- repetitive card nesting, default shadows, and arbitrary radius ladders.106107If repository doctrine explicitly adopts one, judge against that contract and108note the exception rather than silently overriding it.109110## Craft Bar111112### Typography is architecture113114Type scale, measure, weight, tracking, line height, and wrapping establish the115hierarchy before decoration. Remove orphans, clipping, unstable font loading,116false button hierarchy, and dense copy. Check localization and Dynamic Type.117118### White space is a tool119120Use space to group, pace, and direct attention. Distinguish intentional density121from crowding. Prefer alignment and rhythm over card borders for grouping.122123### Easing must be authored124125- Do not ship CSS `ease` or `linear` for ordinary UI transitions. Use repository126 motion tokens or an intentional custom curve/spring.127- `linear` remains valid for genuinely constant-rate progress, rotation, or128 other continuous physical behavior, not stateful UI easing.129- Duration, delay, stagger, and easing must fit interaction frequency.130131### Signature moments are scarce132133A flagship surface may have one memorable interaction that expresses product134character. Do not turn every section into one; clarity precedes spectacle.135136### Complete micro-states137138Interactive controls need six intentional states where applicable:1391401. default;1412. hover;1423. focus-visible;1434. active/pressed;1445. disabled;1456. loading/busy.146147Loading needs status feedback; focus-visible must differ from hover; disabled148controls cannot be the only explanation for unavailable actions.149150### Geometry and state surfaces151152- Nested rounded shapes should use concentric radii rather than identical,153 visually misaligned radii.154- Empty, error, offline, denied, and loading states are product surfaces. Give155 each a clear next action when one exists.156- Maintain layout stability between skeleton, loaded, and error states.157158## Discover Named Gates159160Never infer validation commands from habit. Inspect:161162- package scripts, task-runner, workspace, and toolchain config;163- CI workflows, validation manifests, and package guidance;164- browser, simulator, screenshot, bundle, accessibility, and performance tools.165166Record the exact gates that apply to the touched files. Prefer repository167scripts over raw binaries. A gate not run is `UNVERIFIED`, never passed.168169### Optional power tools170171Use these only when installed or when installation is appropriate and allowed:172173```bash174gsap-audit scan --root <path>175motion-token-audit scan --root <path>176expo-motion-audit scan --root <path>177npx motionscore@0.1.2 <url> --agent --no-upload178```179180The three audit commands are Rust CLIs included in this repository. From a181trusted checkout they can be installed with:182183```bash184cargo install --path crates/<name> --locked --force185```186187Also discover repository Lighthouse, Core Web Vitals, bundle, screenshot,188visual-regression, and accessibility gates. Retain MotionScore `--no-upload`189unless external upload is approved.190191## Review Lanes192193Run lanes independently. Use `references/subagent-playbook.md` only when bounded194fan-out is justified.195196### 1. Taste and slop197198Inspect hierarchy, originality, tokens, composition, theme parity, refused199vocabulary, and decoration covering weak product structure.200201### 2. Product truth and simplicity202203- State the surface's **One Thing** in one sentence. Count steps to first value;204 prefer three or fewer when natural. For each addition, ask what can be removed.205- Inspect the back of the fence: settings, email, help, loading, empty, error,206 permission, destructive, and recovery states deserve the same care as demos.207- Reject fabricated proof and dark patterns.208209### 3. Accessibility and metadata210211Check WCAG 2.2 AA, keyboard order, focus management, names, semantics, forms,212contrast, target sizes, reduced motion, title, description, canonical URL,213social metadata, structured data, and robots behavior where applicable.214215### 4. Motion216217Inspect animation ownership, curves, springs, timing, origins, interruption,218enter/exit pairing, gestures, scroll coupling, reduced-motion end states, SSR,219cleanup, and runtime smoothness. Measure rather than guessing.220221### 5. Performance and architecture222223Inspect first-load bytes, assets, fonts, rendering, hydration, layout shift,224long tasks, repeated work, Core Web Vitals, and budgets. Separate measured225regression from theoretical micro-optimization.226227### 6. Code entropy228229Find duplicate tokens, parallel components, dead styles, compatibility props,230fallback variants, aliases, stale assets, and multiple owners of one behavior.231Require one canonical source unless an external boundary is proven.232233### 7. Data layer, only when touched234235Inspect loading/error/empty ownership, over-fetching, request waterfalls,236subscription breadth, cache invalidation, optimistic rollback, authorization237boundaries, and accidental client trust. Do not broaden into a backend audit if238the UI change does not touch data behavior.239240### 8. Native, only for React Native or Expo241242Verify on a real device or simulator: safe areas, home indicators, keyboard,24344px targets, Dynamic Type, screen-reader semantics, both appearances when244supported, platform navigation, gestures, haptics, motion, and list smoothness.245Prefer platform-native behavior over fragile reimplementation.246247## Evidence Discipline248249A confirmed finding requires all three:2502511. **Contract:** a cited repository decision or an explicitly named generic252 gate from this skill.2532. **Runtime:** proof that the cited code/value reaches the affected surface,254 ideally with browser/device evidence or a traced ownership path.2553. **Correction:** one required change tied directly to the evidence.256257Use `path/to/file:line` citations. Attach screenshots, accessibility snapshots,258console/network output, traces, and measurements. Search hits and stylistic259differences are candidates, not findings.260261Mark unsupported claims `UNVERIFIED`. If browser, native, accessibility,262motion, or performance evidence is unavailable, mark that lane `Degraded` and263the final verdict `Inconclusive`. A compile pass is not visual proof; browser264proof is not native proof; automated accessibility is not manual coverage.265266## Severity267268- **HIGH:** blocks a core task, violates WCAG AA, breaks supported appearance or269 viewport behavior, causes destructive confusion, ships fabricated product270 truth, or creates a measured severe performance/motion regression.271- **MEDIUM:** materially weakens hierarchy, comprehension, interaction quality,272 state completeness, maintainability, or a non-core performance path.273- **LOW:** localized craft or consistency issue with a clear correction and low274 user impact. Do not inflate preferences into findings.275276Use `Block` for hard failures even if a numeric or aggregate score looks good.277278## Companion Skill Routing279280Load only companions present in this repository and relevant to the lane:281282- `motion`, `gsap`, or `expo-motion` for implementation-specific motion.283- `design-motion-audit` for a read-only cross-stack motion punch list.284- `r3f-scene-polish` for existing Three.js/R3F cinematic look development.285- `improve-ui` for documented design-system drift and Contract/Runtime/286 Correction evidence.287- `wcag-audit-patterns` and `web-interface-guidelines` for web conformance.288- `better-ui`, `better-colors`, `better-typography`, `better-layout`,289 `better-accessibility`, and `better-writing` for focused craft ownership.290- `better-interface` for a cross-discipline interface review/build workflow.291- `autoreview` or `multi-model-review` for independent code-review support.292293## Workflow2942951. **Scope the dirty worktree.** Read repository instructions and design296 doctrine, inspect status and diff, identify unrelated changes, and do not297 overwrite work outside scope.2982. **Build a system map.** Trace changed routes/components to tokens, shared299 primitives, assets, motion owners, data producers, tests, docs, and native300 surfaces. Identify canonical and superseded paths.3013. **Discover gates.** Read scripts and CI; list applicable commands before302 running them. Never invent a gate.3034. **Run review lanes.** Cover every applicable lane and record `Complete`,304 `Degraded`, `Not in scope`, or `Not reviewed`.3055. **Prove and measure.** For web, use a real browser in every supported theme306 at desktop and a mobile viewport, with console/network inspection. For307 native, use a real device or simulator. Exercise reduced motion. Run308 applicable accessibility, performance, motion, and bundle measurements.3096. **Synthesize findings.** Require Contract + Runtime + Correction, cite310 files and evidence, deduplicate by root cause, and rank by severity.3117. **Implement every confirmed finding when requested.** Make the smallest312 complete correction, collapse duplicate ownership, and delete superseded313 compatibility/fallback paths unless an external boundary is named.3148. **Re-verify.** Repeat the affected browser/device flows and measurements,315 then run the repository gates implied by touched files.3169. **Align docs.** Update design, component, testing, or contributor contracts317 only when behavior or ownership changed.318319## Verdict Ladder320321- **Approve:** every applicable lane is complete, no confirmed issue remains,322 runtime evidence is adequate, and required gates pass.323- **Needs changes:** correctable findings remain; provide an ordered required324 action list.325- **Block:** a core UX, accessibility, truth, security, destructive-action,326 console/runtime, or severe measured performance failure prevents approval.327- **Inconclusive:** required evidence or lane coverage is degraded. Never use328 `Approve` with an unverified required lane.329330## Review Output Format331332Return:3333341. **Scope and mode** — dirty diff, surfaces, themes/viewports, and exclusions.3352. **Doctrine and gates** — authorities read, generic fallback if needed, gates336 run, gates skipped, and `UNVERIFIED` items.3373. **Coverage** — status for every applicable review lane.3384. **Findings** — ordered HIGH, MEDIUM, LOW; each includes Contract, Runtime,339 Correction, `file:line`, and before evidence.3405. **Implemented fixes** — changed files, canonical path retained, and legacy341 paths removed, or `Report-only`.3426. **After proof** — browser/device captures, console, motion, accessibility,343 performance, bundle, and named gate results.3447. **Verdict** — one value from the ladder with rationale.3458. **Considered but rejected** — one to three plausible candidates rejected as346 unsupported, out of scope, or contrary to doctrine.3479. **Residual gaps** — explicit `UNVERIFIED` risks and the command or evidence348 needed to close each.349350Never claim a visual, native, motion, accessibility, or performance pass from a351different kind of evidence. Evidence quality is part of the design quality.