What it does
- A rule checker with 62 built-in rules. No AI model is involved.
- Two groups of rules: "slop" (AI tells) and "quality". Some are only advisory.
- Drawer 6 lists what it catches.
When to reach for it
- You want a quick scan you can repeat, with the same result every time.
- While an agent edits UI files: the hook checks after each edit.
- At the end of a build that had no hook.
- In GitHub Actions.
How to use it
From the command line
impeccable detect src/scans source files. JSX and TSX get the pattern rules only.impeccable detect <url>renders the page in Chrome or Edge. Rules like low contrast and tiny text need this, so point it at your dev server.--jsonfor machine output.--githubfor GitHub Actions notes.--list-rulesto see every rule.- Exit code 2 means findings. Exit code 1 means a target couldn't be scanned.
As a hook while the agent edits
/impeccable hooksturns it on, off, or shows status.- After each UI-file edit it runs 12 quick rules: broken images, overflow, contrast and legibility, gradient text, glow shadows, and drift from DESIGN.md.
- Everything else runs once, in a deeper pass when the agent stops.
- It never blocks an edit. It leaves a reminder.
- It runs unsandboxed, with the agent's environment and network access.
- For server templates (Blade, Twig, ERB, Handlebars), list their extensions under
detector.extensions.
When it flags something
- Fix real problems.
- An agent may ignore only one value, with named evidence in
--reason. Ask the user before ignoring a whole file or rule. - Never add an ignore to skip a fix.
- Waivers that travel with a file:
impeccable-disable <rule>,impeccable-disable-line,impeccable-disable-next-line.
Limits
- A clean scan is a floor, not proof the design is good.
- impeccable says the hook is "where most slop gets caught" (asserted, no evidence shown).
What happened when we used it
- Not run. We applied its rules by hand instead, which found the same kinds of tells it is built to catch.
Source
- Source: impeccable.