Orchestrated, holistic UX review of a screen, flow, or component. Establishes context once, auto-runs the always-relevant lenses (usability, microcopy, dark patterns), offers the context-dependent ones (accessibility, aesthetics, IA, mobile, visual foundations), and returns one prioritized report. Trigger when the user asks for a full design review, "review my UI/screen/flow", "is this good UX", "audit this design", or general design feedback — but NOT when they name a single specific lens.
Scanned 9/6/2026
Install to Claude Code
npx -y skills add Uxcel-Lab/product-skills --skill design-review --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Design Review?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/uxcel-lab-design-review)More formats (shields.io, HTML) on the badges page.
---
name: ux-design-review
description: Orchestrated, holistic UX review of a screen, flow, or component. Establishes context once, auto-runs the always-relevant lenses (usability, microcopy, dark patterns), offers the context-dependent ones (accessibility, aesthetics, IA, mobile, visual foundations), and returns one prioritized report. Trigger when the user asks for a full design review, "review my UI/screen/flow", "is this good UX", "audit this design", or general design feedback — but NOT when they name a single specific lens.
license: MIT
metadata:
author: uxcel
version: "1.0.0"
---
# Design Review (UX Orchestrator) Skill
## How this skill behaves (read first)
This is the **front door for holistic UX review**. It is the executable form of
`docs/orchestration-policy.md` — it decides *which* audit lenses run, which are offered, and
which are suppressed, then returns **one** prioritized report instead of a pile of separate
audits.
Its whole job is to avoid two opposite failures: doing a flat "looks good" review with no
framework, and firing every audit in the repo regardless of relevance (the bandwagon).
**When NOT to use this skill:** if the user named a specific lens ("run the accessibility
audit", "check this for dark patterns"), skip this orchestrator and invoke that one skill
directly. Explicit scope overrides orchestration.
---
## Step 0 — Establish the context profile (once)
Infer these from what the user gave you; ask only the one that's unknown *and* changes what
runs. Persist for the session — don't re-ask.
- **Design system in play?** Infer **yes** if they provided tokens, a styleguide, a component
library, a Figma library, themed component code, or said "our design system / our brand
guidelines." Otherwise ask once: *"Are you working from an established design system, or
designing from scratch?"* — this is the single biggest driver of what gets skipped.
- **Platform** — mobile or web (decides whether mobile-responsiveness is relevant).
- **Primary task** — what the user actually came to do (used to resolve conflicts later).
State the assumptions you're proceeding with in one line.
---
## Step 1 — Determine the traits of the work
Look at the artifact and note which are true:
- **Interactive UI?** (almost always yes)
- **Contains user-facing copy?**
- **Involves conversion / pricing / sign-up friction / opt-ins / cancellation?**
- **Multi-screen or structures content?**
- **Targets mobile?**
---
## Step 2 — Auto-run the always-relevant lenses (Tier A)
Run these whenever their trait is present. They don't depend on the visual system and almost
always earn their keep:
- **`ux-heuristics-audit`** — any interactive UI. Usability behavior, feedback, error recovery.
- **`ux-microcopy-audit`** — any user-facing copy. Clarity, tone, error/empty/CTA wording.
- **`ux-dark-patterns-audit`** — any conversion/pricing/opt-in/cancellation surface.
These run unprompted. The design-system profile does **not** suppress them.
> Each lens is named by its installable skill `name`. Invoke a lens only if that skill is installed; if one isn't, list it under "available but not run" in the report and don't block — this orchestrator degrades to whichever lenses are present.
---
## Step 3 — Offer the context-dependent lenses (Tier B)
These are relevant but should be **offered**, not fired — and several are suppressed when a
design system is in play. Apply the suppression matrix from the policy:
| Lens | Offer when | If design system in play |
|---|---|---|
| `ux-accessibility-audit` | any UI | **Narrow to usage** — custom color combos, focus order, alt text, labels; don't re-audit the token palette |
| `ux-aesthetics-audit` | any visual UI | **Suppress** — visual harmony is already defined |
| `ux-information-architecture-audit` | multi-screen / structured content | Unaffected — offer |
| `ux-mobile-responsiveness-audit` | platform = mobile | Unaffected — offer |
| `ux-color` (as lens) | palette is being defined/changed | **Suppress** — tokens own color |
| `ux-typography` (as lens) | type is being defined/changed | **Suppress** — tokens own type |
| `ux-layout-spacing-grids` (as lens) | spacing/grid is being defined/changed | **Suppress** — the scale owns spacing |
Say the suppression out loud, briefly: *"Your design system owns color, type, and spacing, so
I'm skipping those and checking how the system is applied (accessibility-in-use, IA, copy)."*
Then offer the rest: *"Want me to also run accessibility-in-use and an IA pass?"* If the user
opts in, run them; otherwise leave them listed as available.
---
## Step 4 — Merge into one prioritized report
De-duplicate findings across lenses (if heuristics and accessibility both flag the same
unlabeled control, report it once, tagged with both). Resolve any cross-lens conflicts toward
the **primary task** from Step 0. Output a single severity-ordered list:
```
## Design Review — [target]
Context: [platform · design system: yes/no · primary task]
Lenses run: [heuristics, microcopy, …] Lenses available but not run: [aesthetics, …]
### Critical
- [Issue] — what's wrong → fix. (heuristic / a11y / dark-pattern / …)
### Major
- …
### Minor
- …
### Working well ✓
- …
**Top 3 priorities:** the highest-impact fixes across all lenses.
Offered, not run: accessibility-in-use, IA — say the word and I'll add them.
```
---
## Common do/don't patterns
| ❌ Don't | ✅ Do |
|---|---|
| Fire all seven UX audits because the work "is a UI" | Auto-run Tier A; offer Tier B; suppress what the design system owns |
| Re-audit color/type/spacing when the user has a design system | Skip them out loud; check application instead |
| Return one report per audit | Merge into a single prioritized, de-duplicated list |
| Run this orchestrator when the user asked for one named lens | Defer to that lens directly (explicit scope wins) |
| Silently skip accessibility because there's a design system | Narrow it to usage checks — never drop it entirely |
---
## Relationship to the policy
This skill *is* `docs/orchestration-policy.md` in executable form. If the two ever diverge,
the policy governs; update this skill to match it.
## Source lessons (Uxcel)
This is an orchestrator — its substance lives in the lenses it routes to. See the source
lessons in each: `ux-heuristics-audit`, `ux-microcopy-audit`, `ux-dark-patterns-audit`,
`ux-accessibility-audit`, `ux-aesthetics-audit`, `ux-information-architecture-audit`,
`ux-mobile-responsiveness-audit`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!