changelog-writer
Skill0 starsChanged 6 months agoMITView on GitHub
Generates and maintains a CHANGELOG following the Keep a Changelog format, grouping changes into Added/Changed/Fixed/etc. and writing human-focused release notes from commits or a list of changes. Use when the user asks for a changelog, release notes, what's new, or wants to cut a release or prepare an Unreleased section.
21 other projects use a version of this.
Adopted by
Most recently taken up by
- Sagargupta16/agent-recipestheir own version, first seen Nov 1, 2026
- ommakes/Skillstheir own version, first seen Oct 27, 2026
- maximhq/bifrosttheir own version, first seen Oct 20, 2026
- WST2002/claude-code-skillstheir own version, first seen Oct 17, 2026
- anchildress1/awesome-aitheir own version, first seen Oct 13, 2026
- mukundzha/clwstheir own version, first seen Oct 13, 2026
Other versions21 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 21
- maximhq/bifrost★ 9.4ksame name
- jihe520/mindpocket★ 349same name
- hamzafarooq/claude-code-starter★ 145same name
- anchildress1/awesome-ai★ 67same name
- anchildress1/awesome-github-copilot★ 67same name
- ommakes/Skills★ 21same name
- zbruhnke/claude-code-starter★ 16same name
- jaredpalmer/skills★ 8same name
- carlkibler/agent-skills★ 6same name
- kevinaimonster/skill-hub★ 4same name
11 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository11 other files it gives its agents.
- a11y-auditorSkill
- api-design-reviewerSkill
- conventional-commit-writerSkill
- dockerfile-hardenerSkill
- env-secrets-auditorSkill
- error-message-explainerSkill
- pr-description-writerSkill
- readme-generatorSkill
- regex-builderSkill
- sql-query-optimizerSkill
- test-writerSkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 4 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 19 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 14
Write a changelog for humans, following Keep a Changelog 1.1.0 and Semantic Versioning.
- Distinctive: line 20
Write for the person upgrading, not the person who wrote the code.
- Very specific: line 23
Keep an ## [Unreleased] section at the top and add to it as you go.
- Very specific: line 69
Use this exact structure. Date is ISO 8601 (YYYY-MM-DD).
- Very specific: line 114
No prior changelog: create the file with the structure above and an [Unreleased] section.
- Distinctive: line 117
Monorepo: keep a changelog per published package, not one global file.
- Distinctive: line 118
Pure-internal release: if nothing is user-facing, say so rather than padding the notes.
“Common” is measured: kept by at least 6 in 10 of the 19 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Changelog Writer
Write a changelog for humans, following Keep a Changelog 1.1.0
and Semantic Versioning. A changelog is curated release notes, not a
raw git log dump.
Core principles
- Write for the person upgrading, not the person who wrote the code.
- Group by the kind of change, newest version on top.
- Each entry is one line, plain language, describing the user-visible effect.
- Keep an
## [Unreleased]section at the top and add to it as you go.
Change groups (use only the ones with entries)
| Group | For |
Added | new features |
Changed | changes in existing behavior |
Deprecated | features slated for removal |
Removed | features removed in this release |
Fixed | bug fixes |
Security | vulnerability fixes (always call these out) |
Step 1 — Gather changes
From git, list commits since the last tag:
Commits since last release: !`git log $(git describe --tags --abbrev=0 2>/dev/null)..HEAD --pretty=format:"%s" 2>/dev/null || git log --pretty=format:"%s"`Map Conventional Commit types to groups: feat → Added, fix → Fixed, perf/refactor
that change behavior → Changed, anything with BREAKING CHANGE/! → Changed (and bump
MAJOR). Drop chore, ci, test, style, and internal docs unless they affect users.
Step 2 — Rewrite commits as user-facing notes
A commit subject is for developers; a changelog entry is for users. Translate jargon, add the "so what," and merge related commits into one entry.
| Commit | Changelog entry |
fix(parser): handle CRLF in csv | Fixed CSV import failing on Windows line endings |
feat(api): add cursor pagination | Added cursor-based pagination to the list endpoints |
perf(db): batch the writes | Improved bulk-import speed by ~5x |
Step 3 — Choose the version (SemVer)
- MAJOR (
X.0.0): any breaking change. - MINOR (
x.Y.0): backward-compatible new features. - PATCH (
x.y.Z): backward-compatible bug fixes only.
Lead the release notes with breaking changes and a short migration note when relevant.
Step 4 — Emit the entry
Use this exact structure. Date is ISO 8601 (YYYY-MM-DD). Add comparison links at the bottom.
# Changelog
All notable changes to this project are documented here.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [1.4.0] - 2026-05-22
### Added
- Cursor-based pagination on all list endpoints.
- `--dry-run` flag to preview changes without writing.
### Changed
- Default request timeout raised from 10s to 30s.
### Fixed
- CSV import no longer fails on Windows (CRLF) line endings.
### Security
- Patched a path-traversal issue in the file upload handler.
[Unreleased]: https://github.com/OWNER/REPO/compare/v1.4.0...HEAD
[1.4.0]: https://github.com/OWNER/REPO/compare/v1.3.0...v1.4.0Examples
Input: commits feat: dark mode, fix: crash on empty input, chore: bump eslint.
Output: version MINOR; chore dropped.
## [2.1.0] - 2026-05-22
### Added
- Dark mode, toggled from Settings or the system preference.
### Fixed
- No longer crashes when the input field is empty.Common edge cases
- Pre-1.0 projects: breaking changes bump MINOR (
0.x.0); document them prominently. - No prior changelog: create the file with the structure above and an
[Unreleased]section; optionally backfill notable past releases. - Yanked release: mark it
## [1.2.1] - 2026-05-01 [YANKED]with a one-line reason. - Monorepo: keep a changelog per published package, not one global file.
- Pure-internal release: if nothing is user-facing, say so rather than padding the notes.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

