bumping-version
/bumping-version
Inspects, previews, prepares, and direct-pushes approved semantic-version Git commits with consistent manifests and policy-driven changelog updates. Use when the user asks to bump a version, choose patch/minor/major, prepare a release commit, reconcile a release operation, or push an approved version commit to a base branch. Do not use for package-registry publishing, deployment, or tagging an already-versioned commit.
- Author
- ether-moon ↗
- Repository
- skill-set ↗
- Licence
- MIT
- Last repository change
- 19.10.2026
Assessment and security
- Files in this package
- 2
- Scripts
- 0
- HTML comments
- 0
- URLs in SKILL.md
- 0
No signals detected. Repository changed on 19.10.2026, without references to retired models or APIs.
MIT, open: use and modify while retaining author attribution.
What it does and when to use it
Inspects, previews, prepares, and direct-pushes approved semantic-version Git commits with consistent manifests and policy-driven changelog updates. Use when the user asks to bump a version, choose patch/minor/major, prepare a release commit, reconcile a release operation, or push an approved version commit to a base branch. Do not use for package-registry publishing, deployment, or tagging an already-versioned commit.
Original author description
Inspects, previews, prepares, and direct-pushes approved semantic-version Git commits with consistent manifests and policy-driven changelog updates. Use when the user asks to bump a version, choose patch/minor/major, prepare a release commit, reconcile a release operation, or push an approved version commit to a base branch. Do not use for package-registry publishing, deployment, or tagging an already-versioned commit.
How it works
- Dependencies and policy
- Workflow
- Errors
SKILL.md preview
---
name: bumping-version
description: Inspects, previews, prepares, and direct-pushes approved semantic-version Git commits with consistent manifests and policy-driven changelog updates. Use when the user asks to bump a version, choose patch/minor/major, prepare a release commit, reconcile a release operation, or push an approved version commit to a base branch. Do not use for package-registry publishing, deployment, or tagging an already-versioned commit.
---
# Bumping Version
Resolve `scripts/release-workflow` relative to the directory containing this `SKILL.md` and invoke that absolute path directly for all inspection and mutation. Do not depend on a host-specific plugin-root environment variable or a shell variable persisting across tool calls. The examples use `<release-runner>` as a non-executable placeholder; replace it with the resolved absolute path in every invocation. The runner reads one immutable base snapshot, isolates preparation from the user's checkout, binds preparation to an accepted preview, and requires separate approval before publication.
## Dependencies and policy
The runner preflights Bash 3.2 or newer, `git`, `gh`, and `jq`. Report `MISSING_DEPENDENCY` and stop.
It reads the committed `## Versioning` policy from `AGENTS.md` in the base snapshot:
- `Base branch`
- `Commit message`, with a `{version}` placeholder
- `Extra version files`, as comma-separated repository-relative paths
- `Changelog categories`, defaulting to `Added, Improved, Fixed`
Supported manifests include Claude plugin and package JSON, `pyproject.toml`, `Cargo.toml`, Python `__version__`, gemspecs, Ruby `VERSION`, root `VERSION` and `version.txt`, plus configured extra files.
## Workflow
### 1. Inspect the immutable base
Run:
```bash
<release-runner> inspect --repo .
```
Pass `--base BRANCH` only when the user selected a base. With `origin`, the runner resolves and fetches its latest exact base SHA. Without `origin`, it uses the committed local base. Dirty files and other local branches never supply release input.
Report `base`, `base_sha`, manifests, mismatches, changelog status, policy, and `recent_commits`. Stop on mismatch, unsupported versions, missing manifests, or missing `CHANGELOG.md`; never choose a source of truth silently.
### 2. Preview
Recommend a semantic-version level from the inspected commits and ask the user to choose `patch`, `minor`, or `major`. A generic release request is not approval.
Run the selected dry preview:
```bash
<release-runner> prepare --repo . --level patch --dry-run
```
Preserve an explicit `--base`. For a user-provided changelog entry or commit message, add `--changelog-file PATH` or `--message-file PATH` to both preview and prepare. Relative paths are resolved from the caller directory; the runner owns immutable copies during preparation.
Show `base_sha`, `version`, `changed_paths`, `changelog_entry`, `changelog_categories`, and `commit_message`. Retain `base_sha` and `input_digest` exactly; together they identify the accepted preview.
### 3. Prepare with compare-and-swap
After the user accepts the preview, run the same arguments without `--dry-run` and add both preview values:
```bash
<release-runner> prepare --repo . --level patch \
--expected-base-sha BASE_SHA \
--expected-input-digest INPUT_DIGEST
```
The runner stops before creating a worktree if the remote base, policy, manifests, date, or managed input changed. Otherwise it creates an external temporary worktree and local `release-workflow/release-v...` branch, updates every discovered manifest plus `CHANGELOG.md`, stages only those paths, commits once, and verifies the final commit scope after hooks.
Present `base`, `base_sha`, `version`, `commit_sha`, `changed_paths`, and the complete `diff`. Preserve `state_file` and `commit_sha` as publication inputs.
### 4. Ask for publication approval
Ask one explicit question in the user's language:
```text
Push prepared commit COMMIT_SHA directly to origin/BASE now?
```
If declined, keep the commit and branch but remove the worktree:
```bash
<release-runner> cleanup --state-file STATE_FILE --mode declined
```
### 5. Publish and clean up
Only after an affirmative answer, run:
```bash
<release-runner> publish --state-file STATE_FILE \
--expected-commit COMMIT_SHA --approve
```
The runner verifies state, origin identity, and remote base SHA before a normal direct push. It never force-pushes or creates a pull request fallback.
On success:
```bash
<release-runner> cleanup --state-file STATE_FILE --mode success
```
On authentication, protection, or base-race failure, preserve both recovery artifacts:
```bash
<release-runner> cleanup --state-file STATE_FILE --mode failure
```
If publication or cleanup completed externally but state persistence failed, retry the same command. The runner reconciles an exact remote commit and already-removed exact worktree or branch idempotently.
If the user later requests a pull request, treat that as a new pull-request workflow; do not initiate it here or require another plugin.
## Errors
Failures are JSON on stderr with `error.code`, `error.message`, and `error.recovery`.
- `BASE_RACE`, `INPUT_CHANGED`: discard the old preview and run a new dry preview.
- `VERSION_MISMATCH`, `CHANGELOG_MISSING`: resolve repository content before retrying.
- `APPROVAL_REQUIRED`: ask the user; never add approval yourself.
- `COMMIT_SCOPE_MISMATCH`, `POST_COMMIT_WORKTREE_DIRTY`: preserve and inspect the isolated branch and worktree.
- `PUSH_AUTH_FAILED`, `PUSH_PROTECTED`, `PUSH_FAILED`: report recovery paths and stop.
- `STATE_WRITE_FAILED`: restore state-directory writes, then retry the exact publish or cleanup command.
Use the user's language for recommendations, approval prompts, errors, and reports. Keep arguments, paths, branch names, and JSON fields unchanged.
Files in this package (2)
- SKILL.md 6 KB
- scripts/release-workflow 59 KB
Versions
The database has no other skills named bumping-version.
Database snapshot: 13.11.2026 · package version 2e4c0bf1b39f (SHA-256 digest of the entire package)
Downloads in the last 30 days: 0 · ranking
Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.
Similar skills
- 100version
This skill should be used when the user wants to bump versions, create releases, or tag versions. Triggers include: "bump version", "bump the version", "version bump", "release version", "tag a release", "create release", "major/minor/patch bump", "update version", "new… - 100agr-release
Release process for the agr package. Handles version bumping (major/minor/patch/beta), changelog updates, pre-release quality checks, git tagging, and monitoring the GitHub Actions publish pipeline. Use this skill whenever the user wants to cut a release, bump the version,… - 100release
Cut a new release: group Conventional Commits since the last tag, append a CHANGELOG section, create a release commit, and add an annotated git tag. TRIGGER when the user says "cut a release", "tag a release", "release v1.2.0", "ship version 1.2.0", "create a release for 1.2.0",… - 90release
Create and publish releases for the LogTape project. Use when releasing a new version, creating a patch release, or creating a major/minor release. Handles Sacho changelog compilation, version bumping, tagging, and branch management. - 100create-new-release
Create and push a new semver release tag. Asks for release type (patch/minor/major), validates commit exists on remote, bumps version, and pushes the tag. - 100semver-recommender
Intelligently analyze code changes, API contract diffs, and commit history to recommend the next Semantic Version (SemVer MAJOR, MINOR, or PATCH) with concrete rationales and breaking change detection. Use this skill whenever the user asks about version bumping, semantic…