fix: align marketplace.json with Claude Code plugin schema#266
fix: align marketplace.json with Claude Code plugin schema#266
Conversation
Use object-form source {"source": "url", "url": "..."} instead of bare
URL strings, and remove unrecognized "requires"/"core" keys that cause
schema validation errors when loading the marketplace.
There was a problem hiding this comment.
Pull request overview
Updates the Claude Code marketplace registry (.claude-plugin/marketplace.json) to match the claimed official marketplace schema and eliminate schema validation warnings when loaded in Claude Code.
Changes:
- Converted each plugin
sourcefrom a URL string to an object form and appended.gitto URLs. - Removed
requiresandcorefields from plugin entries. - Added
homepageto each plugin entry.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "name": "next-task", | ||
| "source": "https://github.com/agent-sh/next-task", | ||
| "source": {"source": "url", "url": "https://github.com/agent-sh/next-task.git"}, | ||
| "description": "Master workflow orchestrator: autonomous workflow with model optimization (opus/sonnet/haiku), two-file state management, workflow enforcement gates, 14 specialist agents", |
There was a problem hiding this comment.
Changing plugins[].source from a string to an object will break the agentsys installer/runtime, which currently treats this field as a string (e.g., plugin.source.startsWith(...) and source.match(...) in bin/cli.js). With the new structure the CLI will throw at runtime unless it’s updated to handle both formats (e.g., normalize source to a string URL before use).
| "source": {"source": "url", "url": "https://github.com/agent-sh/next-task.git"}, | ||
| "description": "Master workflow orchestrator: autonomous workflow with model optimization (opus/sonnet/haiku), two-file state management, workflow enforcement gates, 14 specialist agents", |
There was a problem hiding this comment.
The .git suffix in the GitHub URLs (e.g. next-task.git) is incompatible with the current plugin fetcher in bin/cli.js, which builds a GitHub API tarball URL from the parsed owner/repo (it will end up requesting repos/agent-sh/next-task.git/..., which 404s). Either remove the .git suffix here or update the fetch logic to strip it when constructing API URLs.
| { | ||
| "name": "ship", | ||
| "source": "https://github.com/agent-sh/ship", | ||
| "source": {"source": "url", "url": "https://github.com/agent-sh/ship.git"}, | ||
| "description": "Complete PR workflow: commit to production, skips review when called from next-task, removes task from registry on cleanup, automatic rollback", | ||
| "version": "1.0.0", | ||
| "category": "deployment", | ||
| "requires": ["next-task"], | ||
| "core": ">=1.0.0" | ||
| "homepage": "https://github.com/agent-sh/ship" | ||
| }, |
There was a problem hiding this comment.
Removing requires and core from marketplace entries changes installer behavior: dependency resolution (resolvePluginDeps) and version compatibility warnings (checkCoreCompat) in bin/cli.js rely on these fields. If Claude Code’s schema can’t accept them, consider moving these fields to an agentsys-specific manifest (or deriving them from each plugin’s plugin.json) and updating the installer to read from that source so installs still pull required dependencies and enforce minimum versions.
Summary
sourcefrom bare URL strings to the required object form{"source": "url", "url": "..."}matching the official Claude Code marketplace schemarequiresandcorekeys from all 14 plugin entrieshomepagefield to each pluginFixes the schema validation error when loading the agentsys marketplace in Claude Code.
Test plan
/pluginin Claude Code and verify no schema warnings