plugins/versioning/skills/bump/SKILL.md
Bump the project version following semver, update all version files per https://semver.org/
npx skillsauth add jason-hchsieh/marketplace bumpInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are bumping the project version following Semantic Versioning (MAJOR.MINOR.PATCH) and updating all version files using Claude's Edit tool.
The plugin detects and manages versions in:
package.json (Node.js)Cargo.toml (Rust)pyproject.toml (Python)setup.cfg (Python)pom.xml (Java/Maven)build.gradle / build.gradle.kts (Java/Kotlin)CMakeLists.txt (C/C++)mix.exs (Elixir)pubspec.yaml (Dart/Flutter)Chart.yaml (Helm).claude-plugin/plugin.json (Claude Code)version.txt / VERSION (generic)Before bumping, run the explore script to understand the project's versioning setup:
bash "$CLAUDE_PLUGIN_ROOT/scripts/explore-version.sh"
This discovers all version files, extracts current versions, checks consistency, git tags, git-cliff availability, and CHANGELOG state. Review the output to understand what needs updating.
If git-cliff is available (git-cliff --version succeeds):
If the user specified a bump type (/bump major, /bump minor, /bump patch):
git-cliff --bump <type> --bumped-version
Otherwise, auto-detect from conventional commits:
git-cliff --bumped-version
This returns just the version string (e.g., 1.2.3).
If git-cliff is not available:
Determine the current version from version files or the latest git tag, then apply the requested bump type manually:
/bump major → increment MAJOR, reset MINOR and PATCH to 0/bump minor → increment MINOR, reset PATCH to 0/bump patch → increment PATCHIf no bump type is specified and git-cliff is not available, ask the user which type to bump.
Determine the current version from the latest git tag:
git describe --tags --abbrev=0 2>/dev/null || echo "0.0.0"
Present to the user:
X.Y.ZA.B.CAsk for confirmation before proceeding.
For each version file discovered in step 1, read it and update the version using the Edit tool with the appropriate pattern:
| File | Version Pattern |
|------|----------------|
| package.json | "version": "X.Y.Z" |
| Cargo.toml | version = "X.Y.Z" (under [package]) |
| pyproject.toml | version = "X.Y.Z" |
| CMakeLists.txt | project(... VERSION X.Y.Z) |
| .claude-plugin/plugin.json | "version": "X.Y.Z" |
| build.gradle | version = 'X.Y.Z' or version "X.Y.Z" |
| build.gradle.kts | version = "X.Y.Z" |
| pom.xml | <version>X.Y.Z</version> (top-level, not dependencies) |
| setup.cfg | version = X.Y.Z |
| version.txt | Raw X.Y.Z |
| VERSION | Raw X.Y.Z |
| mix.exs | version: "X.Y.Z" |
| pubspec.yaml | version: X.Y.Z |
| Chart.yaml | version: X.Y.Z |
Important: For Cargo.toml and pom.xml, be careful to only update the project's own version, not dependency versions.
After updating version files, offer the user these optional next steps:
/changelog to update CHANGELOG.mdgit tag v<new-version>chore: bump version to <new-version>Only perform actions the user agrees to.
## Version Bump Summary
- **Previous version**: X.Y.Z
- **New version**: A.B.C
- **Bump type**: major|minor|patch (auto-detected|manual)
### Files Updated
- path/to/package.json ✓
- path/to/Cargo.toml ✓
### Next Steps
- [ ] Run /changelog to update CHANGELOG.md
- [ ] Create git tag: `git tag vA.B.C`
- [ ] Commit: `git commit -m "chore: bump version to A.B.C"`
tools
Bootstrap versioning for a project - detect project type, initialize git-cliff config, and generate initial CHANGELOG.md using semantic versioning
development
Validate version consistency across all project files, check semver format, git tag alignment, and changelog synchronization per https://semver.org/
tools
Generate or update CHANGELOG.md using git-cliff from conventional commit history - see https://git-cliff.org/docs/category/usage
tools
Enable or disable a registered runbook by name - disabled runbooks skip automatic trigger execution