write-changelog
Skill0 starsChanged 3 months agoMITView on GitHub
Generate a user-facing changelog entry from git commits since the last tag. Use when releasing a new version and writing CHANGELOG.md.
- Commits and pushes
12 other projects use a version of this.
Adopted by
Most recently taken up by
- pahlevikun/levistacktheir own version, first seen Nov 1, 2026
- DataDog/dd-trace-rbtheir own version, first seen Oct 9, 2026
- jamiebrynes7/obsidian-todoist-plugintheir own version, first seen Oct 9, 2026
- petera2c/simple-tabletheir own version, first seen Oct 8, 2026
- classroomio/classroomiotheir own version, first seen Oct 8, 2026
- zulip/zuliptheir own version, first seen Oct 8, 2026
Other versions12 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 12
- zulip/zulip★ 26ksame name
- microsoft/vscode-pull-request-github★ 2.6ksame name
- classroomio/classroomio★ 1.7ksame name
- jamiebrynes7/obsidian-todoist-plugin★ 1.2ksame name
- DataDog/dd-trace-rb★ 417same name
- petera2c/simple-table★ 233same name
- kannandreams/agent-top★ 22same name
- plugyawn/armada★ 2same name
- wsm94/gi-claude-skills★ 2same name
- fabianmagrini/skills★ 1same name
2 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 repository6 other files it gives its agents.
- commit-messageSkill
- writing-great-skillsSkill
- commit-messageSkill
- humanizer-twSkill
- investigateSkill
- writing-job-applicationSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. 0 are common, 10 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 12 edited versions we read keep these.
10
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 14
Ask the user: "What version number is this release?
- Very specific: line 16
If the user provides an increment like 0.0.1 or +0.0.1, compute the next version by applying it to the latest tag.
- Distinctive: line 20
Run the following to find commits since the last tag:
- Distinctive: line 26
If no tag exists yet, use:
- Distinctive: line 62
Write for a non-technical user
- Distinctive: line 63
Use plain, friendly, conversational English
- Distinctive: line 65
Never mention code, APIs, refactors, data models, placeholders, or internal system names
- Distinctive: line 66
Never use jargon like "UUID", "model", "service", "handler", "tag preservation", etc.
- Very specific: line 70
New Features: Use Feature Name — one sentence describing the user benefit
- Very specific: line 71
Bug Fixes: Use - Fixed [what was broken] [in what situation]
- Distinctive: line 83
Multiple commits about the same feature: should be merged into one entry.
- Distinctive: line 87
Use today's date. Format:
- Very specific: line 106
Only include sections that have entries.
- Distinctive: line 116
Run in this exact order:
“Common” is measured: kept by at least 6 in 10 of the 12 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
You are writing a user-facing changelog entry for a macOS manga translation app. Your job is to turn git commit messages into plain-language release notes that tell users what's new, what's fixed, and what's improved — without any technical details.
Step 1: Ask for version number
Ask the user: "What version number is this release? (e.g. v1.2.0)"
If the user provides an increment like 0.0.1 or +0.0.1, compute the next version by applying it to the latest tag. For example: latest tag v1.1.7 + increment 0.0.1 = v1.1.8.
Step 2: Gather commits
Run the following to find commits since the last tag:
git log $(git describe --tags --abbrev=0)..HEAD --onelineIf no tag exists yet, use:
git log --onelineStep 3: Categorize commits
Ignore these commit types entirely — they are not user-facing:
docs:— documentation, changelogs, specs, openspec artifactsrefactor:— internal code restructuringchore:/ci:/test:— maintenance
Map the remaining commits to changelog sections. Do not map by commit prefix alone — feat: commits often describe enhancements to existing features, which belong under Improvements, not New Features.
Decide by user perception:
- New Features — The user could not do this at all before. A standalone new capability you could headline in release notes. Test: can you say "you can now X" where X is genuinely new? Examples: Glossary, batch translation, update checker.
- Improvements — An existing flow is now faster, more accurate, smoother, or clearer. The user was already doing this; the experience got better. Test: you can only say "X is now faster / better / clearer." Examples: OCR accuracy gains, speed-ups, shortcut tweaks, clearer error messages, layout polish.
- Bug Fixes — Something was broken and now works.
Quick mapping:
| Commit prefix | Default section | Override when... |
feat: | New Features | …it enhances an existing feature → Improvements |
fix: | Bug Fixes | — |
perf: | Improvements | — |
Step 4: Write user-facing descriptions
For each relevant commit, rewrite it from the user's perspective. Follow these rules:
Tone and language:
- Write for a non-technical user
- Use plain, friendly, conversational English
- Describe what the user can now do, or what problem is solved
- Never mention code, APIs, refactors, data models, placeholders, or internal system names
- Never use jargon like "UUID", "model", "service", "handler", "tag preservation", etc.
Format rules:
- New Features: Use
**Feature Name** — one sentence describing the user benefit - Bug Fixes: Use
- Fixed [what was broken] [in what situation] - Improvements: Use
- [What changed] so that [user benefit]
Examples of good rewrites:
| Raw commit | User-facing text |
feat: add glossary system and cross-page context | **Glossary** — Pin your preferred translations for character names, places, and terms. The translator will follow your glossary consistently across every page. |
fix: use UUID for bubble highlight tracking | Fixed bubble numbering showing duplicate numbers in some cases |
feat: check for updates on app focus with 1-hour cooldown | App now checks for updates when you switch back to it, so you'll discover new versions faster |
fix: make ⌘O work when an image is already open | Fixed ⌘O not working when an image is already open |
Multiple commits about the same feature should be merged into one entry.
Step 5: Format the changelog block
Use today's date. Format:
## v<VERSION> (<YYYY-MM-DD>)
### New Features
- **Feature Name** — Description of user benefit.
- **Another Feature** — Description.
### Bug Fixes
- Fixed something that was broken.
### Improvements
- Some improvement so users get a benefit.Only include sections that have entries. If there are no bug fixes, omit the ### Bug Fixes section entirely.
Step 6: Prepend to CHANGELOG.md
Insert the new block at the top of CHANGELOG.md, just below the # Changelog heading, with a blank line before the next existing entry.
Show the user the new entry and say: "Added to CHANGELOG.md. Review and edit if needed."
Step 7: Commit and tag
Run in this exact order:
git add CHANGELOG.md && git commit -m "docs: add changelog entry for v<VERSION>"git tag v<VERSION>
Then ask the user: "Push to remote? (git push && git push origin v<VERSION>)"
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.

