Maintain CHANGELOG.md with properly categorized entries. Use after implementing features, fixing bugs, or making any notable changes. Follows Keep a Changelog format.
You are maintaining the project's CHANGELOG.md following the Keep a Changelog format.
If changes are specified, add them to the changelog immediately. If not:
I'll help you update the changelog.
Please provide:
1. **What changed**: Describe the changes (or I'll check git diff)
2. **Category**: Added, Changed, Fixed, etc. (or I'll determine from context)
If no specific changes are provided:
git diff or recent commits for changesNever add changelog entries for changes you haven't verified.
Use these categories in this order:
| Category | Use When |
|---|---|
| Added | New features, capabilities, or functionality |
| Changed | Changes to existing functionality |
| Deprecated | Features that will be removed in future versions |
| Removed | Features that were removed |
| Fixed | Bug fixes |
| Security | Security-related changes or vulnerability fixes |
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Added
- New feature description
### Fixed
- Bug fix description
## [1.0.0] - 2024-01-15
### Added
- Initial release feature
1. Check if CHANGELOG.md exists
2. If not, create one with the standard header
3. Find the [Unreleased] section
4. Note the existing format and style
1. Review what was implemented/fixed
2. Identify the appropriate category
3. Write clear, user-facing descriptions
4. Consider the impact from the user's perspective
1. Add to the [Unreleased] section
2. Create the category section if it doesn't exist
3. Keep entries concise but descriptive
4. Use bullet points with dashes (-)
1. Entry is in the correct category
2. Description is clear and accurate
3. Follows the existing style
4. No duplicate entries
Write entries from the user's perspective, not implementation details.
BAD: "Refactored UserService to use dependency injection"
GOOD: "User profile updates are now 50% faster"
BAD: "Added validateInput() helper function"
GOOD: "Form validation now catches invalid email formats before submission"
BAD: "Fixed bug"
GOOD: "Fixed issue where login failed after password reset"
BAD: "Improved performance"
GOOD: "Reduced dashboard load time from 3s to 800ms"
One line per change. If you need more detail, link to docs or issues.
GOOD: "Add dark mode toggle in Settings (#123)"
BAD: "Add a new toggle button in the Settings page that allows users to switch between light mode and dark mode, which changes the color scheme of the entire application including all components and pages"
If multiple changes are part of one feature, group them:
### Added
- User authentication system
- Login and logout functionality
- Password reset via email
- Remember me option
New features that didn't exist before.
### Added
- Export reports to PDF format
- Dark mode support
- API rate limiting with configurable thresholds
Modifications to existing behavior.
### Changed
- Dashboard now loads data lazily for better performance
- Increased default timeout from 30s to 60s
- Updated email templates with new branding
Features that will be removed (warn users).
### Deprecated
- `getUser()` function - use `fetchUser()` instead
- XML export format - will be removed in v3.0
Features that were removed.
### Removed
- Legacy v1 API endpoints
- Support for Node.js 14
Bug fixes.
### Fixed
- Users could not log in with email containing "+" character
- Memory leak when processing large files
- Incorrect calculation in monthly reports
Security fixes and improvements.
### Security
- Patch XSS vulnerability in comment rendering
- Add CSRF protection to all forms
- Upgrade dependencies with known vulnerabilities
If CHANGELOG.md doesn't exist, create it:
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Added
- Initial feature
[Unreleased]: https://github.com/owner/repo/compare/v0.1.0...HEAD
When releasing, move [Unreleased] changes to a new version section:
## [Unreleased]
## [1.2.0] - 2024-03-15
### Added
- (items moved from Unreleased)
### Fixed
- (items moved from Unreleased)
Update the comparison links at the bottom:
[Unreleased]: https://github.com/owner/repo/compare/v1.2.0...HEAD
[1.2.0]: https://github.com/owner/repo/compare/v1.1.0...v1.2.0
Before adding changelog entries:
NEVER:
✗ Add entries for changes that weren't made
✗ Guess at what a change does
✗ Duplicate existing entries
✗ Add internal refactoring unless it has user impact
## Changelog Updated
Added to `CHANGELOG.md` under [Unreleased]:
### Added
- Documentation-writer agent for automated documentation generation
- ADR-writer agent for architecture decision records
- Changelog-writer skill for maintaining changelog
### Changed
- Wiggum loop now includes documentation and changelog steps
## Changelog Created
Created `CHANGELOG.md` with initial structure and entries.
See: CHANGELOG.md
Before finishing, verify: