CHANGELOG.md Builder
A good changelog tells users what changed without making them read commit logs. The Keep a Changelog standard gives that structure: newest releases on top, an Unreleased staging area, and a fixed set of categories. This builder assembles a compliant CHANGELOG.md from your release entries so the formatting is correct every time.
How it works
The output starts with the standard header noting the file follows Keep a Changelog and Semantic Versioning. It then renders an ## [Unreleased] section followed by each release as ## [version] - YYYY-MM-DD. Within every section, non-empty categories appear in the canonical order: Added, Changed, Deprecated, Removed, Fixed, Security. Each entry becomes a - bullet. Empty categories are omitted so the file stays clean.
Tips, example, and notes
A typical entry looks like:
## [1.2.0] - 2026-06-06
### Added
- CSV export on the reports page.
### Fixed
- Crash when opening an empty project.
Keep entries written for humans, in past or imperative tense, and avoid raw commit hashes. When you release, promote the Unreleased items into a dated version and open a new empty Unreleased section. Reserve the Security category for vulnerability fixes so they are easy to audit.