changelog-generator
Generate structured changelogs for app releases from git history. Use when preparing releases, documenting changes, or creating version notes.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
Changelog Generator
Generate clean, developer-friendly changelogs from git history with code samples for breaking changes.
When to Use
- Preparing a new release
- Documenting changes since last version
- Creating release notes
- Reviewing what changed between tags
Instructions
Step 1: Determine Version Range
# Find the last release tag
git describe --tags --abbrev=0
# List recent tags for reference
git tag --sort=-version:refname | head -5
Step 2: Gather Commits
# Get commits since last tag
git log $(git describe --tags --abbrev=0)..HEAD --oneline --no-merges
Step 3: Generate Changelog
Create .changelogs/{version}.md with:
- Simple checklist format - one item per meaningful change
- No unnecessary comments - keep it scannable
- Code samples for breaking/API changes - brief, compliant examples
Output Format
# v{version}
## Changes
- [ ] Added: Feature description
- [ ] Fixed: Bug description
- [ ] Changed: Behavior change description
- [ ] Removed: Deprecated item
## Breaking Changes
### Change Title
Brief description of what changed.
```ts
// Before
oldMethod(param: string)
// After
newMethod(param: string, options?: Options)
Migration Notes
[Only if applicable - brief migration steps]
## Guidelines
- **Group by type**: Added, Fixed, Changed, Removed, Deprecated
- **Be concise**: One line per change, details only when needed
- **Code samples**: Only for developer-facing changes that need examples
- **Language tags**: Always include language in code blocks (e.g., `ts`, `js`, `bash`)
## Example
**Input**: Generate changelog for v2.1.0
**Output**: `.changelogs/v2.1.0.md`
```markdown
# v2.1.0
## Changes
- [x] Added: WebSocket reconnection with exponential backoff
- [x] Fixed: Memory leak in event listener cleanup
- [x] Changed: Default timeout from 30s to 60s
## Breaking Changes
### Event handler signature updated
```ts
// Before
client.on('message', (data) => {})
// After
client.on('message', (data, metadata) => {})
## Notes
- Infer version from context or prompt user if unclear
- Skip merge commits and version bump commits
- Focus on user/developer-facing changes
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!