$npx -y skills add fusengine/agents --skill design-reviewThe final quality gate before any design deliverable is reported done — two ISOLATED assessments (deterministic detection never in the same head as the subjective/visual read), P0-P3 findings with NO aggregate score ever, a bounded visual loop (max 2 fix cycles), and a mandatory
| 1 | ## Design Review — Final Quality Gate |
| 2 | |
| 3 | ### When |
| 4 | After `design-motion` (web/webapp) or directly after the mockup (`design-ios`/ |
| 5 | `design-android`). The last step before reporting any design deliverable done — never |
| 6 | skipped, never reported as passed if it wasn't actually run |
| 7 | (`references/review-procedure.md` Failure Handling). |
| 8 | |
| 9 | ### Input |
| 10 | - The complete rendered artifact: components/mockup with animations (if any) and |
| 11 | interactive states. |
| 12 | - `design-system.md` as the audit baseline (tokens, forbidden fonts, contrast floors). |
| 13 | - The 3 elements declared in `design-web`/`design-webapp` ("Je reproduis: {el1}, {el2}, |
| 14 | {el3}") and any declared premium pattern(s); the signature element |
| 15 | (`design-method` Step 2) instead gets a **Signature Dominance** verdict. |
| 16 | |
| 17 | ### The two assessments — ISOLATED, never in the same head |
| 18 | This is the structural rule the whole procedure hangs on: the mechanical read and the |
| 19 | subjective read must not anchor on each other. |
| 20 | |
| 21 | 1. **Deterministic detection** (`references/anti-ai-slop-audit.md` + |
| 22 | `references/pre-flight-checklist.md`) — grep/count/compute, zero taste involved. Run |
| 23 | by `design-expert` itself; there is nothing to isolate here because there is no |
| 24 | judgment call to bias. |
| 25 | 2. **Subjective visual review** — screenshots, named elicitation techniques |
| 26 | (`references/elicitation-visual.md`), Nielsen heuristics |
| 27 | (`references/ux-nielsen.md`), UX laws (`references/ux-laws.md`). This pass is run by |
| 28 | `design-expert`, so it is **not yet independent** — independence is delivered by the |
| 29 | mandatory challenger gate below, which judges blind, fresh-context, off the rendered |
| 30 | PNG only, never this procedure's own reasoning. Do not treat the elicitation-technique |
| 31 | pass alone as "isolated" — it isn't; the challenger is the isolation. |
| 32 | |
| 33 | Never collapse these into one pass "to save a round" — that is exactly how the |
| 34 | cream/serif/terracotta cluster shipped through this audit once already (documented in |
| 35 | `anti-ai-slop-audit.md` Gate Semantics). |
| 36 | |
| 37 | ### Part 1 — Deterministic Checks (mechanical, run first) |
| 38 | Full 15-item list is canonical in `references/review-procedure.md` Part 1 — contrast |
| 39 | (4.5:1 text / 3:1 UI, light+dark), forbidden fonts, OKLCH-only color format, em-dash |
| 40 | crutch (2+ occurrences), token adherence, the anti-AI-slop audit |
| 41 | (`references/anti-ai-slop-audit.md`, 14 detectors — clusters 9-11 are |
| 42 | FLAG-with-justification, not a block, if declared per `design-method` Step 2), the |
| 43 | mechanical pre-flight (`references/pre-flight-checklist.md`), WCAG beyond contrast |
| 44 | (`references/ux-wcag.md`), cross-component consistency (`references/consistency-checks.md`), |
| 45 | mobile nav functionality, doc↔code animation diff, integrity (no fabricated numbers/false |
| 46 | urgency), no-JS baseline, Type-Scale/Body-Size/Measure/Focal-Block floors, and |
| 47 | Dark-Elevation Direction. Any Critical/Major finding here is fixed before Part 2 runs. |
| 48 | |
| 49 | ### Part 2 — Bounded Visual Review |
| 50 | Serve → screenshot per section + one full-page capture, light AND dark via |
| 51 | `colorScheme` → cross-viewport (mobile/tablet/desktop) → compare declared elements |
| 52 | (binary present/absent, no partial credit; signature element gets Signature Dominance) → |
| 53 | localized critique only (name the exact section/element, never "improve the style") → |
| 54 | motion verdict if any animation exists (`references/motion-verdict.md`, Before/After/Why |
| 55 | table + tiered impact + explicit Block/Approve) → cite at least **two** named techniques |
| 56 | from `references/elicitation-visual.md` (Squint / Subtraction / Competitor Line-up / |
| 57 | 5-Second / Persona) → fix gaps. Full step-by-step: `references/review-procedure.md` Part 2. |
| 58 | |
| 59 | **Bounded loop — maximum 2 fix cycles.** The loop exits PASS only once the |
| 60 | register-applicable positive floors are actually **met** (not merely "0 flags"). Issues |
| 61 | (or an unmet floor) remaining after cycle 2 **stop the loop** and get reported, not |
| 62 | chased further. A plateau — cycle 2 repeating cycle 1's finding — stops immediately, even |
| 63 | at cycle 1 of 2. This is a hard cap, not a target to exceed when "almost there." |
| 64 | |
| 65 | ### Findings — P0-P3, NO aggregate score, ever |
| 66 | Tag every finding with severity, never sum or average them into a total: |
| 67 | |
| 68 | | Tier | Meaning | |
| 69 | |---|---| |
| 70 | | **P0 Blocking** | Prevents task |