Ux audit skill
Heuristic UX audits from screenshots for Claude Code & Codex with severity-rated findings, heuristic citations, annotated screenshots, structured reports.
npx -y skills add EliaAlberti/ux-audit-skillAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 15 stars15 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.
What its author says it does
Copied from the file, not written here
Run a heuristic UX audit of a customer journey from screenshots. Use when the user asks for a UX audit, heuristic evaluation, usability review, design teardown, or expert review of screens, mockups, or a flow, whether your own product or a competitor's. Evaluates against named frameworks (Nielsen, Shneiderman, Gerhardt-Powals, Bastien & Scapin, Hick/Fitts/Miller/Jakob/Peak-End, Fogg, Cialdini, Gestalt, Norman, Tognazzini, WCAG 2.1, content design heuristics) and produces severity-rated findings with heuristic citations, annotated screenshots, and a structured markdown report. Do not use for generating new designs or for code-level accessibility scans of a live DOM.
SKILL.md
16.8 KB, as published. Nobody here has run it
UX Audit Skill
Evaluate a customer journey (screenshots) against established UX heuristic frameworks. Output: severity-rated findings with explicit heuristic citations, recommended improvements, annotated screenshots, and a structured report. Findings cite specific named heuristics, never generic design feedback.
Works in any agent that supports the Agent Skills format (Claude Code, Codex, and compatible tools).
Workflow
Step 1: Collect screenshots
- Accept a folder path, individual image paths, or attached images
- If a folder: list image files (png/jpg/jpeg/webp), sort by filename, propose this as the journey order
- If no screenshots provided: ask for them before anything else
Step 2: Intake: ask, then STOP and wait for answers
Skip any question already answered by the user's request. Otherwise ask in one message:
- What is the product, and what is the user trying to achieve in this journey? (e.g. "E-commerce checkout, buy one item as a guest")
- Platform? iOS / Android / mobile web / desktop web (affects target sizes and convention baselines)
- User type? First-time / returning / mixed
- Depth? Full sweep (all frameworks) or focused (name 2 to 3 frameworks or concerns)
- Confirm journey order of the screens (state your inferred order; ask only if uncertain)
Do not begin the audit until the goal is known. Severity ratings are anchored to it.
Step 3: View every screenshot
- Open each image and study it fully
- Per screen, note: step name, primary action, visible states, anything illegible (never guess unreadable text, mark it as illegible)
Step 4: Evaluate: four passes
Pass A: Goal walk. Walk the journey as the stated user pursuing the stated goal. Where does friction, doubt, or a dead end appear? This anchors severity: a violation that doesn't touch the goal is rarely above sev 2.
Pass B: Framework sweep. Run each screen against the Framework Reference below. Every finding cites its source: "Nielsen #1", "WCAG 1.4.3", "Fitts's Law", "B&S: Guidance/Feedback".
Pass C: Named checks. Run the Named Recurring Checks table below. Tag findings with check IDs so the same issue is flagged identically across audits.
Pass D: Journey level. Cross-screen consistency (Nielsen #4, WCAG 3.2.3/3.2.4, PATTERN-DRIFT), progress visibility, Miller's Law memory load across steps, Peak-End Rule (worst moment + final screen), and a Fogg B=MAP diagnosis of the journey's key conversion action.
Step 5: Calibrate findings
- Apply the Severity Scale and Evidence Rules below
- Merge duplicates: same issue on several screens = one journey-level finding listing occurrences
- Assign IDs
F-01, F-02…ordered by severity (highest first); positives getP-01… - Include 2 to 5 positive findings: what works and should be kept
- Quality bar: prefer 8 strong, evidenced findings over 25 padded ones. A framework that surfaces nothing gets no findings; do not stretch for coverage
Step 6: Annotate screenshots
- Build
annotations.json(format documented in the script header): for each finding, estimate the issue region as fractions (0 to 1) of image width/height. Use generous boxes around regions, not points; coordinate estimates are approximate - Run
python3 <this-skill-folder>/scripts/annotate.py annotations.json: the script is bundled in this skill'sscripts/directory - Verify: view each annotated image. If a marker clearly sits on the wrong element, fix coordinates and re-run (once)
- Requires Pillow (
python3 -c "import PIL"); if missing,pip3 install --user pillow. If installation is impossible, fall back to anannotated.htmlpage with absolutely-positioned numbered pins over the screenshots (same colour scale)
Step 7: Write the report
- Output folder:
./ux-audit-{YYYY-MM-DD}-{slug}/in the working directory (or where the user specifies). Copy originals and annotated images intoassets/ - Write
report.mdusing the Report Template below - Close with: top 3 fixes in chat, and offer to draft tickets/issues from sev 3 to 4 findings
Severity Scale (Nielsen 0 to 4)
Rate by impact on the stated goal × how many users hit it × whether they hit it repeatedly.
| Rating | Label | Meaning |
|---|---|---|
| 4 | Critical | Blocks goal completion, causes loss/harm, or legal/regulatory exposure; fix before release |
| 3 | Major | Significant friction; many users struggle, some abandon; high priority |
| 2 | Minor | Noticeable; users recover quickly; schedule it |
| 1 | Cosmetic | Polish; fix when convenient |
| ✓ | Positive | Works well; keep and replicate |
Evidence Rules (non-negotiable)
- Every finding must point at something visible in a named screenshot. No inferred behaviour stated as fact
- Interaction qualities (animation, focus order, latency, keyboard, screen reader) go in "Not assessable from static screens", never guessed
- Illegible or ambiguous content: say so or ask, never invent text
- Sev 3 to 4 findings require an explicit heuristic citation AND visible evidence
- Borderline contrast calls: flag as "verify with a contrast checker" rather than asserting a ratio
Framework Reference (evaluate against these: cite by name + number)
A. Nielsen's 10 Usability Heuristics: cite "Nielsen #N"
- Visibility of system status: timely feedback; progress, confirmations, current state always visible
- Match system ↔ real world: users' language, familiar concepts, logical order; no internal jargon
- User control & freedom: undo, cancel, clear exits; no forced paths
- Consistency & standards: internal consistency + platform conventions
- Error prevention: constraints, confirmation for destructive/costly actions, good defaults
- Recognition over recall: options visible; nothing memorised across screens
- Flexibility & efficiency: accelerators for frequent users; sensible shortcuts
- Aesthetic & minimalist design: no irrelevant info competing with relevant
- Error recovery: plain-language errors: what happened, why, how to fix
- Help & documentation: contextual, task-focused, findable when needed
B. Shneiderman's 8 Golden Rules: cite "Shneiderman #N"
1 Consistency · 2 Universal usability (novice AND expert paths) · 3 Informative feedback · 4 Dialogs yield closure (clear beginning-middle-end) · 5 Error prevention · 6 Easy reversal · 7 User keeps control · 8 Reduce short-term memory load
C. Gerhardt-Powals' Cognitive Engineering Principles: cite "G-P #N"
1 Automate unwanted workload · 2 Reduce uncertainty · 3 Fuse related data into fewer units · 4 Present new info within familiar frames · 5 Names conceptually related to function · 6 Consistent, meaningful grouping · 7 Don't make users compute (show derived values) · 8 Only needed info on screen at a given time · 9 Multiple coding of data (text + icon + position) · 10 Judicious redundancy
D. Bastien & Scapin Ergonomic Criteria: cite "B&S: {criterion}"
Guidance (prompting, grouping/distinction, immediate feedback, legibility) · Workload (brevity, information density) · Explicit control (explicit user actions, user in control) · Adaptability (flexibility, experience levels) · Error management (protection, message quality, correction) · Consistency · Significance of codes (labels/icons mean what they say) · Compatibility (with the user's task and world)
E. Behavioural Laws: cite by name
- Hick's Law: decision time grows with number/complexity of choices. Count choices at each decision point; flag >~7 undifferentiated options with no grouping, default, or progressive disclosure
- Fitts's Law: acquisition time = f(distance, size). Primary actions large and thumb-reachable on mobile; related actions adjacent; flag tiny or edge-crowded targets
- Miller's Law: working memory ≈ 7±2 chunks. Anything users must hold across steps (codes, prices, comparisons) must stay visible or be chunked
- Jakob's Law: users expect your product to work like everything else they use. Deviations from convention must earn their cost
- Peak-End Rule: journeys are remembered by their worst/best moment and their ending. Audit the emotional low point (errors, payment, waits) and the final screen (confirmation = closure + clear next step)
F. Fogg Behavior Model (B = MAP): for the journey's key action
Behaviour happens when Motivation × Ability × Prompt converge at the same moment.
- Prompt: is the trigger for the next step visible and timely on each screen?
- Ability: which simplicity factor does the design tax: time, money, physical effort, mental effort, social acceptability, non-routine?
- Motivation: does copy/design sustain it (value reminder, progress, reassurance) at high-friction moments? Diagnose drop-off risk per screen: missing prompt / too hard / demotivating.
G. Cialdini's Principles of Influence: cite "Cialdini: {principle}"
Reciprocity · Commitment & consistency · Social proof · Authority · Liking · Scarcity · Unity
- Flag missing trust signals at decision points (reviews, guarantees, security cues)
- Flag misuse as DARK-PATTERN: fabricated scarcity/urgency, confirmshaming, sneaking, sev 3+ (trust and regulatory risk)
H. Gestalt Principles: cite "Gestalt: {principle}"
Proximity · Similarity · Closure · Continuity · Common region · Figure/ground · Common fate Core test: does visual grouping match functional grouping? Unrelated items accidentally grouped, or related items separated?
I. Norman's Design Principles: cite "Norman: {principle}"
Affordances · Signifiers (is interactivity signposted?) · Mapping (controls ↔ effects) · Feedback · Constraints · Conceptual model (does the UI teach a coherent model?) · Discoverability
J. Tognazzini's First Principles (selected): cite "Tog: {principle}"
Anticipation (bring what's needed to the user) · Autonomy · Colour never sole carrier of meaning · Smart defaults, easily replaced · Discoverability · Efficiency of the user · Explorable interfaces (safe to wander, easy to back out) · Latency reduction (perceived speed: skeletons, feedback) · Protect users' work (never lose input) · Readability (real-world conditions) · Visible navigation (where am I, where can I go)
K. WCAG 2.1: static-image-checkable subset, cite "WCAG {SC}"
- 1.4.1 Use of Colour: information/state never conveyed by colour alone
- 1.4.3 Contrast (AA): text ≥4.5:1 (≥3:1 for large text); flag borderline cases for tooling verification
- 1.4.11 Non-text Contrast: UI components and meaningful graphics ≥3:1
- 1.3.3 Sensory Characteristics: instructions don't rely on shape/position/colour alone
- 2.4.6 Headings & Labels: descriptive
- 2.5.5 Target Size: ≥44pt (Apple HIG) / 48dp (Material) / 24px absolute floor; spacing between adjacent targets
- 3.2.3 / 3.2.4 Consistency: navigation and components consistent across screens
- 3.3.1 / 3.3.2 / 3.3.3 Errors & Labels: errors identified in text, fields labelled (not placeholder-only), fixes suggested Not assessable from static screens (list in report, never guess): focus visibility, keyboard navigation, screen-reader semantics/alt text, reflow/zoom, motion, timing
L. Content Design Heuristics: cite "Content #N" (canonical set for this skill)
1 Front-load: key info and keywords first in headings, labels, paragraphs 2 Plain language: short sentences, common words, reading age ~9 to 11 3 Verb-first action labels: buttons say what they do ("Save changes", never bare "OK"/"Submit" ambiguity) 4 Scannable: chunked, meaningful headings, lists over walls of text 5 One term per concept: nothing renamed mid-journey 6 Errors that help: what happened + why + exactly how to fix 7 Honest microcopy: real expectations (timings, costs, consequences); no weasel reassurance 8 Tone fits the moment: errors/money/personal data = calm and clear, not playful 9 Every word earns its place: remove filler and redundant instruction 10 Inclusive & localisable: no idioms or cultural assumptions; survives translation
Named Recurring Checks (stable IDs: same issue always flagged the same way)
| ID | Check |
|---|---|
| CTA-AMBIGUITY | Primary action unclear, competing CTAs of equal weight, next step not obvious |
| DEAD-END | Screen with no forward action or escape route (incl. error/empty states) |
| FAKE-AFFORDANCE | Looks interactive but isn't / interactive but doesn't look it |
| CONTRAST-FAIL | Text or UI element visibly below WCAG ratios |
| TOUCH-TARGET | Targets too small or too crowded for thumb use |
| JARGON-LEAK | Internal, system, or legal language exposed to end users |
| PROGRESS-BLIND | Multi-step flow without position indicator or saved state |
| ERROR-VAGUE | Error state without cause + remedy |
| FORM-FRICTION | Unnecessary fields, unclear formats, placeholder-as-label, no inline validation |
| OVERLOAD | Everything at once; no hierarchy or progressive disclosure |
| PATTERN-DRIFT | Same component looks or behaves differently across screens |
| TRUST-GAP | High-stakes moment (money, personal data) without reassurance/security signals |
| DARK-PATTERN | False urgency, confirmshaming, sneaking, roach motel |
| STATE-GAP | Missing empty/loading/error/success state in the flow evidence |
| HIERARCHY-FLAT | No clear visual priority; everything shouts |
| RECALL-TAX | User must remember info from a previous screen to proceed |
Extend this table over time: when the same unnamed issue appears in two audits, give it an ID here.
Report Template (report.md)
---
type: ux-audit
date: {YYYY-MM-DD}
product: {Product}
journey: {Journey name}
platform: {ios|android|mobile-web|desktop-web}
screens: {n}
findings-critical: {n}
findings-major: {n}
findings-minor: {n}
findings-cosmetic: {n}
---
# UX Audit, {Product}: {Journey}
## Executive Summary
{3 to 5 sentences: overall assessment vs the goal, biggest risks, top 3 fixes. Written for a stakeholder who reads nothing else.}
## Scope & Method
- **Goal evaluated:** {user goal}
- **User type / platform:** {…}
- **Screens:** | Step | File | Screen |
- **Frameworks applied:** Nielsen, Shneiderman, Gerhardt-Powals, Bastien & Scapin, behavioural laws, Fogg, Cialdini, Gestalt, Norman, Tognazzini, WCAG 2.1 (static subset), Content heuristics
- **Not assessable from static screens:** focus states, keyboard/screen-reader behaviour, motion, latency, {…}
## Findings Overview
| ID | Sev | Screen | Check | Finding | Heuristics |
|----|-----|--------|-------|---------|------------|
{sorted by severity, descending}
## Screen-by-Screen
### Step {n}: {Screen name} (`{file}`)

#### [S{sev}] {F-ID} · {Title}
- **Check:** {CHECK-ID} · **Heuristics:** {citations}
- **Evidence:** {what is visible, where}
- **Impact on goal:** {why this threatens the stated goal}
- **Recommendation:** {specific, actionable} · **Effort:** S/M/L
## Journey-Level Findings
{cross-screen consistency, progress, memory load, Peak-End, Fogg B=MAP diagnosis of the key action}
## What Works (keep)
- [P-01] {strength + heuristic it satisfies}
## Prioritised Recommendations
1. **Quick wins** (sev 3 to 4, effort S): {…}
2. **Planned** (sev 3, effort M/L): {…}
3. **Polish** (sev 1 to 2): {…}
## Framework Coverage
| Framework | Findings |
|-----------|----------|
{framework → finding IDs or "no issues found"}
## Sources
Nielsen: nngroup.com/articles/ten-usability-heuristics · Shneiderman: cs.umd.edu/users/ben/goldenrules.html · Gerhardt-Powals: Int. J. HCI (1996) · Bastien & Scapin: INRIA RT-0156 (1993) · Laws: lawsofux.com · Fogg: behaviormodel.org · Cialdini: influenceatwork.com · Norman: jnd.org · Tognazzini: asktog.com/atc/principles-of-interaction-design · WCAG: w3.org/WAI/WCAG21/quickref · Content design: contentdesign.london
Output Rules
- Annotated screenshots:
{file}-annotated.pnginassets/, markers colour-coded by severity (red 4 / orange 3 / amber 2 / blue 1 / green positive) - Findings sorted by severity everywhere; IDs stable within the report
- Keep the report folder self-contained (originals + annotated copies inside)
- Match the user's locale and spelling conventions in the written report