Summary
A fresh shadcn install with nothing built on it yet. Everything below describes the kit you are starting from.

What your AI agent sees today

Your agent reads AGENTS.md. Next.js wrote it, and it is only about Next.js: nothing in it mentions the theme file or the component folder, so the agent does not know the kit is there. shadcn offers a skill for that and it is not installed here. Add the rules file below and the agent knows the theme, the components and the styling rules.

AGENTS.md · generic (AGENTS.md standard)

Readable by: Claude Code — · Codex ✓ · Cursor ✓ · Claude Code skips AGENTS.md: add a CLAUDE.md containing the single line @AGENTS.md and it reads the same rules

Give the agent the answers

the rules file generated from this scan, wrapped as a present. Agents do not always ask before inventing, so the plugin also checks every file they edit, and guard-my-design-system checks the pull request.

13
distinct colours
Ideal Design System~24 ▼
Avg shadcn repo83 · cleaner than 88% ▼
Reputable systems14 ▼
12
shades of grey
Ideal Design System~13 ▼
Avg shadcn repo11 ▲
Reputable systems2 ▲
0
off-scale spacing values
Ideal Design System~12 ▼
Avg shadcn repo14 · cleaner than 100% ▼
Reputable systems5 ▼
0
duplicated components
Ideal Design System0 =
Avg shadcn repo21 · cleaner than 94% ▼
Reputable systems9 ▼
0
inline style blocks
Ideal Design System0 =
Avg shadcn repo45 · cleaner than 94% ▼
Reputable systems12 ▼
0
near-identical colour pairs
Ideal Design System0 =
Avg shadcn repo6 · cleaner than 75% ▼
Reputable systems1 ▼
0
!important declarations
Ideal Design System0 =
Avg shadcn repo1 ▼
Reputable systems3 ▼
303
components never imported
Ideal Design System0 ▲
Avg shadcn repo20 · messier than 100% ▲
Reputable systems0 ▲
catalogue stock: installed by the shadcn CLI, not used yet
0
arbitrary bracket values
Ideal Design System~20 ▼
Avg shadcn repo131 · cleaner than 100% ▼
Reputable systems0 =
0
off-theme colours per 100 files
Ideal Design System~25 ▼
Avg shadcn repo50 · cleaner than 100% ▼
0
components recoloured from outside per 100 files
Ideal Design System~2 ▼
Avg shadcn repo2 · cleaner than 81% ▼
Palette
13colours

A healthy product palette is up to ~24 colours: one brand hue with a few tints, one accent, up to 13 greys, and status colours.

13 tokens0 strays
Colour usage
Sized by how often each is used
token stray
Grey ramp · sorted dark → light · how many can you tell apart?

The shadcn theme and the 2 shadcn checks

shadcn gives you a theme file of named variables and a set of components with variants. These receipts show where your own code went around both.

the theme file, variable by variable

32 variables for light, 31 for dark in app/globals.css.

0 colours from outside the theme in 0 of 3 own files · 0 per 100 files

Your own code takes every colour from the theme file. This is what shadcn is designed for.

0 shadcn components recoloured through className · 0 per 100 files

No shadcn component is given a colour through className. Variants are doing their job.

0 off-scale spacing values

a disciplined repo keeps these around a dozen · on-scale Tailwind steps (·) shown for context · off-scale in coral

·2
108
·1
79
·1.5
61
·0
52
·4
34
·2.5
28
·3
25
·7
17
·0.5
14
·8
9
·px
6
·6
4
·12
4
·3.5
2
·18
1
·5
1

Typography & shape

2
typefaces
Ideal Design System~3 ▼
Avg shadcn repo3 ▼
Reputable systems1 ▲
6
font sizes
Ideal Design System~10 ▼
Avg shadcn repo21 · cleaner than 94% ▼
Reputable systems5 ▲
10
border radii
Ideal Design System~10 =
Avg shadcn repo14 · cleaner than 81% ▼
the font sizes, by use
·sm ×79·xs ×25·base ×9·[CanvasText] ×2·[0.8rem] ×1·[0.625rem] ×1
the radii, by use
·lg ×36·md ×27·full ×21·xl ×7·none ×5·sm ×4·[2px] ×2·[4px] ×2·[min(var(--radius-md),10px)] ×1·[inherit] ×1

The adoption map

354 components defined · tile area is import count · the real system, drawn to scale

No code of your own uses the kit yet. The counts below are the components using each other.

componentuseddefined inprops
<Button> 17× components/ui/button.tsx variant size
<Separator> 4× components/ui/separator.tsx orientation
<Input> 2× components/ui/input.tsx type
<InputGroup> 2× components/ui/input-group.tsx none
<InputGroupAddon> 2× components/ui/input-group.tsx align
<InputGroupButton> 2× components/ui/input-group.tsx type variant size
<Skeleton> 2× components/ui/skeleton.tsx none
<Dialog> 1× components/ui/dialog.tsx none
<DialogContent> 1× components/ui/dialog.tsx showCloseButton
<DialogDescription> 1× components/ui/dialog.tsx none
303 catalogue components not used yet · installed by the shadcn CLI and waiting to be used, not written by this team
untouched since 2026
<Accordion><AccordionContent><AccordionItem><AccordionTrigger><Alert><AlertAction><AlertDescription><AlertDialog><AlertDialogAction><AlertDialogCancel><AlertDialogContent><AlertDialogDescription><AlertDialogFooter><AlertDialogHeader><AlertDialogMedia><AlertDialogOverlay>+287 more

Reach for one before building anything new. This list is counted and shown, and takes nothing off the score.

Generated by roast-my-design-system ver. 9.4.0 · free to run: npx roast-my-design-system@latest · also a Claude Code + Codex skill and a local MCP server
Designed and built by Greg Kozakiewicz · 9144bae8024e · Think it got something wrong?
Non-destructive scanRead-onlyPaths are real