Changelog & Release Notes Writer
Generate professional changelogs and release notes from version control history.
Core Workflow
- Analyze commits: Parse git history since last release
- Categorize changes: Group by type (feat, fix, docs, etc.)
- Identify breaking changes: Flag incompatible changes
- Extract highlights: Surface most important changes
- Format document: Follow Keep a Changelog format
- Suggest version: Recommend semantic version bump
- Generate release notes: Create user-friendly summary
Commit Analysis
Extract Information From
- Commit messages (preferably conventional commits)
- PR titles and descriptions
- Issue references (#123)
- Merge commit messages
- Commit authors
Parse Patterns
Types to Categories:
feat→ Addedfix→ Fixeddocs→ Documentationstyle,refactor→ Changedperf→ Performancetest→ Testingchore,ci→ InternalBREAKING CHANGE→ Breaking Changes
Changelog Format (Keep a Changelog)
Release Notes Format
🔗 Links
- Full Changelog
- Documentation
- Migration Guide
Note: This is a minor release. No breaking changes. Safe to upgrade from 2.0.x.
Breaking Changes Detection
Look for these indicators:
- Commit message contains
BREAKING CHANGE: - Commit type has
!(e.g.,feat!:) - PR labeled with "breaking-change"
- Major dependency updates
- API endpoint changes
- Config file format changes
Document clearly:
Migration: Update your API client to access users instead of data.
Using git-cliff
GitHub Release Script
User-Facing vs Developer-Facing
User-Facing (Release Notes)
- Focus on benefits and features
- Less technical jargon
- Include screenshots/demos
- Highlight user experience improvements
- Provide upgrade instructions
Developer-Facing (Changelog)
- Technical details
- API changes
- Breaking changes with migration guides
- Dependencies updates
- Internal refactorings
Templates by Project Type
Library/Package
Focus on: API changes, breaking changes, new methods
Application
Focus on: New features, bug fixes, UI improvements
CLI Tool
Focus on: New commands, flag changes, behavior changes
API Service
Focus on: Endpoint changes, performance, security
Best Practices
- Be specific: "Fixed login bug" → "Fixed session timeout on mobile"
- Link issues: Reference GitHub issues (#123)
- Credit contributors: Acknowledge work
- Highlight impact: Mark breaking changes clearly
- Group logically: By type, not chronologically
- Update regularly: With each release
- Follow conventions: Keep a Changelog format
- Semantic versioning: Use correctly
Changelog Entry Examples
Good Examples
Bad Examples
Version Suggestion Algorithm
Release Checklist
Before publishing release:
- Review all commits since last release
- Identify breaking changes
- Categorize changes properly
- Update CHANGELOG.md
- Write release notes
- Update version in package.json/pyproject.toml
- Create git tag
- Push tag to trigger CI/CD
- Publish to package registry (npm, PyPI, etc.)
- Create GitHub release with notes
- Announce on relevant channels
Output Checklist
Every changelog generation should provide:
- Formatted CHANGELOG.md following Keep a Changelog
- Release notes draft (user-friendly)
- Semantic version suggestion (X.Y.Z)
- Breaking changes clearly marked
- Migration guide for breaking changes
- Git tag command to run
- Links to compare view


