# Cursor Plugin Shadcn Rule Registry Bases Parity

> Keep registry base and radix trees in sync when editing shared UI

- Skill: `kunanonj/cursor-plugin-shadcn-rule-registry-bases-parity` (Agent Skill)
- Install (CLI): `npx skillmds@latest add kunanonj/cursor-plugin-shadcn-rule-registry-bases-parity`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kunanonj/cursor-plugin-shadcn-rule-registry-bases-parity/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: KunanonJ (https://skillmd.com/u/kunanonj)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/kunanonj/cursor-plugin-shadcn-rule-registry-bases-parity

---


# Registry bases: Base UI ↔ Radix parity

`apps/v4/registry/bases/base` and `apps/v4/registry/bases/radix` are **parallel registries**. Anything that exists in both trees for the same purpose (preview blocks, mirrored examples, shared card layouts, etc.) **must stay in sync**.

## When editing

- If you change a file under **`bases/base/...`**, apply the **same behavioral and visual change** to the matching path under **`bases/radix/...`** (and the reverse).
- Only diverge where APIs differ (e.g. import paths like `@/registry/bases/base/ui/*` vs `@/registry/bases/radix/ui/*`, or Base UI vs Radix component props).
- Do **not** update only one side unless the user explicitly asks for a single-base change.

## Typical mirrored paths

- `blocks/preview/**` — preview cards and blocks
- Parallel `ui/*` components when both exist for the same component

After edits, briefly confirm both trees were updated (or state why one side is intentionally unchanged).

