changelog
Generate a user-facing changelog from git commits — categorize, filter noise, translate to user language. Runs in isolated fork context.
SKILL.md.claude/skills/changelog/SKILL.md
GitHubChangelog Generator
Generate a clean, categorized changelog from git commits.
Process
1. Gather Commits
Use $ARGUMENTS as starting point (tag or date). Default: last 2 weeks.
# From a tag
git log --oneline --no-merges v1.0.0..HEAD
# From a date
git log --oneline --no-merges --since="$ARGUMENTS"
# Default
git log --oneline --no-merges --since="2 weeks ago" | head -50
2. Categorize Changes
- ✨ New Features — new functionality visible to users
- 🔧 Improvements — enhanced existing functionality
- 🐛 Bug Fixes — resolved defects
- 🔒 Security — CVE fixes, dependency upgrades
- ⚠️ Breaking Changes — API changes, schema migrations
- 📝 Documentation — doc updates
3. Filter Noise
Exclude: refactoring, test-only changes, CI/CD changes, merge commits, lint formatting
4. Translate to User-Friendly Language
- Remove ticket prefixes
- Replace internal service names with user-facing terms
- Focus on what changed for the user, not how
5. Output
# Release Notes — [Version or Date]
## ✨ New Features
- **[Feature Name]**: [User-facing description]
## 🔧 Improvements
- **[Area]**: [What improved]
## 🐛 Bug Fixes
- Fixed [user-visible issue]
## 🔒 Security
- Updated [dependency] to fix [CVE-ID]
Write output to claude/tasks/changelog-draft.md.