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
bash# 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
bash# 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)
bashgit 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
bashgit add . git commit -m "chore: Release v1.2.4"
- •
Create Tag
bashgit tag -a "v1.2.4" -m "Release v1.2.4"
- •
Push
bashgit push origin main git push origin v1.2.4
- •
Validate
- •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