| name | changelog |
| description | Changelog Generation Command ๐ |
| disable-model-invocation | true |
Changelog Generation Command ๐
Generate a changelog.md by analyzing git history and tags.
Git Commands
git tag --sort=-version:refname
git describe --tags --abbrev=0
git log --oneline --no-merges $(git describe --tags --abbrev=0 2>/dev/null || echo "")..HEAD
git log --oneline --no-merges <prev-tag>..<current-tag>
git log -1 --format=%ai <tag-name>
Loop Through All Tags
ALL_TAGS=$(git tag --sort=-version:refname)
for tag in $ALL_TAGS; do
PREV_TAG=$(git describe --tags --abbrev=0 $tag^ 2>/dev/null || echo "")
COMMITS=$(git log --oneline --no-merges $PREV_TAG..$tag)
echo "Version $tag:"
echo "$COMMITS"
echo "---"
done
Filter by Conventional Commit Type
git log --oneline --grep="^feat:" <tag1>..<tag2>
git log --oneline --grep="^fix:" <tag1>..<tag2>
git log --oneline --grep="^docs:" <tag1>..<tag2>
git log --oneline --grep="BREAKING" <tag1>..<tag2>
Generate Changelog
Run these commands and format output following Keep a Changelog format:
- Analyze all git tags
- Categorize commits by type (feat, fix, docs, chore, etc.)
- Create sections: Added, Fixed, Changed, Documentation
- Include unreleased changes at the top
- Store at project root as
changelog.md
See .cursor/rules/utils/changelog-generator-manual.mdc for full formatting rules.