Generate a comprehensive web design reference sheet (docs/design/design-reference.md) and its companion enforcement skill (.agents/skills/{project-slug}/SKILL.md) for any website project. Extracts tokens from CSS files, validates completeness against a JSON schema scratchpad, inspects existing components, and produces a 12-section living document covering colours, typography, spacing, layout, borders, shadows, motion, component patterns, accessibility, dark mode, and Figma sync notes. Use when starting a new project, onboarding a design system, creating a Figma reference sheet, porting design tokens, or auditing existing styles. Triggers on: "create a design reference", "generate a style guide", "document the design tokens", "make a brand reference sheet", "create design docs", "port design tokens", "audit existing styles".
97
100%
Does it follow best practices?
Impact
89%
2.61xAverage score across 3 eval scenarios
Passed
No known issues
Generate a project-specific design reference sheet and companion enforcement skill from any website codebase, mirroring the structure of the Figma Web Design Reference Sheet.
Document what exists, not what should exist.
Every invented token is technical debt dressed as documentation — developers trust the
reference sheet and will use the wrong values in production. When data is missing, write
TBD — not yet defined. A reference sheet with honest gaps is more useful than one with
plausible fictions.
See references/workflow.md for the full 8-step generation process:
Discover design tokens (grep CSS for -- custom properties, @theme blocks, font imports)
grep -r "\-\-" src/ --include="*.css" -h | grep -E "^\s+--" | sort -u
grep -r "@theme\|@font-face\|@import" src/ --include="*.css"Inspect existing components (read 3–5 representative files)
Check dark mode implementation
Check accessibility patterns
Fill templates/skill-output.yaml — structured scratchpad validated against schemas/design-reference.schema.json
Generate docs/design/design-reference.md from the template
Generate .agents/skills/{project-slug}/SKILL.md from the enforcement skill template
Confirm output with a structured report listing populated sections and TBD items
| File | Contents |
|---|---|
references/workflow.md | Full 8-step generation workflow |
references/design-reference-template.md | Output template for docs/design/design-reference.md |
references/enforcement-skill-template.md | Output template for .agents/skills/{project-slug}/SKILL.md |
templates/skill-output.yaml | Structured scratchpad — populate before writing any markdown |
schemas/design-reference.schema.json | JSON schema to validate the populated scratchpad |
references/accessibility-guidelines.md | WCAG 2.1 AA criteria, contrast ratios, keyboard nav, ARIA, touch targets |
references/typography-principles.md | Hierarchy, readability, type pairing, modular scale, typographic colour |
| File | Contents |
|---|---|
references/psychology-of-color.md | Colour associations, brand strategy, harmony, cultural context, WCAG contrast |
references/visual-hierarchy.md | The seven hierarchy variables, Z/F-patterns, component hierarchy patterns |
references/grid-and-layout-theory.md | Column grids, 8-point system, responsive strategies, proportional systems |
references/whitespace-theory.md | Macro/micro whitespace, density, hierarchy, component spacing patterns |
references/gestalt-principles.md | Proximity, similarity, figure-ground, closure, continuity, Prägnanz |
references/elements-of-design.md | Line, shape, form, space, texture, value, colour — the raw vocabulary |
references/principles-of-design.md | Balance, contrast, emphasis, movement, pattern, rhythm, unity, proportion, alignment |
WHY: Invented values create false documentation. Developers trust the reference sheet and may use wrong tokens, causing inconsistencies that are hard to trace.
| BAD | GOOD |
|---|---|
Agent infers a --space-4: 1rem token that doesn't exist in code | Agent writes TBD — not yet defined for the spacing section |
| Agent adds a full 9-shade colour palette from one button colour | Agent documents only the 2 hardcoded hex values found, notes they're not yet formalised tokens |
TBDWHY: Blank sections are invisible gaps; TBD — not yet defined is an actionable signal to the team. It appears in the confirmation block, making gaps impossible to miss.
| BAD | GOOD |
|---|---|
## Dark Mode\n\n (empty heading) | ## Dark Mode\n\nTBD — not yet defined |
| Skipping a section entirely | Including the section header with explicit TBD marker |
WHY: A reference sheet that requires editing before use wastes developer time and introduces errors. Code examples that don't run erode trust in the document.
| BAD | GOOD |
|---|---|
<Button variant="primary" /> (JSX component that doesn't exist) | Actual HTML/JSX from the codebase that renders as-is |
Pseudo-code like {primary button styles} | Real className strings copied from source files |
WHY: Multiple token sources create ambiguity about which file to update. Naming the authoritative file makes the reference sheet a navigation aid, not just a snapshot.
Consequence: When developers don't know the master file, they update whichever CSS file is open — creating duplicate or conflicting tokens. Merge conflicts follow, and the reference sheet becomes unreliable. Name the single source of truth explicitly in §1 Brand Identity.
WHY: A generic description means the skill doesn't activate correctly for the project. Project-specific descriptions ensure the enforcement skill fires when working on that codebase.
| BAD | GOOD |
|---|---|
description: Enforce design tokens for any web project | description: Enforce design tokens for the Acme Corp marketing site |
WHY: Even well-known frameworks have project-level overrides. Reading the actual source files is the only way to capture what is real, not what is typical.
| BAD | GOOD |
|---|---|
Assuming Tailwind breakpoints are sm/md/lg/xl without checking | Running grep on the config/CSS to confirm actual breakpoint values |