Each release unit keeps a discoverable changelog in its declared format
A changelog exists so a user upgrading two versions can read what changed without diffing tags. Generated commit lists do not answer that, because commit subjects address the maintainer, not the user.
Observable check
each release unit has a discoverable changelog following the project's declared convention. For Keep a Changelog 2.0.0, it opens with # Changelog and a pinned convention link, carries ## [Unreleased], lists dated releases newest first, groups notable changes under the six standard types, marks incompatible entries **Breaking:**, and resolves version headings to tag or comparison links.
Where this comes from
Last read against these sources on 2026-07-28.
2.0.0, published 2026-06-07. Confirms the six group names, the Unreleased section, newest-first ordering, and the '**Breaking:**' marker this rule requires.