codex/skills/ux-audit/SKILL.md
Systematic UX evaluation using Nielsen heuristics and accessibility checks. Use when reviewing UI, "is this usable", improving user experience, or pre-launch.
npx skillsauth add tkersey/dotfiles ux-auditInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Core Insight: Users don't read manuals. If it's not obvious, it's broken.
Conduct a UX audit of this [application/CLI/interface]:
1. Nielsen's 10 Usability Heuristics
2. Accessibility basics (keyboard, contrast, screen reader)
3. User flow analysis (happy path + error paths)
4. Cognitive load assessment
Produce prioritized report:
- Critical (blocking)
- Important (degraded experience)
- Suggestions (polish)
Include file:line references and concrete fixes.
| Area | Status | Notes |
|------|--------|-------|
| Navigation | 🟢/🟡/🔴 | |
| Forms | 🟢/🟡/🔴 | |
| Errors | 🟢/🟡/🔴 | |
| Accessibility | 🟢/🟡/🔴 | |
| Mobile/Responsive | 🟢/🟡/🔴 | |
| # | Heuristic | Key Question | |---|-----------|--------------| | 1 | Visibility | Does user know what's happening? | | 2 | Real World | Familiar language & concepts? | | 3 | Control | Can user undo/escape? | | 4 | Consistency | Same action = same result? | | 5 | Error Prevention | Prevents mistakes before they happen? | | 6 | Recognition | Options visible vs. memorized? | | 7 | Flexibility | Shortcuts for experts? | | 8 | Minimal | Visual clutter removed? | | 9 | Error Help | Error messages helpful? | | 10 | Documentation | Help available when needed? |
Deep dive: HEURISTICS.md
| Heuristic | CLI Application |
|-----------|-----------------|
| Visibility | --verbose, progress bars, spinners |
| Real world | Standard flags (--help, --version) |
| Control | Ctrl+C works, --dry-run available |
| Consistency | -v short, --verbose long |
| Error prevention | Confirmation prompts, --force |
| Recognition | --help shows all options |
| Flexibility | Short + long flags, piping |
| Minimal | Clean default, verbose optional |
| Error help | Actionable messages, suggested fixes |
| Documentation | --help, man pages, examples |
Generate checklist: ./scripts/generate-checklist.py cli
Deep dive: A11Y.md
# UX Audit: [Project]
## Summary
**Score:** X/10 | **Critical:** N | **Important:** N | **Suggestions:** N
## Critical Issues (Must Fix)
### 1. [Title]
**Heuristic:** #N - [Name]
**Location:** `file:line`
**Problem:** [What's wrong]
**Fix:** [Specific solution]
## Important Issues (Should Fix)
[Same format]
## Suggestions
- [ ] [Item]
## Heuristic Scores
| Heuristic | Score |
|-----------|-------|
| 1. Visibility | X/10 |
...
Full template: EXAMPLES.md
| Type | Time | When | |------|------|------| | Quick Scan | 5-10 min | PR review, spot check | | Standard | 30-60 min | Pre-release, feature review | | Deep Audit | 2+ hr | Major redesign, compliance |
| Don't | Do |
|-------|-----|
| "It's intuitive" | Test with fresh eyes |
| Ignore error paths | Audit happy AND error flows |
| Skip accessibility | Check the Big 4 minimum |
| Vague issues | Specific file:line + fix |
| All issues equal | Prioritize by impact |
Auto-run a11y check after UI edits:
{
"hooks": {
"PostToolUse": [{
"matcher": "Edit",
"hooks": [{
"type": "command",
"command": "if echo \"$TOOL_INPUT_PATH\" | grep -qE '\\.(tsx|jsx|html)$'; then npx axe \"$TOOL_INPUT_PATH\" 2>/dev/null || true; fi"
}]
}]
}
}
| Combine with... | For... | |-----------------|--------| | multi-model-triangulation | Multiple UX perspectives | | multi-pass-bug-hunting | Include UX issues in sweeps | | ui-polish | After fixing critical UX issues |
| Topic | File | |-------|------| | Full heuristic details | HEURISTICS.md | | Accessibility deep dive | A11Y.md | | Example audits | EXAMPLES.md |
| Script | Purpose |
|--------|---------|
| scripts/generate-checklist.py | Generate project-specific checklist |
./scripts/generate-checklist.py web # Web app
./scripts/generate-checklist.py cli # CLI tool
./scripts/generate-checklist.py mobile # Mobile app
./scripts/generate-checklist.py api # API/DX
tools
Invokes Apple's macOS 27 fm command-line tool from a local Mac to use the on-device system model or Private Cloud Compute, including instructions, image prompts, schema-constrained JSON, and noninteractive automation. Use when the user asks to run Apple Foundation Models through fm, compare system versus pcc, generate structured output, or automate fm without Swift or an app.
development
Compile historical Codex sessions into governed counterfactual evidence, evaluate an existing owner-applied candidate through blinded paired HCTP trials, and fold observable evidence into RUN, OBSERVE, or STOP. Use for `$hylo`, CRF extraction, counterfactual replay, source-governed direct or historical trials, sealed evidence, paired baseline/candidate evaluation, causal frontiers, or evidence-governed improvement.
testing
Ensure a `ledger` command is available on PATH; materialize, validate, record, replay, and project requested Actuating artifacts without taking semantic or execution authority; coordinate the shared Learnings/Synesthesia/Negative Ledger lifecycle checkpoint and repo-local source-memory reconciliation; address Universalist plans and receipts; and perform pure artifact validation.
testing
Classify and quotient review findings, failing tests, incidents, bug reports, migration failures, and other witnessed falsifiers against accepted intent and the current Construction. Author counterexample-set/v1 without selecting repairs, counting review credit, or granting mutation.