Keep a Changelog Format
This skill provides guidelines for writing and formatting changelogs following the Keep a Changelog specification.
Core Principles
- •Changelogs are for humans - Write for users, not machines
- •Every version gets a section - Including
[Unreleased]for upcoming changes - •Changes are grouped by type - Consistent categorization
- •Versions are linkable - Each version header links to comparison
- •Latest version comes first - Reverse chronological order
- •Release dates are shown - ISO format: YYYY-MM-DD
Change Categories
Use these categories in this order:
| Category | Description | When to Use |
|---|---|---|
| Added | New features | New functionality users can now do |
| Changed | Changes in existing functionality | Behavior modifications, improvements |
| Deprecated | Soon-to-be removed features | Features marked for future removal |
| Removed | Removed features | Features that no longer exist |
| Fixed | Bug fixes | Corrections to existing functionality |
| Security | Security vulnerability fixes | Security-related changes |
Category Guidelines
Added
- •New user-facing features
- •New API endpoints
- •New configuration options
- •New integrations
Changed
- •Performance improvements
- •UX/UI changes
- •Default value changes
- •Behavior modifications
Deprecated
- •Features planned for removal
- •APIs being replaced
- •Include migration path when possible
Removed
- •Breaking changes (removed functionality)
- •Deleted APIs or features
- •Always note what replaced it (if applicable)
Fixed
- •Bug corrections
- •Error handling improvements
- •Edge case fixes
Security
- •Vulnerability patches
- •Security-related fixes
- •Always include CVE if available
Entry Writing Guidelines
Use Imperative Mood
Start entries with imperative verbs:
| Do | Don't |
|---|---|
| Add support for... | Added support for... |
| Fix crash when... | Fixed a crash that occurred when... |
| Remove deprecated... | Removed the deprecated... |
| Change default to... | Changed the default to... |
Focus on User Impact
Write from the user's perspective:
| Good (User-focused) | Bad (Implementation-focused) |
|---|---|
| Add dark mode toggle | Implement ThemeProvider context |
| Fix login failing silently | Add try-catch to auth handler |
| Speed up page load by 40% | Optimize database queries |
Be Specific and Concise
| Good (Specific) | Bad (Vague) |
|---|---|
| Fix crash when uploading files over 10MB | Fix upload bug |
| Add CSV export for transaction history | Add export feature |
| Change session timeout from 30 to 60 minutes | Update session settings |
Include Context When Helpful
Use parenthetical context for clarity:
markdown
- Add OAuth2 support (Google, GitHub) - Fix timezone handling (UTC offset calculation) - Change rate limit (100 → 500 requests/minute)
Changelog Structure
markdown
# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/). ## [Unreleased] ### Added - New entries go here ## [1.0.0] - 2024-01-15 ### Added - Initial public release - Feature A with description - Feature B with description ### Changed - Improvement to existing feature ### Fixed - Bug fix description ## [0.9.0] - 2024-01-01 ### Added - Beta release features [Unreleased]: https://github.com/owner/repo/compare/v1.0.0...HEAD [1.0.0]: https://github.com/owner/repo/compare/v0.9.0...v1.0.0 [0.9.0]: https://github.com/owner/repo/releases/tag/v0.9.0
Semantic Versioning Connection
Changelog categories map to version bumps:
| Category | Version Impact |
|---|---|
| Removed (after v1.0) | MAJOR bump |
| Removed (before v1.0) | MINOR bump |
| Added, Changed | MINOR bump |
| Deprecated, Fixed, Security | PATCH bump |
What NOT to Include
- •Internal refactoring (unless it affects users)
- •Dependency updates (unless they affect functionality)
- •Test changes
- •CI/CD changes
- •Documentation-only changes (unless user-facing docs)
- •Code style/formatting changes
Reference Files
- •
references/entry-examples.md- Examples of well-written vs poorly-written entries