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-generator

Skill 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.