Skills

Changelog Generator

Generates user-facing changelogs and release notes from git commit history.

Install

npx skills add ECNU-ICALK/AutoSkill --skill changelog-generator -g -a claude-code -y
Category
Git and review
Updated
6mo ago
License
See repository
Context cost
Lightabout 578 tokens
Runs scripts
No, instructions only

What it does

Generates user-facing changelogs and release notes from git commit history. Parses conventional commits, categorizes changes into features, fixes, breaking changes, and more, then rewrites technical messages into customer-friendly language. Use when the user asks to generate a changelog, write release notes, summarize recent commits, prepare CHANGELOG.md, or document what changed between versions.

Changelog Generator

Generate structured, user-facing changelogs from git commit history.

Workflow

Step 1, Gather commits

Determine the commit range from the user's request, then fetch commits:

# Between tags/versions
git log v1.2.0..v1.3.0 --oneline --no-merges
# Since a date
git log --since="2024-03-01" --oneline --no-merges
# Since last tag (default when no range given)
git log "$(git describe --tags --abbrev=0)"..HEAD --oneline --no-merges

If there are no tags and no range specified, ask the user for a date or count.

Step 2, Categorize each commit

Apply these rules based on the commit message prefix:

Prefix / patternCategory
feat: feature:New Features
fix: bugfix:Bug Fixes
perf:Performance
BREAKING CHANGE or !: suffixBreaking Changes
security: vuln:Security
docs: test: ci: chore: refactor: style: build:Skip (internal)

For non-conventional messages, infer category from content. Exclude purely internal commits (test infra, CI config, linting, dependency bumps with no user impact).

Step 3, Rewrite for a non-technical audience

Transform each kept commit into a clear, benefit-focused sentence:

  • Strip scope tags like (api): or (auth):
  • Expand abbreviations and jargon
  • Lead with the user-visible outcome, not the implementation
  • Use present tense: "Add", "Fix", "Improve"
  • One sentence per entry

Example: fix(auth): race condition in token refresh becomes "Fix an issue where sessions could expire unexpectedly during use."

Step 4, Format the output

# Changelog, vX.Y.Z (YYYY-MM-DD)

## Breaking Changes
- [entry]

## New Features
- [entry]

## Improvements
- [entry]

## Bug Fixes
- [entry]

## Security
- [entry]

Omit any empty section. Order: breaking changes, features, improvements, fixes, security. If the repo already has a CHANGELOG.md or CHANGELOG_STYLE.md, match its existing conventions instead.

Read the whole SKILL.md on GitHub

More in Git and review