# Table of Contents - [Docs | Impeccable](#docs-impeccable) - [impeccable | Impeccable](#impeccable-impeccable) - [extract | Impeccable](#extract-impeccable) - [shape | Impeccable](#shape-impeccable) - [audit | Impeccable](#audit-impeccable) - [critique | Impeccable](#critique-impeccable) - [polish | Impeccable](#polish-impeccable) - [quieter | Impeccable](#quieter-impeccable) - [bolder | Impeccable](#bolder-impeccable) - [distill | Impeccable](#distill-impeccable) - [harden | Impeccable](#harden-impeccable) - [colorize | Impeccable](#colorize-impeccable) - [typeset | Impeccable](#typeset-impeccable) - [onboard | Impeccable](#onboard-impeccable) - [layout | Impeccable](#layout-impeccable) - [overdrive | Impeccable](#overdrive-impeccable) - [adapt | Impeccable](#adapt-impeccable) - [optimize | Impeccable](#optimize-impeccable) - [clarify | Impeccable](#clarify-impeccable) - [live | Impeccable](#live-impeccable) - [Design Context | Impeccable](#design-context-impeccable) - [Config and ignores | Impeccable](#config-and-ignores-impeccable) - [animate | Impeccable](#animate-impeccable) - [Doctor | Impeccable](#doctor-impeccable) - [Detector CLI | Impeccable](#detector-cli-impeccable) - [delight | Impeccable](#delight-impeccable) - [New work | Impeccable](#new-work-impeccable) - [Design hooks | Impeccable](#design-hooks-impeccable) - [document | Impeccable](#document-impeccable) - [init | Impeccable](#init-impeccable) --- # Docs | Impeccable [Skip to content](https://impeccable.style/docs/#main) 1. 01Install`npx impeccable install`Run from the project root, then reload your agent. 2. 02Set context`/impeccable init`Create PRODUCT.md and DESIGN.md. 3. 03Try it`/impeccable polish the pricing page`Point it at a real page. Full walkthrough: [Getting started](https://impeccable.style/tutorials/getting-started) . [Start a project/impeccable init](https://impeccable.style/docs/init) [Polish a page/impeccable polish](https://impeccable.style/docs/polish) [Find design issues/impeccable critique](https://impeccable.style/docs/critique) [Check implementation/impeccable audit](https://impeccable.style/docs/audit) [Iterate in the browser/impeccable live](https://impeccable.style/docs/live) [Build a new surface/impeccable ](https://impeccable.style/docs/new-work) [Design ContextPRODUCT.md + DESIGN.md](https://impeccable.style/docs/context) [New workDirection for new surfaces](https://impeccable.style/docs/new-work) [Detector CLInpx impeccable detect](https://impeccable.style/docs/detector) [Design hooks/impeccable hooks](https://impeccable.style/docs/hooks) [Doctor/impeccable doctor](https://impeccable.style/docs/doctor) [Config and ignores.impeccable/config.json](https://impeccable.style/docs/config) Iterate in the browser ---------------------- Pick UI, generate variants, accept one into source. [Live Mode docs](https://impeccable.style/docs/live) localhost:4321 Hero headline Variant 2 of 3 Prev2 / 3NextAccept 1. [Plan/impeccable shapeThink before you build. Produce a design brief through discovery, not guesswork.](https://impeccable.style/docs/shape) 2. [Review/impeccable critiqueA design review with scoring, persona tests, and automated detection.](https://impeccable.style/docs/critique) 3. [Refine/impeccable polishThe meticulous final pass between good and great.](https://impeccable.style/docs/polish) 4. [Iterate/impeccable liveIterate on UI in the browser. Pick an element, drop a comment, get three variants. Accept one and it writes to source.](https://impeccable.style/docs/live) Already shipped? Use [/impeccable polish](https://impeccable.style/docs/polish) on the page that needs work, or [/impeccable audit](https://impeccable.style/docs/audit) for checks. [bolder](https://impeccable.style/docs/bolder) ↔[quieter](https://impeccable.style/docs/quieter) Two halves of voice. Loud or restrained, never neutral. [audit](https://impeccable.style/docs/audit) →[harden](https://impeccable.style/docs/harden) Find the technical issues. Then fix them. [critique](https://impeccable.style/docs/critique) →[polish](https://impeccable.style/docs/polish) Review the work. Then refine it. [init](https://impeccable.style/docs/init) →[shape](https://impeccable.style/docs/shape) Capture the product. Then plan the surface. Create 2 * [impeccableGet a next-step recommendation, or describe design work in plain English.](https://impeccable.style/docs/impeccable) * [shapeThink before you build. Produce a design brief through discovery, not guesswork.](https://impeccable.style/docs/shape) Evaluate 2 * [auditFive-dimension technical quality check with P0 to P3 severity.](https://impeccable.style/docs/audit) * [critiqueA design review with scoring, persona tests, and automated detection.](https://impeccable.style/docs/critique) Refine 8 * [animatePurposeful motion that conveys state, not decoration.](https://impeccable.style/docs/animate) * [bolderPush safe designs toward impact without sliding into chaos.](https://impeccable.style/docs/bolder) * [colorizeAdd strategic color to monochrome interfaces without going garish.](https://impeccable.style/docs/colorize) * [delightSmall moments of personality that turn functional into memorable.](https://impeccable.style/docs/delight) * [layoutFix layout, spacing, and visual rhythm.](https://impeccable.style/docs/layout) * [overdrivePush an interface past conventional limits. Shaders, physics, 60fps, cinematic transitions.](https://impeccable.style/docs/overdrive) * [quieterTone down designs that are shouting without losing their intent.](https://impeccable.style/docs/quieter) * [typesetFix typography that feels generic, inconsistent, or accidental.](https://impeccable.style/docs/typeset) Simplify 3 * [adaptMake designs work across screens, devices, and contexts without amputating features.](https://impeccable.style/docs/adapt) * [clarifyRewrite confusing UX copy so interfaces explain themselves.](https://impeccable.style/docs/clarify) * [distillRuthless subtraction. Strip designs to their essence.](https://impeccable.style/docs/distill) Harden 4 * [hardenMake interfaces production-ready. Edge cases, i18n, error states, overflow.](https://impeccable.style/docs/harden) * [onboardDesign first-run experiences, empty states, and paths to value.](https://impeccable.style/docs/onboard) * [optimizeDiagnose and fix UI performance from LCP to bundle size.](https://impeccable.style/docs/optimize) * [polishThe meticulous final pass between good and great.](https://impeccable.style/docs/polish) System 3 * [documentGenerate a spec-compliant DESIGN.md that captures your visual system so every AI agent stays on-brand.](https://impeccable.style/docs/document) * [extractPull reusable components, tokens, and patterns into the design system.](https://impeccable.style/docs/extract) * [liveIterate on UI in the browser. Pick an element, drop a comment, get three variants. Accept one and it writes to source.](https://impeccable.style/docs/live) --- # impeccable | Impeccable [Skip to content](https://impeccable.style/docs/impeccable#main) When to use it -------------- `/impeccable` is the main command. Use it in two ways: * Run `/impeccable` by 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.md`** says what the project is for: platform, audience, product purpose, positioning, real evidence, and brand commitments. * **`DESIGN.md`** says how the interface should look: colors, typography, components, elevation, and design rules. Every command reads both files before generating, plus any brief for the specific surface you named. The judgment that changes the most is the surface’s **mode**, which names what the visitor came to do: Persuade, Operate, Read, or Experience. Impeccable reads that from the surface itself rather than from what the company sells, so one project can hold all four. See [Design Context](https://impeccable.style/docs/context) for what each mode changes. 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 polish` for final-pass work * `/impeccable pin audit` for deterministic a11y/perf checks * `/impeccable pin live` for the browser iteration flow * `/impeccable pin critique` for 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.** `/impeccable` is for creation. For refinement, reach for `/impeccable polish`, `/impeccable distill`, or `/impeccable critique` instead. * **Running it before `init` has saved context.** On a fresh project it will interview you mid-flight, which is fine but slower. Running `/impeccable init` first is smoother. * **Letting it judge the wrong mode.** A landing page and a settings screen need different defaults, and the mode comes from the surface you named. If a request spans both, scope it to one surface at a time or say which mode you mean. --- # extract | Impeccable [Skip to content](https://impeccable.style/docs/extract#main) 01 Discover drift Repeated hex values, button variants, spacing scales, text styles. 02 Propose primitives Token names, component APIs with variant + size, text styles. 03 Migrate call sites Replace duplicated CSS with the new primitives. No orphan code left behind. The skill only extracts what's used three or more times with the same intent. Two usages are not a pattern, and migration always happens in the same pass. When to use it -------------- `/impeccable extract` is for the moment your codebase has accidentally become a design system. Repeated button styles in 12 places. Three variants of the same card. Hex colors scattered throughout. Hand-rolled spacing that accidentally matches a scale. Reach for it when you want to consolidate this drift into reusable primitives. Use it after a product has shipped enough features to reveal the patterns. Premature extraction creates abstractions that do not match reality. How it works ------------ The skill discovers the design system structure first, then identifies extraction opportunities: 1. **Tokens**: find repeated literal values (colors, spacing, radii, shadows, font sizes). Propose token names, add to the token system, replace usages. 2. **Components**: find UI patterns that repeat with minor variation (buttons, cards, inputs, modals). Extract into a single component with variants, migrate callers. 3. **Composition patterns**: find layout or interaction patterns that repeat (form rows, toolbar groups, empty states). Extract into composition primitives. 4. **Type styles**: find repeated font-size + weight + line-height combinations. Extract into text styles. 5. **Animation patterns**: find repeated easing, duration, or keyframe combinations. Extract into motion tokens. The skill is cautious. It only extracts things used three or more times, with the same intent. It never extracts “because it might be reused later”. Premature abstraction is worse than duplication. Try it ------ /impeccable extract the button styles Expected output: * Found 14 button instances across 8 files * 4 distinct variants: primary (filled accent), secondary (bordered), ghost (text-only), destructive (filled red) * All 4 variants use the same size scale (small, default, large) * Extracted into `