Generate a user-facing changelog or release notes from git commit history. Use when updating CHANGELOG.md, preparing version notes, writing a release summary, or documenting what changed between tags or dates. Analyzes commits, categorizes by type, filters noise, and rewrites technical messages into customer-friendly language.
Scanned 9/7/2026
Install to Claude Code
npx -y skills add Activer007/ordinary-claude-skills --skill changelog-generator --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Changelog Generator?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/activer007-changelog-generator-ordinary-claude-skills)More formats (shields.io, HTML) on the badges page.
---
name: changelog-generator
description: "Generate a user-facing changelog or release notes from git commit history. Use when updating CHANGELOG.md, preparing version notes, writing a release summary, or documenting what changed between tags or dates. Analyzes commits, categorizes by type, filters noise, and rewrites technical messages into customer-friendly language."
---
# Changelog Generator
Generate user-facing changelogs from git commit history by categorizing changes, filtering internal noise, and rewriting technical commits into clear release notes.
## Workflow
Follow these steps sequentially to produce a changelog.
### Step 1 — Determine the Commit Range
Identify the range of commits to include. Use tags, dates, or SHAs.
```bash
# Between two tags
git log --oneline v1.2.0..v1.3.0
# Since a specific date
git log --oneline --since='2024-03-01'
# Since the last tag
git log --oneline $(git describe --tags --abbrev=0)..HEAD
```
### Step 2 — Categorize Commits
Map each commit to a changelog section using conventional commit prefixes:
| Prefix | Section |
|--------|---------|
| `feat:` | New Features |
| `fix:` | Bug Fixes |
| `perf:` | Performance |
| `docs:` | Documentation |
| `BREAKING CHANGE` or `!:` | Breaking Changes |
| `security:` | Security |
For repositories not using conventional commits, infer the category from the commit message content (e.g., "add" → New Features, "fix" / "resolve" → Bug Fixes, "improve" / "update" → Improvements).
### Step 3 — Filter Out Noise
Exclude commits that are not user-facing:
- Prefixes: `chore:`, `ci:`, `test:`, `refactor:`, `style:`, `build:`
- Merge commits (`Merge branch ...`, `Merge pull request ...`)
- Dependency-bot commits (dependabot, renovate)
- Release-only commits (`chore: release v1.2.3`)
### Step 4 — Rewrite for Users
Transform each remaining commit from developer language to user-facing language:
- Remove file paths, function names, and implementation details
- Explain the impact or benefit to the user
- Start each entry with a bold feature name when possible
Example transformation:
```
# Raw commit
feat(sync): implement delta-sync algorithm using rsync protocol for FileStore
# User-facing entry
- **Faster Sync**: Files now sync 2x faster across devices using incremental updates
```
### Step 5 — Format and Output
Assemble entries into sections. Use this structure:
```markdown
# Changelog — v1.3.0 (March 15, 2024)
## Breaking Changes
- ...
## New Features
- ...
## Improvements
- ...
## Bug Fixes
- ...
## Performance
- ...
```
Omit any section that has no entries. If the project has a `CHANGELOG_STYLE.md`, follow its formatting conventions instead.
## Worked Example
**Input** — raw git log for the past week:
```
a1b2c3d feat(workspace): add multi-team workspace support with RBAC
d4e5f6a feat(shortcuts): implement global keyboard shortcut system
b7c8d9e fix(upload): handle files >50MB by chunking upload stream
f0a1b2c fix(tz): store all timestamps in UTC, convert on display
e3d4f5a fix(notifications): correct unread badge counter query
g6h7i8j perf(sync): implement delta-sync for 2x throughput
k9l0m1n chore: update eslint config
o2p3q4r ci: add nightly build workflow
s5t6u7v refactor(auth): extract token refresh into middleware
w8x9y0z docs: update API rate-limit table
```
**Output** — generated changelog:
```markdown
# Updates — Week of March 10, 2024
## New Features
- **Team Workspaces**: Create separate workspaces for different
projects. Invite team members and control access with roles.
- **Keyboard Shortcuts**: Press `?` to see all available shortcuts.
Navigate faster without touching your mouse.
## Improvements
- **Better Search**: Search now includes file contents, not just titles.
## Bug Fixes
- Fixed issue where large images would fail to upload.
- Resolved timezone confusion in scheduled posts.
- Corrected notification badge count.
## Performance
- **Faster Sync**: Files now sync 2x faster across devices.
## Documentation
- Updated API rate-limit reference.
```
Note: `chore:`, `ci:`, and `refactor:` commits were excluded automatically.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!