doing-a-simple-two-sta…
Use when analyzing a large corpus of text, code, or data that exceeds a single agent's effective context - orchestrates parallel…
Use when creating, releasing, or maintaining a Claude Code Plugin Marketplace - covers marketplace.json schema, version management, release checklists, changelog conventions, and validation to prevent sync drift between plugin.json and marketplace.json
Claude Code
$ npx -y skills add ed3dai/ed3d-plugins --skill maintaining-a-marketplace --agent claude-code
Codex
$ npx skills add ed3dai/ed3d-plugins --skill maintaining-a-marketplace -a codex -y
Cursor
$ npx skills add ed3dai/ed3d-plugins --skill maintaining-a-marketplace -a cursor -y
Gemini CLI
$ npx skills add ed3dai/ed3d-plugins --skill maintaining-a-marketplace -a gemini-cli -y
GitHub Copilot
$ npx skills add ed3dai/ed3d-plugins --skill maintaining-a-marketplace -a github-copilot -y
OpenCode
$ npx skills add ed3dai/ed3d-plugins --skill maintaining-a-marketplace -a opencode -y
Windsurf
$ npx skills add ed3dai/ed3d-plugins --skill maintaining-a-marketplace -a windsurf -y
name: maintaining-a-marketplace description: Use when creating, releasing, or maintaining a Claude Code Plugin Marketplace - covers marketplace.json schema, version management, release checklists, changelog conventions, and validation to prevent sync drift between plugin.json and marketplace.json
A Claude Code Plugin Marketplace is a git repository containing `.claude-plugin/marketplace.json` that catalogs plugins for discovery and installation. The primary maintenance challenge is **sync drift** — keeping versions, descriptions, and metadata consistent across `plugin.json`, `marketplace.json`, and `CHANGELOG.md`.
my-marketplace/
.claude-plugin/
marketplace.json # Required: marketplace catalog
plugins/
plugin-a/
.claude-plugin/
plugin.json # Required: plugin manifest
skills/
commands/
agents/
plugin-b/
.claude-plugin/
plugin.json{
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
"name": "my-marketplace",
"owner": {
"name": "Your Name",
"email": "you@example.com"
},
"metadata": {
"description": "Brief marketplace description",
"version": "1.0.0",
"pluginRoot": "./plugins"
},
"plugins": [
{
"name": "my-plugin",
"source": "./plugins/my-plugin",
"description": "What this plugin does",
"version": "1.0.0",
"author": {
"name": "Your Name",
"email": "you@example.com"
},
"license": "MIT",
"keywords": ["category1", "category2"],
"category": "development"
}
]
}**Required fields:**
**Each plugin entry requires:**
**Common optional fields:** `description`, `version`, `author`, `license`, `keywords`, `category`, `tags`, `homepage`, `repository`
**Fields that DO NOT exist** (do not invent these): `displayName`, `installUrl`, `path`, `marketplace` (as wrapper object)
// Relative path (monorepo — only works with git-based marketplace add)
"source": "./plugins/my-plugin"
// GitHub repository
"source": { "source": "github", "repo": "owner/repo" }
// GitHub with pinned version
"source": { "source": "github", "repo": "owner/repo", "ref": "v2.0.0", "sha": "a1b2c3..." }
// Git URL (GitLab, Bitbucket, self-hosted)
"source": { "source": "url", "url": "https://gitlab.com/team/plugin.git" }When releasing a new plugin version, update these files **in this order**:
1. **`plugins/<name>/.claude-plugin/plugin.json`** — Bump `version` 2. **`.claude-plugin/marketplace.json`** — Update matching plugin entry's `version` to the same value 3. **`CHANGELOG.md`** — Add entry at the top (after `# Changelog` heading) 4. **Validate** — Run `claude plugin validate .` or `/plugin validate .` from the marketplace root 5. **Commit and push** — Single commit with all three file changes
## plugin-name X.Y.Z Brief description of the release (1-2 sentences). **New:** - Specific new features or additions **Changed:** - Modifications to existing behavior **Fixed:** - Bug fixes
Only include sections that apply. Be specific — "Added `code-review-checklist` skill for systematic code review" not "Added new skill."
After editing, verify these match:
All three MUST show the same version string.
1. Create directory structure with `.claude-plugin/marketplace.json` 2. Add plugin entries with `name` and `source` at minimum 3. Add `$schema` field for validation 4. Validate: `claude plugin validate .` 5. Test locally: `/plugin marketplace add ./my-marketplace` 6. Push to git host for distribution
1. Read the plugin's `plugin.json` to extract metadata 2. Add entry to `plugins` array in `marketplace.json` with fields matching plugin.json 3. Validate: `claude plugin validate .` 4. Add changelog entry for the marketplace update
Users add your marketplace by its git location:
# GitHub /plugin marketplace add owner/repo # Other git hosts /plugin marketplace add https://gitlab.com/company/plugins.git # Specific branch/tag /plugin marketplace add https://gitlab.com/company/plugins.git#v1.0.0 # Local (development) /plugin marketplace add ./my-marketplace
Users install plugins from your marketplace:
/plugin install plugin-name@marketplace-name
Add to `.claude/settings.json` in a project repo to prompt team members to install:
{
"extraKnownMarketplaces": {
"company-tools": {
"source": { "source": "github", "repo": "your-org/claude-plugins" }
}
},
"enabledPlugins": {
"formatter@company-tools": true
}
}Manual install uses existing git credential helpers. For background auto-updates, set environment tokens:
| Provider | Variables | |---------
Ed's repo of Claude Code plugins, centered around a research-plan-implement workflow. Only a tiny bit cursed. If you're lucky.
Use when analyzing a large corpus of text, code, or data that exceeds a single agent's effective context - orchestrates parallel…
Use when creating a new Claude Code plugin or setting up plugin structure - provides complete file organization, manifest format,…
Use when creating specialized subagents for Claude Code plugins or the Task tool - covers description writing for…
Use when completing development phases or branches to identify and update CLAUDE.md or AGENTS.md files that may have become stale…
Use when writing skills, CLAUDE.md files, agent prompts, or any directives that involve shell commands, environment variables,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.