-
Notifications
You must be signed in to change notification settings - Fork 7
Getting Started
This page takes you from nothing installed to a generated, linted surface in about fifteen minutes. It assumes you already use an AI coding tool. ux-skill sits between you and that tool; it does not replace it.
For the full reference, see the README. For the design rules the linter enforces, see Anti-Patterns Reference. For common questions, see the FAQ.
Pick the path that matches where you work. All three install the same engine; the difference is the glue.
If you live in Claude Code, install through the plugin marketplace:
/plugin marketplace add Laith0003/ux-skill
/plugin install ux@ux-skillThat wires all 25 slash commands and 5 sub-agents into the session. Then bootstrap the project:
/ux-initFor Cursor, Windsurf, a bare terminal, or CI:
pip install uxskill
uxskill init # detects your IDE and installs the matching artifactThe package exposes two entry points, ux and uxskill. They are the same binary; use whichever reads better.
npx uxskill init # bootstraps pipx and uxskill on first runPrint the data inventory. This confirms the manifests loaded:
ux statsYou should see non-zero counts for every manifest, matching the v3.1.0 figures: 84 styles, 176 palettes, 70 type pairs, 148 components, 184 industries, 35 chart types, 25 tech stacks, 112 UX laws, 57 motion presets, 152 anti-patterns, 160 brand specs. If any count is zero, a JSON file failed to load; open an issue at https://github.com/Laith0003/ux-skill/issues with the output.
In Claude Code, the slash equivalent is /ux-stats.
Everything downstream is grounded in a brief. Discovery is a 10-field intake, and it is deliberately strict: it rejects filler words like "modern" and "clean" and pushes you to name specifics, because specifics are what steer the output off the default path.
ux discoverThe ten fields are: project type, audience, primary goal, tone, must-haves, forbidden moves, reference brands, stack, region, and success metric. The answers land in .ux/last-discovery.json so later commands can read them without asking again.
If you prefer non-interactive flags, skip straight to recommend (next step) and pass the brief there.
This is the flagship command. It runs five lookups in parallel across the manifests and merges them into one design system.
ux recommend \
--project-type=landing \
--industry=fintech-neobank \
--tone=warm --tone=editorial \
--must-have=dark-mode --must-have=a11y-AA \
--forbidden=purple-gradients --forbidden=brutalism \
--stack=nextjs-15-app-router \
--region=menaThe five parallel searches are: industry to recommended styles, style to palette and type and motion compatibility, tone crossed with must-haves to a palette filter, stack to component and motion-preset compatibility, and forbidden moves plus region to guardrails and a brand-exemplar shortlist. A deterministic merger ranks the candidates, resolves conflicts (a dark-mode must-have forces the palette mode, for example), and writes the result to .ux/last-recommendation.json.
The output is one document: a picked style, palette, and type pair; the top 5 motion presets; the top 12 components; the top 5 brand exemplars to study; all 152 anti-pattern guardrails active; and a rationale block that explains each pick. Because it is deterministic, the same brief on a teammate's machine produces the same system.
In Claude Code, run /ux-recommend; if you already ran /ux-discover, it reads the saved brief automatically.
With a recommendation on file, generate code. Pick the command that matches the deliverable:
/ux-design build a fintech landing for a MENA neobank, warm editorial tone, dark-mode AA, no purple gradients-
/ux-designfor a full page or app shell. -
/ux-component pricing-card-trio --brief="fintech, dark, monospace numbers"for a single component, generated with all four interaction states. -
/ux-systemfor a complete starter design system (tokens, foundation docs, component contracts, dark-mode pairings) when the project has none. -
/ux-dashboardfor a data-dense surface, with tabular numerals and sparing motion rather than a marketing layout.
Generation dispatches the relevant sub-agent (frontend-engineer, motion-engineer, copy-writer, research-synthesizer, or design-system-architect) with creative direction pulled from the recommendation.
The linter is deterministic. It runs 152 regex rules against your code with no model call and exits non-zero on Critical or High findings, which makes it safe for a pre-commit hook or CI.
uxskill lint .Each finding reports a file location, a rule id, a severity, and the evidence that triggered it. The linter reports; it does not edit. To act on findings, chain into a fix pass: /ux-polish --fix for a cosmetic pass, or /ux-fix to apply findings as atomic commits sorted by severity. The full rule set is documented on the Anti-Patterns Reference page.
Add the linter as a gate so regressions cannot merge. A GitHub Actions step:
- name: ux-lint
run: bash bin/ux-lint.sh --ci --fail-on high--fail-on high fails the job on any Critical or High finding while letting Medium and Low through as warnings. Tune the threshold to your tolerance. The same command works locally as a pre-commit hook.
ux-skill ships 25 slash commands, grouped by job:
-
Bootstrap and inventory:
/ux-init,/ux-stats,/ux-mcp -
Discovery and recommendation:
/ux-discover,/ux-recommend,/ux-frame -
Generation:
/ux-design,/ux-component,/ux-system,/ux-dashboard,/ux-motion,/ux-image-to-code -
Audit and verify:
/ux-lint,/ux-audit,/ux-a11y,/ux-critique,/ux-copy -
Fix and polish:
/ux-fix,/ux-polish,/ux-evolve -
Research and workshop:
/ux-research,/ux-workshop,/ux-case-study,/ux-expert -
Conductor:
/ux-next
Every command writes its result to a .ux/last-*.json file so commands chain: discover feeds recommend, recommend feeds design, design feeds lint, lint feeds fix. The full per-command spec, with triggers and when-to-skip notes, is in the README and at https://uxskill.laithjunaidy.com/commands.html.
- See the engine compared against other Claude Code UX plugins: https://uxskill.laithjunaidy.com/compare.html
- Read the design rules in depth: Anti-Patterns Reference
- Browse before-and-after examples: https://uxskill.laithjunaidy.com/showcase.html