| description | Create plugin marketplaces with guided workflow | |
|---|---|---|
| argument-hint |
|
|
| allowed-tools | Read, Write, Edit, Grep, Glob, Bash(mkdir:*), Bash(git init:*), TodoWrite, AskUserQuestion, Skill, Task |
Guide the user through creating a complete plugin marketplace from initial concept to validated, distributable collection. Follow a systematic approach: understand requirements, plan plugins, configure structure, add entries, validate, and prepare for distribution.
- Ask clarifying questions: Identify all ambiguities about marketplace purpose, plugins, distribution strategy. Ask specific questions rather than making assumptions. Wait for user answers before proceeding.
- Load marketplace-structure skill: Use the Skill tool to load the marketplace-structure skill for schema and pattern guidance
- Use plugin-validator agent: Leverage the plugin-validator agent for comprehensive marketplace validation
- Follow best practices: Apply patterns from this repository's own marketplace.json
- Use TodoWrite: Track all progress throughout all phases
Initial request: $ARGUMENTS
Goal: Understand what marketplace needs to be created and its purpose
Actions:
- Create todo list with all 8 phases
- If marketplace purpose is clear from arguments:
- Summarize understanding
- Identify marketplace type (team internal, community, single-plugin, multi-plugin)
- If marketplace purpose is unclear, ask user:
- What plugins will this marketplace contain?
- Who is the target audience? (team, community, public)
- Will plugins be local (in same repo) or external (GitHub, git URLs)?
- Single maintainer or community contributions?
- Summarize understanding and confirm with user before proceeding
Output: Clear statement of marketplace purpose and distribution strategy
Goal: Determine which plugins to include and their sources
MUST load marketplace-structure skill using Skill tool before this phase.
Actions:
-
Load marketplace-structure skill for schema guidance
-
List plugins to include in marketplace:
- For each plugin: name, source type, brief description
-
Categorize by source type:
- Local (relative path): Plugins maintained in same repository
- GitHub: External plugins on GitHub
- Git URL: External plugins on GitLab, Bitbucket, or self-hosted
-
Present plugin plan to user as table:
| Plugin Name | Source Type | Description | |------------------|-------------|------------------------| | code-formatter | local | Code formatting tools | | security-scanner | github | Security analysis | | legacy-tool | git-url | Legacy utility | -
For each local plugin, determine:
- Does it already exist? (will validate)
- Need to create it? (redirect to /plugin-dev:create-plugin)
-
Get user confirmation or adjustments
Output: Confirmed list of plugins with sources
Goal: Define marketplace metadata and owner information
Actions:
-
Determine marketplace name:
- Must be kebab-case (lowercase, hyphens)
- Should be descriptive of purpose
- Examples:
team-tools,security-plugins,awesome-claude-plugins
-
Gather owner information:
- Ask user: "Who maintains this marketplace?"
- Required: name
- Optional: email, url
-
Define optional metadata:
- description: Brief marketplace description
- version: Initial version (recommend 1.0.0 or 0.1.0)
- pluginRoot: Base path for relative sources (default: none)
-
Present configuration summary:
{ "name": "team-tools", "owner": { "name": "Platform Team", "email": "platform@company.com" }, "metadata": { "description": "Internal development tools", "version": "1.0.0" } } -
Get user confirmation
Output: Confirmed marketplace metadata
Goal: Create marketplace directory structure and manifest
Actions:
-
Determine marketplace location:
- Ask user: "Where should I create the marketplace?"
- Offer options: current directory, new directory, custom path
-
Create directory structure using bash:
mkdir -p marketplace-name/.claude-plugin mkdir -p marketplace-name/plugins # if local plugins -
Create marketplace.json manifest using Write tool:
{ "name": "marketplace-name", "owner": { "name": "[from Phase 3]" }, "metadata": { "description": "[from Phase 3]", "version": "[from Phase 3]" }, "plugins": [] } -
Create README.md template with:
- Marketplace description
- Installation instructions
- Available plugins table (to be filled in Phase 5)
- Contributing guidelines (if community)
-
Initialize git repo if creating new directory (only
git initis available; additional git operations like staging and committing are left to the user after the workflow completes to respect their commit preferences)
Output: Marketplace directory structure created
Post-workflow git operations (user can run after completion):
git add .
git commit -m "feat: initial marketplace structure"Goal: Configure each plugin entry with appropriate metadata
Actions:
-
For each plugin in the plan (from Phase 2):
For local plugins:
- If plugin exists:
- Read its plugin.json to get metadata
- Create entry with relative source path
- If plugin doesn't exist:
- Ask: "Plugin 'X' doesn't exist. Create it now or add placeholder?"
- If create: Use Task tool to run /plugin-dev:create-plugin
- If placeholder: Create entry with TODO comment in README
For GitHub plugins:
- Create entry with github source object
- Prompt for version, description if not known
- Consider strict: false if plugin lacks plugin.json
For git URL plugins:
- Create entry with url source object
- Prompt for version, description if not known
- If plugin exists:
-
For each entry, configure optional fields:
- version (recommend always including)
- description (recommend always including)
- category (if marketplace uses categories)
- tags (for discoverability)
-
Update marketplace.json with all plugin entries
-
Update README.md with plugin table:
Plugin Description Version X Does Y 1.0.0
Output: All plugin entries configured in marketplace.json
Goal: Configure distribution strategy based on target audience
Actions:
-
For team/internal marketplaces:
-
Provide team settings configuration:
{ "extraKnownMarketplaces": { "marketplace-name": { "source": { "source": "github", "repo": "org/marketplace-repo" } } } } -
Document which plugins should be in
enabledPlugins -
Add to README: How team members install
-
-
For community/public marketplaces:
- Create CONTRIBUTING.md with:
- Plugin submission guidelines
- Review process
- Quality requirements
- Create CI workflow for validation (optional):
- JSON syntax check
- Required field validation
- Duplicate name detection
- Create CONTRIBUTING.md with:
-
For all marketplaces:
-
Document installation command in README:
/plugin marketplace add owner/repo
-
List individual plugin installation:
/plugin install plugin-name@marketplace-name
-
Output: Distribution documentation complete
Goal: Ensure marketplace meets quality standards
Actions:
-
Run plugin-validator agent:
- Use plugin-validator agent to validate marketplace
- Check: schema, required fields, plugin entries, source paths
-
Fix critical issues:
- Address any critical errors from validation
- Fix warnings that indicate real problems
-
Validate local plugins (if any):
- For each local plugin, run plugin validation
- Fix any issues found
-
Check best practices:
- All entries have version
- All entries have description
- README documents all plugins
- Owner information complete
-
Present validation report:
- Summary of marketplace validation
- Summary of each local plugin validation
- Overall quality assessment
-
Ask user: "Validation complete. Would you like me to fix any issues, or proceed to testing?"
Output: Marketplace validated and ready for testing
Goal: Test marketplace installation and finalize
Actions:
-
Test locally:
-
Show user how to test:
/plugin marketplace add ./path/to/marketplace
-
List marketplace:
/plugin marketplace list
-
Install test plugin:
/plugin install plugin-name@marketplace-name
-
-
Verification checklist:
- Marketplace adds successfully
- All plugins appear in
/pluginbrowser - Local plugins install correctly
- External plugins accessible (if public)
-
Create summary:
- Mark all todos complete
- List what was created:
- Marketplace name and purpose
- Number of plugins configured
- Distribution strategy
- Key files created
- Next steps:
- Push to GitHub/git hosting
- Share with team
- Add to project settings
-
Suggest improvements (optional):
- Additional plugins to consider
- CI/CD integration opportunities
- Version management strategies
Output: Complete, validated marketplace ready for distribution
- Use TodoWrite to track progress at every phase
- Load marketplace-structure skill for schema reference
- Use plugin-validator agent for validation
- Ask for user confirmation at key decision points
- Follow this repository's marketplace.json as reference
- Apply best practices:
- kebab-case names
- Complete owner information
- Version all entries
- Document all plugins in README
- ${CLAUDE_PLUGIN_ROOT} for local plugin paths
- After Phase 1: Confirm marketplace purpose
- After Phase 2: Approve plugin plan
- After Phase 3: Confirm metadata
- After Phase 5: Proceed to distribution setup
- After Phase 7: Fix issues or proceed
- Phase 2+: marketplace-structure (for schema and patterns)
- Phase 5: plugin-structure (if creating local plugins)
Every marketplace must meet these standards:
- ✅ Valid JSON syntax
- ✅ All required fields present (name, owner, plugins)
- ✅ Plugin entries have name and source
- ✅ No duplicate plugin names
- ✅ Local source paths exist
- ✅ README documents marketplace and plugins
- ✅ Validated with plugin-validator agent
"Create a marketplace for our team's internal tools"
- Understand: Internal team distribution
- Confirm: Team-only plugins, GitHub hosting
- 3 plugins: linter-config (local), security-scanner (local), docs-generator (github)
- name: team-tools
- owner: Platform Team
- version: 1.0.0
Begin with Phase 1: Discovery.