Generates user-facing changelogs from git history. Use when the user asks to update CHANGELOG.md, generate a changelog from commits, summarize changes since last release, or produce release notes.
When asked to update or generate a changelog:
git log to get the relevant commit historyFind the last release/tag or base reference:
git tag -l --sort=-version:refname | head -5
git log -1 --format=%H <last-version-tag>
Get commits since that point:
git log <base>..HEAD --pretty=format:"%s (%h)" --no-merges
Parse and categorize commit messages. Common prefixes: feat:, fix:, chore:, docs:, refactor:, perf:, style:, test:
Use this output structure:
## [Unreleased] or [X.Y.Z] - YYYY-MM-DD
### Added
- User-facing description of new feature
### Fixed
- User-facing description of bug fix
### Changed
- User-facing description of change
Added, Changed, Deprecated, Removed, Fixed, SecurityInput: "Update CHANGELOG.md from commits since last release"
Process: Run git log $(git describe --tags --abbrev=0)..HEAD --oneline, group by type, write entries in Keep a Changelog format.