Changelog Generator
Generates consistent, auditable release notes from Conventional Commits. It parses commit messages, computes semantic version bumps, and renders Keep a Changelog sections, with support for CI integration and editorial control.
✨ What it does
- Parses commit messages using Conventional Commit rules
- Detects semantic bump (major/minor/patch) from commit stream
- Renders Keep a Changelog sections (Added, Changed, Fixed, etc.)
- Generates release entries from git ranges or provided commit input
- Enforces commit format with a dedicated linter script
- Supports CI integration via machine-readable JSON output
🎯 When to use it
- Before publishing a release tag
- During CI to generate release notes automatically
- During PR checks to block invalid commit message formats
- In monorepos where package changelogs require scoped filtering
- When converting raw git history into user-facing notes
🚀 How to use
Trigger by asking to generate a changelog, compute the next version, or lint commits. Provide a git range (e.g., from-tag to-tag) or commit input via stdin/file. Use the provided Python scripts with options like --from-tag, --to-tag, --next-version, --format, and --write. Example prompts:
generate the changelog for v1.4.0
what version bump do these commits require
📄 Output: Generates a changelog entry in markdown or JSON, optionally updating CHANGELOG.md, and can output a recommended version and bump type.
📦 Add this skill to Claude Code
# 1. Get the skills repo
git clone --depth 1 https://github.com/alirezarezvani/claude-skills /tmp/claude-skills
# 2. Copy this skill into your project (or ~/.claude/skills for all projects)
mkdir -p .claude/skills
cp -r /tmp/claude-skills/engineering/skills/changelog-generator .claude/skills/changelog-generatorSkill source: engineering/skills/changelog-generator/SKILL.md
⚠️ Good to know
Requires commits to follow Conventional Commit format; if no valid conventional commits are found, it fails early and does not generate misleading empty notes.
❓ FAQ
How does the skill determine the next semantic version?
It uses the version_bumper.py script to analyze commit messages and outputs a recommended_version and bump_type (major/minor/patch/none).
Can I generate a changelog from a file instead of git history?
Yes, you can use the --input option to read commits from a file or pipe them via stdin.
What happens if my commits don't follow Conventional Commits?
The commit_linter.py script will flag violations, and in strict mode it returns a non-zero exit code, blocking merges.
🤖 Overview, features, install steps and FAQ were generated from the project's SKILL.md on Sep 4, 2026. Always check the original source before running commands.