From ux
Reads project UX audit reports and recommends the highest-leverage next command to run.
How this command is triggered — by the user, by Claude, or both
Slash command
/ux:ux-nextThis command is limited to the following tools:
The summary Claude sees in its command listing — used to decide when to auto-load this command
# /ux-next
You are running the `/ux-next` command from the `ux` plugin. The job is to read the project's accumulated UX state and tell the user the highest-leverage next move. You are a conductor, not a builder. Read-only.
## When to use
Triggers: "what should I do next", "what's the next move", "decide for me", "where do we go from here", "/ux-next", or any moment the user is between commands and asks for direction.
## Input
Optional — if the user names a specific report ("look at the a11y report"), focus there. Default: scan every `.ux/last-*.json` and decide.
## Process
### 1. Sca...You are running the /ux-next command from the ux plugin. The job is to read the project's accumulated UX state and tell the user the highest-leverage next move. You are a conductor, not a builder. Read-only.
Triggers: "what should I do next", "what's the next move", "decide for me", "where do we go from here", "/ux-next", or any moment the user is between commands and asks for direction.
Optional — if the user names a specific report ("look at the a11y report"), focus there. Default: scan every .ux/last-*.json and decide.
List .ux/last-*.json in the project root. If the directory does not exist, output the empty-state response (see Failure modes) and stop.
For each report, read it. Keep in memory:
ship_readiness or go_no_go signalnext_recommended fieldScore each report on three axes:
(Critical * 4) + (High * 2) + (Medium * 1) for unfixed findingsPick the report with the highest leverage score. The next command is the one that directly addresses that report's blockers.
| Source report | Highest-leverage next command |
|---|---|
last-a11y.json with Critical findings | /ux-a11y --fix |
last-polish.json with open items | /ux-polish --apply |
last-motion.json flagging jank | /ux-motion --fix |
last-design.json with no follow-up | /ux-polish then /ux-a11y |
last-research.json with results pending | /ux-research --synthesize |
last-workshop.json with a Game Plan | /ux-design (first MVP) or /ux-frame |
last-component.json standalone | /ux-component (next one) or /ux-design (assemble) |
last-dashboard.json with Critical | /ux-polish or /ux-a11y |
last-system.json newly built | /ux-component (build against it) |
last-case-study.json complete | /ux-expert (share) or done |
| Nothing actionable, all green | /ux-next done (call it shipped) |
Use this exact template:
─── ux state ───
Reports found: <N>
Latest: <command> <timestamp>
Highest leverage: <report name> (score: <n>)
─── evidence ───
<3-5 bullet lines citing specific findings/signals from the report that drove the recommendation>
─── recommendation ───
Next: <command>
Why: <one sentence — what this resolves>
─── alternatives ───
Option B: <command> — <one-line rationale>
Option C: <command> — <one-line rationale>
Escape: nothing — call it done. <one-line rationale if applicable>
─── decide ───
Pick one. I'll run it.
This command is read-only. Do not write to .ux/. The user re-runs /ux-next after any state change to get a fresh recommendation.
.ux/ files..ux/ directory: output No prior UX state. Start with /ux-frame (lock the brief) or /ux-design (jump in). Stop./ux-frame to re-baseline..ux/ reports and the actual codebase. If the user has made changes since the last report, recommend re-running the relevant audit before acting.| Error condition | Recovery |
|---|---|
No prior reports in .ux/ | Output the empty-state response and suggest /ux-frame or /ux-design as entry points |
| All reports older than 30 days | Warn that state is stale; recommend /ux-frame to re-baseline |
| Conflicting signals (polish says ship, a11y says no-go) | Surface the conflict explicitly; recommend resolving a11y first — accessibility is a blocker |
.ux/last-*.json files are malformed or unreadable | Skip the unreadable file, surface the parse error in evidence, continue with the rest |
| User asks for a specific report and it doesn't exist | List the reports that do exist and let the user pick |
For path issues: see references/process/discovery-protocol.md for state file location (.ux/ in project root). Report bugs at https://github.com/Laith0003/ux-skill/issues.
This command's next prompt is itself. After any state-changing action, /ux-next is the way back to the conductor.
/ux-next reads the chain of state files in .ux/ and suggests the next deterministic step based on what's been done.
python3 -c "
import json, os
def has(p): return os.path.exists(p)
state = {
'discovery': has('.ux/last-discovery.json'),
'recommendation': has('.ux/last-recommendation.json'),
'generated': has('.ux/generated/manifest.json'),
'lint_report': has('/tmp/ux-lint-report.json'),
}
print('STATE:', state)
suggestion = None
if not state['discovery']:
suggestion = '/ux-frame -- start by framing the problem (10-field intake)'
elif not state['recommendation']:
suggestion = '/ux-recommend -- get the merged design system'
elif not state['generated']:
suggestion = '/ux-design [brief] -- generate frontend code using the recommendation'
elif not state['lint_report']:
suggestion = '/ux-lint . -- run the anti-slop linter on the generated code'
else:
suggestion = '/ux-fix . -- apply linter findings if any, or /ux-polish for taste-level upgrades'
print()
print('NEXT:', suggestion)
"
The suggestion logic above maps state -> next command deterministically. The LLM can layer judgment on top (e.g., 'you also might want /ux-case-study to write this up') but the base suggestion comes from Python.
If state files are missing entirely, the answer is always /ux-frame first.
npx claudepluginhub laith0003/ux-skill --plugin ux/progressChecks project progress, summarizes recent work and next steps, then intelligently routes to the next action. Also supports --next for auto-advancement, --do for freeform intent dispatch, and --forensic for integrity audit.
/role-ui-uxActs as an independent UX consultant: explores project files with Glob/Read/Grep, analyzes user flows and design, forms opinions, and suggests directions with ASCII wireframes.
/nextDetermines and executes the next unambiguous operational step in the Alfred dev workflow using Python helper and state files like .claude/alfred-*.json and docs/project/*.md.
/nextSuggests prioritized next action for a project by analyzing state, requirements, and tasks. Handles project selection, creation, and task format migration.