Reviewing Plugin Marketplace Configurations
Comprehensive review of Claude Code plugin marketplace and plugin configurations against official best practices and common pitfalls.
Quick Start
Automated Review (Recommended)
Run the verification script:
bash scripts/verify-marketplace.sh [marketplace-directory]
This automatically checks:
- marketplace.json structure
- Skills paths validation
- Git remote URL
- README.md repository references
- plugin.json presence (warns if exists)
Manual Review
- Ask user for marketplace directory (e.g.,
.claude-plugin/) - Read marketplace.json and plugin.json (if exists)
- Check against official format and common errors
- Provide detailed feedback with priorities
Example review output:
## Critical Issues
- ❌ Repository URL mismatch: README.md uses "owner-a/repo" but marketplace.json uses "owner-b/repo"
- ❌ Source path "./.claude-plugin" does not exist
## Important Issues
- ⚠ plugin.json exists but Anthropic's official format uses marketplace.json only
- ⚠ Skills path "./skills/missing-skill" not found
## Compliance Score
- Structure: ✓ Valid JSON
- Required fields: ✓ Present
- Path validation: ✗ 2 invalid paths
Review Process
Step 1: Read Configuration Files
Read and analyze:
.claude-plugin/marketplace.json(required for marketplaces).claude-plugin/plugin.json(optional, check if present)README.md(for repository URL consistency)- Git remote URL (if in git repository)
Step 2: Validate marketplace.json Structure
Required fields:
- [ ]
name- Marketplace identifier - [ ]
owner.name- Owner name - [ ]
plugins- Array of plugin definitions
Each plugin must have:
- [ ]
name- Plugin identifier - [ ]
source- Source path (must start with./, e.g.,"./plugins/plugin-name") - [ ]
description- What the plugin does
Recommended fields:
- [ ]
metadata.description- Marketplace description - [ ]
metadata.version- Version number
Note: skills field specifies skills directory path (root-relative, e.g., "./plugins/plugin-name/skills/")
Optional fields (context-dependent):
- [ ]
strict: false- Only needed if plugins lack plugin.json files (see references/common-errors.md)
Step 3: Check Common Errors
Repository URL consistency:
- Compare URLs in marketplace.json, plugin.json, README.md, git remote
- All should point to the same repository
- Common issue: Using organization name instead of personal username
Source path validation:
- Verify
sourcepath exists - Must start with
./(e.g.,"./plugins/plugin-name") - Check that source directory contains
skills/subdirectory with SKILL.md files
Skills path validation:
- Verify
skillspath exists (root-relative, e.g.,"./plugins/plugin-name/skills/") - Directory should contain subdirectories with SKILL.md files
plugin.json conflicts:
- Anthropic's official format uses marketplace.json only
- Having both may cause confusion
- If both exist, ensure names match
README.md consistency checks:
- Skills documentation: Verify all skills in marketplace.json are documented in README.md
- Check "Skills Included" section lists each skill from the
skillsarray - Each skill should have description and "Use when" guidance
- Check "Skills Included" section lists each skill from the
- Project Structure accuracy:
- If
plugin.jsonmentioned in README but doesn't exist, suggest usingmarketplace.json - Verify structure diagram matches actual files in
.claude-plugin/
- If
- Permissions section completeness:
- Check if README.md settings.json examples include all skills from marketplace.json
- Example:
"Skill(skill-name)"for each skill should be in permissions array
- Repository references: Ensure consistent GitHub URLs across README installation examples
Step 4: Compare with Anthropic Format
See references/anthropic-format.md for official structure.
Key patterns from Anthropic:
- marketplace.json at
.claude-plugin/marketplace.json - No plugin.json (marketplace.json only)
source: "./plugins/plugin-name"pointing to plugin directory (must start with./)strict: false(optional - only needed when plugin.json is missing)skillsfield specifies skills directory (root-relative path)
Step 5: Generate Feedback
Organize findings by priority:
Critical Issues (breaks functionality):
- enabledPlugins format error (array instead of object)
- Repository URL mismatch with git remote
- Invalid source path (doesn't exist)
- Missing required fields
- Invalid JSON syntax
Important Issues (causes confusion):
- Repository URL inconsistency across files
- Invalid skills paths
- Conflicting plugin.json and marketplace.json
- Missing recommended fields
Suggestions (best practices):
- Add
metadatasection (improves discoverability) - Add
strict: falseonly if plugins lack plugin.json (otherwise no effect) - Follow Anthropic's single-file pattern
- Explicit
skillsarray
Common Issues Reference
See references/common-errors.md for detailed error patterns and solutions.
Top 3 issues from real experience (by actual impact):
-
enabledPlugins format error ⚠️ BREAKS FUNCTIONALITY
- Error: Plugins don't load, no activation
- Cause: Using array
["plugin@marketplace"]instead of object{"plugin@marketplace": true} - Fix: Change to object format in settings.json
- This is the #1 cause of "plugin not working" issues
-
Repository URL mismatch
- Error:
Plugin 'name' not found in marketplace - Cause: README/settings use different owner than actual git remote
- Fix: Ensure all URLs match
git remote -v
- Error:
-
Wrong source path
- Error:
Plugin 'name' not found - Cause: Source points to non-existent directory
- Fix: Use
"./"for root, verify path exists
- Error:
Output Format
Structure review with these sections:
- Summary: Overall assessment
- Critical Issues: Must fix (with file:line references)
- Important Issues: Should fix (with explanations)
- Suggestions: Best practices alignment
- Compliance Score: Quick visual assessment
Tips for Effective Reviews
Be Specific: Don't say "URL is wrong" - say "marketplace.json line 7 uses 'owner-a/repo' but git remote shows 'owner-b/repo'"
Verify Paths: Actually check if files/directories exist, don't just validate format
Check Consistency: Cross-reference all files that mention repository URLs
Use Official Examples: Compare against Anthropic's format at https://github.com/anthropics/skills
References
Anthropic Format: See references/anthropic-format.md for official marketplace.json structure
Common Errors: See references/common-errors.md for detailed error patterns and solutions