← ClaudeAtlas

changelog-generatorlisted

Use when producing release notes from Conventional Commits, computing the next semantic version from a commit stream, generating CHANGELOG.md, or automating release notes in CI. Triggers on "generate the changelog", "what version bump do these commits require", "release notes", "CHANGELOG", or "semantic version".
tmj-90/gaffer · ★ 0 · AI & Automation · score 69
Install: claude install-skill tmj-90/gaffer
# Generate consistent, auditable release notes Conventional Commits → semantic bump → Keep a Changelog. Three steps, always in order. ## Conventional Commit → Semantic Bump | Commit type | Bump | |-------------|------| | `feat:` | MINOR | | `fix:`, `perf:` | PATCH | | `BREAKING CHANGE:` footer or `!` suffix | MAJOR | | `refactor:`, `docs:`, `chore:`, `ci:`, `test:` | No version bump | Multiple commits in a release: take the highest-ranking bump. One `feat:` in a release of ten `fix:` commits → MINOR bump. ## Keep a Changelog sections ```markdown ## [1.4.0] — 2026-06-28 ### Added - feat commits ### Changed - refactor commits; BREAKING CHANGE goes here with migration note ### Deprecated ### Removed ### Fixed - fix commits ### Security - security commits ``` Use ISO 8601 dates (`YYYY-MM-DD`). Link version headers to the git tag diff URL. ## Git range commands ```bash # Commits between two tags git log v1.3.0..v1.4.0 --pretty=format:'%s' # Commits since last tag to HEAD git log $(git describe --tags --abbrev=0)..HEAD --pretty=format:'%s' # With author and hash (for detailed notes) git log v1.3.0..v1.4.0 --pretty=format:'%h %an %s' ``` ## CI integration pattern ```yaml # .github/workflows/release.yml (excerpt) - name: Generate changelog run: | git log ${{ env.PREV_TAG }}..HEAD --pretty=format:'%s' \ | python scripts/generate_changelog.py \ --next-version ${{ env.NEXT_VERSION }} \ --format markdown >> CHANGELOG.md ``` Block the pipel