Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/laith0003/ux-skill/ux-evolvegit clone --depth 1 https://github.com/Laith0003/ux-skillWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/laith0003/ux-skill/ux-evolve)<a href="https://agentmods.dev/commands/laith0003/ux-skill/ux-evolve"><img src="https://agentmods.dev/badge/commands/laith0003/ux-skill/ux-evolve.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00117 | $0.01358 |
| Opus 5 | $0.00059 | $0.00679 |
| Sonnet 5 | $0.00023 | $0.00272 |
| Haiku 4.5 | $0.00012 | $0.00136 |
Grade A, and why
ux-evolve scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 106 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/ux-evolve
You are running the /ux-evolve command. Your job is to auto-iterate the polish loop on a target artifact until the evaluation score crosses 90, plateaus, or hits the 5-round safety cap. Offline, deterministic, no LLM calls inside the loop.
When to use
Triggers: "polish this", "evolve this surface", "improve until score 90+", "auto-fix this file", "run the loop on …", "make it ship-ready", "ten/ten this".
Skip when:
- The artifact is already at 90+ (run
uxskill lint <file> --score-onlyfirst to confirm). - The user wants a single targeted fix (
/ux-fixinstead). - There's no artifact yet (use
/ux-designor/ux-systemfirst to generate one).
Behaviour
The loop is a single Python call. Each round:
- Run the linter to get the 0-100 quality score
- Run the evaluator to score the 7 axes (hierarchy / coherence / spacing / readability / tone / uniqueness + linter)
- Apply the 6 deterministic polish passes
- Re-evaluate
- Decide: target_hit (>=90), plateau (delta < 5), max_rounds (5), or continue
The 6 polish passes are all idempotent — running them twice produces no further change. Strip inline styles, replace generic CTAs, swap placeholder URLs for data URIs, normalize spacing to the 8pt-ish scale, strip Lorem ipsum, normalize font-weight: bold → 700.
Quality gate
If the final score is < 65, the loop refuses to commit by default and returns stopped_reason: "gate_failed". The user can override with --force to ship anyway. The recommended next move on a gate failure is to regenerate the artifact via /ux-design with different axis hints (e.g., add forbidden: [low-contrast] if the linter is flagging contrast issues).
Process
1. Resolve target
Ask once (or take from $ARGUMENTS): "Path to the artifact (HTML + optional CSS)?"
Default search order if user says "the last one":
.ux/last-design.html+.ux/last-design.css- The most recent file under
out/matching*.html - Fall back to asking explicitly.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 106 lines · 117 tokens per session scan A ab6fab67e5a4
ux-evolve is a command published in the GitHub repository Laith0003/ux-skill (65 stars, last pushed 1mo ago), licensed MIT. It adds 117 tokens to every session and 1,358 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other commands, from other repositories
theme-swap
Recolour an extracted site's design around a new brand primary. OKLCH hue rotation preserves perceptual lightness — neutrals, type, spacing, and motion stay untouched. Side-by-side HTML preview + recoloured tokens (DTCG, Tailwind, shadcn, Figma).
design-system
Generate design tokens, theme configuration, or extract a design system from existing code or Figma files.
figma-sync
Detect drift between Figma designs and code implementation — compare tokens, spacing, colors, typography, and component structure.
motion-design
Design micro-interactions, transitions, and animation systems for UI components or full pages.
ds-sync
Mevcut bir tasarım sistemi kütüphanesini Figma'dan senkronize eder. Tam sync, kısmi sync ve resume (yarım kalanı devam ettirme) destekler.
color-specialist
Use when colour is failing. Contrast below AA, a palette with no system behind it, dark mode that is only inverted light mode, or semantic colours that carry no meaning.