Summary
vercel/vercel-plugin cannot be added as a marketplace on claude.ai (Settings → Customize → Plugins → Add from a repository). The repo syncs, then fails server-side content validation because 11 skills each declare the same name: at two different paths.
This means the plugin works when installed locally via Claude Code, but cannot be enabled as an account-level plugin, and therefore is unavailable in Claude Code cloud sessions.
The error
The UI shows only:
Marketplace sync failed. Check the repository URL and try again.
That message is misleading — the repository URL is fine. The actual API response (sync_status: "failed_content", at commit c4a1c4e2e16feefb1d9f2ad2a4a451abd0ae91c6) is:
{"plugins": [{"name": "vercel-plugin", "error": "Duplicate skill name 'ai-sdk' found in 'skills/ai-sdk' and 'skills/ai-sdk/upstream'; Duplicate skill name 'chat-sdk' ... 'eve' ... 'next-cache-components' ... 'next-forge' ... 'next-upgrade' ... 'vercel-cli' ... 'vercel-sandbox' ... 'workflow'"}], "message": "1 plugins found, 1 failed validation"}
Cause
The repo ships a nested upstream/ directory inside 11 skill directories, and both levels declare the same skill name:
skills/ai-sdk/SKILL.md -> name: ai-sdk
skills/ai-sdk/upstream/SKILL.md -> name: ai-sdk
Affected: ai-sdk, chat-sdk, eve, next-cache-components, next-forge, next-upgrade, nextjs, react-best-practices, vercel-cli, vercel-sandbox, workflow — 11 nested directories, 44 SKILL.md files across 33 skills.
Claude Code's local plugin loader tolerates the collision. The claude.ai marketplace validator rejects the whole plugin over it.
Suggested fix
Move the upstream/ copies outside skills/ (e.g. to a vendor/ or .upstream/ directory), or give the nested copies distinct name: values, so no two SKILL.md files under skills/ share a name.
Reproduction
- claude.ai → Settings → Customize → Plugins → Add → Add from a repository
- Enter
vercel/vercel-plugin (or the full https://github.com/vercel/vercel-plugin.git — same result)
- Sync fails with the message above
Verified against a local clone of the marketplace at the same commit.
Summary
vercel/vercel-plugincannot be added as a marketplace on claude.ai (Settings → Customize → Plugins → Add from a repository). The repo syncs, then fails server-side content validation because 11 skills each declare the samename:at two different paths.This means the plugin works when installed locally via Claude Code, but cannot be enabled as an account-level plugin, and therefore is unavailable in Claude Code cloud sessions.
The error
The UI shows only:
That message is misleading — the repository URL is fine. The actual API response (
sync_status: "failed_content", at commitc4a1c4e2e16feefb1d9f2ad2a4a451abd0ae91c6) is:Cause
The repo ships a nested
upstream/directory inside 11 skill directories, and both levels declare the same skill name:Affected:
ai-sdk,chat-sdk,eve,next-cache-components,next-forge,next-upgrade,nextjs,react-best-practices,vercel-cli,vercel-sandbox,workflow— 11 nested directories, 44SKILL.mdfiles across 33 skills.Claude Code's local plugin loader tolerates the collision. The claude.ai marketplace validator rejects the whole plugin over it.
Suggested fix
Move the
upstream/copies outsideskills/(e.g. to avendor/or.upstream/directory), or give the nested copies distinctname:values, so no twoSKILL.mdfiles underskills/share a name.Reproduction
vercel/vercel-plugin(or the fullhttps://github.com/vercel/vercel-plugin.git— same result)Verified against a local clone of the marketplace at the same commit.