From 4ed23e3cb6bcb3d331fb75e87a25400d77dd0786 Mon Sep 17 00:00:00 2001 From: Minsu Lee Date: Tue, 7 Jul 2026 14:50:19 +0900 Subject: [PATCH 1/2] feat(shadcn-ui): add shadcn/ui plugin bundling official skills Add a new shadcn-ui Claude Code plugin bundling the official shadcn/ui skills.sh skills (shadcn + migrate-radix-to-base) from github.com/shadcn/ui, installed via bunx skills add into plugins/shadcn-ui/.agents/skills/. - plugins/shadcn-ui/: new plugin dir with .claude-plugin/plugin.json, generated Codex/Antigravity/Cursor manifests, vendored skills, and skills-lock.json - .claude-plugin/marketplace.json: add shadcn-ui entry with relevance signals (cli "shadcn", components.json) - .agents/plugins/marketplace.json + .cursor-plugin/marketplace.json: regenerated via bun scripts/cli.ts multi-format (Codex regen also reconciled two pre-existing entries already present in the Claude source-of-truth marketplace: claude-code-docs, run-verify) - release-please-config.json + .release-please-manifest.json: add plugins/shadcn-ui package + version 1.0.0 - README.md: add shadcn/ui entry under Built-in Plugins --- .agents/plugins/marketplace.json | 36 ++ .claude-plugin/marketplace.json | 12 + .cursor-plugin/marketplace.json | 5 + .release-please-manifest.json | 3 +- README.md | 6 + .../skills/migrate-radix-to-base/SKILL.md | 173 +++++++ .../migrate-radix-to-base/class-mapping.md | 62 +++ .../migrate-radix-to-base/consumer-props.md | 58 +++ .../migrate-radix-to-base/disclosure.md | 353 ++++++++++++++ .../migrate-radix-to-base/display-misc.md | 410 ++++++++++++++++ .../migrate-radix-to-base/form-controls.md | 390 +++++++++++++++ .../skills/migrate-radix-to-base/menus.md | 409 ++++++++++++++++ .../skills/migrate-radix-to-base/overlays.md | 459 ++++++++++++++++++ .../universal-patterns.md | 286 +++++++++++ .../migrate-radix-to-base/wrapper-shapes.md | 110 +++++ .../shadcn-ui/.agents/skills/shadcn/SKILL.md | 275 +++++++++++ .../.agents/skills/shadcn/agents/openai.yml | 5 + .../skills/shadcn/assets/shadcn-small.png | Bin 0 -> 1049 bytes .../.agents/skills/shadcn/assets/shadcn.png | Bin 0 -> 3852 bytes .../shadcn-ui/.agents/skills/shadcn/cli.md | 290 +++++++++++ .../.agents/skills/shadcn/customization.md | 209 ++++++++ .../.agents/skills/shadcn/evals/evals.json | 77 +++ .../shadcn-ui/.agents/skills/shadcn/mcp.md | 105 ++++ .../.agents/skills/shadcn/registry.md | 277 +++++++++++ .../skills/shadcn/rules/base-vs-radix.md | 306 ++++++++++++ .../.agents/skills/shadcn/rules/chat.md | 224 +++++++++ .../skills/shadcn/rules/composition.md | 201 ++++++++ .../.agents/skills/shadcn/rules/forms.md | 192 ++++++++ .../.agents/skills/shadcn/rules/icons.md | 101 ++++ .../.agents/skills/shadcn/rules/styling.md | 185 +++++++ plugins/shadcn-ui/.claude-plugin/plugin.json | 14 + plugins/shadcn-ui/.codex-plugin/plugin.json | 34 ++ plugins/shadcn-ui/.cursor-plugin/plugin.json | 21 + plugins/shadcn-ui/plugin.json | 20 + plugins/shadcn-ui/skills-lock.json | 17 + release-please-config.json | 26 + 36 files changed, 5350 insertions(+), 1 deletion(-) create mode 100644 plugins/shadcn-ui/.agents/skills/migrate-radix-to-base/SKILL.md create mode 100644 plugins/shadcn-ui/.agents/skills/migrate-radix-to-base/class-mapping.md create mode 100644 plugins/shadcn-ui/.agents/skills/migrate-radix-to-base/consumer-props.md create mode 100644 plugins/shadcn-ui/.agents/skills/migrate-radix-to-base/disclosure.md create mode 100644 plugins/shadcn-ui/.agents/skills/migrate-radix-to-base/display-misc.md create mode 100644 plugins/shadcn-ui/.agents/skills/migrate-radix-to-base/form-controls.md create mode 100644 plugins/shadcn-ui/.agents/skills/migrate-radix-to-base/menus.md create mode 100644 plugins/shadcn-ui/.agents/skills/migrate-radix-to-base/overlays.md create mode 100644 plugins/shadcn-ui/.agents/skills/migrate-radix-to-base/universal-patterns.md create mode 100644 plugins/shadcn-ui/.agents/skills/migrate-radix-to-base/wrapper-shapes.md create mode 100644 plugins/shadcn-ui/.agents/skills/shadcn/SKILL.md create mode 100644 plugins/shadcn-ui/.agents/skills/shadcn/agents/openai.yml create mode 100644 plugins/shadcn-ui/.agents/skills/shadcn/assets/shadcn-small.png create mode 100644 plugins/shadcn-ui/.agents/skills/shadcn/assets/shadcn.png create mode 100644 plugins/shadcn-ui/.agents/skills/shadcn/cli.md create mode 100644 plugins/shadcn-ui/.agents/skills/shadcn/customization.md create mode 100644 plugins/shadcn-ui/.agents/skills/shadcn/evals/evals.json create mode 100644 plugins/shadcn-ui/.agents/skills/shadcn/mcp.md create mode 100644 plugins/shadcn-ui/.agents/skills/shadcn/registry.md create mode 100644 plugins/shadcn-ui/.agents/skills/shadcn/rules/base-vs-radix.md create mode 100644 plugins/shadcn-ui/.agents/skills/shadcn/rules/chat.md create mode 100644 plugins/shadcn-ui/.agents/skills/shadcn/rules/composition.md create mode 100644 plugins/shadcn-ui/.agents/skills/shadcn/rules/forms.md create mode 100644 plugins/shadcn-ui/.agents/skills/shadcn/rules/icons.md create mode 100644 plugins/shadcn-ui/.agents/skills/shadcn/rules/styling.md create mode 100644 plugins/shadcn-ui/.claude-plugin/plugin.json create mode 100644 plugins/shadcn-ui/.codex-plugin/plugin.json create mode 100644 plugins/shadcn-ui/.cursor-plugin/plugin.json create mode 100644 plugins/shadcn-ui/plugin.json create mode 100644 plugins/shadcn-ui/skills-lock.json diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json index 4f6812e1..e585979d 100644 --- a/.agents/plugins/marketplace.json +++ b/.agents/plugins/marketplace.json @@ -556,6 +556,18 @@ }, "category": "Tooling" }, + { + "name": "claude-code-docs", + "source": { + "source": "url", + "url": "https://github.com/pleaseai/claude-code-docs.git" + }, + "policy": { + "installation": "AVAILABLE", + "authentication": "ON_INSTALL" + }, + "category": "Tooling" + }, { "name": "semble", "source": { @@ -1113,6 +1125,30 @@ "authentication": "ON_INSTALL" }, "category": "Productivity" + }, + { + "name": "run-verify", + "source": { + "source": "url", + "url": "https://github.com/pleaseai/run-verify-plugin.git" + }, + "policy": { + "installation": "AVAILABLE", + "authentication": "ON_INSTALL" + }, + "category": "Development" + }, + { + "name": "shadcn-ui", + "source": { + "source": "local", + "path": "./plugins/shadcn-ui" + }, + "policy": { + "installation": "AVAILABLE", + "authentication": "ON_INSTALL" + }, + "category": "Productivity" } ] } diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 8c7742a3..4f54118b 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -1509,6 +1509,18 @@ "source": "github", "repo": "pleaseai/run-verify-plugin" } + }, + { + "name": "shadcn-ui", + "description": "Manages shadcn/ui components and projects — adding, searching, fixing, styling, and composing UI — plus migrating from Radix UI to Base UI.", + "source": "./plugins/shadcn-ui", + "relevance": { + "topic": "shadcn/ui", + "signals": { + "cli": ["shadcn"], + "filesRead": ["**/components.json"] + } + } } ] } diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index 79063db2..7ed031bd 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -363,6 +363,11 @@ "name": "greptile", "source": "./plugins/greptile", "description": "Greptile agent skills for PR quality: check PR review comments and status checks, run Greptile CLI reviews on local branches, and iteratively improve PRs until they score 5/5" + }, + { + "name": "shadcn-ui", + "source": "./plugins/shadcn-ui", + "description": "Manages shadcn/ui components and projects — adding, searching, fixing, styling, and composing UI — plus migrating from Radix UI to Base UI." } ] } diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 60a28e1f..b388e865 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -66,5 +66,6 @@ "plugins/lavish": "1.2.0", "plugins/axi": "1.2.0", "plugins/playwright-cli": "1.0.0", - "plugins/greptile": "1.1.0" + "plugins/greptile": "1.1.0", + "plugins/shadcn-ui": "1.0.0" } diff --git a/README.md b/README.md index 5e380356..9d5c91a0 100644 --- a/README.md +++ b/README.md @@ -458,6 +458,12 @@ Greptile agent skills for PR quality: check PR review comments and status checks **Install:** `/plugin install greptile@pleaseai` | **Source:** [plugins/greptile](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/greptile) +#### shadcn/ui + +Manages shadcn/ui components and projects — adding, searching, fixing, styling, and composing UI (`shadcn`) — plus migrating a project from Radix UI to Base UI (`migrate-radix-to-base`). + +**Install:** `/plugin install shadcn-ui@pleaseai` | **Source:** [plugins/shadcn-ui](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/shadcn-ui) + ## Quick Start The fastest way to get started — install the marketplace and let the plugin recommender auto-detect what you need: diff --git a/plugins/shadcn-ui/.agents/skills/migrate-radix-to-base/SKILL.md b/plugins/shadcn-ui/.agents/skills/migrate-radix-to-base/SKILL.md new file mode 100644 index 00000000..5eb5dc57 --- /dev/null +++ b/plugins/shadcn-ui/.agents/skills/migrate-radix-to-base/SKILL.md @@ -0,0 +1,173 @@ +--- +name: migrate-radix-to-base +description: Migrates React projects and components from Radix UI to Base UI. Use when asked to migrate from radix, move to base-ui, convert radix primitives, or switch a shadcn project's base library. Handles single components ("migrate accordion") and whole projects. +--- + +# Radix UI -> Base UI migration + +You migrate shadcn wrappers, hand-rolled radix compositions, and their +consumers to `@base-ui/react`, keeping the project buildable at every step. +Be precise; never guess a mapping. When a prop or part is not in these +reference files, check `node_modules/@base-ui/react/**/*.d.ts` before +transforming, and record gaps in the report. + +## Preflight (always) + +1. `npx shadcn@latest info --json` (or the project's runner): gives the + current base, STYLE (e.g. `radix-lyra`), tailwind version, aliases, + installed components, and package manager. Trust it over inference. +2. Detect the package manager (packageManager field / lockfile: + pnpm-lock.yaml, bun.lock, yarn.lock, package-lock.json) and use IT for + every install. Never leave a stale lockfile. +3. Require a clean git tree; work on a branch; one commit per component. +4. Baseline check BEFORE touching dependencies: run the project's + typecheck/build so pre-existing failures are never attributed to you. +5. Install `@base-ui/react` alongside radix. Radix packages are removed only + after the LAST component is migrated (both coexist fine). + +## Strategy: golden pair first, transformation engine second + +- **Golden pair via the CLI (preferred).** If the project is shadcn with a + known style (`radix-