| name | version-bump |
| description | Bump the semver version in pyproject.toml (major, minor, or patch) and prepend a Keep-a-Changelog entry to CHANGELOG.md. Use when preparing a release, before creating a PR (the version-check CI job blocks merge if you don't), or when the user says "bump version", "release", or "increment version".
|
Version Bump
Bump the semver version in pyproject.toml and prepend a new entry to
CHANGELOG.md. Mirrors the AgentCulture workflow used by culture,
afi-cli, cfafi, and other org repos; vendored here so the repo is
self-contained.
Usage
Run from the repo root.
echo '{"added":["New X"],"changed":["Refactored Y"],"fixed":["Bug in Z"]}' \
| python3 .claude/skills/version-bump/scripts/bump.py minor
python3 .claude/skills/version-bump/scripts/bump.py patch
python3 .claude/skills/version-bump/scripts/bump.py show
Bump Types
| Type | Example | When to use |
|---|
major | 0.1.0 → 1.0.0 | Breaking changes, namespace restructures, CLI surface breaks |
minor | 0.1.0 → 0.2.0 | New features, new commands, new modules |
patch | 0.1.0 → 0.1.1 | Bug fixes, doc updates, dependency bumps, CI-only changes |
show | prints 0.1.0 | Read-only — no files changed |
Changelog JSON Format
Pass via stdin. All fields are optional — only non-empty sections are rendered.
{
"added": ["List of new features"],
"changed": ["List of changes to existing functionality"],
"fixed": ["List of bug fixes"]
}
What it touches
pyproject.toml — the version = "x.y.z" field (single source of truth;
culture/__init__.py reads it via importlib.metadata, so there's no
separate __version__ literal to keep in sync).
CHANGELOG.md — inserts a new ## [x.y.z] - YYYY-MM-DD entry at the top.
The script does the rest. Pick a bump type from the diff (patch for fixes,
minor for new features, major for breaking changes), summarize the diff into
added / changed / fixed lists, pipe as JSON, and commit the resulting
pyproject.toml + CHANGELOG.md alongside the code change so the
version-check CI job sees a consistent bump.