CHANGELOG

Release notes that know what they touched

vibex changelog builds the release list from commit history. With --specs, it also reports what the release did to the documented system: which diagrams each commit touched, and which claims were written, reworded, superseded or removed.

$ vibex changelog v1.2.0..main --specs docs/arch \
-o docs/arch/changelog.json --md RELEASE.md

What it writes

This is vibeX's own 0.5.0 release, generated from its repository. The history does not use conventional-commit prefixes, and the output says so instead of pretending to know the author's intent.

$ vibex changelog v0.4.0..v0.5.0 --specs examples --md CHANGES.md
3 commit(s), 1 author(s), 0 spec(s) touched — sections
inferred from file paths, not commit messages
claims: +0 added, 0 reworded, 0 superseded, -0 removed
# Changes in v0.5.0

3 commits from 1 author.

> Sections below were inferred from the files each commit
> touched, not from the commit messages. Treat the grouping
> as a rough sort, not as the author's intent.

## Changed
- Keep indentation in anchor hashes for
  whitespace-significant files — 1f92bad

## Internal
*Nothing here changes how the tool behaves.*
- The layout test was checking a sun icon, not a diagram — bc809b7

## What this did to the documentation
- Nothing. No claim was added, removed, reworded or superseded.

Shortened. In the real file, every commit hash links to the commit on your remote.

How it sorts things

sections
Taken from conventional-commit prefixes when the history uses them. When it does not, they are inferred from the paths each commit touched, and both outputs say which method was used.
BreakingAddedChangedFixedDocumentationInternal
Internal
Only when every path a commit touched was internal: tests, CI, build files. A commit that changes a renderer and a test is not internal.
--specs <dir>
Builds the fact graph at both ends of the range and compares them. Authored claims that were added, reworded, superseded or removed are listed by ID. Derived facts are counted, not listed, because they follow the diagrams.
removed claims
Listed with a prompt to check they were meant to go. A claim that vanished takes whatever it documented with it.
--merges
Include merge commits. By default they are left out.
range
Any git range: v1.2.0..main, HEAD~20..HEAD. Tags work anywhere a commit does.

Two outputs, same source

-o changelog.json

For the dashboard

Write it next to your specs and vibex dashboard picks it up as a Changes panel. Each entry's specs appear as chips that open the diagram the commit touched.

Dashboard →
--md CHANGES.md

For the repository

Markdown with no raw HTML, so it pastes cleanly into a GitHub release, a wiki or Confluence.