roast-my-design-system
Your design system, measured.
Free, on npm and as a Claude Code + Codex skill. A deterministic scanner reads your repo and returns four things:
- A health score you can defend in a meeting. 0-100, benchmarked against Ideal Design System norms, 30 public repos and 10 reputable design systems. Monorepos are scored package by package, so the disciplined UI library and the messy app stop hiding behind one blended number.
- The receipts behind it. Every colour and its near-identical twin, every spacing value, duplicated or never-imported component, inline style and !important, with real file paths. The values are rendered, not just counted: your type scale at real sizes, your radii as real corners.
- The first fixes ranked by payoff. A Where to start list derived from your own numbers, with what each move is worth and where the score lands if you do them all: three tweaks, 55 becomes 85.
- Rules that stop the mess coming back. A generated design-system-rules.md for your CLAUDE.md or .cursor/rules, so your AI agent follows your system instead of guessing at it.
Read only, no network, one shareable HTML report.
Run it with npx
npx roast-my-design-system
One command in any repo. No install, no Claude needed.
Install the Claude Code skill
/plugin marketplace add pencilrebel/roast-my-design-system
/plugin install roast-my-design-system@roast-my-design-system
/plugin install roast-my-design-system@roast-my-design-system
The full experience: the roast in chat, then the fixes walked with you. Submitted to the official Claude plugin directory and awaiting review; the commands above work today.
Manual install (Claude Code, any version)
git clone https://github.com/pencilrebel/roast-my-design-system.git
cp -r roast-my-design-system/skills/roast-my-design-system ~/.claude/skills/
cp -r roast-my-design-system/skills/roast-my-design-system ~/.claude/skills/
Works everywhere, installs the same skill. Use ~/.codex/skills/ instead for OpenAI Codex.
Example roasts
Real reports from public repos, hosted exactly as the skill generates them. Every number is deterministic; every path is real.
vercel/ai-chatbot103 arbitrary values like [13px] punched through the Tailwind scale
75/100
excalidraw/excalidraw42 colour pairs nearly identical, copy-paste, not decisions
55/100
dubinc/dub621 arbitrary bracket values and 22 duplicated components
15/100