diff --git a/llms-full.txt b/llms-full.txt index bec39df6b..14b2d9ccc 100644 --- a/llms-full.txt +++ b/llms-full.txt @@ -875,15 +875,26 @@ sync. `/ship` enforces this via Step 12's idempotency check (VERSION vs package.json drift), but the canonical list lives here so future runs and the auto-update agent know where to look. +**Version format is mandatory: `MAJOR.MINOR.PATCH.MICRO` (four numeric +segments, dot-separated, no leading `v`).** Every new release MUST use the +4-segment form. The `.MICRO` slot is the dot-suffix follow-up channel: when +a release ships its commit subject ahead of its VERSION bump (e.g. PR #795 +landing as `v0.31.4` without bumping the file), the corrective ship lands +as `0.31.4.1` rather than churning the patch number to `0.31.5`. Suffixes +like `-fixwave` are still allowed as needed (`0.31.1.1-fixwave`), but the +four numeric segments are required first. Historical 3-segment versions +(`0.31.3`, `0.22.1`) remain valid in `git log` and migration filenames +(`skills/migrations/v0.21.0.md`); do NOT rewrite them. Going forward only. + **Required (every release must update all five):** | File | What lives there | Format | |---|---|---| -| `VERSION` | The single source of truth. Read first by `/ship`, the binary, and CI version-gate. | Bare 4-digit string `MAJOR.MINOR.PATCH.MICRO` (e.g. `0.22.1`), no leading `v`, no trailing newline-sensitivity issues. | -| `package.json` | Bun/npm package version. `gbrain --version` reads it via the compiled binary's bundled package metadata. CI version-gate cross-checks this against `VERSION` and fails if they drift. | `"version": "0.22.1"` | -| `CHANGELOG.md` | Top entry header `## [0.22.1] - YYYY-MM-DD` plus the "To take advantage of v0.22.1" block. | Standard Keep-a-Changelog header. | -| `TODOS.md` | Any TODO entries that mention "follow-up from vX.Y.Z" use the version of the release that filed them. Update only when filing NEW follow-up TODOs. | Inline `vX.Y.Z` references in TODO bodies. | -| `CLAUDE.md` | The Key Files section's per-file annotations carry `vX.Y.Z (#NNN)` tags noting which release introduced a behavior. Update whenever a wave's annotations get folded in. | Inline `vX.Y.Z (#NNN, contributed by @user)` references. | +| `VERSION` | The single source of truth. Read first by `/ship`, the binary, and CI version-gate. | Bare 4-segment string `MAJOR.MINOR.PATCH.MICRO` (e.g. `0.31.4.1`), no leading `v`. | +| `package.json` | Bun/npm package version. `gbrain --version` reads it via the compiled binary's bundled package metadata. CI version-gate cross-checks this against `VERSION` and fails if they drift. | `"version": "0.31.4.1"` | +| `CHANGELOG.md` | Top entry header `## [0.31.4.1] - YYYY-MM-DD` plus the "To take advantage of v0.31.4.1" block. | Standard Keep-a-Changelog header. | +| `TODOS.md` | Any TODO entries that mention "follow-up from vX.Y.Z.W" use the version of the release that filed them. Update only when filing NEW follow-up TODOs. | Inline `vX.Y.Z.W` references in TODO bodies. | +| `CLAUDE.md` | The Key Files section's per-file annotations carry `vX.Y.Z.W (#NNN)` tags noting which release introduced a behavior. Update whenever a wave's annotations get folded in. | Inline `vX.Y.Z.W (#NNN, contributed by @user)` references. | **Auto-derived (no manual edit; refreshed by their own commands):**