원클릭으로
shadcn-parity
Clone shadcn implementation patterns with source-by-source parity. Use when the user says "shadcn parity", asks to mirror shadcn, copy shadcn UX/architecture/tests, or wants more than inspiration.
메뉴
Clone shadcn implementation patterns with source-by-source parity. Use when the user says "shadcn parity", asks to mirror shadcn, copy shadcn UX/architecture/tests, or wants more than inspiration.
Run a structured code review (Codex default, Claude optional) as a closeout check on a local or PR branch before commit or ship.
Autogoal-backed planning, status, review, dashboard, apply, and tracking for upstream shadcn docs syncs into Plate docs. Use when the user asks for `sync-shadcn`, `sync-shadcn status`, `sync-shadcn review`, `sync-shadcn dashboard`, `sync-shadcn apply`, a scoped `sync-shadcn <feature>` lane, to sync shadcn docs, audit newer shadcn docs changes, compare `../shadcn/apps/v4` with `apps/www`, update the shadcn sync baseline, or decide what to adopt, fork, defer, or exclude from upstream shadcn.
Work heavyweight framework or library tasks with planning-first research, selective deep analysis, and rigorous handoff
Constitutional source of truth for reusable Plate architecture and public API design. Use when introducing or changing reusable public APIs, runtime/service boundaries, builder or factory patterns, extension registration contracts, naming/layering rules, or performance-sensitive architecture.
Review performance lanes with GitHub-scale tactics not owned by Vercel React rules: cohort segmentation, repeated-unit budgets, interaction-level INP, memory tagging, degradation contracts, browser trace proof, and production dashboards.
Use when a Slate Yjs collaboration behavior is suspicious and Potion should be used as a live reference implementation through dev-browser, especially for offline/reconnect, selection, or history scenarios.
| description | Clone shadcn implementation patterns with source-by-source parity. Use when the user says "shadcn parity", asks to mirror shadcn, copy shadcn UX/architecture/tests, or wants more than inspiration. |
| name | shadcn-parity |
| metadata | {"skiller":{"source":".agents/rules/shadcn-parity.mdc"}} |
When the user asks for shadcn parity, treat ../shadcn as the source of
truth for registry behavior and patterns.
Do not give them "inspired by shadcn". Do not invent a Plate-specific model when upstream shadcn already has one.
The rule is simple:
Plate does not fork shadcn CLI. Do not talk about Plate as if it owns a custom installer. Plate owns a registry and template sync layer around the upstream shadcn contract.
If you diverge, say exactly why.
Shadcn owns the contract:
@acme/buttoncomponents.json registry semanticsPlate owns the content and delivery:
apps/www/src/registry/*apps/www/scripts/build-registry.mtsapps/www/public/r and apps/www/public/rd@plate namespace configured in template components.jsontooling/scripts/update-template.shtooling/scripts/prepare-local-template-registry.mjsImportant boundary:
Plate's registry build is custom. The goal is still upstream parity at the item and resolver boundary.
Registry items should stay as close as possible to upstream RegistryItem
shape.
When building or changing Plate registry items:
../shadcn firstRegistry dependency rules:
button, command, and popover when an upstream
shadcn registry item exists@plate/* for Plate self-dependencies in registry sourcehttps://platejs.org/r/*.json, so direct URL
installs resolve transitive Plate items from the same registry base@shadcn/* as compatibility input only; do not write it in Plate
registry source or generated outputDo not fork shadcn CLI to compensate for Plate registry problems. Fix the registry data or the Plate sync tooling instead.
For template installs, shadcn CLI is still the installer. Plate supplies the registry.
Template rules:
templates/*/components.json aligned with shadcn registry semantics@plate in components.json as the install entrypoint for Plate
items../shadcn before inventing a custom ruleFor local template sync:
--local uses local-file mode, not localhostapps/www/public/rdIf a change would make public installs cleaner but would break local-file sync, call that out and fix both sides together.
These are real Plate divergences today. Treat them as constraints, not as a pattern to spread.
apps/www, not from upstream shadcn
infrastructure@plate registry in components.jsonStop and reassess if you are about to do any of this: