Marketplace sync to claude.ai fails validation: duplicate skill names from nested skills/*/upstream/ directories
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 287
- Forks
- 58
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 17
Description
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 fullhttps://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.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by inspecting the 11 listed skills//upstream/SKILL.md files alongside their parent skills//SKILL.md files, and compare the declared names. Review how the repository expects upstream copies to be stored before choosing a consistent layout. Done means no duplicate skill names remain under skills/ and the vercel-plugin marketplace sync passes validation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- markdown
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 56/100