agentleFS
kevinxo328kevinxo328/agent-skills/skills/write-changelog/SKILL.md

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

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
  1. Distinctive:

    Ask the user: "What version number is this release?

    line 14
  2. Very specific:

    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.

    line 16
  3. Distinctive:

    Run the following to find commits since the last tag:

    line 20
  4. Distinctive:

    If no tag exists yet, use:

    line 26
  5. Distinctive:

    Write for a non-technical user

    line 62
  6. Distinctive:

    Use plain, friendly, conversational English

    line 63
  7. Distinctive:

    Never mention code, APIs, refactors, data models, placeholders, or internal system names

    line 65
  8. Distinctive:

    Never use jargon like "UUID", "model", "service", "handler", "tag preservation", etc.

    line 66
  9. Very specific:

    New Features: Use Feature Name — one sentence describing the user benefit

    line 70
  10. Very specific:

    Bug Fixes: Use - Fixed [what was broken] [in what situation]

    line 71
  11. Distinctive:

    Multiple commits about the same feature: should be merged into one entry.

    line 83
  12. Distinctive:

    Use today's date. Format:

    line 87
  13. Very specific:

    Only include sections that have entries.

    line 106
  14. Distinctive:

    Run in this exact order:

    line 116

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

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

If no tag exists yet, use:

git log --oneline

Step 3: Categorize commits

Ignore these commit types entirely — they are not user-facing:

  • docs: — documentation, changelogs, specs, openspec artifacts
  • refactor: — internal code restructuring
  • chore: / 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 prefixDefault sectionOverride 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 commitUser-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 trackingFixed bubble numbering showing duplicate numbers in some cases
feat: check for updates on app focus with 1-hour cooldownApp 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 openFixed ⌘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:

  1. git add CHANGELOG.md && git commit -m "docs: add changelog entry for v<VERSION>"
  2. git tag v<VERSION>

Then ask the user: "Push to remote? (git push && git push origin v<VERSION>)"

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.