01
Your components and where they live
shadcn/ui and its path, such as @/components/ui, so agents extend the components you have before writing new ones.
Ask an agent for a date picker and it may install a new library, switch primitives or pull in a second icon set. A shadcn DESIGN.md names your components, the primitives under them and your icons, so Cursor, Claude Code and Codex reuse what’s already there.
Create your DESIGN.mdWhat agents add without a decision
+ @mui/x-date-pickers
+ @radix-ui/react-dialog
+ react-icons
+ components/Modal.tsx
+ components/ui/dialog-2.tsx
What your DESIGN.md tells them
## Components
Library shadcn/ui
Path @/components/ui
Base Base UI
## Icons
Set Lucide, outline
Reuse these. Don’t install another library.
shadcn/ui copies components into your repository, so to an agent they look like any other React files. It doesn’t know they are your design system. Asked for something new, it writes another dialog, adds Radix next to Base UI, or imports icons from a package you never chose.
None of that breaks the build, which is why it gets merged. A shadcn design system for Cursor or Claude Code needs the decision written down: which library, which primitives, which icons, and a rule to reuse them before adding anything.
01
shadcn/ui and its path, such as @/components/ui, so agents extend the components you have before writing new ones.
02
The primitives your shadcn/ui components are built on, so agents follow the same APIs and never mix the two.
03
Lucide, Phosphor, Heroicons or your own set, with the style you use for default and active states, so icon families don’t mix.
Onefold recognizes shadcn/ui and icon sets like Lucide on your live site. Confirm them, pick Base UI or Radix and add your component path.
Your colors, dark theme, type, corners and shadows come as CSS variables and a Tailwind theme to paste into your stylesheet.
Keep it in the repository and mention it in AGENTS.md or your Cursor rules. The next component request starts from the ones you have.