Automatically creates user-facing changelogs from git commits by analyzing commit history, categorizing changes, and transforming technical commits into clear, customer-friendly release notes. Turns hours of manual changelog writing into minutes of automated generation.
This skill transforms technical git commits into polished, user-friendly changelogs that your customers and users will actually understand and appreciate. It encodes the frameworks for writing release notes that different audiences actually read.
From your project repository:
Create a changelog from commits since last release
Generate changelog for all commits from the past week
Create release notes for version 2.5.0 tailored for end users
Create a changelog for all commits between March 1 and March 15
Create a changelog for commits since v2.4.0, using my changelog
guidelines from CHANGELOG_STYLE.md
Follow these steps to generate the changelog:
Choose the appropriate command based on the user's request:
By Time Period:
# Get commits from the last X days/weeks
git log --since="7 days ago" --oneline --no-merges
# Get commits between two dates
git log --since="2024-03-01" --until="2024-03-15" --oneline --no-merges
By Version Tag:
# Get commits between the last tag and HEAD
git log $(git describe --tags --abbrev=0)..HEAD --oneline --no-merges
# Get commits between two specific tags
git log v1.0.0..v1.1.0 --oneline --no-merges
Map commit contents to categories using these regex patterns (case-insensitive):
| Prefix/Pattern | Category | Emoji |
|---|---|---|
^feat: or feature: | New | 🚀 |
^fix: or bug: | Fixed | 🐛 |
^perf: or performance: | Improved | ⚡ |
^docs: | Documentation | 📚 |
^style: or ui: | Improved | ✨ |
^refactor: | Internal (Exclude unless major) | 🛠️ |
^test: | Internal (Exclude) | 🧪 |
^chore: | Internal (Exclude) | 🧹 |
BREAKING CHANGE: | Changed | ⚠️ |
Heuristics for Uncategorized Commits:
Exclude commits that match:
Merge branch...Bump version...Update dependencies... (unless security related)Lint code...Update README... (unless meaningful doc change)feat: add redis caching layer to user endpointsImproved: User Dashboards: Profiles now load instantly.## [VERSION] - [DATE]
### 🚀 NEW
- **[Feature]**: [User benefit] [Link to docs]
### ✨ IMPROVED
- **[Enhancement]**: [What's better]
### 🐛 FIXED
- **[Bug]**: [What was wrong, now resolved]
### ⚠️ CHANGED
- **[Breaking change]**: [What to do]
### 📚 DOCUMENTATION
- **[Doc update]**: [What's new]
When asking for a changelog, specify your audience to get the right tone and detail level.
Tone: Benefit-focused, simple language Length: 3-5 bullets per category
Example:
New: Export to Excel You can now export any report to Excel with one click. Find the export button in the top right of any report view.
Tone: Precise, technical detail Include: API changes, breaking changes, migration steps
Example:
API: New pagination parameters Added
cursorandlimitparameters to/api/v2/users. Theoffsetparameter is deprecated and will be removed in v3.0. See [migration guide].
Tone: Enablement-focused Include: Talking points, competitive implications
Example:
New: Export to Excel
- Talking point: "You can now export any report to Excel instantly"
- Customer ask this solves: Export functionality (requested by 47 customers)
- Competitive note: Competitor X charges extra for this
| Category | Icon | Include When |
|---|---|---|
| New | 🚀 | New features or capabilities |
| Improved | ✨ | Enhancements to existing features |
| Fixed | 🐛 | Bug fixes |
| Changed | ⚠️ | Breaking changes, deprecations |
| Security | 🔒 | Security updates |
| Performance | ⚡ | Speed/efficiency improvements |
| Technical | User-Friendly |
|---|---|
| "Implemented caching layer" | "Reports now load 3x faster" |
| "Fixed null pointer exception" | "Resolved issue causing occasional crashes" |
| "Added OAuth2 support" | "You can now sign in with Google" |
| "Refactored data model" | [Don't include - no user impact] |
Include:
Exclude: