Git Release Notes
by @charlie-morrison
Generate polished release notes and changelogs from git history. Analyzes commits between tags/refs, categorizes changes (features, fixes, breaking changes,...
clawhub install git-release-notesπ About This Skill
name: git-release-notes description: Generate polished release notes and changelogs from git history. Analyzes commits between tags/refs, categorizes changes (features, fixes, breaking changes, etc.), and produces formatted release notes in multiple styles. Use when asked to generate release notes, create a changelog, summarize changes between versions, write release documentation, or prepare a GitHub release. Triggers on "release notes", "changelog", "what changed since", "summarize commits", "version bump notes", "prepare release".
Git Release Notes
Generate formatted release notes from git commit history. Analyzes commits between any two refs (tags, branches, SHAs) and produces categorized, human-readable release notes.
Quick Usage
Generate Notes Between Tags
scripts/gather_commits.sh v1.2.0 v1.3.0
Then format the JSON output into release notes using the formatting rules below.Generate Notes Since Last Tag
scripts/gather_commits.sh $(git describe --tags --abbrev=0) HEAD
Generate Notes Between Branches
scripts/gather_commits.sh main release/2.0
Workflow
1. Gather Commits
Run scripts/gather_commits.sh to get structured commit data (JSON array).
If no refs provided, ask user for:
2. Categorize Commits
Group commits by type using conventional commit prefixes and content analysis:
| Category | Prefixes / Signals | Emoji |
|----------|-------------------|-------|
| Breaking Changes | BREAKING CHANGE:, !: in subject | π₯ |
| Features | feat:, feature:, add: | β¨ |
| Bug Fixes | fix:, bugfix:, hotfix: | π |
| Performance | perf: | β‘ |
| Documentation | docs:, doc: | π |
| Refactoring | refactor: | β»οΈ |
| Testing | test:, tests: | π§ͺ |
| CI/Build | ci:, build:, chore: | π§ |
| Dependencies | deps:, dep:, "bump", "upgrade" in subject | π¦ |
| Other | Anything else | π |
If commits don't follow conventional commits, analyze the commit message content to infer categories.
3. Format Release Notes
Default format (GitHub Release style):
# v1.3.0> Released on 2026-03-26 | 47 commits | 5 contributors
π₯ Breaking Changes
Remove deprecated legacy_auth endpoint (#234) β¨ Features
Add dark mode support (#220)
Implement batch export for CSV/JSON (#215) π Bug Fixes
Fix race condition in queue processor (#228)
Correct timezone handling for UTC offset (#225) β‘ Performance
Optimize database queries for dashboard load (#222) π¦ Dependencies
Bump express from 4.18 to 4.21 π§ Other
Update CI pipeline for Node 22 Full Changelog: v1.2.0...v1.3.0
4. Alternative Formats
Compact (for small releases):
v1.3.0 β Dark mode, batch export, 5 bug fixes. Breaking: removed legacy_auth.
Keep a Changelog (keepachangelog.com):
## [1.3.0] - 2026-03-26
Added
Dark mode support
Changed
Optimized dashboard queries
Removed
Deprecated legacy_auth endpoint
Fixed
Race condition in queue processor
Slack/Discord announcement:
π v1.3.0 is out!Highlights:
β Dark mode support
β Batch CSV/JSON export
β 5 bug fixes
β οΈ Breaking: legacy_auth endpoint removed β migrate to /v2/auth
Customization
Users can specify:
Scripts
scripts/gather_commits.sh β Outputs JSON array of commits with hash, author, date, subject, body