Design Audit Skill
DEPRECATED (RA-7057, 2026-07-16). Superseded by the installed
impeccableskill (pbakaus/impeccable v3.9.1 — 46-rule set, 23 sub-commands), which covers/impeccable audit,/impeccable critique,/impeccable polish, and/impeccable boldernatively.design-systemand the launch/UI chains now route toimpeccable. This file is retained unchanged below as the archaeological record.
The quality gate of the design stack. Runs after ui-component-builder ships a component
and before it goes to production. Identifies technical flaws, UX problems, and aesthetic
anti-patterns without touching functionality.
Read DESIGN.md before auditing. Audit against the project's design system, not generic best practices.
Slash Commands
/audit [area]
Technical quality check — no edits, only findings.
Reports issues across: accessibility, performance, responsive layout, token compliance, animation correctness.
Output format:
AUDIT FINDINGS — [component name]
🔴 Critical (must fix before ship)
- [issue] at [file:line]
🟡 Warning (should fix)
- [issue] at [file:line]
🟢 Passed
- [checks that passed]
Score: X/10
/critique [area]
UX + visual design review — no edits, only observations.
Evaluates: visual hierarchy, content clarity, emotional resonance, information density, consistency with DESIGN.md.
/polish [area]
Final pass before shipping. Makes targeted improvements to:
- Spacing consistency (enforce DESIGN.md spacing scale)
- Typography precision (line-height, letter-spacing, weight)
- Hover/focus state completeness
- Micro-animation quality
/bolder
Amplify a design that's too timid. Use when a design is correct but forgettable. Increases visual contrast, strengthens typographic hierarchy, adds one deliberate moment of delight.
/quieter
Tone down a design that's fighting for attention. Use when too many elements compete. Reduces weight of secondary elements, simplifies colour usage, creates clear focal point.
/distill
Strip to essence. Remove every element that doesn't answer: "does the user need this to complete their task?"
The 24 Anti-Patterns (run npx impeccable detect src/)
These are automatically detectable flaws. A design audit must check all 24:
Layout & Structure
- Side-tab borders — coloured left-border on tab/nav items is overused. Use background fill instead.
- 3-equal-card hero — three equal-width cards as the primary page layout. Asymmetry is stronger.
- Centered hero with centered text — everything centered feels like a template. Offset the layout.
- Flexbox percentage math —
flex: 0 0 33.333%instead of CSS Grid. Breaks at edge cases. - Off-scale spacing —
mt-7,px-3.5,gap-[13px]— values not in the design system.
Color & Visual
- Purple/neon gradient —
from-purple-500 to-blue-600is the default AI aesthetic. Replace. - Dark glow abuse —
shadow-lgon dark backgrounds has zero visibility. Shadows are for light UIs. - Transparent overlay mismatch — using
bg-black/50on a dark surface — undetectable. - Status colour decoration — using green/red for non-status elements (purely decorative).
- Missing tinted neutrals —
gray-*classes instead ofzinc-*or brand-tinted equivalents.
Typography
- Skipped heading levels —
<h1>to<h3>with no<h2>— accessibility and hierarchy violation. - Line-length violation — prose wider than 75ch — illegible for reading.
- Uniform font weight — all text
font-normal. No hierarchy established through weight. - Missing tabular numerals — numbers in tables/metrics without
font-variant-numeric: tabular-numscause column misalignment. - Monospace for prose — using a code font for descriptive text.
Motion & Interaction
- Bounce easing —
cubic-bezier(0.34,1.56,0.64,1)for UI transitions — feels cartoonish. - Animating layout properties — animating
top,left,width,heightinstead oftransform. - No reduced-motion handling — animations not wrapped with
prefers-reduced-motion: reduce. - useState for spring physics — using React state for cursor magnetic effects causes jank. Use Framer Motion
useMotionValue.
Interaction States & Accessibility
- Missing focus ring —
:focus-visiblewith no visible indicator. Keyboard users invisible. - Small touch targets — interactive elements below 44×44px on mobile.
- Missing icon button labels —
<button><svg /></button>with noaria-label. - Missing empty state — list/collection component with no empty state — renders blank.
- Missing loading state — data-fetching component with no skeleton or spinner.
Typography Audit (impeccable patterns)
The 3-word brand test
Before selecting or validating a font choice, ask: what are 3 concrete words describing the brand personality?
- Pi-CEO: authoritative · precise · technical
- A font matching this: Geist (engineered, precise, modern) ✅ Not: Poppins (rounded, friendly ❌)
Anti-reflexes (fonts that don't fit despite feeling "safe")
- "It's a tech product → use Inter" — Inter is fine but generic. Geist is more precise.
- "It's serious → use a serif" — wrong reflex. Precision can be sans-serif.
- "It's friendly → use rounded fonts" — wrong if the brand is powerful, not approachable.
Font pair validation rules
- Heading and body fonts must have compatible x-heights
- Two fonts from the same category at the same size = mistake, not choice
- Weight jump of at least 300 between body and heading (e.g. 400 → 700)
Color Audit (OKLCH)
When auditing colour choices, evaluate in OKLCH space (not HSL):
- HSL
hsl(220, 70%, 50%)can look different at same lightness across hues - OKLCH
oklch(55% 0.18 250)provides perceptually uniform lightness - Tinted neutrals must be hued toward the brand colour specifically, not generic warm/cool
To convert hex → OKLCH: use oklch.com or the CSS color() function.
UX Writing Audit
Flag these in any copy within components:
| Bad | Better |
|---|---|
| "Click here" | "[specific action]" |
| "Error occurred" | "[what failed] — [how to fix]" |
| "Loading..." | "Loading [specific content]..." |
| "No data" | "No [specific content type] yet — [action to add]" |
| "Are you sure?" | "Kill session RA-1234? This cannot be undone." |
| "Success!" | "[What specifically succeeded]" |
| "Invalid input" | "[Which field] [what's wrong]" |
Audit Scoring Rubric
| Dimension | 1–3 (Fail) | 4–6 (Marginal) | 7–9 (Pass) | 10 (Ship) |
|---|---|---|---|---|
| DESIGN.md compliance | Token violations throughout | Minor deviations | All tokens correct | Exemplary — extends the system |
| State completeness | Missing 2+ states | Missing 1 state | All states present | All states + edge cases |
| Accessibility | Missing labels, focus, targets | One a11y gap | WCAG AA compliant | WCAG AAA |
| Anti-patterns | 5+ present | 2–4 present | 0–1 present | Zero, and pattern actively avoided |
| Typography | No hierarchy | Weak hierarchy | Clear hierarchy | Masterful — every level earns its role |