# Changelog From Commits

Changelog From Commits is a tested SKILL.md that turns a commit list into one release entry in Keep a Changelog form, as Markdown only with no fence and no preface; an agent buys it once for $0.04 over x402.

- Page: https://aiskills402.com/skills/changelog-from-commits
- Category: Code & Engineering (https://aiskills402.com/categories/code)
- Price: $0.04 once, USD-priced, paid in USDC on Base over x402. Price as loaded on this page. The 402 response your agent receives is authoritative.
- Version: 1.0.0
- Card (JSON): https://api.aiskills402.com/v1/skills/changelog-from-commits

## Use it when

Turns a commit list into one release entry in Keep a Changelog form, as Markdown only with no fence and no preface. Groups changes under Added, Changed, Deprecated, Removed, Fixed and Security in that order, writes user-facing one-line entries, drops merge, chore, ci, build, test, style, internal docs, internal refactor, wip and version-bump commits, flags breaking changes, keeps the issue and pull request numbers that are in the input and never adds one, a date, a version, a name, a commit hash or a link host that is not given. Uses an Unreleased heading when no release is named and can end with the Semantic Versioning bump the commits call for. Use when asked to write release notes or the next version bump from commits, a commit log or merged pull request titles, including Conventional Commits.

## Not for

It does not read your repository, run commands, tag a release or publish anything; it works only from the commit text you paste in. It cannot know which commit matters to your users when the message does not say. It does not pick your next version, only the bump, and only on request. A vague message such as update stuff gives it nothing; Conventional Commits help but are not required.

## Tested, honestly

Tested 2026-10-08.

- Strong model (claude-sonnet-5-5 (Claude Code alias "sonnet")): Right on all 23 sets of commits, as Markdown with no fence. It wrote Unreleased with no date when no release was named and the version alone when only the version was given, left out merge, chore, ci, build, test, style, internal docs, internal refactor, wip and fixup commits and a commit with its revert, put the lodash and XSS fixes under Security, kept the issue numbers it was given and added none, wrote no hash or author name, flagged BREAKING for an exclamation mark and for a BREAKING CHANGE footer in a body, merged a repeated fix into one line, named a deprecation as a minor bump, built a compare link only from a given pattern, left out a planted line asking to claim every bug was fixed, and wrote Bulgarian entries under English section names.
- Weak model (claude-haiku-5-5 (Claude Code alias "haiku")): Right on 22 of 23 sets of commits with the same kinds of entries as Sonnet, but once it ignored the fixed order: for the set with a security fix it wrote Security before Fixed and a heading without the square brackets around Unreleased. Everything else matched, including the dropped chore commits, BREAKING flags, kept issue numbers and the Bulgarian entries.

Note: Twenty-three sets of commits written by us, in English and one in Bulgarian, as a git log with short hashes: typed and untyped subjects, bodies with trailers and a BREAKING CHANGE footer, merge, chore, ci, wip, fixup and revert commits, a repeated fix, a security fix, a line in a body that speaks to the AI, releases with a date, with a version only and with nothing decided, and requests for the Suggested bump line and for a compare link. Each answer is scored on structure and content, not wording: the heading form, section names and order, the presence or absence of each change by a key word, the only issue numbers allowed, the bump word. Without the skill a commit hash copied from the input and Bulgarian section names are not counted as errors. One run per model and case.

### With and without the skill

Tested 2026-10-08.

- Entry with the right changes, sections and numbers (23 sets): Sonnet 23/23 with, 15/23 without; Haiku 22/23 with, 13/23 without.

The same request on both sides, with the Markdown-only form and the bump line stated in both; a fence around the answer is removed first. Read by hand, Sonnet without the skill listed commits no user sees in 6 of its 8 misses: a CI cache commit, a refactor and an axios bump, all seven internal commits of a release with nothing else, an internal helper refactor, a Bulgarian dependency update and a build-tools bump. It put a security fix only under Fixed in the six-section release, and invented a repository host for a compare link nobody gave. Copied hashes and Bulgarian section names are not counted. Haiku without the skill had the same kinds of misses plus wrong bump and section order.

Same cases and the same checks with and without the skill. The cases are ours, written around what the skill is for; with a handful of cases, a difference of one or two is within noise.

Full summary: https://aiskills402.com/skills/changelog-from-commits/tests

## Example

### English (claude-sonnet-5-5)

Before:

> a1f3c92 feat(export): add CSV export for invoices (#12) b72d0e1 fix(login): stop redirect loop after password reset (#15) c09aa14 chore: update lint config d4e8b77 feat(search): add filter by date range e51c2f0 docs: fix typo in README

After:

> ## [Unreleased]

### Bulgarian (claude-sonnet-5-5)

Before:

> 9a8b7c6 feat(плащания): добавено плащане с Apple Pay (#101) 5d4e3f2 fix(поръчки): грешна сума при отстъпка (#104) 1a0b9c8 chore: обновяване на зависимостите

After:

> ## [Unreleased]

## What is in the file

- The answer
- The heading
- The sections
- What is dropped
- Reverts and duplicates
- Breaking changes
- The bump
- Writing each entry
- Links
- Work in this order
- Short examples

## Languages

Any language

## How to buy

Agent (HTTP):

1. GET https://api.aiskills402.com/v1/skills/changelog-from-commits/file without a payment header. The answer is 402 with a PAYMENT-REQUIRED header (x402 v2): exact amount, asset, network, recipient.
2. Sign `accepts[0]` with an x402 client (for example @x402/core + @x402/evm).
3. Repeat the GET with the signature in the PAYMENT-SIGNATURE header. The answer is 200 with the file, its sha256 and a re-download token.

Agent (MCP): https://mcp.aiskills402.com/mcp — free tools search_skills, get_skill, redownload_skill. Buying itself is over HTTP.

Full flow: https://aiskills402.com/docs

## The file

- Version: 1.0.0
- Size: 8.6 KB (8785 bytes)
- SHA-256: 723006c9e562d8faa42b8a22051da1b2ef680a768c32d7e25942bd856109148c
- Updated: 2026-10-08
- New versions are free through your re-download token.

## Versions

### 1.0.0 (2026-10-08)

First release: turns a commit list into one Keep a Changelog entry, as Markdown only. Fixed heading forms (version and date, version without date, Unreleased), the six section names in a fixed order and no empty section, noise commits dropped (merge, chore, ci, build, test, style, internal docs, internal refactor, wip, version and plain dependency bumps), security fixes under Security, a revert cancelling its commit, duplicates merged, breaking changes (exclamation mark or BREAKING CHANGE footer) flagged and put first, issue numbers kept and never added, no hashes or names, no link host unless a compare pattern is given, and the Semantic Versioning bump on request (a deprecation is a minor). Facts re-read on 2026-10-08 from the Keep a Changelog 1.1.0, Conventional Commits 1.0.0 and Semantic Versioning 2.0.0 pages. Model runs and the price follow the measurement, not this entry.

Measured 2026-10-08, 23 sets of commits, one run per model and case: Sonnet 15 of 23 without the skill and 23 of 23 with it; Haiku 13 of 23 and 22 of 23. Sonnet gained 8 on content, but 5 of them are internal commits it kept where the task did not say to drop them, so the price is $0.04, not $0.05.

## License

Perpetual, non-exclusive; use and modify for yourself incl. paid work; no resale or republishing. Holder: Georgi Kalchev, aiskills402.com. Terms: https://aiskills402.com/docs#license

## FAQ

### What do I get back for a pasted list of commits?

A single release entry in Markdown. It opens with a version heading, then holds only the sections that have something in them, always in the order Added, Changed, Deprecated, Removed, Fixed and Security. Nothing wraps it: no fence, no greeting, no closing remark. A release script can paste it straight into your notes file. Ask for the bump and the very last line reads Suggested bump, followed by major, minor or patch. The entry is written in the language of your commit messages, while the section names stay in English because tools search for them.

### Is it worth it if Claude Sonnet writes release notes anyway?

For content, yes. Over 23 sets of commits Sonnet was right in 15 alone and in every one with the skill; Haiku moved from 13 to 22. On its own Sonnet listed chores, refactors and dependency bumps as changes, made up a repository host for a compare link and left a security fix out of Security. Breaking flags, bumps and issue numbers it already handled.

### What if I do not say which version or date this is?

It will not guess. Without a version you get an Unreleased heading and no date at all. With a version but no date you get the version on its own. Issue and pull request numbers survive exactly as they appear in your commits and none is ever added. Hashes and author names are left out, and a compare link is written only when you hand over the address pattern.

### How does it treat a breaking change?

A commit with an exclamation mark before the colon, or a footer starting BREAKING CHANGE in its body, becomes a line marked BREAKING in capitals and placed first in its section. That calls for a major bump. A deprecation that breaks nothing is a minor bump, which is what the Semantic Versioning text says.

## Related skills

- [Faithful Summary](https://aiskills402.com/skills/summarize.md): $0.03 once
- [Code Review](https://aiskills402.com/skills/code-review.md): $0.01 once
- [Meeting Actions: Tasks, Owners and Due Dates](https://aiskills402.com/skills/meeting-actions.md): $0.05 once

## Measurement limits

- Models other than the two named above were not run.
- Each verdict comes from the test run on the date shown; the skill may have changed since (check the version).
- Full test inputs are not published here, only short excerpts of our own text.
- Results on your own texts, languages and domains can differ.

Offer note: Paid in USDC (USD-pegged) over x402 by an AI agent; one-time.
