Prompt
Audit this project and make the design system LLM-readable.
Step 1: Audit
Scan every CSS/SCSS file. List every hardcoded visual value:
hex colors, rgb/rgba colors, pixel spacing, raw font sizes,
font weights, border radii, z-index values, box shadows,
and transition durations. Group them by category. Count totals.
Report which files have the most hardcoded values.
Step 2: Token layer
Create a tokens.css file with three layers:
- Layer 1: upstream design system tokens (use existing ones
if the project already uses a design system, otherwise
derive sensible primitives from the audit)
- Layer 2: project aliases that reference Layer 1 with
fallbacks, e.g. --color-text: var(--ds-text, #292A2E)
- Layer 3 is the components themselves — they only ever
reference Layer 2 aliases, never raw values
Include tokens for: colors (text, background, link, border,
interactive states), spacing (at least 8 steps), typography
(font families, sizes, weights, line heights), border radius,
elevation/shadow, z-index, and motion/transitions.
Step 3: Spec files
Create a specs/ directory. Write structured markdown specs:
- specs/foundations/ — color.md, spacing.md, typography.md,
radius.md, elevation.md, motion.md
- specs/tokens/ — token-reference.md (master map of every
CSS variable, its value, and when to use it)
- specs/components/ — one file per major component in the
project. Each spec follows this template:
1. Metadata (name, category, status)
2. Overview (when to use, when not to use)
3. Anatomy (parts of the component)
4. Tokens used (which CSS variables it references)
5. Props/API (if applicable)
6. States (default, hover, active, focus, disabled, error)
7. Code example
8. Cross-references (related components)
Only spec components that actually exist in this project.
Step 4: Audit script
Create scripts/token-audit.js (or .sh) that:
- Scans all CSS files for hardcoded values
- Suggests the correct token for each violation
- Prints file, line number, violation, and suggestion
- Returns exit code 1 if any errors found (CI-ready)
- Distinguishes errors (hardcoded colors, spacing) from
warnings (raw durations, uncommon values)
Step 5: Replace hardcoded values
Go through every CSS file and replace hardcoded values with
the tokens from Step 2. Every color:, background:, padding:,
margin:, gap:, border-radius:, font-size:, font-weight:,
box-shadow:, z-index:, and transition: should reference a
var(--token). No raw values should remain.
Step 6: Project instructions
Add a section to the project's AI instruction file (CLAUDE.md,
.cursorrules, or equivalent) that says:
"Before writing or modifying any UI code, read the relevant
spec file in specs/. Use only tokens from tokens.css. Run the
token audit script before committing. Zero errors required."
Run the audit script at the end and confirm zero violations.How to use
- 01
Create a new git branch. This prompt edits every CSS file in the project.
- 02
Open Claude Code, Cursor, or another coding agent at the project root.
- 03
Paste the prompt and let it work through all six steps.
- 04
Review the token file, specs, and replaced values, then run the audit script yourself before merging.
Tips
- Best for projects with lots of raw CSS or SCSS. Tailwind-only projects get less out of it.
- If you already use a design system, name it in a line above the prompt so Layer 1 maps to its real tokens.
- Read the original write-up for the reasoning behind the three token layers.