version-bumper
Skill6 starsChanged 3 months agoMITView on GitHub
Suggest the next semantic version and release tag from Conventional Commits in git history. Script bumper.py reads git log subjects (fallback: COMMITS env or --commits FILE for testability), classifies commit types (feat->MINOR, fix/perf/refactor->PATCH, `!` or BREAKING CHANGE->MAJOR) and prints latest_tag, next_version, suggested_tag (e.g. v1.5.0) and counts by type. Pure Python 3 stdlib, offline, deterministic output (-s), read-only (never creates tags). Closes the loop for commit-message-writer and changelog-generator.
3 other projects use a version of this.
Adopted by
Most recently taken up by
- davidgfolch/AI-job-searchtheir own version, first seen Nov 8, 2026
- Fu-Jie/awesome-openwebuitheir own version, first seen Oct 8, 2026
- Fu-Jie/openwebui-extensionstheir own version, first seen Oct 8, 2026
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 3
- Fu-Jie/awesome-openwebui★ 326same name
- Fu-Jie/openwebui-extensions★ 326same name
- davidgfolch/AI-job-search★ 6same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository59 other files it gives its agents.
- skills/chronos/references/AGENTS.mdAGENTS.md
- api-contract-testingSkill
- api-doc-generatorSkill
- canonSkill
- censorSkill
- changelog-generatorSkill
- chronosSkill
- code-reviewSkill
- commit-lintSkill
- commit-message-writerSkill
- coverage-analyzerSkill
- csv-proSkill
- data-analysisSkill
- deweySkill
- diagram-makerSkill
- doc-compareSkill
- docs-productSkill
- docs-projectSkill
- docs-systemSkill
- dsh-runnerSkill
- frontend-a11ySkill
- frontend-design-tasteSkill
- frontend-perfectionSkill
- frontend-performanceSkill
- frontend-testingSkill
- github-repo-hygieneSkill
- long-running-agent-workflowSkill
- mermaid-to-imageSkill
- mobile-frontendSkill
- pdf-report-builderSkill
- plan-skillSkill
- prd-to-appSkill
- presentation-craftSkill
- presentation-engineeringSkill
- presentation-makerSkill
- raster-to-svgSkill
- reddit-karmaSkill
- repo-community-filesSkill
- repo-metadata-healthSkill
- repo-readme-assetsSkill
- repo-social-previewSkill
- secret-scannerSkill
- security-reviewSkill
- seo-auditSkill
- seo-contentSkill
- seo-crawlSkill
- seo-schemaSkill
- seo-toolkitSkill
- skill-feedbackSkill
- skill-forgeSkill
- skill-suggesterSkill
- sql-helperSkill
- systematic-debuggerSkill
- test-generatorSkill
- test-graphicsSkill
- velesSkill
- video-script-writerSkill
- web-replicationSkill
- web-scraperSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 3 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 112
Do NOT use when the repository does not follow Conventional Commits — the classification will be mostly other and the suggestion …
- Distinctive: line 114
Do NOT use to *create* tags or modify the repository — the tool is read-only by design.
- Very specific: line 116
Do NOT use for pre-release/build-metadata schemes (1.2.3-rc.1, 1.2.3+build.5) — the parser accepts only plain X.Y.Z / vX.Y.Z.
- Distinctive: line 118
Do NOT use to rewrite history or reorder commits — the tool only reads.
- Distinctive: line 153
Do not use to create tags or publish a release.
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Version Bumper — semantic version from Conventional Commits
Load this skill when you need to compute the next semantic version and a
suggested release tag from the commit history of a git repository that
follows Conventional Commits.
It is the release-pipeline counterpart of commit-message-writer (writes the
commits) and changelog-generator (renders the changelog): this skill decides
what version number the changelog and the release tag should carry.
The tool is read-only and offline: it never creates tags, never writes
files, and makes no network calls. It reads git log subjects, classifies
each commit by type, and prints the current version, the next version and a
suggested tag. For testability the commit list can be fed from the COMMITS
environment variable or a file (--commits FILE, one subject per line) — no
git repository required.
The bumper script
scripts/bumper.py — pure Python 3 stdlib (no dependencies).
| Source of commits | Command |
| Git repository (default) | python3 bumper.py --path /path/to/repo |
| Explicit current version | python3 bumper.py --path . --current 1.2.3 |
| Latest semver tag | python3 bumper.py --path . --from-tags |
| File (no git needed) | python3 bumper.py --commits commits.txt --current 1.2.3 |
| Environment (no git needed) | COMMITS='feat: a\nfix: b' python3 bumper.py --current 1.2.3 |
Bump rules (Conventional Commits v1.0.0)
| Signal | Bump | Example |
Breaking (! or BREAKING CHANGE: footer) | MAJOR | feat!: drop python 3.7 |
feat | MINOR | feat: add widget |
fix, perf, refactor | PATCH | fix: repair crash |
docs, style, test, chore, build, ci, revert, unknown | no bump | docs: readme |
Type matching is case-insensitive (Feat: counts as feat). Unknown types
are counted as other and never trigger a bump.
Output
latest_tag: v1.0.0
current_version: 1.0.0
next_version: 1.5.0
suggested_tag: v1.5.0
bump: minor
commits_analyzed: 14
counts: feat=1, fix=8, perf=2, refactor=1, docs=1, style=1, test=2, chore=1, build=0, ci=0, revert=0, breaking=1, other=0Flags
--current X.Y.Z— baseline version; skips tag lookup--from-tags— take the baseline from the highest semver tag (v1.2.3,1.2.3); falls back to0.0.0with a warning when no tags exist--commits FILE— read commit subjects from a file (one per line) instead ofgit log; useful for tests and for repos without git--dry-run— accepted for pipeline compatibility; the tool is read-only, so this is the default behavior-s/--stable— deterministic output: sorts the analyzed commits and guarantees the samenext_versionfor the same input
Usage example (typical)
# Before a release: what version should the next tag carry?
python3 skills/version-bumper/scripts/bumper.py --path . --from-tags
# Pin the baseline explicitly (no tag lookup)
python3 skills/version-bumper/scripts/bumper.py --path . --current 1.2.3
# Deterministic output for CI / release pipeline
python3 skills/version-bumper/scripts/bumper.py --path . --from-tags -s
# Test the classifier without a git repo
python3 skills/version-bumper/scripts/bumper.py --commits commits.txt --current 1.2.3Interpretation guidance
bump: major— at least one breaking commit (!orBREAKING CHANGE:footer). Review the breaking changes before tagging; MAJOR signals a compatibility break to consumers.bump: minor— new features present, no breaking changes.bump: patch— only fixes/refactors/perf; no features.bump: none— only docs/chore/style/test/build/ci/revert commits. Do not create a release tag; the version stays unchanged.latest_tag: none— no semver tags found; the tool started from0.0.0. For a first release, decide whetherv0.1.0(first feature) orv1.0.0(first stable API) is appropriate.- The tool only suggests a tag. Creating the tag, updating the changelog
and pushing are separate steps — run
changelog-generatorwith the suggested version, then tag manually.
Do NOT use
- Do NOT use when the repository does not follow Conventional Commits — the
classification will be mostly
otherand the suggestion meaningless. - Do NOT use to create tags or modify the repository — the tool is read-only by design.
- Do NOT use for pre-release/build-metadata schemes (
1.2.3-rc.1,1.2.3+build.5) — the parser accepts only plainX.Y.Z/vX.Y.Z. - Do NOT use to rewrite history or reorder commits — the tool only reads.
Canonical analogues
Full source depth — in references/canonical-patterns.md. Backbone:
<table>
<tr><th>Analog</th><th>What we borrow</th></tr>
<tr><td>Conventional Commits spec</td><td>Type taxonomy, `!` marker, `BREAKING CHANGE:` footer, bump semantics</td></tr>
<tr><td>python-semantic-release</td><td>Version-from-tags, bump-level resolution, deterministic output</td></tr>
<tr><td>semantic-release</td><td>Commit-driven release decision, no-release-when-no-release-commits</td></tr>
<tr><td>bump-my-version</td><td>Strict semver parsing, tag prefix handling</td></tr>
<tr><td>commitizen</td><td>Commit classification, changelog+version coupling</td></tr>
<tr><td>git-cliff</td><td>Conventional-Commits parsing, tag-range analysis</td></tr>
</table>Installation
# For opencode
cp -r skills/version-bumper ~/.config/opencode/skills/
# For other agents
# Copy the skill folder to your skills directory; requires Python 3.
# git is optional — --commits FILE mode works without it.Note: the tool suggests a version; it never tags, never commits and never pushes. Wire it into the release pipeline as the version source for
changelog-generator, then create the tag yourself.
Boundaries
- Do not use to create tags or publish a release; it only recommends a version.
Evidence and completion gate
Run the documented command against the user’s actual input. Report the command, exit status, files changed or produced, and relevant stdout/stderr. Separate blocked or pre-existing failures from failures introduced by the current work. Do not call the result complete when the script was only described or when an artifact was not reopened and checked.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

