shadcn-component-boundaries
Installation
SKILL.md
shadcn Component Boundaries
Activation Contract
Load this skill when creating, moving, wrapping, or reviewing UI components in a project that uses shadcn.
Hard Rules
- Resolve paths from
components.json(itsaliasesforcomponentsandui) or the installed shadcn skill's project-context command. Never assumecomponents/versussrc/components/. - Reserve the resolved
uidirectory for registry-managed primitives installed from shadcn or compatible registries. - Never place product-owned wrappers, composites, sections, domain components, or feature behavior in the
uidirectory. - Put reusable product-owned components under
common/in the resolved components directory. - Put feature-owned components in a named feature folder or colocate them with that feature.
- Compose: wrap a registry primitive from
common/or a feature folder instead of adding product behavior to the primitive. - Keep dependencies one-way: feature → common → ui. The
uidirectory never imports fromcommonor feature folders. - Use semantic tokens from the global stylesheet. Treat tokens as quarks and registry primitives as atoms; do not force molecule or organism names into paths.
- When
@shadcn/lintis configured,shadcn/no-restyleenforces theuiboundary: call sites may pass layout classes throughclassName, but look comes from variants and sizes. Add a variant to the primitive instead of restyling at the call site.