Checks for changed plugin/skill files in marketplace projects and suggests semver version bumps before pushing. Use this skill whenever the user wants to push changes (git push, "push this", "push to remote") and the working directory contains a .claude-plugin/marketplace.json file — even if the user doesn't mention versions. Also trigger when the user explicitly mentions version bumping, releasing plugins, or preparing marketplace updates.
Before pushing changes in a marketplace project, check if any plugin files have been modified and guide the user through appropriate semver version bumps. This prevents plugins from being updated without their version reflecting the change — which matters for users who install plugins and need to know when updates are available.
A marketplace project has a .claude-plugin/marketplace.json file at the repository root. If this file doesn't exist, this skill doesn't apply — proceed with the push normally without mentioning this skill.
Compare the current branch against the remote tracking branch:
git diff --name-only @{upstream}...HEAD 2>/dev/null
If there's no upstream yet (new branch), compare against the default branch (main or master).
Filter the results for paths matching plugins/<plugin-name>/... and extract the unique plugin names.
If no plugin files changed (only root-level files like README.md), skip version bumping and proceed with the push.
For each affected plugin, read the current version from:
plugins/<name>/.claude-plugin/plugin.json.claude-plugin/marketplace.jsonFlag any version mismatches between the two files — the user should know if they've drifted out of sync.
If a plugin doesn't have a version field in its plugin.json, note this and suggest adding one.
For each affected plugin, look at the actual diff to categorize the changes:
Patch (x.y.Z) — backwards-compatible fixes:
Minor (x.Y.0) — backwards-compatible additions:
Major (X.0.0) — breaking changes:
name field in frontmatter)Present each plugin with:
Ask the user to confirm or override the suggestion for each plugin.
Before making any changes, explicitly ask the user which files to update. Present these as options:
plugins/<name>/.claude-plugin/plugin.json only.claude-plugin/marketplace.json onlyDo not assume "both" — wait for the user's answer. Then read each chosen file, update only the version field, and write it back.
After applying version bumps:
chore: bump <plugin-name> to <new-version> (or a combined message if multiple plugins were bumped)1.0.0.