Review design
Performs a comprehensive UX/UI/design quality audit of a live URL or a static codebase, mapped to authoritative standards (WCAG 2.2 AA, Material Design 3, Apple HIG, Nielsen Norman Group, Refactoring UI, Laws of UX). Use when a user wants to review design quality, audit UX/UI, or check visual hierarchy, typography, color, dark mode, shadows/elevation, buttons/icons, feedback states, motion, or accessibility contrast. Triggers on "design review", "UX audit", "accessibility audit", "check contrast", "review this against WCAG". Analysis only — cites evidence and a criterion for every finding, never modifies code. Not for correctness, security, dependency, or performance review (use review-code, review-security, review-deps, or review-perf), nor the full multi-agent PR review team (use team-review). Not for pixel-diff visual regression testing against a baseline (use vrt-check).From its SKILL.md
npx -y skills add mgiovani/cc-arsenal --skill review-designAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
12.9 KB, ~2.9k tokens by cl100k_base, as published. Nobody here has run it
Design Review
Comprehensive UX/UI/design quality analysis across 8 audit dimensions, each mapped to authoritative standards. This skill performs analysis only - it identifies design issues, explains findings against a cited criterion, and suggests fix approaches without making code changes.
It supports two input modes:
- Live mode — audits a running URL via the
agent-browserCLI (screenshots + DOM/accessibility snapshot). - Static mode — audits a codebase (CSS/components/design tokens) via Grep.
When both a URL and a codebase target are supplied, it runs both and emits two separate reports.
Audit Taxonomy (8 Dimensions)
| # | Dimension | Key Standards |
|---|---|---|
| 1 | Visual Hierarchy & Layout | NN/g, Refactoring UI, Laws of UX, MD3 8pt grid |
| 2 | Typography | Butterick, Refactoring UI, MD3, Apple HIG |
| 3 | Color & Theming (incl. Dark Mode) | MD3 color roles, 60-30-10, WCAG 1.4.1/1.4.3 |
| 4 | Depth & Elevation (Shadows) | MD3 elevation, Refactoring UI, Josh Comeau |
| 5 | Components & Affordance (Buttons/Icons) | MD3 buttons/icons, Apple HIG, NN/g |
| 6 | Feedback & States | NN/g visibility-of-status, MD3 state layers |
| 7 | Motion & Microinteractions | NN/g animation, Laws of UX (Doherty), MD3 motion |
| 8 | Accessibility (cross-cutting) | WCAG 2.2 AA |
Measurable criteria for dimensions 1–4 are in references/criteria-foundations.md; dimensions 5–8 are in references/criteria-interaction.md.
Anti-Hallucination Guidelines
CRITICAL: Design reviews must be based on ACTUAL evidence, never assumptions:
- Observe before claiming - Never report an issue without reading the code (static) or viewing the screenshot/snapshot (live)
- Evidence-based findings - Every finding cites a file path + line number (static) OR a screenshot region + DOM ref (live)
- Cite a criterion - Every finding maps to a criterion ID and an authoritative citation (WCAG SC, MD3 spec, etc.)
- Measure, don't estimate - Report actual values (contrast ratio, px size, ms duration), not guesses. In static mode there is no rendered page to sample from — compute the WCAG relative-luminance contrast ratio directly from the two hex/rgb values found in the CSS/tokens (formula in references/agent-prompts.md); never eyeball a ratio
- Applicable-only scoring - Only score dimensions that apply to the target; never penalize what cannot be observed
- State what was NOT checked - Every report ends with an explicit coverage gap section
- No invented standards - Only reference real WCAG SCs, MD3 specs, and HIG guidance
Review Workflow
Phase 0: Parse Arguments & Resolve Mode
Parse arguments to determine target and mode:
Arguments:
- <url>: A live URL to audit (http/https) → live mode
- <pr_number>: Files changed in a PR (e.g., "123", "#123") → static mode
- <commit_sha>: Files changed in a commit (e.g., "abc123") → static mode
- "--all" or a path or no args: Entire codebase → static mode
- "--mode [live|static|both]": Force a mode
- "--scope [dimension]": Focus on one dimension (e.g., typography, color, accessibility)
Mode resolution:
- A URL argument (or
--mode live) → live audit. - A PR / commit /
--all/ path (or--mode static) → static audit. - Both a URL and a codebase target present (or
--mode both) → run both, emit two reports.
For static PR/commit scope, get changed files:
# For PR
gh pr view <pr_number> --json files --jq '.files[].path'
# For commit
git diff-tree --no-commit-id --name-only -r <commit_sha>
Phase 1: Discovery
Use an Explore agent (model: haiku) to detect the design system and tooling:
Use Task tool with Explore agent (model: haiku):
- prompt: "Discover the project's design system and front-end stack:
1. Detect CSS approach: Tailwind, CSS Modules, styled-components, vanilla CSS, Sass
2. Detect component/design system: Material UI, Chakra, Radix, shadcn/ui, Ant Design, custom
3. Find design tokens: tailwind.config.*, theme files, CSS custom properties (:root { --* }), tokens.json
4. Find existing a11y tooling: eslint-plugin-jsx-a11y, axe, pa11y, Storybook a11y addon
5. Detect dark-mode support: prefers-color-scheme, .dark class, data-theme
6. List the key UI directories (components/, styles/, app/, pages/)
Return: a stack + design-system summary with the token source of truth."
- subagent_type: "Explore"
Without a Task tool, run this discovery yourself inline using the same 6 steps before proceeding.
For live mode, confirm the URL is reachable and agent-browser is installed:
agent-browser --version || echo "agent-browser not installed (npm install -g agent-browser)"
If agent-browser is missing, tell the user how to install it (npm install -g agent-browser && agent-browser install) and offer to fall back to static mode.
Phase 2: Initialize Progress Tracking
Use TodoWrite to track progress across the 8 dimensions plus capture, consolidation, and report generation. One todo per dimension. Without TodoWrite, narrate phase/dimension transitions in your responses instead.
Phase 3: Capture, then Spawn Parallel Audit Agents
Live mode — capture first (the agents analyze these artifacts):
mkdir -p /tmp/review-design
agent-browser open <url>
agent-browser snapshot -i > /tmp/review-design/snapshot.txt # interactive elements + a11y tree
agent-browser screenshot /tmp/review-design/page.png --full # full-page screenshot
# Optional, for inspected elements:
# agent-browser get styles @<ref> # computed CSS
# agent-browser get box @<ref> # bounding box (for touch-target size)
Capture additional viewports/pages if the user names them. Always agent-browser close when done.
Then spawn 6 parallel Explore agents (model: sonnet) covering the 8 dimensions. For the full per-agent prompts (live screenshot/snapshot analysis AND static grep patterns), see references/agent-prompts.md. Without a Task tool, run the 6 dimension analyses sequentially inline yourself, one after another, using the same per-agent prompts and criteria references.
Agent assignments:
- Agent 1: Visual Hierarchy + Layout & Spacing (Dimension 1)
- Agent 2: Typography (Dimension 2)
- Agent 3: Color + Dark Mode (Dimension 3)
- Agent 4: Depth/Shadows + Components/Affordance (Dimensions 4, 5)
- Agent 5: Feedback & States + Motion/Microinteractions (Dimensions 6, 7)
- Agent 6: Accessibility — WCAG 2.2 AA (Dimension 8, cross-cutting)
Each agent must:
- Read the relevant criteria reference for its dimensions (criteria-foundations.md or criteria-interaction.md)
- Live: visually analyze the screenshot and cross-reference the DOM/a11y snapshot Static: Grep CSS/components/tokens for measurable failures, then Read each match to verify
- Record the measured value (contrast ratio, px, ms, dp) as evidence
- Map each finding to a criterion ID + citation (WCAG SC / MD3 / HIG / NN/g)
- Classify severity (Critical/High/Medium/Low)
- Provide a concrete fix (2-3 approaches with the target value)
Phase 4: Consolidate & Analyze Findings
After all agents complete:
- Collect findings from the 6 agents
- Deduplicate across agents (same element/criterion = one finding)
- Prioritize by severity:
- Critical: WCAG AA failure blocking use (contrast < 3:1 on text, no keyboard focus, missing form labels), unusable touch targets
- High: WCAG AA contrast failures (< 4.5:1 body text), missing focus-visible, no reduced-motion support, broken hierarchy
- Medium: Off-grid spacing, un-tinted shadows, weak typographic scale, missing hover/active states
- Low: Polish — minor inconsistency, sub-optimal line length, icon-label spacing
- Map to dimension: Group findings under the 8 dimensions
- Applicable-only score: For each dimension that applies, score = passed criteria / applicable criteria. Skip dimensions that cannot be observed and say so.
- Statistics: total findings, by severity, by dimension; elements/files reviewed vs. those with issues
Phase 5: Generate Report(s)
Generate a markdown report per the template in references/report-template.md.
- Live audit →
design-report-live.md - Static audit →
design-report-static.md - Both modes → produce both files.
Phase 6: Verification & Quality Gate
Before presenting, verify every finding has:
- Evidence —
file:line(static) or screenshot region + DOM ref (live) - A measured value where one applies (ratio / px / ms / dp)
- A criterion ID + authoritative citation
- A concrete fix with the target value
- A justified severity
- No duplicates, no placeholder text ("TODO", "[example]", "lorem")
- An explicit "What Was NOT Checked" section
- Applicable-only scoring (no penalty for unobservable dimensions)
Usage
# Live audit of a running site
review-design --url https://example.com
review-design https://example.com
# Static audit of the codebase
review-design --all --mode static
review-design 123 # PR #123 changed files
review-design abc123def # a commit
# Both: live + static (two reports)
review-design https://staging.example.com --all --mode both
# Focus a single dimension
review-design --url https://example.com --scope accessibility
review-design --all --scope typography
Scope Options
--scope focuses the audit on one dimension: hierarchy, layout, typography,
color, dark-mode, depth, components, feedback, motion, accessibility.
If omitted, all 8 dimensions are audited.
Additional Resources
- references/criteria-foundations.md — measurable criteria for dimensions 1–4 (hierarchy, layout, typography, color, depth)
- references/criteria-interaction.md — measurable criteria for dimensions 5–8 (components, feedback, motion, accessibility)
- references/agent-prompts.md — per-agent prompts (live + static) and grep patterns
- references/report-template.md — live and static report templates
What This Skill Does
- Audits UX/UI/design quality across 8 standards-mapped dimensions
- Works against a live URL (agent-browser) or a static codebase (grep)
- Measures real values (contrast, sizes, durations) as evidence
- Maps every finding to a criterion ID + authoritative citation
- Produces severity-ranked, fix-oriented report(s)
What This Skill Does NOT Do
- Does not modify any code or design files
- Does not auto-fix issues or commit changes
- Does not run a full automated a11y scanner (axe/pa11y) — it reasons from evidence
- Does not evaluate native mobile (SwiftUI/Compose/Flutter) static patterns (web-first; future extension)
- Does not guarantee 100% issue detection
Limitations
- Heuristic + measured: combines tool measurements with expert heuristics; some judgment calls remain
- Live mode needs a reachable URL and the
agent-browserCLI installed - Static mode is pattern-based: dynamic/runtime states may be missed
- Screenshot analysis depends on render fidelity at the captured viewport
- Expert review recommended for high-stakes or regulated interfaces
Standards References
What ships with it: 10 files
41.3 KB alongside SKILL.md
evals/
references/
- agent-prompts.md11.7 KB
- criteria-foundations.md8.1 KB
- criteria-interaction.md7.8 KB
- report-template.md5.7 KB