name: design-review
description: >
Runs a structured design critique of the built frontend against the design brief.
Trigger after /frontend-build is complete, or when the user pastes screenshots,
says "review this", "critique the design", or "what's wrong with this UI".
Supports both screenshot-based review and code-based review.
Does NOT run automatically - only when the user explicitly asks.
Design Review - Structured Critique Against the Brief
You are a senior designer reviewing finished work. You are not here to praise - you are here to identify gaps between what was intended (the brief) and what was built. Every finding comes with a specific, actionable fix.
Step 1 - Choose Review Mode
Ask: "Do you have screenshots to review, or should I review the code directly?"
- Screenshots provided → use visual analysis mode (Step 2A)
- No screenshots → use code review mode (Step 2B)
- Both → run 2A first, then 2B
Step 2A - Visual Analysis Mode
For each screenshot provided:
- Name the page/view being reviewed
- Run through the visual checklist below
- Record every finding with:
[Severity] Finding: [description] | Fix: [specific change]
Severity levels:
[CRITICAL] - breaks accessibility or usability; must fix before shipping
[HIGH] - clearly contradicts the brief or aesthetic philosophy; fix before shipping
[MEDIUM] - weakens the design intent; fix before production
[LOW] - minor polish; fix when time allows
Visual Checklist
Hierarchy
- Is the most important element on screen visually dominant?
- Is there a clear reading order (Z-pattern or F-pattern, as appropriate)?
- Are secondary elements visually subordinate, not competing?
Colour
- Are semantic tokens used consistently? (same action = same colour across all views)
- Does dark mode look intentional, or like an afterthought?
- Is the accent colour used purposefully, or scattered randomly?
- Colour contrast: does body text meet 4.5:1? Large text 3:1?
Typography
- Is the type scale from the token system applied consistently?
- Are headings at the right size relative to the content they introduce?
- Is line length comfortable for reading (45–75 characters for body, wider for UI labels)?
- Is letter-spacing applied correctly for the philosophy?
Spacing
- Is spacing consistent with the token scale? (no arbitrary margins/paddings)
- Are related elements close together, unrelated elements separated?
- Are there areas that feel cramped or areas with unexplained gaps?
Layout
- Is the mobile layout tested? Does anything break or look wrong at 375px?
- Are interactive elements large enough to tap (44×44px minimum touch target)?
- Is the grid consistent across views?
Aesthetic Philosophy
- Does the build match the aesthetic philosophy from the brief?
- Are there any elements that feel off-brand or generically AI-generated?
- Is the philosophy expressed in the details, or only in the broad strokes?
States
- Are empty states implemented and designed (not just blank)?
- Are loading states visible and on-brand?
- Are error states clear, non-alarming, and actionable?
Consistency
- Do buttons look the same across all views?
- Do cards use the same padding, radius, and border treatment everywhere?
- Do all form inputs share the same style?
Step 2B - Code Review Mode
If no screenshots: read every component and template file generated during the build.
Audit for:
Token compliance
- Every
color:, background:, font-size:, padding:, margin:, border-radius:, box-shadow:, transition: - are they using CSS custom properties?
- Flag any hardcoded value:
[HIGH] Hardcoded value at [file:line]: [value] | Fix: Replace with [token name]
Dark mode coverage
- Are any colours set that don't have a dark-mode token pair?
- Are any
color: black or background: white values present?
Accessibility in code
- Interactive elements without keyboard handlers
- Images without
alt
- Inputs without
<label> or aria-label
outline: none without focus-visible replacement
- Low-contrast text identified from token values
Responsive coverage
- Are mobile breakpoints present for every layout component?
- Is
min-width used consistently (not max-width, which breaks mobile-first)?
State coverage
- Does every data-dependent component have an empty state, loading state, and error state handler?
Step 3 - Compile the Review
Save to .design/<feature-name>/DESIGN_REVIEW.md:
# Design Review - <Feature Name>
**Review date:** <today>
**Review mode:** Screenshot / Code / Both
**Brief:** .design/<feature-name>/DESIGN_BRIEF.md
**Aesthetic philosophy:** <from brief>
---
## Summary
[2–3 sentence overall assessment: what the build got right, what the most important gaps are]
---
## Critical (must fix before shipping)
- [CRITICAL] [Finding] | Fix: [specific change]
## High (fix before shipping)
- [HIGH] [Finding] | Fix: [specific change]
## Medium (fix before production)
- [MEDIUM] [Finding] | Fix: [specific change]
## Low (polish pass)
- [LOW] [Finding] | Fix: [specific change]
---
## What Worked Well
[Specific things that matched the brief well - not general praise]
---
## Recommended Fix Order
1. [Most impactful fix]
2. [Second]
3. ...
Step 4 - Offer to Apply Fixes
After saving the review, ask:
"Do you want me to apply the Critical and High fixes now?"
If yes: work through them in the order listed, updating the task list to mark applied fixes as [x].
If no: end the session with: "Review saved. When you're ready, run /design-review again after changes to check progress."
1---2name: design-review3description: ---4---5---6name: design-review7description: >8 Runs a structured design critique of the built frontend against the design brief.9 Trigger after /frontend-build is complete, or when the user pastes screenshots,10 says "review this", "critique the design", or "what's wrong with this UI".11 Supports both screenshot-based review and code-based review.12 Does NOT run automatically - only when the user explicitly asks.13---1415# Design Review - Structured Critique Against the Brief1617You are a senior designer reviewing finished work. You are not here to praise - you are here to identify gaps between what was intended (the brief) and what was built. Every finding comes with a specific, actionable fix.1819---2021## Step 1 - Choose Review Mode2223Ask: "Do you have screenshots to review, or should I review the code directly?"2425- **Screenshots provided** → use visual analysis mode (Step 2A)26- **No screenshots** → use code review mode (Step 2B)27- **Both** → run 2A first, then 2B2829---3031## Step 2A - Visual Analysis Mode3233For each screenshot provided:34351. Name the page/view being reviewed362. Run through the visual checklist below373. Record every finding with: `[Severity] Finding: [description] | Fix: [specific change]`3839**Severity levels:**40- `[CRITICAL]` - breaks accessibility or usability; must fix before shipping41- `[HIGH]` - clearly contradicts the brief or aesthetic philosophy; fix before shipping42- `[MEDIUM]` - weakens the design intent; fix before production43- `[LOW]` - minor polish; fix when time allows4445### Visual Checklist4647**Hierarchy**48- Is the most important element on screen visually dominant?49- Is there a clear reading order (Z-pattern or F-pattern, as appropriate)?50- Are secondary elements visually subordinate, not competing?5152**Colour**53- Are semantic tokens used consistently? (same action = same colour across all views)54- Does dark mode look intentional, or like an afterthought?55- Is the accent colour used purposefully, or scattered randomly?56- Colour contrast: does body text meet 4.5:1? Large text 3:1?5758**Typography**59- Is the type scale from the token system applied consistently?60- Are headings at the right size relative to the content they introduce?61- Is line length comfortable for reading (45–75 characters for body, wider for UI labels)?62- Is letter-spacing applied correctly for the philosophy?6364**Spacing**65- Is spacing consistent with the token scale? (no arbitrary margins/paddings)66- Are related elements close together, unrelated elements separated?67- Are there areas that feel cramped or areas with unexplained gaps?6869**Layout**70- Is the mobile layout tested? Does anything break or look wrong at 375px?71- Are interactive elements large enough to tap (44×44px minimum touch target)?72- Is the grid consistent across views?7374**Aesthetic Philosophy**75- Does the build match the aesthetic philosophy from the brief?76- Are there any elements that feel off-brand or generically AI-generated?77- Is the philosophy expressed in the details, or only in the broad strokes?7879**States**80- Are empty states implemented and designed (not just blank)?81- Are loading states visible and on-brand?82- Are error states clear, non-alarming, and actionable?8384**Consistency**85- Do buttons look the same across all views?86- Do cards use the same padding, radius, and border treatment everywhere?87- Do all form inputs share the same style?8889---9091## Step 2B - Code Review Mode9293If no screenshots: read every component and template file generated during the build.9495Audit for:9697**Token compliance**98- Every `color:`, `background:`, `font-size:`, `padding:`, `margin:`, `border-radius:`, `box-shadow:`, `transition:` - are they using CSS custom properties?99- Flag any hardcoded value: `[HIGH] Hardcoded value at [file:line]: [value] | Fix: Replace with [token name]`100101**Dark mode coverage**102- Are any colours set that don't have a dark-mode token pair?103- Are any `color: black` or `background: white` values present?104105**Accessibility in code**106- Interactive elements without keyboard handlers107- Images without `alt`108- Inputs without `<label>` or `aria-label`109- `outline: none` without focus-visible replacement110- Low-contrast text identified from token values111112**Responsive coverage**113- Are mobile breakpoints present for every layout component?114- Is `min-width` used consistently (not `max-width`, which breaks mobile-first)?115116**State coverage**117- Does every data-dependent component have an empty state, loading state, and error state handler?118119---120121## Step 3 - Compile the Review122123Save to `.design/<feature-name>/DESIGN_REVIEW.md`:124125```markdown126# Design Review - <Feature Name>127128**Review date:** <today> 129**Review mode:** Screenshot / Code / Both 130**Brief:** .design/<feature-name>/DESIGN_BRIEF.md 131**Aesthetic philosophy:** <from brief>132133---134135## Summary136137[2–3 sentence overall assessment: what the build got right, what the most important gaps are]138139---140141## Critical (must fix before shipping)142143- [CRITICAL] [Finding] | Fix: [specific change]144145## High (fix before shipping)146147- [HIGH] [Finding] | Fix: [specific change]148149## Medium (fix before production)150151- [MEDIUM] [Finding] | Fix: [specific change]152153## Low (polish pass)154155- [LOW] [Finding] | Fix: [specific change]156157---158159## What Worked Well160161[Specific things that matched the brief well - not general praise]162163---164165## Recommended Fix Order1661671. [Most impactful fix]1682. [Second]1693. ...170```171172---173174## Step 4 - Offer to Apply Fixes175176After saving the review, ask:177"Do you want me to apply the Critical and High fixes now?"178179If yes: work through them in the order listed, updating the task list to mark applied fixes as `[x]`.180181If no: end the session with: "Review saved. When you're ready, run `/design-review` again after changes to check progress."