Reviews and plans UX for web and React Native (Expo) UIs: walks the user's real path through the code, checks what each control actually does, then goes deep on accessibility (WCAG 2.2) and microcopy. Never recommends a dark pattern. Triggers on "ux review", "ux audit", "check accessibility", "is this accessible", "plan the X flow", "improve copy", "/ux".
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Audit or plan a UI the way a product reviewer does: start from what the user is trying to get done, prove what the code does, then add accessibility depth. Read every target file completely before reporting on it.
| Request | Mode | Order of work |
|---|---|---|
"review / audit this page", "ux feedback", /ux (default) | audit | Pass 1 → Pass 2 → Verify → Report |
| "plan the X flow", "design the onboarding", "how should X work" | plan | Flow plan first, then a Pass 1 + Pass 2 audit of any existing code the flow touches |
| "check accessibility", "is this accessible", "check contrast" | a11y | Pass 1 steps 1–2 only (job + task), then Pass 2 in full |
| "improve copy", "review microcopy" | copy | rules/ux-writing.md on every user-facing string, ordered by where it sits on the user's path |
| Consent, cancellation, paywall, sign-up, permission prompt, AI chat — in any mode | dark-patterns | Always also apply rules/dark-patterns.md; any hit is Critical |
git diff --name-only <base>...HEAD), else the current file.<div>, CSS, Tailwind), React Native (View, Pressable, expo-router), or both. Ask when ambiguous.Outcome-changing findings (a broken flow, a control that does the wrong thing, a dead end) come from this pass, not from the checklist.
Follow rules/user-path.md (why the path comes first: references/path-first.md):
Follow rules/accessibility.md on every interactive element Pass 1 touched:
Load the extra rule files only when the code contains the trigger:
| Code contains | Load |
|---|---|
| Hard-coded colors, theme tokens, dark mode, type sizes | rules/visual-design.md |
| User-facing strings | rules/ux-writing.md |
| Consent, subscriptions, cancellation, checkout, sign-up, permissions, AI surfaces | rules/dark-patterns.md |
| Charts or dashboards | Skill("charting") for chart choice; keep contrast, labels, and targets here |
| Style direction, brand, "make it less generic" | Skill("visual-design"); merge its output with this report |
A missing companion skill never blocks; log <name> — skipped (not installed) and continue.
Every claimed behaviour cites the file:line that proves it.
When the code cannot prove it statically, label the finding unverified and say what would confirm it.
Details and examples: rules/verify-before-reporting.md.
For a Critical or High finding about motion, timing, focus order, or hover-revealed content, Skill("screencast") may capture evidence (a recording.json whose id is the finding's file-line); append its .mp4 path as a Recording: line.
Use templates/review-report.md.
Critical / High / Medium / Low) on each finding; severity is a label, not the document's section structure.file:line, what the user experiences, and a concrete fix (code when the fix is code).| Severity | Criteria |
|---|---|
| Critical | The user cannot finish the task, loses data, is misled, or is locked out (keyboard / screen reader); any dark pattern |
| High | The task finishes but with a wrong result, confusion, or an AA failure on the path |
| Medium | Friction or an AA failure off the main path |
| Low | Polish |
rules/dark-patterns.md).mthines/agent-skills
0ec47ca
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.