Shadcn Component Boundaries

C3SC0-V4113/Scaffold/skills/shadcn-component-boundaries

作者 C3SC0-V4113ba1fac59145ed48f727247299ebb09289b87f27bApache-2.03 个星标收录于 2026年10月9日更新于 2026年10月9日仓库3天前更新

Trigger: components/ui, shadcn, component placement, common components, feature components, atomic design. Enforce registry and product component boundaries.

AI 生成的概览

为 shadcn 项目强制执行注册表原语、共享 common 组件与功能文件夹之间的组件放置边界。

功能
该技能提供规则和决策表,用于在使用 shadcn 的项目中对 UI 组件进行分类和放置。它从 components.json 解析 components 和 ui 目录,将 ui 目录保留给注册表管理的原语,并把可复用的产品组件放入 common/、功能组件放入功能文件夹。它还强制单向依赖(feature 到 common 到 ui),并报告每个创建或移动组件的归属分类和最终路径。
适用场景
在基于 shadcn 的项目中创建、移动、包装或审查 UI 组件时使用。它用于判断组件应放在哪里,以及产品行为是否泄漏到注册表原语中。
运行要求
需要一个使用 shadcn 且包含 components.json 文件的项目;可选使用已安装的 shadcn 技能的项目上下文命令,以及在配置时使用 @shadcn/lint。它不附带脚本,只有说明和一个参考文档。

shadcn Component Boundaries

Activation Contract

Load this skill when creating, moving, wrapping, or reviewing UI components in a project that uses shadcn.

Hard Rules

  1. Resolve paths from components.json (its aliases for components and ui) or the installed shadcn skill's project-context command. Never assume components/ versus src/components/.
  2. Reserve the resolved ui directory for registry-managed primitives installed from shadcn or compatible registries.
  3. Never place product-owned wrappers, composites, sections, domain components, or feature behavior in the ui directory.
  4. Put reusable product-owned components under common/ in the resolved components directory.
  5. Put feature-owned components in a named feature folder or colocate them with that feature.
  6. Compose: wrap a registry primitive from common/ or a feature folder instead of adding product behavior to the primitive.
  7. Keep dependencies one-way: feature → common → ui. The ui directory never imports from common or feature folders.
  8. 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.
  9. When @shadcn/lint is configured, shadcn/no-restyle enforces the ui boundary: call sites may pass layout classes through className, but look comes from variants and sizes. Add a variant to the primitive instead of restyling at the call site.

Decision Gates

Component ownershipDestination
shadcn or compatible registry primitiveresolved ui directory
reusable product-owned component<components>/common/
feature-specific component<components>/<feature>/ or feature colocation
route or page compositionframework route/page directory
theme tokenglobal stylesheet variables

Execution Steps

  1. Read components.json and resolve the components and ui aliases to directories.
  2. Search installed primitives before creating custom markup.
  3. Classify ownership and reuse scope with the table above.
  4. Place the component; see references/placement-examples.md [blocked] for edge cases.
  5. Verify no product-owned file entered ui and no reverse import was introduced.

Output Contract

State the ownership classification and final path for every component created or moved, and confirm the dependency direction holds.

References

  • references/placement-examples.md [blocked] — worked placement decisions.

来源与署名

来源:C3SC0-V4113/Scaffold位于skills/shadcn-component-boundaries提交ba1fac5

许可证: Apache-2.0

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架