You are helping publish a Claude Code plugin to the Claude Market marketplace.
Validates your plugin changes, generates marketplace manifest, creates a semantic commit, and opens a pull request to publish to the Claude Market.
/plugin marketplace add claude-market/marketplace/plugin install plugin-builder@claude-marketYou are helping publish a Claude Code plugin to the Claude Market marketplace.
This command validates changed plugins, generates the marketplace manifest, creates a semantic commit, and opens a pull request to the marketplace repository.
Check the current branch with git branch --show-current.
If on main branch:
git status --porcelain to find uncommitted/staged changesIf on a different branch:
git diff main --name-only to find all changed files compared to mainLook for paths matching {plugin-name}/.claude-plugin/plugin.json or {plugin-name}/*.
Extract the unique plugin names from the changed paths.
If no plugin changes are detected, inform the user and exit.
Check the current branch (already checked in Step 1).
If on main branch:
git config user.github || git config user.name{github-user}/{plugin-affected}/{very-short-description}
danielkov/browser-tools/add-chromium-mcpgit checkout -b {branch-name} to create and switch to new branchIf on a different branch (not main):
For each changed plugin identified in Step 1, spawn a sub-agent using the Task tool to validate the plugin.
Use a single message with multiple Task tool calls to validate all plugins simultaneously:
For each plugin, spawn an agent with:
- subagent_type: "general-purpose"
- model: "haiku" (for speed)
- description: "Validate {plugin-name}"
- prompt: "Run the command `/plugin-builder:validate {plugin-name} --minimal` and return ONLY the exit code and output. The output should start with either '0' (success) or '1' (failure) followed by any error details."
Wait for all validation agents to complete and collect their outputs.
Parse each agent's output:
0: Plugin passed validation1: Plugin failed validationIf all plugins pass validation (all outputs start with 0):
If any plugin fails validation (any output starts with 1):
1)Run make generate-marketplace-json in the project root directory to update .claude-plugin/marketplace.json.
This script automatically reads all plugin manifests and generates the marketplace listing.
Analyze the changes using git diff to understand what was modified in each plugin.
Create a short, concise semantic commit message following this format:
feat({plugin-name}): {short description} - for new featuresfix({plugin-name}): {short description} - for bug fixesdocs({plugin-name}): {short description} - for documentation changeschore({plugin-name}): {short description} - for maintenance tasksIf multiple plugins are affected, use the most relevant plugin name or use marketplace as the scope.
Examples:
feat(browser-tools): added chromium mcp serverfix(plugin-builder): corrected validation logicdocs(security-toolkit): updated usage examplesThe description should be lowercase, concise, and explain what changed, not how it changed.
Stage all changes: git add .
Commit with semantic message: git commit -m "{semantic-commit-message}"
Push the branch:
git push -u origin {branch-name}git pushCheck if gh CLI is available by running gh --version.
gh CLI is available:Read .github/pull_request_template.md to understand the PR template structure.
For each changed plugin, read its .claude-plugin/plugin.json to extract:
Also read the plugin's README.md for the overview and usage examples.
Fill in the PR template with:
Create the PR using:
gh pr create --title "{semantic-commit-message}" --body "{filled-template}"
Use a HEREDOC to properly format the body:
gh pr create --title "{semantic-commit-message}" --body "$(cat <<'EOF'
{filled-template-content}
EOF
)"
Display the PR URL to the user.
gh CLI is NOT available:Display a message to the user:
ā Changes committed and pushed successfully!
To create a pull request:
1. Visit: https://github.com/claude-market/marketplace/compare/{branch-name}
2. Fill in the PR template with the changes you made
š” Tip: Install the GitHub CLI for automated PR creation:
https://cli.github.com/manual/installation
Branch: {branch-name}
Commit: {semantic-commit-message}
If any step fails: