Releases 1.13.1 through 1.22.1 are regrouped by what each change is
(New, Improvements, Fixes, Misc) and reworded in the voice the
changelog-authoring skill asks for: one or two plain sentences per
bullet, the symptom or the capability named, no mechanism. Packed
bullets were split, every fact and every contributor credit kept.
Older releases keep the mechanical grouping.
Claude-Session: https://claude.ai/code/session_01VqV56Hez25hTxXH4ipJfzH
One file per release, plus unreleased.md for what has not shipped. bun run changelog:build renders CHANGELOG.md (app), packages/vscode/CHANGELOG.md (extension, shown by the Marketplace as is), and index.json (for the website). Edit the files here; the generated ones are overwritten.
---version:1.22.2date:2026-09-06title:optional one-line headline---
Optional intro paragraph shown above the groups.
## App
### New
- Something the user could not do before.
### Improvements
- Something they could do works better now.
### Fixes
- Something was broken; name the symptom.
### Misc
- Bundled tool versions, packaging, platform support, retirements.
## VS Code
### Fixes
- Only what the extension actually mounts. Written separately, on purpose.
Groups may appear in any order in a source file; the generator emits them as New, Improvements, Fixes, Misc and drops empty ones. A release without a ## VS Code section is absent from the extension changelog. unreleased.md has no front matter.
bun run changelog:check fails when the generated files are behind their sources; CI runs it. oc-dev create-release promotes unreleased.md to <version>.md with today's date and rebuilds.
How to write a bullet lives in .agents/skills/changelog-authoring/SKILL.md.