Version Increment & Changelog is a automation Claude Skill built by Harry Eslick. Best for: DevOps/maintainers automate semantic versioning and release documentation when preparing project releases..
- What it does
- Increment SemVer, consolidate session changelog into formal CHANGELOG.md release entry with automated formatting.
- Category
- automation
- Created by
- Harry Eslick
- Last updated
Version Increment & Changelog
Increment SemVer, consolidate session changelog into formal CHANGELOG.md release entry with automated formatting.
Skill instructions
name: version-increment description: Increment the project version (SemVer) and consolidate the agent session changelog into a formal release entry in CHANGELOG.md argument-hint: "[patch|minor|major]" allowed-tools: Read, Edit, Write, Grep, Glob, "Bash(markdownlint*)" model: haiku
Increment the project version and consolidate the agent session changelog into a formal release entry.
Argument
$ARGUMENTS must be one of: patch | minor | major
Default to patch if no argument is provided.
Step 1 — Detect current version
Search for the version string in this priority order:
pyproject.toml→[project] version = "..."or[tool.poetry] version = "..."setup.cfg→version = ...setup.py→version="..."src/<package>/__init__.pyor<package>/__init__.py→__version__ = "..."
Report the file found and current version before proceeding.
Step 2 — Compute new version
Apply SemVer rules to the detected version:
patch: increment Z in X.Y.Zminor: increment Y, reset Z to 0major: increment X, reset Y and Z to 0
Step 3 — Harvest and categorise session entries
Read .claude/AGENT-CHANGELOG.md. For each new session entry, which is more recent than the current version, summarise the major changes and classify according to the keep a change log headings:
## Version [<X.Y.Z>] - <YYYY-MM-DD>
### Added
new features, scripts, models, datasets, analysis pipelines
### Changed
modifications to existing behaviour or interfaces
### Deprecated
functionality flagged for future removal
### Removed
deleted files, functions, or data
### Fixed
bug fixes, data corrections, broken tests
### Security
If an object changes multiple times, or is created and removed within the new session entries DO NOT record these into the CHANGELOG. CHANGELOG version entry should reflect the current state of the package at the time the version is incremented.
AGENT-CHANGELOG.md = a full record of all changes iterations and tests made during development
CHANGELOG.md = a record of the major changes which remain at the time of version increment.
If ambiguous, default to Changed. Only include headings that have entries.
Step 4 — Write the root CHANGELOG.md release block
Prepend a new version block to CHANGELOG.md in the project root (create if absent).
Step 5 — Lint the changelog
Run markdownlint --fix CHANGELOG.md to auto-fix any formatting issues.
Step 6 — Update the version in source
Write the new version string back to the exact file and line detected in Step 1.
Step 7 — Archive and reset the agent session log
- Copy
.claude/AGENT-CHANGELOG.md→.claude/archive/sessions-to-vX.Y.Z.md - Reset
.claude/AGENT-CHANGELOG.mdto:
# Agent Session Log
Run `/version-increment` to consolidate into the project CHANGELOG.md.
---
Do not delete individual files in .claude/sessions/ — they are the permanent record.
Step 8 — Print release summary
Version bumped: X.Y.Z → A.B.C (patch|minor|major)
Version file: pyproject.toml
CHANGELOG.md: N entries consolidated under [A.B.C]
Session log: archived to .claude/archive/sessions-to-vA.B.C.md
Suggested next steps:
git add CHANGELOG.md pyproject.toml .claude/
git commit -m "chore: release vA.B.C"
git tag -a vA.B.C -m "Release vA.B.C"
Install
/plugin install version-increment-changelog@harryeslickRequires Claude Code CLI.
Use cases
DevOps/maintainers automate semantic versioning and release documentation when preparing project releases.
Reviews
No reviews yet. Be the first to review this skill.
Stats
Creator
HHarry Eslick
@harryeslick