Impeccable
Design rules for AI coding agents. Catches the specific tells that mark output as AI-generated.
The 23 commands (overview)
| Command |
What it does |
craft |
Full shape-then-build flow with visual iteration |
init |
One-time setup: gather design context, write PRODUCT.md and DESIGN.md |
document |
Generate root DESIGN.md from existing project code |
extract |
Pull reusable components and tokens into the design system |
shape |
Plan UX/UI before writing code |
critique |
UX design review: hierarchy, clarity, emotional resonance |
audit |
Run technical quality checks (a11y, performance, responsive) |
polish |
Final pass, design system alignment, and shipping readiness |
bolder |
Amplify boring designs |
quieter |
Tone down overly bold designs |
distill |
Strip to essence |
harden |
Error handling, i18n, text overflow, edge cases |
onboard |
First-run flows, empty states, activation paths |
animate |
Add purposeful motion |
colorize |
Introduce strategic color |
typeset |
Fix font choices, hierarchy, sizing |
layout |
Fix layout, spacing, visual rhythm |
delight |
Add moments of joy |
overdrive |
Add technically extraordinary effects |
clarify |
Improve unclear UX copy |
adapt |
Adapt for different devices |
optimize |
Performance improvements |
live |
Visual variant mode: iterate on elements in the browser |
44 deterministic detector rules
These are the most common AI-generated UI mistakes. Check for each before shipping.
Typography tells
- Inter for everything — replace with a font that has character (Geist, Outfit, Satoshi, Cabinet Grotesk)
- Only 400 and 700 weights — add 500 and 600 for hierarchy
- Headlines too small — display text should feel heavy
- No letter-spacing on large text — use negative tracking
- System font fallbacks visible — explicitly set the font stack
- Mixed serif/sans usage — pick one family for body, one for display
- Numbers in proportional font in tables — use tabular figures
- All-caps everything — sentence case or italics, not all-caps
Color tells
- Pure
#000 or #fff — use off-black (#0a0a0a) and off-white (#fafafa)
- Two accent colors — pick one, remove the rest
- Purple-to-blue gradient — the most common AI gradient tell
- Saturated accent at 100% — desaturate to 70-80%
- Mixing warm and cool grays — pick one gray family, tint consistently
- Gray text on colored backgrounds — low contrast fails WCAG
- Random dark sections in light pages — commit to one mode
- Identical hex values across components — should be design tokens, not magic numbers
Layout tells
- Three equal card columns — the #1 AI layout tell
- Centered everything — break symmetry with offsets
height: 100vh — use min-height: 100dvh
- No max-width on body — content stretches edge-to-edge
- Cards forced to equal height — allow variable heights
- Uniform border-radius — vary the radius by element type
- No overlap or layering — flat, flat, flat
- Top and bottom padding always equal — adjust optically
- Left sidebar on every dashboard — try top nav, floating menu, collapsible
- Dense layouts with no whitespace — let it breathe
Interactivity tells
- No hover states — add background shift or transform
- No active/pressed feedback — add
scale(0.98) on click
- Zero-duration transitions — use 200-300ms
- No focus ring — accessibility blocker, fix with
:focus-visible
- Generic spinners — use skeleton loaders that match layout shape
- No empty states — design a "getting started" view
window.alert() for errors — use inline error messages
- Buttons linking to
# — link to real destinations or disable
- No current-page indicator in nav — style the active link differently
- Instant scroll on anchor click — add
scroll-behavior: smooth
- Animating
top/left/width/height — use transform and opacity
Content tells
- "John Doe" or "Jane Smith" — use diverse, realistic names
- Round numbers everywhere — use messy data: 47.2%, $99.00
- Lorem ipsum — use realistic placeholder content
- Buzzword overload — "synergy", "leverage", "transformative"
- Inconsistent date formats — pick one (ISO 8601 recommended)
Code quality tells
- Magic numbers in CSS — use design tokens / CSS variables
- No
:focus-visible for keyboard nav — accessibility requirement
Anti-patterns (don't do these)
- Don't use overused fonts (Arial, Inter, system defaults)
- Don't use gray text on colored backgrounds
- Don't use pure black/gray (always tint)
- Don't wrap everything in cards or nest cards inside cards
- Don't use bounce/elastic easing (feels dated)
- Don't animate non-transform properties
- Don't use
window.alert() for inline errors
- Don't link to
# in production code
- Don't use
Lorem ipsum in real product copy
Usage pattern
1. Run /impeccable init — set up PRODUCT.md and DESIGN.md
2. Build the feature
3. Run /impeccable audit — check this list
4. Run /impeccable polish — final pass
5. Ship
Installation (for reference)
This skill ships inside the custodian-kernel package under
custodian/bundled_skills/design-impeccable/SKILL.md.
Your AI agent (Hermes, Claude Code, Codex) will load this file when working on frontend tasks. No additional install steps required.
1---2name: design-impeccable3description: Anti-pattern detector and design rules for AI coding agents. Catches the specific mistakes AI makes when generating UI: gray text on color, nested cards, broken buttons, missing states. Use before shipping any frontend.4---56# Impeccable78Design rules for AI coding agents. Catches the specific tells that mark output as AI-generated.910## The 23 commands (overview)1112| Command | What it does |13|---------|--------------|14| `craft` | Full shape-then-build flow with visual iteration |15| `init` | One-time setup: gather design context, write PRODUCT.md and DESIGN.md |16| `document` | Generate root DESIGN.md from existing project code |17| `extract` | Pull reusable components and tokens into the design system |18| `shape` | Plan UX/UI before writing code |19| `critique` | UX design review: hierarchy, clarity, emotional resonance |20| `audit` | Run technical quality checks (a11y, performance, responsive) |21| `polish` | Final pass, design system alignment, and shipping readiness |22| `bolder` | Amplify boring designs |23| `quieter` | Tone down overly bold designs |24| `distill` | Strip to essence |25| `harden` | Error handling, i18n, text overflow, edge cases |26| `onboard` | First-run flows, empty states, activation paths |27| `animate` | Add purposeful motion |28| `colorize` | Introduce strategic color |29| `typeset` | Fix font choices, hierarchy, sizing |30| `layout` | Fix layout, spacing, visual rhythm |31| `delight` | Add moments of joy |32| `overdrive` | Add technically extraordinary effects |33| `clarify` | Improve unclear UX copy |34| `adapt` | Adapt for different devices |35| `optimize` | Performance improvements |36| `live` | Visual variant mode: iterate on elements in the browser |3738## 44 deterministic detector rules3940These are the most common AI-generated UI mistakes. Check for each before shipping.4142### Typography tells43441. **Inter for everything** — replace with a font that has character (Geist, Outfit, Satoshi, Cabinet Grotesk)452. **Only 400 and 700 weights** — add 500 and 600 for hierarchy463. **Headlines too small** — display text should feel heavy474. **No letter-spacing on large text** — use negative tracking485. **System font fallbacks visible** — explicitly set the font stack496. **Mixed serif/sans usage** — pick one family for body, one for display507. **Numbers in proportional font in tables** — use tabular figures518. **All-caps everything** — sentence case or italics, not all-caps5253### Color tells54559. **Pure `#000` or `#fff`** — use off-black (`#0a0a0a`) and off-white (`#fafafa`)5610. **Two accent colors** — pick one, remove the rest5711. **Purple-to-blue gradient** — the most common AI gradient tell5812. **Saturated accent at 100%** — desaturate to 70-80%5913. **Mixing warm and cool grays** — pick one gray family, tint consistently6014. **Gray text on colored backgrounds** — low contrast fails WCAG6115. **Random dark sections in light pages** — commit to one mode6216. **Identical hex values across components** — should be design tokens, not magic numbers6364### Layout tells656617. **Three equal card columns** — the #1 AI layout tell6718. **Centered everything** — break symmetry with offsets6819. **`height: 100vh`** — use `min-height: 100dvh`6920. **No max-width on body** — content stretches edge-to-edge7021. **Cards forced to equal height** — allow variable heights7122. **Uniform border-radius** — vary the radius by element type7223. **No overlap or layering** — flat, flat, flat7324. **Top and bottom padding always equal** — adjust optically7425. **Left sidebar on every dashboard** — try top nav, floating menu, collapsible7526. **Dense layouts with no whitespace** — let it breathe7677### Interactivity tells787927. **No hover states** — add background shift or transform8028. **No active/pressed feedback** — add `scale(0.98)` on click8129. **Zero-duration transitions** — use 200-300ms8230. **No focus ring** — accessibility blocker, fix with `:focus-visible`8331. **Generic spinners** — use skeleton loaders that match layout shape8432. **No empty states** — design a "getting started" view8533. **`window.alert()` for errors** — use inline error messages8634. **Buttons linking to `#`** — link to real destinations or disable8735. **No current-page indicator in nav** — style the active link differently8836. **Instant scroll on anchor click** — add `scroll-behavior: smooth`8937. **Animating `top`/`left`/`width`/`height`** — use `transform` and `opacity`9091### Content tells929338. **"John Doe" or "Jane Smith"** — use diverse, realistic names9439. **Round numbers everywhere** — use messy data: 47.2%, $99.009540. **Lorem ipsum** — use realistic placeholder content9641. **Buzzword overload** — "synergy", "leverage", "transformative"9742. **Inconsistent date formats** — pick one (ISO 8601 recommended)9899### Code quality tells10010143. **Magic numbers in CSS** — use design tokens / CSS variables10244. **No `:focus-visible` for keyboard nav** — accessibility requirement103104## Anti-patterns (don't do these)105106- Don't use overused fonts (Arial, Inter, system defaults)107- Don't use gray text on colored backgrounds108- Don't use pure black/gray (always tint)109- Don't wrap everything in cards or nest cards inside cards110- Don't use bounce/elastic easing (feels dated)111- Don't animate non-transform properties112- Don't use `window.alert()` for inline errors113- Don't link to `#` in production code114- Don't use `Lorem ipsum` in real product copy115116## Usage pattern117118```1191. Run /impeccable init — set up PRODUCT.md and DESIGN.md1202. Build the feature1213. Run /impeccable audit — check this list1224. Run /impeccable polish — final pass1235. Ship124```125126## Installation (for reference)127128This skill ships inside the `custodian-kernel` package under129`custodian/bundled_skills/design-impeccable/SKILL.md`.130131Your AI agent (Hermes, Claude Code, Codex) will load this file when working on frontend tasks. No additional install steps required.