| name | marketplace-manager |
| description | Automatically manages marketplace catalog updates, syncs marketplace.json, and handles plugin distribution when user mentions marketplace update, sync catalog, or add to marketplace. Specific to claude-code-plugins two-catalog system. |
| allowed-tools | Read, Write, Edit, Grep, Bash |
Marketplace Manager
Purpose
Automatically manages the claude-code-plugins marketplace catalog system, handling updates to marketplace.extended.json, syncing to marketplace.json, and ensuring catalog integrity.
Trigger Keywords
- "update marketplace"
- "sync marketplace" or "sync catalog"
- "add to marketplace"
- "marketplace catalog"
- "update catalog"
- "regenerate marketplace"
Two-Catalog System
Critical Understanding:
marketplace.extended.json (SOURCE OF TRUTH)
├── Full metadata
├── Extended fields (featured, mcpTools, etc.)
└── Edit THIS file manually
↓ npm run sync-marketplace
marketplace.json (GENERATED)
├── CLI-compatible subset
├── Sanitized fields
└── NEVER edit directly
Marketplace Management Tasks
1. Add Plugin to Catalog
When adding new plugin:
// Add to marketplace.extended.json
{
"name": "plugin-name",
"source": "./plugins/category/plugin-name",
"description": "Clear one-line description",
"version": "1.0.0",
"category": "productivity",
"keywords": ["keyword1", "keyword2"],
"author": {
"name": "Author Name",
"email": "[email protected]"
},
"repository": "https://github.com/user/repo",
"featured": false // true for featured plugins
}
Then:
npm run sync-marketplace
2. Update Plugin Version
When bumping version:
- Update
plugins/category/plugin-name/.claude-plugin/plugin.json - Update marketplace.extended.json entry
- Run
npm run sync-marketplace - Validate sync worked:
git diff .claude-plugin/marketplace.json
3. Sync Validation
After sync, verify:
# Check marketplace.json was regenerated
git status .claude-plugin/marketplace.json
# Validate JSON syntax
jq empty .claude-plugin/marketplace.extended.json
jq empty .claude-plugin/marketplace.json
# Check specific plugin entry
jq '.plugins[] | select(.name == "plugin-name")' .claude-plugin/marketplace.json
4. Featured Plugin Management
Mark plugin as featured:
{
"name": "plugin-name",
"featured": true, // Add this field
// ... rest of fields
}
Featured plugins appear first in marketplace.
5. Catalog Integrity Checks
I automatically verify:
- ✅ No duplicate plugin names
- ✅ All source paths exist
- ✅ All plugins have required fields
- ✅ Versions are semantic (x.y.z)
- ✅ Categories are valid
- ✅ JSON is valid
- ✅ Sync is current (no uncommitted changes to marketplace.json)
Valid Categories
productivity, security, testing, deployment, documentation,
analysis, integration, ai, devops, debugging, code-quality,
design, example, api-development, database, crypto,
performance, ai-ml, other
Sync Process
When I sync marketplace:
Backup Current State
cp .claude-plugin/marketplace.json .claude-plugin/marketplace.json.backupRun Sync Script
npm run sync-marketplace # or: node scripts/sync-marketplace.cjsValidate Output
# Check sync success jq empty .claude-plugin/marketplace.json # Verify plugins count jq '.plugins | length' .claude-plugin/marketplace.jsonCheck Diff
git diff .claude-plugin/marketplace.jsonCommit if Valid
git add .claude-plugin/marketplace.extended.json .claude-plugin/marketplace.json git commit -m "chore: Update marketplace catalog"
Sanitized Fields
These fields are REMOVED from marketplace.json (CLI):
featured- Extended metadatamcpTools- Extended metadatapluginCount- Extended metadatapricing- Extended metadatacomponents- Extended metadata
Only add these to marketplace.extended.json
Marketplace Schema
Required fields for every plugin:
{
"name": "string (kebab-case)",
"source": "string (relative path from repo root)",
"description": "string (clear, concise)",
"version": "string (semver: x.y.z)",
"category": "string (from valid list)",
"keywords": "array (at least 2)",
"author": {
"name": "string",
"email": "string (valid email)"
}
}
Optional fields:
{
"repository": "string (GitHub URL)",
"homepage": "string (docs URL)",
"license": "string (MIT, Apache-2.0, etc.)",
"featured": "boolean (extended only)",
"mcpTools": "number (extended only)"
}
Common Issues & Fixes
Issue: Sync fails with schema error
# Check marketplace.extended.json syntax
jq empty .claude-plugin/marketplace.extended.json
# Common errors:
# - Missing comma
# - Invalid field type
# - Duplicate plugin name
Issue: marketplace.json out of sync
# Regenerate from source
npm run sync-marketplace
# If still fails, check git status
git status .claude-plugin/
Issue: Plugin not appearing
# Verify entry exists
jq '.plugins[] | select(.name == "plugin-name")' .claude-plugin/marketplace.extended.json
# Check source path
ls -la ./plugins/category/plugin-name
Automation
I can automatically:
- Add plugin entries with all required fields
- Update version across plugin + catalog
- Sync marketplace.json
- Validate catalog integrity
- Check for duplicates
- Fix common issues
Output Format
📦 MARKETPLACE UPDATE REPORT
Action: Add plugin "new-plugin"
Location: plugins/productivity/new-plugin/
✅ COMPLETED STEPS:
1. Added entry to marketplace.extended.json
2. Ran npm run sync-marketplace
3. Validated marketplace.json
4. Checked for duplicates: NONE
5. Verified source path exists
📊 MARKETPLACE STATS:
Total plugins: 227 (+1)
Categories: 14
Featured: 3
Latest sync: 2025-10-16 14:30 UTC
✨ Ready to commit:
git add .claude-plugin/marketplace.extended.json .claude-plugin/marketplace.json
git commit -m "feat: Add new-plugin to marketplace"
Repository-Specific Features
For claude-code-plugins repo:
- Manages
claude-code-plugins-plusmarketplace - Handles both extended and CLI catalogs
- Validates against repository structure
- Checks plugin count accuracy
- Ensures featured plugins are quality plugins
Examples
User says: "Add the new security-scanner plugin to marketplace"
I automatically:
- Read plugin.json for metadata
- Add entry to marketplace.extended.json
- Run npm run sync-marketplace
- Validate both catalogs
- Check no duplicates
- Report success
User says: "Sync the marketplace catalog"
I automatically:
- Run npm run sync-marketplace
- Validate marketplace.json generated
- Check git diff
- Report changes
User says: "Update plugin version in marketplace"
I automatically:
- Find plugin entry
- Update version in marketplace.extended.json
- Sync marketplace.json
- Validate versions match
- Report success