impeccable
Get a next-step recommendation, or describe design work in plain English.
When to use it
/impeccable is the main command. Use it in two ways:
- Run
/impeccableby itself when you want the skill to inspect the project and recommend what to do next. - Add a plain-English request when you know the outcome but not the exact command.
Reach for /impeccable directly when:
- You are not sure where to start. It checks whether setup files exist, looks at the current project state, and recommends two or three next commands. It asks before running anything.
- You are not sure which command fits. Describe what you want in plain English and let the skill pick the right approach.
- The work spans multiple disciplines. “Redo this hero section” touches layout, type, color, and motion. One command cannot own that.
- You want freeform design help. Use the main command when no specialist command maps cleanly to the work.
If this is a new project, start with /impeccable init. That creates the setup files every other command reads.
How it works
Most AI-generated UIs fail the same way: generic fonts, purple gradients, card grids on card grids, glassmorphism everywhere. /impeccable gives the model stronger design instructions before it writes code.
Two files at your project root shape everything the skill does:
PRODUCT.mdsays what the project is for: audience, product purpose, voice, anti-references, and whether the surface is brand or product.DESIGN.mdsays how the interface should look: colors, typography, components, elevation, and design rules.
Every command reads both files before generating. The most important setup choice is brand vs product: is this a marketing surface where the impression is the product, or an app surface where design helps someone finish a task? The docs call this choice register. See Design Context for examples.
On first use in a project, /impeccable may route you into init: a short interview that writes PRODUCT.md and offers to write DESIGN.md. Future commands read those files without asking again.
Try it
Run it with no command to get your bearings:
/impeccable
It sizes up the project and points you at the best next move. For example: no DESIGN.md yet, run document; unresolved findings in files you are editing, run polish. It waits for you to choose.
Or describe what you want and it does the work directly:
/impeccable redo this hero section
/impeccable build me a pricing page for a developer tool
Both prompts are vague on purpose. /impeccable will choose the right command or run the work directly, using your setup files when they exist.
For visual iteration in the browser rather than chat:
/impeccable live
Pick any element on your running dev server. Drop a comment or stroke. Get three production-quality variants hot-swapped in via HMR. Accept the one you want and it writes back to source.
Pin commands back as shortcuts
v3.0 consolidated 18 standalone skills into a single /impeccable with 23 commands. If you miss the short form of a command, pin it back:
/impeccable pin critique
From now on, /critique invokes /impeccable critique directly. It writes a lightweight redirect skill that delegates to the parent, so updates to the skill flow through without re-pinning.
Useful pins to try:
/impeccable pin polishfor final-pass work/impeccable pin auditfor deterministic a11y/perf checks/impeccable pin livefor the browser iteration flow/impeccable pin critiquefor design review
To remove: /impeccable unpin critique. Pins live as directories named after the command in your harness skills folder (.claude/skills/critique/, .cursor/skills/critique/, etc.), so you can also delete them manually.
Pitfalls
- Treating it like a style guide. It is an opinionated design partner, not a linter. The defaults exist to raise the floor, not to overrule your judgment. If you have a real reason to push back (brand guideline, accessibility constraint, user research), push back and explain why. The skill will work with you. What produces worse output is ignoring the opinion without a reason.
- Expecting it to fix existing code.
/impeccableis for creation. For refinement, reach for/impeccable polish,/impeccable distill, or/impeccable critiqueinstead. - Running it before
inithas saved context. On a fresh project it will interview you mid-flight, which is fine but slower. Running/impeccable initfirst is smoother. - Picking the wrong brand/product lane. Marketing pages and app screens need different defaults. If
PRODUCT.mdhas no## Registerfield (legacy), run/impeccable initto add it.