Changelog Generator
This skill transforms technical git commits into polished, user-friendly changelogs that your customers and users will actually understand and appreciate.
When to Use This Skill
- Preparing release notes for a new version
- Creating weekly or monthly product update summaries
- Documenting changes for customers
- Writing changelog entries for app store submissions
- Generating update notifications
- Creating internal release documentation
- Maintaining a public changelog/product updates page
What This Skill Does
- Scans Git History: Analyzes commits from a specific time period or between versions
- Categorizes Changes: Groups commits into logical categories (features, improvements, bug fixes, breaking changes, security)
- Translates Technical → User-Friendly: Converts developer commits into customer language
- Formats Professionally: Creates clean, structured changelog entries
- Filters Noise: Excludes internal commits (refactoring, tests, etc.)
- Follows Best Practices: Applies changelog guidelines and your brand voice
How to Use
Basic Usage
From your project repository:
Create a changelog from commits since last releaseGenerate changelog for all commits from the past weekCreate release notes for version 2.5.0With Specific Date Range
Create a changelog for all commits between March 1 and March 15With Custom Guidelines
Create a changelog for commits since v2.4.0, using my changelog
guidelines from CHANGELOG_STYLE.mdInstructions
When creating a changelog:
- Analyze Git History
- Use git log to retrieve commit messages for the specified time period - Default to commits since the last tag if no range specified - Look for commit conventions (Conventional Commits, semantic versioning tags)
- Categorize Commits
- ✨ New Features: New capabilities or functionality - 🔧 Improvements: Enhancements to existing features - 🐛 Bug Fixes: Corrections to defects - ⚠️ Breaking Changes: Changes that require user action - 🔒 Security: Security-related fixes or improvements - 📚 Documentation: Documentation updates (usually exclude from user-facing changelog) - 🧹 Internal: Refactoring, tests, build changes (exclude from user-facing changelog)
- Transform Technical → User Language Examples:
- Focus on what changed for the user, not how it was implemented - Use active voice and present tense - Explain the benefit, not the implementation - Replace technical jargon with plain language - ❌ "Refactored authentication service to use JWT tokens" - ✅ "Faster, more secure login experience" - ❌ "Added Redis caching layer to API endpoints" - ✅ "Pages load 50% faster" - ❌ "Implemented debounce on search input component" - ✅ "Search now responds instantly as you type"
- Format the Changelog
- Use clear section headers with emojis for visual scanning - Start with most impactful changes (features, breaking changes) - Use bold for the feature name, then explain in plain language - Keep entries concise (1-2 sentences) - Group related changes together
- Apply Filters
- Exclude commits marked as chore:, test:, docs:, refactor: (unless user-facing) - Skip merge commits and version bump commits - Combine multiple commits about the same feature into one entry - Remove developer-only changes
- Add Context
- Include the date or version number in the title - Add a brief introduction if it's a major release - Link to detailed documentation for breaking changes - Include migration guides when relevant
Example
User: "Create a changelog for commits from the past 7 days"
Output:
# Updates - Week of March 10, 2024
## ✨ New Features
- **Team Workspaces**: Create separate workspaces for different
projects. Invite team members and keep everything organized.
- **Keyboard Shortcuts**: Press ? to see all available shortcuts.
Navigate faster without touching your mouse.
## 🔧 Improvements
- **Faster Sync**: Files now sync 2x faster across devices
- **Better Search**: Search now includes file contents, not just titles
## 🐛 Fixes
- Fixed issue where large images wouldn't upload
- Resolved timezone confusion in scheduled posts
- Corrected notification badge countInspired by: Manik Aggarwal's use case from Lenny's Newsletter
Changelog Best Practices
Writing Style
- User-focused: Explain what changed for the user, not the code
- Benefit-oriented: Lead with why this matters
- Concise: Keep entries to 1-2 sentences
- Scannable: Use formatting to help users find what they care about
Structure
- Consistent categorization: Use the same categories every time
- Most important first: Features and breaking changes before bug fixes
- Chronological within categories: Newest changes first
- Visual hierarchy: Use headers, bold text, and emojis effectively
Content Guidelines
- Be specific: "Fixed login issues" → "Fixed issue where login failed with Google accounts"
- Quantify when possible: "Faster loading" → "Pages load 50% faster"
- Include context: Explain why changes were made for major updates
- Link to details: Reference documentation or migration guides for complex changes
Tips
- Run from your git repository root
- Specify date ranges for focused changelogs
- Use your CHANGELOG_STYLE.md for consistent formatting
- Review and adjust the generated changelog before publishing
- Save output directly to CHANGELOG.md
Related Use Cases
- Creating GitHub release notes
- Writing app store update descriptions
- Generating email updates for users
- Creating social media announcement posts
Example Transformations
Technical Commit → User-Friendly Entry
| Technical Commit | User-Friendly Entry |
|---|---|
| "Add OAuth2 support for SSO integration" | "Single Sign-On: Log in with your company account" |
| "Optimize database queries with indexes" | "Dashboard loads 3x faster" |
| "Implement WebSocket connection for real-time updates" | "See changes instantly without refreshing" |
| "Add validation for email input fields" | "Helpful error messages when entering invalid emails" |
| "Fix memory leak in background sync worker" | "Improved app stability during long sessions" |
Category Examples
✨ New Features
- New capabilities that didn't exist before
- Major additions to functionality
- New integrations or platform support
🔧 Improvements
- Performance enhancements
- UI/UX refinements
- Expanded existing functionality
- Better error messages
🐛 Bug Fixes
- Corrections to existing features
- Resolution of reported issues
- Fixes to edge cases
⚠️ Breaking Changes
- Changes requiring user action
- Removed features or APIs
- Changes to default behavior
- Migration steps required
🔒 Security
- Security patches
- Permission improvements
- Authentication enhancements
- Data protection updates