agentleFS
mgiovanimgiovani/cc-arsenal/skills/review-design/SKILL.md

review-design

Skill8 starsChanged 50 days agoMITView on GitHub

Performs a comprehensive UX/UI/design quality audit of a live URL or a

  • Installs packages

10 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use review-pr.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • DockerSkill

    review-pr

    Review one or more incoming Docker documentation pull requests as a maintainer. Independently validate technical claims, assess editorial fit and information architecture, choose a verdict, and draft exact inline or PR-wide feedback behind a confirmation gate. Use for requests such as "review PR 123", "is this PR correct?", "does this information belong here?", "validate this PR", or "help review backlog PRs". Do not use to maintain or fix a PR you own; use maintain-pr for that.

    Also in 3 projects that use this

The file

Show its rules and text

We split this skill into the rules it gives an agent

15 rules. 0 are common, 12 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 9 edited versions we read keep these.

  • 12

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    When both a URL and a codebase target are supplied, it runs both and emits two separate reports.

    line 35
  2. Distinctive:

    No invented standards: only reference real WCAG SCs, MD3 specs, and HIG guidance

    line 63
  3. Very specific:

    Use an Explore agent (model: haiku) to detect the design system and tooling:

    line 96
  4. Very specific:

    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 …

    line 117
  5. Distinctive:

    Use TodoWrite to track progress across the 8 dimensions plus capture, consolidation, and report generation.

    line 121
  6. Distinctive:

    Read the relevant criteria reference for its dimensions (criteria-foundations.md or criteria-interaction.md)

    line 151
  7. Distinctive:

    After all agents complete:

    line 160
  8. Distinctive:

    Before presenting, verify every finding has:

    line 187
  9. Distinctive:

    No duplicates, no placeholder text ("TODO", "[example]", "lorem")

    line 193
  10. Distinctive:

    If omitted, all 8 dimensions are audited.

    line 221
  11. Distinctive:

    Does not modify any code or design files

    line 240
  12. Distinctive:

    Does not auto-fix issues or commit changes

    line 241
  13. Distinctive:

    Does not run a full automated a11y scanner (axe/pa11y), it reasons from evidence

    line 242
  14. Very specific:

    Does not evaluate native mobile (SwiftUI/Compose/Flutter) static patterns (web-first.

    line 243
  15. Distinctive:

    Does not guarantee 100% issue detection

    line 244

“Common” is measured: kept by at least 6 in 10 of the 9 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Design Review

Comprehensive UX/UI/design quality analysis across 8 audit dimensions, each mapped to authoritative standards. This skill only analyzes: 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-browser CLI (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)

#DimensionKey Standards
1Visual Hierarchy & LayoutNN/g, Refactoring UI, Laws of UX, MD3 8pt grid
2TypographyButterick, Refactoring UI, MD3, Apple HIG
3Color & Theming (incl. Dark Mode)MD3 color roles, 60-30-10, WCAG 1.4.1/1.4.3
4Depth & Elevation (Shadows)MD3 elevation, Refactoring UI, Josh Comeau
5Components & Affordance (Buttons/Icons)MD3 buttons/icons, Apple HIG, NN/g
6Feedback & StatesNN/g visibility-of-status, MD3 state layers
7Motion & MicrointeractionsNN/g animation, Laws of UX (Doherty), MD3 motion
8Accessibility (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

Design reviews must be based on actual evidence, never assumptions. This is critical:

  1. Observe before claiming: never report an issue without reading the code (static) or viewing the screenshot/snapshot (live)
  2. Evidence-based findings: every finding cites a file path + line number (static) OR a screenshot region + DOM ref (live)
  3. Cite a criterion: every finding maps to a criterion ID and an authoritative citation (WCAG SC, MD3 spec, etc.)
  4. 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, so compute the contrast ratio from the two hex/rgb values found in the CSS/tokens with the sibling product-design-tokens skill's scripts/contrast.py --pair FG BG (otherwise a python3 one-liner of the WCAG relative-luminance formula, given in references/agent-prompts.md); never eyeball a ratio
  5. Applicable-only scoring: only score dimensions that apply to the target; never penalize what cannot be observed
  6. State what was NOT checked: every report ends with an explicit coverage gap section
  7. 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:

AgentCovers
Agent 1Visual Hierarchy + Layout & Spacing (Dimension 1)
Agent 2Typography (Dimension 2)
Agent 3Color + Dark Mode (Dimension 3)
Agent 4Depth/Shadows + Components/Affordance (Dimensions 4, 5)
Agent 5Feedback & States + Motion/Microinteractions (Dimensions 6, 7)
Agent 6Accessibility, WCAG 2.2 AA (Dimension 8, cross-cutting)

Each agent must:

  1. Read the relevant criteria reference for its dimensions (criteria-foundations.md or criteria-interaction.md)
  2. 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
  3. Record the measured value (contrast ratio, px, ms, dp) as evidence
  4. Map each finding to a criterion ID + citation (WCAG SC / MD3 / HIG / NN/g)
  5. Classify severity (Critical/High/Medium/Low)
  6. Provide a concrete fix (2-3 approaches with the target value)

Phase 4: Consolidate & Analyze Findings

After all agents complete:

  1. Collect findings from the 6 agents.
  2. Deduplicate across agents (same element/criterion = one finding).
  3. Prioritize by severity, using this table:

    SeverityCriteria
    CriticalWCAG AA failure blocking use (contrast < 3:1 on text, no keyboard focus, missing form labels), unusable touch targets
    HighWCAG AA contrast failures (< 4.5:1 body text), missing focus-visible, no reduced-motion support, broken hierarchy
    MediumOff-grid spacing, un-tinted shadows, weak typographic scale, missing hover/active states
    LowPolish: minor inconsistency, sub-optimal line length, icon-label spacing
  4. Map to dimension: group findings under the 8 dimensions.
  5. Applicable-only score: for each dimension that applies, score = passed criteria / applicable criteria. Skip dimensions that cannot be observed and say so.
  6. 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:

  1. Evidence: file:line (static) or screenshot region + DOM ref (live)
  2. A measured value where one applies (ratio / px / ms / dp)
  3. A criterion ID + authoritative citation
  4. A concrete fix with the target value
  5. A justified severity
  6. No duplicates, no placeholder text ("TODO", "[example]", "lorem")
  7. An explicit "What Was NOT Checked" section
  8. 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

LimitationDetail
Heuristic + measuredCombines tool measurements with expert heuristics; some judgment calls remain
Live modeNeeds a reachable URL and the agent-browser CLI installed
Static modePattern-based; dynamic/runtime states may be missed
Screenshot analysisDepends on render fidelity at the captured viewport
Expert reviewRecommended for high-stakes or regulated interfaces

Standards References

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.