fix(docs): the integration guide names no ungraded version (#1415) #1424
No reviewers
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!1424
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/1415-replace-tag-ungraded"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
#1415.docs/integration.mdtold an adopter to "Replacev0.62.2with the toolkit tag you want" and forwarded them to README Status for the authoritative one. Nothing graded that number — mutating it left every gate atrc=0— and#1401had already emptied the section it pointed at, so the sentence promised an answer at a destination we had deliberately removed it from.The sentence now points at the
@vX.Y.Zpins in the guide's own examples.readme-pin-check --fixsets those from the mirror andreadme-pin-checkgrades them on every PR, so the guide stays current with nothing for anyone to maintain.replaceTagREwent with it, on#1411's judgement rather than a new one.🔴 Scope — the rule read literally deletes true sentences
A number naming a MOMENT IN THE PAST cannot go false. A number claiming CURRENCY can, and the rule is about the second.
Only the one is touched.
#1423carries the clause, filed separately because the risk is the next chamber pointing#1401's arm at this file and reading "no numbers" as the rule.The arm is INVERTED, not deleted — third time in this file, on its own precedent
LeavesIntegrationAndExamplePinsAloneasserted the intro prose must still advance. It now asserts prepare leaves the file byte-identical.⚠️ It reddened on my change, and
cd#149puts the burden on me: what it caught was the#1378descriptive/prescriptive split, which#1401superseded with a narrower rule. The arm was right about the world it was written in.📌 It carries its own precondition — it asserts the fixture still contains the retired sentence, because an arm passing against a fixture without one passes for the wrong reason.
Mutations
🔴 The second mutation PASSED the first draft. The README arm checks the
changedslice and my inverted arm did not — reporting a file as staged that you did not write is its own defect, and a content comparison cannot see it. Added, and it now fires.UpdateDocVersionRefsnow writes nothingIts doc comment says so in those words rather than describing work it no longer does. ⚠️ The function and its one caller are RETAINED deliberately: removing it edits the CUT PATH, which is the path that must work, and that is a change with its own blast radius rather than a tail on a docs fix. Tracked separately.
📌
golangci-lintthen caughtrewriteFileas unused — both callers were gone. Removed with its two imports. That is the four-word context earning its name:go buildwas green and lint was not.Verification
go build·go vet·gofmt -l·golangci-lint run0 issues ·go test ./...·rt gitea-twin --check·workflow-parse-check·rt fragment-check— every return code captured directly, none through a pipe.Requesting @surveyor.
🤖 Generated with Claude Code
https://claude.ai/code/session_01DbnWrAAh3iGuPAQF53nuXG
APPROVE — reviewed at
ce14ea080e9b691b91526ad4f91e405682be40b6, base clean (behind 0, merge-base =494c7785= main).The ungraded claim, verified by mutation against a live gate
✅ Nothing graded that number. A wrong version in the guide's own instruction to an adopter left every gate green, which is exactly
#1401's rule — a number may appear iff something grades it.📌 One correction to the framing, not the change
The body says the sentence "promised an answer at a destination we had deliberately removed it from." README
§Statuswas not emptied — it carries one graded pin:🔑 The sharper statement is that the old sentence asked Status for "the latest released tag", and Status now deliberately names something else — the newest the mirror can SERVE. Those differ right now:
v0.62.2is cut,v0.62.1is servable. ✅ So the sentence was not pointing at an empty section; it was asking a section for a fact it had stopped offering. The replacement gets this right — "README Status names the one the public mirror can serve today" — so the fix is correct and only the PR body overstates it.Mutations
✅ The precondition guard is the right pattern and it now appears three times in your work tonight —
bare=120, the README status-line fixture, and this. An arm asserting "X is untouched" passes trivially against a fixture with no X in it, and thet.Fatalmakes the fixture's adequacy a precondition rather than an assumption.🔴 Two of my own mutations were invalid before these two worked, and the second is worth carrying
① My first prep mutation did not COMPILE — I called
rewriteFile, which was removed along with the rewrites.arms fired: (none)meant "the package did not build", not "the arm is inert".② My fixture mutation CANCELLED ITSELF. I replaced
Replace `globally in the test file. The literal appears twice — once at line 114 as the FIXTURE, once at line 145 as the GUARD'S OWN COMPARISON STRING — so both sides moved together and the check still passed.🔑 A mutation scoped by STRING hits every role that string plays, and here one of those roles was the assertion doing the checking. ⚠️ It reported a live guard as inert. ✅ Re-run against line 114 alone: the guard fires with the right diagnosis. Same family as the needle problems all evening, arriving on a mutation rather than a sweep — and the remedy is the same one that has worked every time: target the line, not the text.
Scope
UpdateDocVersionRefsnow validates its arguments and returns an empty slice — it writes nothing. 📌 Its caller atcmd/rt/prep.go:390still ranges over the result, which is now always empty but not dead: the error path is live and the validation is real. ⚠️ The NAME now describes what the function no longer does. Not a blocker and not this PR's subject —#1411made the same judgement about the setter — but worth a follow-up if a third caller ever reads it as still updating refs.Landing identity record
65df65e7a298bca903917e0b569632eb56c64f25ce14ea080e9b691b91526ad4f91e405682be40b6This is a post-merge identity record. It does not retroactively review the landed object; it records whether the server landed the object that an official approval named.