developer · Browser tool
Release Notes Writer
Paste commit subjects, merged pull request titles or a raw git log range. You get a Keep a Changelog draft and a shorter body for a GitHub release.
Commits
What each line became
Anything marked needs review did not carry a Conventional Commits prefix, so the group was picked from the wording. Read those before you publish.
CHANGELOG.md
GitHub release body
The short version drops internal refactoring and housekeeping, and leaves out the scope names, because the people reading a release page do not know your module layout.
Filtered out
Nothing disappears without being listed. Every line dropped from the changelog appears here with the reason.
How a line is sorted
A subject that follows Conventional Commits — type(scope): subject — is sorted by its type, which is a lookup rather than a judgement. feat goes to Added, fix to Fixed, perf and refactor and revert to Changed, security to Security. A subject that starts with a word such as remove, drop or delete is moved to Removed even when its type says otherwise, because that is what a reader expects to find there.
Without a prefix, it is guesswork
A subject with no type prefix is matched against wording instead: add, introduce and support lean towards Added, fix, correct and resolve towards Fixed, and so on. Those entries are marked needs review in the table above rather than passed off as certain. A message like update code carries no information at all and lands in Changed with the same warning.
Breaking changes
Two things mark a change as breaking: an exclamation mark before the colon (feat(api)!: …) and a BREAKING CHANGE: footer. Both are surfaced at the top of the changelog and at the top of the release body. This is the honest limit of any tool that reads only subject lines: it never sees the diff, so a commit that silently renamed a public function and did not say so will not be flagged. If a change breaks somebody, write that into the commit while the change is fresh.
What is filtered, and why you can still see it
Merge commits, wip, fixup! and squash!, version bumps, dependency bumps, formatting passes and pure typo fixes are dropped. Housekeeping types (chore, ci, build, test, style) are dropped too unless you tick the option. Every one of them is listed under Filtered out with the rule that caught it, so a genuine change that was worded like noise is easy to spot and paste back in by hand.
Ticket and pull request numbers
A leading commit hash is removed. A ticket key such as ABC-142 and a trailing (#418) are pulled out of the text into their own columns, so the entry itself reads as a sentence. Set a repository URL and the pull request number becomes a link in the Markdown output.