| name | version-bumper |
| description | Automatically handles semantic version updates across plugin.json and marketplace catalog when user mentions version bump, update version, or release. Ensures version consistency in claude-code-plugins repository. |
| allowed-tools | Read, Write, Edit, Grep, Bash |
Version Bumper
Purpose
Automatically manages semantic version updates for Claude Code plugins, ensuring consistency across plugin.json, marketplace catalog, and git tags - optimized for claude-code-plugins repository workflow.
Trigger Keywords
- "bump version" or "update version"
- "release" or "new release"
- "major version" or "minor version" or "patch version"
- "increment version"
- "version update"
Semantic Versioning
Format: MAJOR.MINOR.PATCH (e.g., 2.1.3)
Rules:
- MAJOR (2.x.x) - Breaking changes, incompatible API changes
- MINOR (x.1.x) - New features, backward compatible
- PATCH (x.x.3) - Bug fixes, backward compatible
Examples:
1.0.0→1.0.1(bug fix)1.0.0→1.1.0(new feature)1.0.0→2.0.0(breaking change)
Version Bump Process
When activated, I will:
Identify Current Version
# Read plugin version current=$(jq -r '.version' .claude-plugin/plugin.json) echo "Current version: $current"Determine Bump Type
- From user request (major/minor/patch)
- Or suggest based on changes
- Or ask user which type
Calculate New Version
# Example for patch bump: 1.2.3 → 1.2.4 IFS='.' read -r major minor patch <<< "$current" new_version="$major.$minor.$((patch + 1))"Update Files
- Update
.claude-plugin/plugin.json - Update
.claude-plugin/marketplace.extended.json - Sync to
marketplace.json
- Update
Validate Consistency
- Verify all files have same version
- Check no other plugins use this version
- Validate semver format
Create Git Tag (Optional)
git tag -a "v$new_version" -m "Release v$new_version"
Update Locations
1. Plugin JSON
// .claude-plugin/plugin.json
{
"name": "plugin-name",
"version": "1.2.4", // ← Update here
...
}
2. Marketplace Extended
// .claude-plugin/marketplace.extended.json
{
"plugins": [
{
"name": "plugin-name",
"version": "1.2.4", // ← Update here
...
}
]
}
3. Sync CLI Catalog
npm run sync-marketplace
# Regenerates marketplace.json with new version
Bump Types
Patch Bump (Bug Fix)
When to use:
- Bug fixes
- Documentation updates
- Minor improvements
- No new features
Example: 1.2.3 → 1.2.4
Minor Bump (New Feature)
When to use:
- New features
- New commands/agents/skills
- Backward compatible changes
- Enhanced functionality
Example: 1.2.3 → 1.3.0
Major Bump (Breaking Change)
When to use:
- Breaking API changes
- Incompatible updates
- Major refactor
- Removed features
Example: 1.2.3 → 2.0.0
Validation Checks
Before bumping:
- ✅ Current version is valid semver
- ✅ New version is higher than current
- ✅ No other plugin uses new version
- ✅ All files have same current version
- ✅ Git working directory is clean (optional)
After bumping:
- ✅ plugin.json updated
- ✅ marketplace.extended.json updated
- ✅ marketplace.json synced
- ✅ All versions consistent
- ✅ CHANGELOG.md updated (if exists)
Changelog Management
If CHANGELOG.md exists, I update it:
# Changelog
## [1.2.4] - 2025-10-16
### Fixed
- Bug fix description
- Another fix
## [1.2.3] - 2025-10-15
...
Git Integration
Option 1: Version Commit
# Update version files
git add .claude-plugin/plugin.json
git add .claude-plugin/marketplace.extended.json
git add .claude-plugin/marketplace.json
git add CHANGELOG.md # if exists
# Commit version bump
git commit -m "chore: Bump plugin-name to v1.2.4"
Option 2: Version Tag
# Create annotated tag
git tag -a "plugin-name-v1.2.4" -m "Release plugin-name v1.2.4"
# Or for monorepo
git tag -a "v1.2.4" -m "Release v1.2.4"
# Push tag
git push origin plugin-name-v1.2.4
Multi-Plugin Updates
For repository-wide version bump:
# Bump marketplace version
jq '.metadata.version = "1.0.40"' .claude-plugin/marketplace.extended.json
# Update all plugins (if needed)
for plugin in plugins/*/; do
# Update plugin.json
# Update marketplace entry
done
Version Consistency Check
I verify:
# Plugin version
plugin_v=$(jq -r '.version' plugins/category/plugin-name/.claude-plugin/plugin.json)
# Marketplace version
market_v=$(jq -r '.plugins[] | select(.name == "plugin-name") | .version' .claude-plugin/marketplace.extended.json)
# Should match
if [ "$plugin_v" != "$market_v" ]; then
echo "❌ Version mismatch!"
echo "Plugin: $plugin_v"
echo "Marketplace: $market_v"
fi
Release Workflow
Complete release process:
Determine Bump Type
- Review changes since last version
- Decide: patch/minor/major
Update Version
- Bump plugin.json
- Update marketplace catalog
- Sync marketplace.json
Update Changelog
- Add release notes
- List changes
- Include date
Commit Changes
git add . git commit -m "chore: Release v1.2.4"Create Tag
git tag -a "v1.2.4" -m "Release v1.2.4"Push
git push origin main git push origin v1.2.4Validate
- Check GitHub release created
- Verify marketplace updated
- Test plugin installation
Output Format
🔢 VERSION BUMP REPORT
Plugin: plugin-name
Old Version: 1.2.3
New Version: 1.2.4
Bump Type: PATCH
✅ UPDATES COMPLETED:
1. Updated .claude-plugin/plugin.json → v1.2.4
2. Updated marketplace.extended.json → v1.2.4
3. Synced marketplace.json → v1.2.4
4. Updated CHANGELOG.md
📊 CONSISTENCY CHECK:
✅ All files have version 1.2.4
✅ No version conflicts
✅ Semantic versioning valid
📝 CHANGELOG ENTRY:
## [1.2.4] - 2025-10-16
### Fixed
- Bug fix description
🎯 NEXT STEPS:
1. Review changes: git diff
2. Commit: git add . && git commit -m "chore: Bump to v1.2.4"
3. Tag: git tag -a "v1.2.4" -m "Release v1.2.4"
4. Push: git push origin main && git push origin v1.2.4
✨ Ready to release!
Repository-Specific Features
For claude-code-plugins repo:
- Handles both plugin and marketplace versions
- Updates marketplace metadata version
- Manages plugin count in README
- Syncs both catalog files
- Creates proper release tags
Examples
User says: "Bump the security-scanner plugin to patch version"
I automatically:
- Read current version: 1.2.3
- Calculate patch bump: 1.2.4
- Update plugin.json
- Update marketplace.extended.json
- Sync marketplace.json
- Validate consistency
- Report success
User says: "Release version 2.0.0 of plugin-name"
I automatically:
- Recognize major version (breaking change)
- Update all version files
- Update CHANGELOG.md with major release notes
- Create git commit
- Create git tag v2.0.0
- Provide push commands
User says: "Increment version for new feature"
I automatically:
- Detect this is a minor bump
- Calculate new version (1.2.3 → 1.3.0)
- Update all files
- Add changelog entry
- Report completion