diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json index d6a344d4..7fadec61 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": { @@ -1114,6 +1126,30 @@ }, "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": "UI" + }, { "name": "tanstack", "source": { diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 03a86dd9..5f1533d5 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -1530,6 +1530,24 @@ "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.", + "category": "ui", + "keywords": ["shadcn", "shadcn-ui", "components", "radix", "base-ui", "ui"], + "tags": ["ui", "skill"], + "source": "./plugins/shadcn-ui", + "relevance": { + "topic": "shadcn/ui", + "signals": { + "cli": ["shadcn"], + "filesRead": ["**/components.json"], + "manifestDeps": [ + { "file": "[/\\\\]package\\.json$", "pattern": "\"shadcn\"\\s*:" } + ] + } + } } ] } diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index 9b05b769..ff31f0a7 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -364,6 +364,11 @@ "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." + }, { "name": "tanstack", "source": "./plugins/tanstack", diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 66c891cc..b86f473a 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -67,5 +67,6 @@ "plugins/axi": "1.2.0", "plugins/playwright-cli": "1.0.0", "plugins/greptile": "1.1.0", + "plugins/shadcn-ui": "1.0.0", "plugins/tanstack": "0.1.0" } diff --git a/README.md b/README.md index 1926f21b..895ad07b 100644 --- a/README.md +++ b/README.md @@ -463,6 +463,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-