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 get P-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's scripts/ 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 an annotated.html page 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 into assets/
- Write
report.md using 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.png in assets/, 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
1---2name: ux-audit3description: 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.4---56# UX Audit Skill78Evaluate 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.910Works in any agent that supports the Agent Skills format (Claude Code, Codex, and compatible tools).1112## Workflow1314### Step 1: Collect screenshots1516- Accept a folder path, individual image paths, or attached images17- If a folder: list image files (png/jpg/jpeg/webp), sort by filename, propose this as the journey order18- If no screenshots provided: ask for them before anything else1920### Step 2: Intake: ask, then STOP and wait for answers2122Skip any question already answered by the user's request. Otherwise ask in one message:23241. **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")252. **Platform?** iOS / Android / mobile web / desktop web (affects target sizes and convention baselines)263. **User type?** First-time / returning / mixed274. **Depth?** Full sweep (all frameworks) or focused (name 2 to 3 frameworks or concerns)285. **Confirm journey order** of the screens (state your inferred order; ask only if uncertain)2930Do not begin the audit until the goal is known. Severity ratings are anchored to it.3132### Step 3: View every screenshot3334- Open each image and study it fully35- Per screen, note: step name, primary action, visible states, anything illegible (never guess unreadable text, mark it as illegible)3637### Step 4: Evaluate: four passes3839**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.4041**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".4243**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.4445**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.4647### Step 5: Calibrate findings4849- Apply the Severity Scale and Evidence Rules below50- Merge duplicates: same issue on several screens = one journey-level finding listing occurrences51- Assign IDs `F-01, F-02…` ordered by severity (highest first); positives get `P-01…`52- Include 2 to 5 positive findings: what works and should be kept53- Quality bar: prefer 8 strong, evidenced findings over 25 padded ones. A framework that surfaces nothing gets no findings; do not stretch for coverage5455### Step 6: Annotate screenshots56571. 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 approximate582. Run `python3 <this-skill-folder>/scripts/annotate.py annotations.json`: the script is bundled in this skill's `scripts/` directory593. **Verify:** view each annotated image. If a marker clearly sits on the wrong element, fix coordinates and re-run (once)604. Requires Pillow (`python3 -c "import PIL"`); if missing, `pip3 install --user pillow`. If installation is impossible, fall back to an `annotated.html` page with absolutely-positioned numbered pins over the screenshots (same colour scale)6162### Step 7: Write the report6364- Output folder: `./ux-audit-{YYYY-MM-DD}-{slug}/` in the working directory (or where the user specifies). Copy originals and annotated images into `assets/`65- Write `report.md` using the Report Template below66- Close with: top 3 fixes in chat, and offer to draft tickets/issues from sev 3 to 4 findings6768---6970## Severity Scale (Nielsen 0 to 4)7172Rate by **impact on the stated goal × how many users hit it × whether they hit it repeatedly**.7374| Rating | Label | Meaning |75|--------|-------|---------|76| 4 | Critical | Blocks goal completion, causes loss/harm, or legal/regulatory exposure; fix before release |77| 3 | Major | Significant friction; many users struggle, some abandon; high priority |78| 2 | Minor | Noticeable; users recover quickly; schedule it |79| 1 | Cosmetic | Polish; fix when convenient |80| ✓ | Positive | Works well; keep and replicate |8182## Evidence Rules (non-negotiable)8384- Every finding must point at something **visible in a named screenshot**. No inferred behaviour stated as fact85- Interaction qualities (animation, focus order, latency, keyboard, screen reader) go in "Not assessable from static screens", never guessed86- Illegible or ambiguous content: say so or ask, never invent text87- Sev 3 to 4 findings require an explicit heuristic citation AND visible evidence88- Borderline contrast calls: flag as "verify with a contrast checker" rather than asserting a ratio8990---9192## Framework Reference (evaluate against these: cite by name + number)9394### A. Nielsen's 10 Usability Heuristics: cite "Nielsen #N"951. **Visibility of system status**: timely feedback; progress, confirmations, current state always visible962. **Match system ↔ real world**: users' language, familiar concepts, logical order; no internal jargon973. **User control & freedom**: undo, cancel, clear exits; no forced paths984. **Consistency & standards**: internal consistency + platform conventions995. **Error prevention**: constraints, confirmation for destructive/costly actions, good defaults1006. **Recognition over recall**: options visible; nothing memorised across screens1017. **Flexibility & efficiency**: accelerators for frequent users; sensible shortcuts1028. **Aesthetic & minimalist design**: no irrelevant info competing with relevant1039. **Error recovery**: plain-language errors: what happened, why, how to fix10410. **Help & documentation**: contextual, task-focused, findable when needed105106### B. Shneiderman's 8 Golden Rules: cite "Shneiderman #N"1071 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 load108109### C. Gerhardt-Powals' Cognitive Engineering Principles: cite "G-P #N"1101 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 redundancy111112### D. Bastien & Scapin Ergonomic Criteria: cite "B&S: {criterion}"113**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)114115### E. Behavioural Laws: cite by name116- **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 disclosure117- **Fitts's Law**: acquisition time = f(distance, size). Primary actions large and thumb-reachable on mobile; related actions adjacent; flag tiny or edge-crowded targets118- **Miller's Law**: working memory ≈ 7±2 chunks. Anything users must hold across steps (codes, prices, comparisons) must stay visible or be chunked119- **Jakob's Law**: users expect your product to work like everything else they use. Deviations from convention must earn their cost120- **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)121122### F. Fogg Behavior Model (B = MAP): for the journey's key action123Behaviour happens when **Motivation × Ability × Prompt** converge at the same moment.124- **Prompt**: is the trigger for the next step visible and timely on each screen?125- **Ability**: which simplicity factor does the design tax: time, money, physical effort, mental effort, social acceptability, non-routine?126- **Motivation**: does copy/design sustain it (value reminder, progress, reassurance) at high-friction moments?127Diagnose drop-off risk per screen: missing prompt / too hard / demotivating.128129### G. Cialdini's Principles of Influence: cite "Cialdini: {principle}"130Reciprocity · Commitment & consistency · Social proof · Authority · Liking · Scarcity · Unity131- Flag **missing** trust signals at decision points (reviews, guarantees, security cues)132- Flag **misuse** as DARK-PATTERN: fabricated scarcity/urgency, confirmshaming, sneaking, sev 3+ (trust and regulatory risk)133134### H. Gestalt Principles: cite "Gestalt: {principle}"135Proximity · Similarity · Closure · Continuity · Common region · Figure/ground · Common fate136Core test: does **visual grouping match functional grouping**? Unrelated items accidentally grouped, or related items separated?137138### I. Norman's Design Principles: cite "Norman: {principle}"139Affordances · Signifiers (is interactivity signposted?) · Mapping (controls ↔ effects) · Feedback · Constraints · Conceptual model (does the UI teach a coherent model?) · Discoverability140141### J. Tognazzini's First Principles (selected): cite "Tog: {principle}"142Anticipation (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)143144### K. WCAG 2.1: static-image-checkable subset, cite "WCAG {SC}"145- **1.4.1 Use of Colour**: information/state never conveyed by colour alone146- **1.4.3 Contrast (AA)**: text ≥4.5:1 (≥3:1 for large text); flag borderline cases for tooling verification147- **1.4.11 Non-text Contrast**: UI components and meaningful graphics ≥3:1148- **1.3.3 Sensory Characteristics**: instructions don't rely on shape/position/colour alone149- **2.4.6 Headings & Labels**: descriptive150- **2.5.5 Target Size**: ≥44pt (Apple HIG) / 48dp (Material) / 24px absolute floor; spacing between adjacent targets151- **3.2.3 / 3.2.4 Consistency**: navigation and components consistent across screens152- **3.3.1 / 3.3.2 / 3.3.3 Errors & Labels**: errors identified in text, fields labelled (not placeholder-only), fixes suggested153**Not assessable from static screens** (list in report, never guess): focus visibility, keyboard navigation, screen-reader semantics/alt text, reflow/zoom, motion, timing154155### L. Content Design Heuristics: cite "Content #N" (canonical set for this skill)1561 **Front-load**: key info and keywords first in headings, labels, paragraphs1572 **Plain language**: short sentences, common words, reading age ~9 to 111583 **Verb-first action labels**: buttons say what they do ("Save changes", never bare "OK"/"Submit" ambiguity)1594 **Scannable**: chunked, meaningful headings, lists over walls of text1605 **One term per concept**: nothing renamed mid-journey1616 **Errors that help**: what happened + why + exactly how to fix1627 **Honest microcopy**: real expectations (timings, costs, consequences); no weasel reassurance1638 **Tone fits the moment**: errors/money/personal data = calm and clear, not playful1649 **Every word earns its place**: remove filler and redundant instruction16510 **Inclusive & localisable**: no idioms or cultural assumptions; survives translation166167---168169## Named Recurring Checks (stable IDs: same issue always flagged the same way)170171| ID | Check |172|----|-------|173| CTA-AMBIGUITY | Primary action unclear, competing CTAs of equal weight, next step not obvious |174| DEAD-END | Screen with no forward action or escape route (incl. error/empty states) |175| FAKE-AFFORDANCE | Looks interactive but isn't / interactive but doesn't look it |176| CONTRAST-FAIL | Text or UI element visibly below WCAG ratios |177| TOUCH-TARGET | Targets too small or too crowded for thumb use |178| JARGON-LEAK | Internal, system, or legal language exposed to end users |179| PROGRESS-BLIND | Multi-step flow without position indicator or saved state |180| ERROR-VAGUE | Error state without cause + remedy |181| FORM-FRICTION | Unnecessary fields, unclear formats, placeholder-as-label, no inline validation |182| OVERLOAD | Everything at once; no hierarchy or progressive disclosure |183| PATTERN-DRIFT | Same component looks or behaves differently across screens |184| TRUST-GAP | High-stakes moment (money, personal data) without reassurance/security signals |185| DARK-PATTERN | False urgency, confirmshaming, sneaking, roach motel |186| STATE-GAP | Missing empty/loading/error/success state in the flow evidence |187| HIERARCHY-FLAT | No clear visual priority; everything shouts |188| RECALL-TAX | User must remember info from a previous screen to proceed |189190Extend this table over time: when the same unnamed issue appears in two audits, give it an ID here.191192---193194## Report Template (`report.md`)195196```markdown197---198type: ux-audit199date: {YYYY-MM-DD}200product: {Product}201journey: {Journey name}202platform: {ios|android|mobile-web|desktop-web}203screens: {n}204findings-critical: {n}205findings-major: {n}206findings-minor: {n}207findings-cosmetic: {n}208---209210# UX Audit, {Product}: {Journey}211212## Executive Summary213{3 to 5 sentences: overall assessment vs the goal, biggest risks, top 3 fixes. Written for a stakeholder who reads nothing else.}214215## Scope & Method216- **Goal evaluated:** {user goal}217- **User type / platform:** {…}218- **Screens:** | Step | File | Screen |219- **Frameworks applied:** Nielsen, Shneiderman, Gerhardt-Powals, Bastien & Scapin, behavioural laws, Fogg, Cialdini, Gestalt, Norman, Tognazzini, WCAG 2.1 (static subset), Content heuristics220- **Not assessable from static screens:** focus states, keyboard/screen-reader behaviour, motion, latency, {…}221222## Findings Overview223| ID | Sev | Screen | Check | Finding | Heuristics |224|----|-----|--------|-------|---------|------------|225{sorted by severity, descending}226227## Screen-by-Screen228### Step {n}: {Screen name} (`{file}`)229230231#### [S{sev}] {F-ID} · {Title}232- **Check:** {CHECK-ID} · **Heuristics:** {citations}233- **Evidence:** {what is visible, where}234- **Impact on goal:** {why this threatens the stated goal}235- **Recommendation:** {specific, actionable} · **Effort:** S/M/L236237## Journey-Level Findings238{cross-screen consistency, progress, memory load, Peak-End, Fogg B=MAP diagnosis of the key action}239240## What Works (keep)241- [P-01] {strength + heuristic it satisfies}242243## Prioritised Recommendations2441. **Quick wins** (sev 3 to 4, effort S): {…}2452. **Planned** (sev 3, effort M/L): {…}2463. **Polish** (sev 1 to 2): {…}247248## Framework Coverage249| Framework | Findings |250|-----------|----------|251{framework → finding IDs or "no issues found"}252253## Sources254Nielsen: 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.london255```256257## Output Rules258259- Annotated screenshots: `{file}-annotated.png` in `assets/`, markers colour-coded by severity (red 4 / orange 3 / amber 2 / blue 1 / green positive)260- Findings sorted by severity everywhere; IDs stable within the report261- Keep the report folder self-contained (originals + annotated copies inside)262- Match the user's locale and spelling conventions in the written report