chore: make the Claude plugin self-contained for directory validation - #1041
Conversation
The marketplace entry used source "./", so the Claude plugin directory
treated the whole monorepo (1,400+ files) as the plugin and validation
timed out. The plugin now lives in plugins/claude/uploads with its own
manifest, icon, .mcp.json, hook, and skills, and the marketplace points
source at that folder.
Root skills/ stays canonical for the Agent Plugins spec, Codex,
`npx skills add`, and the web worker. The plugin folder carries a
generated copy (pnpm plugin-skills:sync), and CI fails on drift
(pnpm plugin-skills:check), because a plugin can't reference files
outside its folder and the directory rejects symlinks.
The manifest gains displayName and docs, support, privacy, and terms
URLs; the plugin README gains a data and network access section. The
hook runs a script by ${CLAUDE_PLUGIN_ROOT} path in exec form.
🦋 Changeset detectedLatest commit: 0b5ce33 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (2)
🚫 Excluded labels (none allowed) (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
uploads-auth | 0b5ce33 | Sep 26 2026, 02:48 PM |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
uploads-web | 0b5ce33 | Commit Preview URL Branch Preview URL |
Sep 26 2026, 02:49 PM |
Why
Validating
buildinternet/uploadsin the Claude plugin directory's submission form timed out. The marketplace entry usedsource: "./", so the directory treated the whole monorepo (1,400+ files) as the plugin. Even if validation had finished, the monorepo would break the plugin-folder file limits (512 files, 256 KiB per file, no video binaries).buildinternet/releases-clihit the same problem and fixed it the same way (releases-cli#423–#428).What changed
plugins/claude/uploads/now holds the manifest,icon.svg,.mcp.json, the pre-PR hook, the three skills, and the README: 9 files..claude-plugin/marketplace.jsonpointssourcethere and drops the inlineskills/mcpServers.skills/is still what the Agent Plugins spec, Codex,npx skills add, and the web worker read. The spec has no skills-path field, and a Claude plugin can't reference files outside its folder or use symlinks.pnpm plugin-skills:syncwrites the copy; a new CI step (pnpm plugin-skills:check) fails on drift.displayNameplus docs, support, privacy, and terms URLs. The icon is found at.claude-plugin/icon.svgby default.sh ${CLAUDE_PLUGIN_ROOT}/hooks/pre-pr-screenshot.shin exec form, because the directory's subfolder rules want plain${CLAUDE_PLUGIN_ROOT}paths. Codex keeps the roothooks/hooks.json.gh pr create.plugin.jsonextension paths, the version sync/check scripts, AGENTS.md,docs/releasing.md, and a patch changeset for@uploads/plugin.Verification
claude plugin validate plugins/claude/uploadsandclaude plugin validate .(marketplace) both pass with no warnings.pnpm plugin-version:check,pnpm plugin-skills:check, andpnpm changeset:lintpass.npx skills add . --listlists each skill once, with no duplicates from the copy.After merge
Re-run Validate in the directory form with repository
buildinternet/uploadsand plugin pathplugins/claude/uploads. If the portal flags the hook, drophooks/from the plugin folder.