Install any skill in seconds. Free to start, no credit card required.
Get Started Free →ninehills/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, la
4 of 23 test cases passed with the skill.
Tokens, turns and time describe resource use, not a dollar price.
Lift withheld: 5 comparable cases; this report requires 8.
One of 4 test cases the skill fixed. Same model, same prompt, with and without the skill.
Determine the register for this task: 'Design a landing page for our internal analytics app'. The file `PRODUCT.md` contains `register: product`. Which register applies?
| Checked | Without skill | With skill |
|---|---|---|
| Selects the brand register because the task cue 'landing page' takes priority over the PRODUCT.md register field. | Missed | Passed |
The instructions your model reads when the skill loads.
Designs and iterates production-grade frontend interfaces. Real working code, committed design choices, exceptional craft.
Two steps before any design work. Both are required. Skipping either produces generic output that ignores the project.
Two files at the project root, case-insensitive:
Load both in one call:
node {{scripts_path}}/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 {{command_prefix}}impeccable teach or {{command_prefix}}impeccable document (they rewrite the files), or the user manually edited one.
{{command_prefix}}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 {{command_prefix}}impeccable teach, then resume the user's original task with the fresh context.
If DESIGN.md is missing: nudge once per session ("Run {{command_prefix}}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 {{command_prefix}}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.
test cases passed with the skill
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.