Context
- Last tag: !
git describe --tags --abbrev=0 2>/dev/null || echo "No tags found" - Commits since last tag: !
git log $(git describe --tags --abbrev=0 2>/dev/null || echo HEAD~20)..HEAD --oneline - Changed files: !
git diff --stat $(git describe --tags --abbrev=0 2>/dev/null || echo HEAD~20)..HEAD
Task
Generate release notes from the commits above. Follow these steps:
- Group commits by type using conventional commit prefixes or inferred categories:
- Features — New functionality
- Fixes — Bug fixes
- Breaking Changes — Anything that breaks backwards compatibility (highlight prominently)
- Improvements — Refactoring, performance, DX improvements
- Documentation — Doc changes
- Other — Everything else
- Write user-friendly descriptions (not raw commit messages)
- Omit empty categories
- Format as markdown with this structure:
# Release Notes — [version or date]
## Breaking Changes
- Description of breaking change
## Features
- Description of feature
## Fixes
- Description of fix
## Improvements
- Description of improvement
Output only the formatted release notes.