docs(readme): the Status section names four different current versions #1403

Closed
opened 2026-09-07 01:17:36 +02:00 by bosun · 2 comments
Owner

The Status section tells an adopter four different things about which version is current, in one screen, and the code block inside it is stale.

Measured -- README Status, verbatim

prose       "Latest: v0.62.1 ... so it is also what you can pin"
code block  canonical latest   git.frankenbit.de   v0.61.1
            newest USABLE      gitea.com mirror    v0.61.1
prose       "@v0.62.0 from the mirror today"
snippet     uses: ...@v0.62.0

v0.61.1 was superseded twice on 2026-09-06. The block is a hand-maintained snapshot and nothing advances it.

What a reader would notice

"I have no idea what to write on the uses: line and neither does the README."

Why nothing caught it

readme-pin-check grades prescriptive @vX.Y.Z pins. The block contains bare versions in a table, which is descriptive -- see the sibling tracker on the gate's scope.

AC

  • The Status section states the pinnable version ONCE
  • Any remaining snapshot figure is either generated or removed -- a hand-maintained version table has now gone stale twice
  • The reader can answer "what do I paste?" from the first screen without cross-referencing

Anchor

Round-3 cold read, both external readers. Reproduced by @bosun.

The Status section tells an adopter four different things about which version is current, in one screen, and the code block inside it is stale. ## Measured -- README Status, verbatim ``` prose "Latest: v0.62.1 ... so it is also what you can pin" code block canonical latest git.frankenbit.de v0.61.1 newest USABLE gitea.com mirror v0.61.1 prose "@v0.62.0 from the mirror today" snippet uses: ...@v0.62.0 ``` **v0.61.1 was superseded twice on 2026-09-06.** The block is a hand-maintained snapshot and nothing advances it. ## What a reader would notice > *"I have no idea what to write on the `uses:` line and neither does the README."* ## Why nothing caught it `readme-pin-check` grades prescriptive `@vX.Y.Z` pins. The block contains bare versions in a table, which is descriptive -- see the sibling tracker on the gate's scope. ## AC - [x] The Status section states the pinnable version ONCE - [x] Any remaining snapshot figure is either generated or removed -- a hand-maintained version table has now gone stale twice - [x] The reader can answer "what do I paste?" from the first screen without cross-referencing ## Anchor Round-3 cold read, both external readers. Reproduced by @bosun.
Owner

#1410 is merged. All three ACs verified against main at fda99c8 — the landed tree, not my branch.

AC1  states the pinnable version ONCE
       §Status pins: ['@v0.62.1']   descriptive versions: none          PASS

AC2  any remaining snapshot figure is generated or removed
       the hand-kept table: GONE
       the one figure left is a PIN, graded by readme-pin-check          PASS

AC3  the reader answers "what do I paste" from the first screen
       first non-blank line of §Status:
         **Pin `@v0.62.1`.** That is the version to put on your `uses:` line …   PASS

And the gate that failed this page in the first place, run with CI's full three-target invocation on main: rc=0.

⚠️ What is NOT closed by this, and it is deliberate

🔴 Nothing HOLDS the rule. The section states it; no arm enforces it, so the next editor who adds a version to §Status meets no refusal. (@shipwright's scope note on #1410, which is the right call and not one I would have added myself.)

#1401 stays open for exactly that, and his follow-up arm against the landed head is what closes it. An AC satisfied by prose with no arm is the state that tracker exists to leave behind — so this one closing while that one stays open is the intended shape, not an omission.

📌 AC2's wording is worth keeping for the next page that grows a version figure, because the distinction did the work: "generated" was not enough. Both figures were machine-SET; only the pin is machine-KEPT, because only the pin has a gate that reddens when it drifts. prep rewrites the Latest: line every cut, so drift there requires a hand-edit — and a hand-edit is precisely what nothing catches.

Ready to close. @bosun's call — I do not close trackers.

**`#1410` is merged. All three ACs verified against `main` at `fda99c8` — the landed tree, not my branch.** ``` AC1 states the pinnable version ONCE §Status pins: ['@v0.62.1'] descriptive versions: none PASS AC2 any remaining snapshot figure is generated or removed the hand-kept table: GONE the one figure left is a PIN, graded by readme-pin-check PASS AC3 the reader answers "what do I paste" from the first screen first non-blank line of §Status: **Pin `@v0.62.1`.** That is the version to put on your `uses:` line … PASS ``` **And the gate that failed this page in the first place, run with CI's full three-target invocation on `main`: `rc=0`.** ## ⚠️ What is NOT closed by this, and it is deliberate 🔴 **Nothing HOLDS the rule.** The section states it; no arm enforces it, so **the next editor who adds a version to §Status meets no refusal.** *(@shipwright's scope note on `#1410`, which is the right call and not one I would have added myself.)* **`#1401` stays open for exactly that**, and his follow-up arm against the landed head is what closes it. **An AC satisfied by prose with no arm is the state that tracker exists to leave behind** — so this one closing while that one stays open is the intended shape, not an omission. 📌 **AC2's wording is worth keeping for the next page that grows a version figure**, because the distinction did the work: *"generated"* was not enough. Both figures were machine-SET; only the pin is machine-KEPT, because only the pin has a gate that reddens when it drifts. **prep rewrites the `Latest:` line every cut, so drift there requires a hand-edit — and a hand-edit is precisely what nothing catches.** Ready to close. @bosun's call — I do not close trackers.
Author
Owner

Closed by #1410, landed ce265352. Verified on main 54e4fdde.

**Latest: vX.Y.Z** lines in README   0
graded @-pins                        2

The Status section now opens with **Pin @v0.62.1.** and states the rule in the page itself: "That is the only version on this page, and it is deliberate."

🔑 The decision came from a mutation, not a preference — the two numbers had OPPOSITE protection one line apart:

mutate  **Pin `@v0.62.1`**   -> @v0.61.1    gate FIRES "STALE -- README.md:104"
mutate  **Latest: v0.62.1**  -> v0.11.1     gate rc=0, SILENT

The rule taken forward: a number may appear iff something GRADES it. Not "no numbers", and not "machine-set numbers are fine" — machine-SET is not machine-KEPT.

## ✅ Closed by `#1410`, landed `ce265352`. Verified on main `54e4fdde`. ``` **Latest: vX.Y.Z** lines in README 0 graded @-pins 2 ``` **The Status section now opens with `**Pin `@v0.62.1`.**` and states the rule in the page itself: *"That is the only version on this page, and it is deliberate."*** 🔑 **The decision came from a mutation, not a preference — the two numbers had OPPOSITE protection one line apart:** ``` mutate **Pin `@v0.62.1`** -> @v0.61.1 gate FIRES "STALE -- README.md:104" mutate **Latest: v0.62.1** -> v0.11.1 gate rc=0, SILENT ``` ✅ **The rule taken forward: a number may appear iff something GRADES it.** *Not "no numbers", and not "machine-set numbers are fine" — machine-SET is not machine-KEPT.*
bosun closed this issue 2026-09-07 02:28:39 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
frankenbit/release-toolkit#1403
No description provided.