# Keep a Changelog (CHANGELOG.md) > Keep a Changelog is the community convention for a human-readable, Markdown-formatted > CHANGELOG.md at the root of a project that records notable changes between versions. > It defines a closed set of six change types (Added, Changed, Deprecated, Removed, > Fixed, Security), YYYY-MM-DD release dates, an `Unreleased` section and a `[YANKED]` > marker, and recommends pairing with Semantic Versioning. Current version: 2.0.0, > released 2026-06-07. MIT licensed, created and maintained by Olivier Lacan, available > in 28 languages. IMPORTANT — Keep a Changelog publishes NO API. There is no base URL, no authentication, no endpoints, no SDK and no MCP server. It is a specification served as static HTML from GitHub Pages; the project's own AGENTS.md states "No backend." Do not attempt to call it. The machine-readable surfaces are the raw specification pages and the project's own CHANGELOG.md, listed below. This file was GENERATED by API Evangelist from the apis.yml record and the artifacts in this repository. keepachangelog.com does not publish an llms.txt of its own (https://keepachangelog.com/llms.txt returned 404 on 2026-09-05). ## Specification - [Keep a Changelog 2.0.0](https://keepachangelog.com/en/2.0.0/): Current version. First major revision — it breaks the guidance, not the format, so an existing changelog written to 1.x stays valid. - [Keep a Changelog 1.1.0](https://keepachangelog.com/en/1.1.0/): Superseded, still served. - [Keep a Changelog 1.0.0](https://keepachangelog.com/en/1.0.0/): Superseded, still served. - [Keep a Changelog 0.3.0](https://keepachangelog.com/en/0.3.0/): Oldest version page that resolves. ## The format in one paragraph A `CHANGELOG.md` at the project root opens with a `# Changelog` heading and a short preamble naming the format and the versioning scheme. Releases are second-level headings in reverse chronological order — `## [2.0.0] - 2026-06-07` — with an `## [Unreleased]` section at the top for work not yet shipped. Under each release, third-level headings group entries by change type: `### Added`, `### Changed`, `### Deprecated`, `### Removed`, `### Fixed`, `### Security`. The six types are deliberately closed and do not grow. A withdrawn release is marked `[YANKED]`. Each version links to a compare diff via a Markdown reference link at the bottom of the file. ## What changed in 2.0.0 - The format is unchanged: six change types, YYYY-MM-DD dates, `Unreleased` and `[YANKED]`. - Breaking: the page was restructured from a flat FAQ into integrated guidance, so some older section anchors no longer resolve; the tagline changed. - Added guidance on marking breaking changes, choosing between Changed/Fixed/Security, leading a Security entry with its CVE, versioning schemes beyond SemVer, changelogs vs. release notes, monorepos and very large changelogs. - Added automation guidance covering LLM-drafted changelogs with a brief for an `AGENTS.md`, Conventional Commits, and CI/CD. ## Machine-readable surfaces - [CHANGELOG.md (raw)](https://raw.githubusercontent.com/olivierlacan/keep-a-changelog/main/CHANGELOG.md): The project's own changelog, written in the format it defines. The canonical worked example. - [GitHub Releases API](https://api.github.com/repos/olivierlacan/keep-a-changelog/releases): Sixteen dated releases from 2014-05-31 to 2026-06-07. - [links.json](https://raw.githubusercontent.com/olivierlacan/keep-a-changelog/main/data/links.json): The project's centralized reference links. ## Project - [Repository](https://github.com/olivierlacan/keep-a-changelog): MIT licensed. Single maintainer, many contributors. - [AGENTS.md](https://github.com/olivierlacan/keep-a-changelog/blob/main/AGENTS.md): Read this BEFORE proposing any change. Project principles, and strict limits on how LLMs may be used — never to replace translators, never to decide what the guidelines say. - [CONTRIBUTING.md](https://github.com/olivierlacan/keep-a-changelog/blob/main/CONTRIBUTING.md): Setup, tasks, translation workflow. - [Code of Conduct](https://github.com/olivierlacan/keep-a-changelog/blob/main/CODE_OF_CONDUCT.md) - [Issues](https://github.com/olivierlacan/keep-a-changelog/issues) · [Discussions](https://github.com/olivierlacan/keep-a-changelog/discussions) - [Releases](https://github.com/olivierlacan/keep-a-changelog/releases) - [LICENSE (MIT)](https://github.com/olivierlacan/keep-a-changelog/blob/main/LICENSE) ## Related standards - [Semantic Versioning 2.0.0](https://semver.org/spec/v2.0.0.html): Recommended pairing; the specification itself adheres to it. - [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html): The mandated date format, YYYY-MM-DD. - [Conventional Commits](https://www.conventionalcommits.org/): Discussed in 2.0.0 automation guidance. ## Third-party implementations None of these is first-party — the project states it does not create or endorse specific tools. Versions read from registry metadata on 2026-09-05. - [keep-a-changelog (npm)](https://www.npmjs.com/package/keep-a-changelog) 3.1.0, 2026-08-03 — parser, writer and CLI. - [changelog-parser (npm)](https://www.npmjs.com/package/changelog-parser) 4.1.0, 2026-06-17 — markdown to JSON. - [keepachangelog (PyPI)](https://pypi.org/project/keepachangelog/) 2.0.0, 2024-06-14. - [keep-a-changelog (crates.io)](https://crates.io/crates/keep-a-changelog) 0.1.4, 2024-07-10. - [go-changelog](https://pkg.go.dev/github.com/anton-yurchenko/go-changelog) v1.1.0, 2023-07-09. - [keepachangelog (RubyGems)](https://rubygems.org/gems/keepachangelog) 0.6.1, 2018-03-06 — unmaintained. ## Optional - [API Evangelist profile](https://apis.io/changelog-md/): Catalog record, artifacts and Kin Score.