Joshua Shay Kricheli NeuroSymbolic AI
v2 v1

Release · v3.2.0

Semantic version engine over the full commit history

feat(versioning): semantic version engine over the full commit history

feat v3.2.0 July 2, 2026 Claude 9c9757c

Details

Assign a semantic version to every commit since inception, and compute
the next version for any new main production release, using
conventional-commits-parser (the parser behind the conventional-
changelog / semantic-release ecosystem) + semver:
- BREAKING CHANGE / type! -> major, feat -> minor, all else -> patch;
  informal pre-conventional subjects classify via a documented keyword
  heuristic, and merge subjects are unwrapped ("Merge PR #N: X",
  "Merge pull request #N from user/type/branch").
- The first commit seeds 1.0.0; a curated overrides.json pins the two
  redesign launches (v2 promoted to /, v3 shipped) to 2.0.0 / 3.0.0 so
  the semver major matches the site's own v1/v2/v3 design eras.
  Everything else is automatic. HEAD resolves to v3.0.4.
- npm scripts: version:next, version:check (invariants: unique,
  strictly increasing), test:changelog.
- Complete node:test suite (51 tests): unit coverage of unwrapping,
  classification, bump rules, batch releases, sequences, short titles,
  plus integration tests replaying the real 647-commit history.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mn7fa3Z4bpbSAj4edBnjXA

Files changed (11)

package-lock.json +49 −3
package.json +6 −0
tools/changelog/README.md +57 −0
tools/changelog/generate.mjs +372 −0
tools/changelog/git-history.mjs +78 −0
tools/changelog/next-version.mjs +76 −0
tools/changelog/overrides.json +5 −0
tools/changelog/test/generate.test.mjs +107 −0
tools/changelog/test/integration.test.mjs +91 −0
tools/changelog/test/version-lib.test.mjs +207 −0
tools/changelog/version-lib.mjs +200 −0