plugin-bump
Bump a plugin version in its plugin.json file using semantic versioning. Use when user asks to "bump plugin version", "increment plugin version", or after making changes to a plugin that warrant a version update.
When & Why to Use This Skill
The plugin-bump skill automates the maintenance of software versioning by programmatically updating plugin.json files according to Semantic Versioning (SemVer) principles. It streamlines the development workflow by intelligently incrementing Major, Minor, or Patch versions based on the scope of changes, ensuring consistency and reducing manual errors in configuration management.
Use Cases
- 1. Automated Version Control: Quickly increment version numbers (Patch, Minor, or Major) after code changes without manually editing JSON files.
- 2. Semantic Versioning Enforcement: Maintain strict adherence to SemVer standards by letting the agent infer the correct version bump based on the context of updates (e.g., bug fixes vs. breaking changes).
- 3. Release Workflow Optimization: Integrate version bumping into the final steps of a feature development or bug fix cycle to prepare plugins for deployment.
- 4. Configuration Management: Use automated jq commands to safely modify plugin metadata, preventing syntax errors in critical configuration files.
| name | plugin-bump |
|---|---|
| description | Bump a plugin version in its plugin.json file using semantic versioning. Use when user asks to "bump plugin version", "increment plugin version", or after making changes to a plugin that warrant a version update. |
Plugin Version Bump
Bump a plugin version in plugins/PLUGIN_NAME/.claude-plugin/plugin.json following semantic versioning.
Inference Rules
Infer bump type from context:
- Major (X.0.0): Breaking changes, renames, restructuring
- Minor (x.Y.0): New features, new skills
- Patch (x.y.Z): Bug fixes, doc updates, grammar fixes
Commands
# Bump patch (e.g., 1.2.3 → 1.2.4)
jq '.version |= (split(".") | .[2] = ((.[2] | tonumber) + 1 | tostring) | join("."))' plugins/PLUGIN_NAME/.claude-plugin/plugin.json > /tmp/claude/plugin.json && mv /tmp/claude/plugin.json plugins/PLUGIN_NAME/.claude-plugin/plugin.json
# Bump minor (e.g., 1.2.3 → 1.3.0)
jq '.version |= (split(".") | .[1] = ((.[1] | tonumber) + 1 | tostring) | .[2] = "0" | join("."))' plugins/PLUGIN_NAME/.claude-plugin/plugin.json > /tmp/claude/plugin.json && mv /tmp/claude/plugin.json plugins/PLUGIN_NAME/.claude-plugin/plugin.json
# Bump major (e.g., 1.2.3 → 2.0.0)
jq '.version |= (split(".") | .[0] = ((.[0] | tonumber) + 1 | tostring) | .[1] = "0" | .[2] = "0" | join("."))' plugins/PLUGIN_NAME/.claude-plugin/plugin.json > /tmp/claude/plugin.json && mv /tmp/claude/plugin.json plugins/PLUGIN_NAME/.claude-plugin/plugin.json
Replace PLUGIN_NAME with the actual plugin name (e.g., gemini, go-formatter).
Workflow
- Get current version first:
jq '.version' plugins/PLUGIN_NAME/.claude-plugin/plugin.json - Run the appropriate bump command
- Confirm new version to user