From impeccable
Use when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a frontend interface. Covers websites, landing pages, dashboards, product UI, app shells, components, forms, settings, onboarding, and empty states. Handles UX review, visual hierarchy, information architecture, cognitive load, accessibility, performance, responsive behavior, theming, anti-patterns, typography, fonts, spacing, layout, alignment, color, motion, micro-interactions, UX copy, error states, edge cases, i18n, and reusable design systems or tokens. Also use for bland designs that need to become bolder or more delightful, loud designs that should become quieter, live browser iteration on UI elements, or ambitious visual effects that should feel technically extraordinary. Not for backend-only or non-UI tasks.
npx claudepluginhub az9713/impeccable-tutorial --plugin impeccableThis skill is limited to using the following tools:
Designs and iterates production-grade frontend interfaces. Real working code, committed design choices, exceptional craft.
reference/adapt.mdreference/animate.mdreference/audit.mdreference/bolder.mdreference/brand.mdreference/clarify.mdreference/cognitive-load.mdreference/color-and-contrast.mdreference/colorize.mdreference/craft.mdreference/critique.mdreference/delight.mdreference/distill.mdreference/document.mdreference/extract.mdreference/harden.mdreference/heuristics-scoring.mdreference/interaction-design.mdreference/layout.mdreference/live.mdSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Guides code writing, review, and refactoring with Karpathy-inspired rules to avoid overcomplication, ensure simplicity, surgical changes, and verifiable success criteria.
Executes ctx7 CLI to fetch up-to-date library documentation, manage AI coding skills (install/search/generate/remove/suggest), and configure Context7 MCP. Useful for current API refs, skill handling, or agent setup.
Share bugs, ideas, or general feedback.
Designs and iterates production-grade frontend interfaces. Real working code, committed design choices, exceptional craft.
Before any design work or file edits, pass these gates. Skipping them produces generic output that ignores the project.
| Gate | Required check | If fail |
|---|---|---|
| Context | The PRODUCT.md / DESIGN.md loader result is known from node .claude/skills/impeccable/scripts/load-context.mjs. | Run the loader before continuing. |
| Product | PRODUCT.md exists and is not empty or placeholder ([TODO] markers, <200 chars). | Run /impeccable teach, refresh context, then resume. Never synthesize PRODUCT.md from the user's original prompt alone. |
| Command | The matching command reference is loaded when a sub-command is used. | Load the reference before continuing. |
| Craft | /impeccable craft has a user-confirmed shape brief for this task. teach / PRODUCT.md never counts as shape. | Run /impeccable shape and wait for explicit brief confirmation. |
| Image | Required visual probes / mocks are generated or skipped with a reason. | Resolve the image-generation gate in shape.md or craft.md before code. |
| Mutation | All active gates above pass. | Do not edit project files yet. |
Codex-style agents must state this before editing files:
IMPECCABLE_PREFLIGHT: context=pass product=pass command_reference=pass shape=pass|not_required image_gate=pass|skipped:<reason> mutation=open
For /impeccable craft, shape=pass is only valid after a separate user response approving the shape design brief, or when the user provided an already-confirmed brief in the request. Do not mark shape=pass after writing PRODUCT.md, summarizing assumptions, or drafting an unconfirmed brief yourself.
Other harnesses should follow the same checklist when they can expose this state.
Two files at the project root, case-insensitive:
Load both in one call:
node .claude/skills/impeccable/scripts/load-context.mjs
Consume the full JSON output. Never pipe through head, tail, grep, or jq.
If the output is already in this session's conversation history, don't re-run. Exceptions requiring a fresh load: you just ran /impeccable teach or /impeccable document (they rewrite the files), or the user manually edited one.
/impeccable live already warms context via live.mjs — if you've run live.mjs, don't also run load-context.mjs this session.
If PRODUCT.md is missing, empty, or placeholder ([TODO] markers, <200 chars): run /impeccable teach, then resume the user's original task with the fresh context. If the original task was /impeccable craft, resume into /impeccable shape before any implementation work.
If DESIGN.md is missing: nudge once per session ("Run /impeccable document for more on-brand output"), then proceed.
Every design task is brand (marketing, landing, campaign, long-form content, portfolio — design IS the product) or product (app UI, admin, dashboard, tool — design SERVES the product).
Identify before designing. Priority: (1) cue in the task itself ("landing page" vs "dashboard"); (2) the surface in focus (the page, file, or route being worked on); (3) register field in PRODUCT.md. First match wins.
If PRODUCT.md lacks the register field (legacy), infer it once from its "Users" and "Product Purpose" sections, then cache the inferred value for the session. Suggest the user run /impeccable teach to add the field explicitly.
Load the matching reference: reference/brand.md or reference/product.md. The shared design laws below apply to both.
Apply to every design, both registers. Match implementation complexity to the aesthetic vision — maximalism needs elaborate code, minimalism needs precision. Interpret creatively. Vary across projects; never converge on the same choices. Claude is capable of extraordinary work — don't hold back.
#000 or #fff. Tint every neutral toward the brand hue (chroma 0.005–0.01 is enough).Dark vs. light is never a default. Not dark "because tools look cool dark." Not light "to be safe."
Before choosing, write one sentence of physical scene: who uses this, where, under what ambient light, in what mood. If the sentence doesn't force the answer, it's not concrete enough — add detail until it does.
"Observability dashboard" does not force an answer. "SRE glancing at incident severity on a 27-inch monitor at 2am in a dim room" does. Run the sentence, not the category.
Match-and-refuse. If you're about to write any of these, rewrite the element with different structure.
border-left or border-right greater than 1px as a colored accent on cards, list items, callouts, or alerts. Never intentional. Rewrite with full borders, background tints, leading numbers/icons, or nothing.background-clip: text combined with a gradient background. Decorative, never meaningful. Use a single solid color. Emphasis via weight or size.--.If someone could look at this interface and say "AI made that" without doubt, it's failed. Cross-register failures are the absolute bans above. Register-specific failures live in each reference.
Category-reflex check. If someone could guess the theme and palette from the category name alone — "observability → dark blue", "healthcare → white + teal", "finance → navy + gold", "crypto → neon on black" — it's the training-data reflex. Rework the scene sentence and color strategy until the answer is no longer obvious from the domain.
| Command | Category | Description | Reference |
|---|---|---|---|
craft [feature] | Build | Shape, then build a feature end-to-end | reference/craft.md |
shape [feature] | Build | Plan UX/UI before writing code | reference/shape.md |
teach | Build | Set up PRODUCT.md and DESIGN.md context | reference/teach.md |
document | Build | Generate DESIGN.md from existing project code | reference/document.md |
extract [target] | Build | Pull reusable tokens and components into design system | reference/extract.md |
critique [target] | Evaluate | UX design review with heuristic scoring | reference/critique.md |
audit [target] | Evaluate | Technical quality checks (a11y, perf, responsive) | reference/audit.md |
polish [target] | Refine | Final quality pass before shipping | reference/polish.md |
bolder [target] | Refine | Amplify safe or bland designs | reference/bolder.md |
quieter [target] | Refine | Tone down aggressive or overstimulating designs | reference/quieter.md |
distill [target] | Refine | Strip to essence, remove complexity | reference/distill.md |
harden [target] | Refine | Production-ready: errors, i18n, edge cases | reference/harden.md |
onboard [target] | Refine | Design first-run flows, empty states, activation | reference/onboard.md |
animate [target] | Enhance | Add purposeful animations and motion | reference/animate.md |
colorize [target] | Enhance | Add strategic color to monochromatic UIs | reference/colorize.md |
typeset [target] | Enhance | Improve typography hierarchy and fonts | reference/typeset.md |
layout [target] | Enhance | Fix spacing, rhythm, and visual hierarchy | reference/layout.md |
delight [target] | Enhance | Add personality and memorable touches | reference/delight.md |
overdrive [target] | Enhance | Push past conventional limits | reference/overdrive.md |
clarify [target] | Fix | Improve UX copy, labels, and error messages | reference/clarify.md |
adapt [target] | Fix | Adapt for different devices and screen sizes | reference/adapt.md |
optimize [target] | Fix | Diagnose and fix UI performance | reference/optimize.md |
live | Iterate | Visual variant mode: pick elements in the browser, generate alternatives | reference/live.md |
Plus two management commands — pin <command> and unpin <command>, detailed below.
Setup (context gathering, register) is already loaded by then; sub-commands don't re-invoke /impeccable.
If the first word is craft, setup still runs first, but reference/craft.md owns the rest of the flow. If setup invokes teach as a blocker, finish teach, refresh context, then resume the original command and target.
Pin creates a standalone shortcut so /<command> invokes /impeccable <command> directly. Unpin removes it. The script writes to every harness directory present in the project.
node .claude/skills/impeccable/scripts/pin.mjs <pin|unpin> <command>
Valid <command> is any command from the table above. Report the script's result concisely — confirm the new shortcut on success, relay stderr verbatim on error.