Help us improve
Share bugs, ideas, or general feedback.
From generate-changelog
Generate changelogs from git commit history between two tags or commits following the Keep a Changelog format from https://keepachangelog.com/en/1.1.0/. This skill should be used when users need to create structured changelogs for releases based on git commit messages.
npx claudepluginhub krfantasy/alsdiff --plugin generate-changelogHow this skill is triggered — by the user, by Claude, or both
Slash command
/generate-changelog:generate-changelogThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Automatically generate changelogs from git commit history following the Keep a Changelog format.
Analyzes git commit history to generate changelogs with semantic versioning, conventional commit categorization, and formats like Keep a Changelog, Conventional, or GitHub. Use for CHANGELOG.md updates, release notes, and version bumps.
Generates a formatted CHANGELOG.md from git commit history, grouped by type and ready for release.
Generates user-facing changelogs from git commits by categorizing changes and translating technical messages into customer-friendly release notes.
Share bugs, ideas, or general feedback.
Automatically generate changelogs from git commit history following the Keep a Changelog format.
This skill reads git commit messages between two specified points (tags or commits) and generates a structured changelog in markdown format. It uses Conventional Commits parsing to categorize changes into standard sections.
Basic usage:
Generate a changelog between v1.0.0 and v2.0.0
Or with more specific parameters:
Create a changelog from tag v0.3.0 to v0.4.0 and save to CHANGELOG.md
--from and --to git refsParse the following patterns from user input:
| Pattern | Example | Extracted Values |
|---|---|---|
between X and Y | "between v1.0.0 and v2.0.0" | from=v1.0.0, to=v2.0.0 |
from X to Y | "from v0.3.0 to v0.4.0" | from=v0.3.0, to=v0.4.0 |
X...Y | "v1.0.0...v2.0.0" | from=v1.0.0, to=v2.0.0 |
save to FILE | "save to CHANGELOG.md" | output=CHANGELOG.md |
Default behavior when --from is omitted: use the previous tag
Default behavior when --to is omitted: use HEAD
Map Conventional Commits types to Keep a Changelog sections:
| Commit Type | Changelog Section |
|---|---|
feat: | Added |
fix: | Fixed |
change: | Changed |
deprecate: | Deprecated |
remove: | Removed |
security: | Security |
perf: | Changed (performance) |
refactor: | Omit (internal only) |
test: | Omit (internal only) |
docs: | Omit unless user-facing |
style: | Omit (internal only) |
ci: | Omit (internal only) |
build: | Omit (internal only) |
chore: | Omit (internal only) |
Non-conventional commits: Infer category from message content or place under "Other"
Generate a changelog between v1.0.0 and v1.1.0
Output:
## [1.1.0] - 2026-04-01
### Added
- New user authentication system
- Export to PDF functionality
### Fixed
- Memory leak in audio processing
- Crash on startup with older configuration files
Create a changelog from v0.3.0 to v0.4.0 and save to RELEASE_NOTES.md
Generate changelog from abc123 to def456
Create a changelog from the last tag to HEAD
What changed between v2.0.0 and v2.1.0?
Generated changelogs follow this structure:
## [VERSION] - YYYY-MM-DD
### Added
- Feature description
### Changed
- Modification description
### Deprecated
- Deprecation notice
### Removed
- Removal notice
### Fixed
- Bug fix description
### Security
- Security fix description
Empty sections are omitted.
scripts/gen_changelog.py - Core implementation scriptreferences/keep_a_changelog.md - Keep a Changelog specificationGenerate a changelog for v1.0.0 to v2.0.0, only include features and fixes
Create a detailed changelog from v0.1.0 to v0.2.0 including all commits
Generate changelog between tags and save to docs/releases/v1.0.0.md