[BUG] Marketplace validation incorrectly checks $schema field for reserved words
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
The marketplace name validation checks all JSON fields for reserved words ("anthropic", "claude", "official") instead of just the name field. This causes a false positive when using the official $schema URL.
Including the official schema reference in marketplace.json:
{
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
"name": "my-legitimate-marketplace",
...
}
Triggers the reserved name error even though the marketplace name is valid.
What Should Happen?
Reserved name validation should only check the name field, not other fields like $schema. The official schema URL should be usable without triggering validation errors.
Error Messages/Logs
Error: Invalid schema: name: Marketplace name cannot impersonate official Anthropic/Claude marketplaces. Names containing "official", "anthropic", or "claude" in official-sounding combinations are reserved.
Steps to Reproduce
- Create a marketplace.json with the official
$schemaand a valid non-reserved name:
{
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
"name": "tgulls-plugins-private",
"description": "Personal plugins",
"owner": { "name": "tgulls" },
"plugins": []
}
- Push to a git repository
- Run
/plugin marketplace add <repo-url> - Observe: validation fails with reserved name error
- Remove the
$schemaline and retry - Observe: validation succeeds
Claude Model
Opus
Is this a regression?
I don't know
Claude Code Version
2.1.7
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
iTerm2
Additional Information
Workaround: Omit the $schema field from marketplace.json until this is fixed.
Root cause hypothesis: The validation regex/check is running against the entire JSON content or all field values rather than being scoped to just the name field.
Related issues: This is distinct from #14145 and #18329 which are about the official marketplace using reserved names. This issue is about the validation scope being too broad.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗