[BUG] Marketplace with plugin "source": "." passes `claude plugin validate` but fails to sync on claude.ai
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?
A marketplace whose plugin entries use "source": "." is accepted by claude plugin validate (no error, no warning), but adding it on claude.ai (Customize → Plugins → Add marketplace → Add from a repository) fails with a generic sync error that wrongly suggests the repository URL is the problem.
Changing "source": "." to "source": "./" fixes the claude.ai sync. No other change was needed.
The repository was created with Claude Code, so Claude Code's own tooling produced/accepted a manifest that claude.ai rejects.
What Should Happen?
One of:
- claude.ai accepts
"."as the marketplace root, like Claude Code does; or claude plugin validatewarns that"."is not accepted by claude.ai and suggests"./".
Also, the claude.ai error should name the actual problem (the invalid source value and its plugin entry) instead of suggesting the repository URL is wrong.
Error Messages/Logs
claude.ai (French UI):
Échec de la synchronisation du marketplace. Vérifiez l'URL du dépôt et réessayez.
(≈ "Failed to sync marketplace. Check the repository URL and try again.")
claude plugin validate:
√ Validation passed
Steps to Reproduce
- Use a public GitHub repo whose
.claude-plugin/marketplace.jsonhas plugin entries of this form:
``json``
{ "name": "go-doc-src", "source": ".", "strict": false,
"skills": ["./skills/go-doc-src"] }
(real example: https://github.com/dolmen-go/dolmen-golang-skills before the fix)
- Run
claude plugin validate .→√ Validation passed. - On claude.ai: Customize → Plugins → Add marketplace → Add from a repository →
dolmen-go/dolmen-golang-skills→ sync error above. - Change
"source": "."to"source": "./"on every entry, push, retry on claude.ai → marketplace added successfully.
For comparison, https://github.com/anthropics/skills uses the same shape (strict: false + skills) with "source": "./".
Claude Model
Not sure / Multiple models
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.296 (Claude Code)
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Other
Additional Information
The mismatch is between Claude Code (claude plugin validate, which accepts .) and the claude.ai marketplace importer (which only accepts ./). Fixing either side would resolve it.