agentleFS
mthinesmthines/agent-skills/skills/design/ux/SKILL.md

ux

Skill20 starsChanged 14 days agoMITView on GitHub

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".

The file

We split this skill into the rules it gives an agent

11 rules. About 0 are common, 5 are distinctive, and 6 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 6

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read every target file completely before reporting on it.

    line 21
  2. Distinctive:

    Read the target files, then the handlers, hooks, stores, routes, and API calls they reach — Pass 1 depends on them.

    line 37
  3. Very specific:

    Follow rules/user-path.md (why the path comes first: references/path-first.md):

    line 42
  4. Distinctive:

    Check the activation / next-step path: can the user actually do what the page tells them to do next?

    line 48
  5. Very specific:

    Follow rules/accessibility.md on every interactive element Pass 1 touched:

    line 53
  6. Very specific:

    Every claimed behaviour cites the file:line that proves it.

    line 74
  7. Very specific:

    When the code cannot prove it statically, label the finding unverified and say what would confirm it.

    line 75
  8. Very specific:

    Put a severity label (Critical / High / Medium / Low) on each finding.

    line 85
  9. Very specific:

    Never recommend a dark pattern.

    line 99
  10. Distinctive:

    Never assert behaviour you did not read in the code.

    line 100
  11. Distinctive:

    Never apply an iOS rule to Android code or the reverse.

    line 101

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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

UX

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.

Modes

RequestModeOrder of work
"review / audit this page", "ux feedback", /ux (default)auditPass 1 → Pass 2 → Verify → Report
"plan the X flow", "design the onboarding", "how should X work"planFlow plan first, then a Pass 1 + Pass 2 audit of any existing code the flow touches
"check accessibility", "is this accessible", "check contrast"a11yPass 1 steps 1–2 only (job + task), then Pass 2 in full
"improve copy", "review microcopy"copyrules/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 modedark-patternsAlways also apply rules/dark-patterns.md; any hit is Critical

Step 0 — Scope

  1. Resolve the target: the user's named files, else the changed UI files (git diff --name-only <base>...HEAD), else the current file.
  2. Detect the platform: web (<div>, CSS, Tailwind), React Native (View, Pressable, expo-router), or both. Ask when ambiguous.
  3. Read the target files, then the handlers, hooks, stores, routes, and API calls they reach — Pass 1 depends on them.

Pass 1 — The user's path (first, always)

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):

  1. Name the page's job and the primary user task in one sentence each.
  2. Walk the task end to end in the code, from entry to the next step after success.
  3. For each control on the path, read its handler and state changes, and compare what it does with what the UI promises.
  4. Cover empty, loading, stale, error, and first-run states.
  5. Check the activation / next-step path: can the user actually do what the page tells them to do next?
  6. Note what already works — the report keeps it.

Pass 2 — Accessibility and interaction depth

Follow rules/accessibility.md on every interactive element Pass 1 touched:

  • Contrast computed from the actual tokens and resolved colors, in every theme.
  • Focus management on open, close, delete, and route change.
  • Live regions: what is announced, how often, and whether it floods.
  • ARIA roles and patterns, keyboard paths, touch targets, reduced motion.

Load the extra rule files only when the code contains the trigger:

Code containsLoad
Hard-coded colors, theme tokens, dark mode, type sizesrules/visual-design.md
User-facing stringsrules/ux-writing.md
Consent, subscriptions, cancellation, checkout, sign-up, permissions, AI surfacesrules/dark-patterns.md
Charts or dashboardsSkill("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.

Verify before reporting

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.

Report

Use templates/review-report.md.

  1. Order findings by impact on the primary task — a broken step outranks a contrast miss.
  2. Put a severity label (Critical / High / Medium / Low) on each finding; severity is a label, not the document's section structure.
  3. Give every finding file:line, what the user experiences, and a concrete fix (code when the fix is code).
  4. Include What works (keep), a Plan (first three moves), and How we'll know it worked (one measurable signal per top item).
  5. Report at most ten findings; merge duplicates and drop nitpicks before cutting a real issue.
SeverityCriteria
CriticalThe user cannot finish the task, loses data, is misled, or is locked out (keyboard / screen reader); any dark pattern
HighThe task finishes but with a wrong result, confusion, or an AA failure on the path
MediumFriction or an AA failure off the main path
LowPolish

Hard rules

  1. Never recommend a dark pattern; if asked to add one, refuse, name the harm, and give the honest alternative (rules/dark-patterns.md).
  2. Never assert behaviour you did not read in the code.
  3. Never apply an iOS rule to Android code or the reverse.
  4. Match the bar to the context: a prototype gets the path and blockers, a production surface gets AA in full.

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.