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
Convert markdown plans into beads with dependencies using br CLI. Use when creating task graphs, polishing beads before implementation, or bridging planning to agent swarm execution.
development
Orchestrate Codex skill optimization during active sessions through $cas goal control, $shadow single-session evidence, $tune diagnosis/refinement briefs, and the skill-optimizer custom subagent. Trigger for $opt, skill optimization loops, session-driven skill tuning, meta-skill audits, or explicit validated skill edits. Do not use for general code optimization, product optimization, or performance tuning.
development
Run a targeted fresh-eyes blunder pass over code, specs, plans, adjudications, closure gates, skill edits, or negative-evidence ledgers. Trigger when asked to reread with fresh eyes, find obvious bugs, catch mistakes/oversights/omissions, check for embarrassing misses, or perform a second independent blunder pass before closure. Do not use as a substitute for implementation, adjudication, or verification; use it as the final falsification/check pass for those workflows.
development
Explicitly shadow, tail, watch, follow, monitor, supervise, or companion exactly one Codex session id/path through `$seq`, then apply a named target skill as an interpretation/reporting/proposal/action lens until the watched session stops.