UX bugs that pass code review, caught before they ship.
An agent changes your UI. ux-quality-check finds the surfaces the diff touches, then checks each one against 52 rules mined from real UX feedback. It reads the code and measures the live page at rest, on hover and on focus.
Watch it work
Under a minute: four of the bugs below, measured live. Captions are in the player menu.
Ten bugs it catches
Each one comes from real review feedback. Press Run check to see the skill's measurement on the live mini-app, then switch to Fixed and run it again. The measurements on this page come from the skill's own scripts/measure.js, inlined.
How it works
The skill checks only what the diff changed, runs only the rules that apply, and checks each finding once more before it reports it.
Reads the diff. With no UI file, it says so and stops.
Tags each surface with its kinds: write, list, overlay…
Runs each rule whose kinds match. The repo's own UI rules come first.
Code first. Then boxes, gaps and shifts at rest, on hover and on focus.
Re-measures each finding, and keeps defects the diff did not add apart.
// Load the skill's helpers, then measure a hover
await page.addScriptTag({ path: "scripts/measure.js" });
await page.evaluate(() => snapshot(".item", "rest"));
await page.hover("text=Your requests");
await page.evaluate(() => gaps(".item"));
// → [{ from: "Home", to: "Your requests", y: 0 }]
await page.evaluate(() => moved("rest", "hover"));
// → [] hover moved nothing
**Surface:** Sidebar nav, “Your requests” hovered
**Rule:** `no-cramped-controls`
**Evidence:** `gaps(".item")` at 1440px, row 2
hovered: y: 0 between “Home” (selected) and
“Your requests”. At rest the gap is also 0, but
only the selected row draws a box.
**Fix:** Add `gap: 2px` to the list.
The catalog
52 rules in six groups. Highlighted ids are the ten demonstrated above.
Feedback and state 12 rules
Layout and spacing 16 rules
Controls and icons 8 rules
Content and forms 8 rules
Navigation 3 rules
Visual system 5 rules
Install
Add the marketplace, install the plugin, then ask your agent to "check the UX of this change" after a UI edit. Source on GitHub.
# Claude Code
claude plugin marketplace add ktmud/ux-quality-check-skill
claude plugin install ux-quality-check@ux-quality-check
# Codex
codex plugin marketplace add https://github.com/ktmud/ux-quality-check-skill
codex plugin add ux-quality-check@ux-quality-check