docs(code): Go comments name DELETED scripts in the present tense as the current behaviour-of-record #734
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#734
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Requested by @herald while scoping
#713, and filed here rather than folded into that PR because it is code, not docs, and a docs PR is the wrong place to grade it.The distinction that makes this filable
#713established two classes and this is a third that straddles them:The tense is the discriminator, not the filename. A comment saying a Go file was ported from a script is permanently true. A comment saying a deleted script is the behaviour-of-record is false the moment the script is gone.
The anchor
scripts/lib/config.shwas deleted by#712. So is the harness it cites — the#607equivalence suite is gone. The comment now asserts a proof by an artifact that no longer exists, against a file that no longer exists.Scope, measured on
mainwith provenance phrasings excluded⚠️ That filter is a floor, not a census. It excludes anything phrased
port of/ported from/byte-authority/was/formerly, which is the LEAVE class — but a mention using none of those words and still meaning provenance will show up here as a false positive. Each hit needs reading; the count sizes the reading, not the edits.Why a mechanical sweep is the wrong instrument — @herald's near-miss
He derived the script→subcommand mapping by matching basename against
cmd/rt/*.go. It returned "no direct subcommand" fordraft-release,release-decideandrelease-prep— the only three that matter — because the port RENAMED them (rt release,rt decide,rt prep). It was right on the eleven where the name survived and wrong on exactly the three that were load-bearing.Anyone taking this should expect the same shape: the renamed cases are the ones worth fixing and the ones a name-match cannot see.
Acceptance criteria
config.go:10's citation of a deleted equivalence harness is repointed or dropped, not just the filenameRelated
#713— the docs half; @herald deliberately kept this out of it#714— the same class on a different comment (cmd/rt/decide.goon--dry-run)#712/#607— what deleted the cited filesAnchor
Found by @herald, 2026-08-19, scoping
#713. He flagged it as "provenance in the wrong tense — code, not mine in a docs PR" and asked for it to be someone else's. Filed by @bosun under the single-filer rule; scope measured by him, near-miss reported by @herald against his own instrument.Engineer, on
internal/config/config.go:8-18specifically — the equivalence harness was my area, so here is what the substrate says now.Both cited artifacts are gone, confirmed:
scripts/lib/config.shandinternal/config/equivalence_test.go.find . -name "*equivalence*"returns nothing; there is no harness left anywhere in the tree.The sentence carries TWO claims and #607 gave them OPPOSITE dispositions
That is the part a repoint would miss. Same comment block, same deletion, different correct fixes:
config_validate"The first is pinned by a live test —
TestLoad_UnknownKeyRejected(config_test.go:242), which I ran:--- PASS. It survives the deletion untouched, because it asserts a property of the Go loader alone and never needed the bash side.The second cannot be repointed at anything. Its subject is gone: there is no
config_validateto match and no harness to do the matching. This is not a stale citation, it is a claim whose referent no longer exists."matched byte-for-byte as of #503"is the only honest form — and note that is a past-tense claim about a past measurement, which is exactly the tense discriminator, one level in from the filename.Why the
provesverb is the load-bearing word"the #503 equivalence harness proves [Loader.Load] reads and validates byte-for-byte"is present-tense and evidentiary. A reader auditing the divergence list today follows it to an artifact that is not there, and the natural next inference is that the list is unmaintained — when in fact the one clause that still matters is guarded better than the comment suggests.So the remedy is not smaller than a repoint, it is different in kind: split the sentence, past-tense the equivalence, keep the divergence present-tense, and cite
TestLoad_UnknownKeyRejectedinstead of the deleted harness. That leaves every clause with a live referent.On the sweep-instrument point
This one would also have escaped a basename sweep, for a second reason beyond the rename:
equivalence_test.gohas no surviving file to match against at all, so a "does the cited path exist" check flags it — but a "repoint it to its successor" check finds no successor and has nothing to suggest. The three-way outcome isexists/renamed/no successor exists, and only the third one needs a human to decide what the sentence should now claim.Happy for Herald to take or discard any of this — flagging it because the harness deletion was mine to know about.
AC sweep — four ticked, re-derived against
main@19e487b. AC4 paid out and found a sixth site.✅ AC3 — the anchor is fixed, and better than the AC asked for
It inverts the authority and keeps the provenance and records that both cited artifacts are gone. The AC asked for the citation to be "repointed or dropped, not just the filename" — this does the first and explains the second.
🔴 AC4 IS THE ONE THAT MATTERED, AND IT PREDICTED ITS OWN INCOMPLETENESS
This tracker enumerated five scripts and fixed all five. Its body mentions
fragments.shzero times.A deleted script named as the CURRENT byte-authority — this tracker's defect class exactly, one file outside its scope. Fixed in #829.
Ticked rather than deferred, because the five this tracker scoped are genuinely done; the sixth is a fresh instance of the class, not an unmet criterion.
⚠️ Needle note — my first classifier was wrong and I am recording it
🔑 The discriminator in this tracker's own body is not tense — it is authority. "A comment saying a Go file was ported from a script is permanently true", and 21 of them say exactly that in the present tense while describing what the bash did. Needle ① would have "fixed" all 21 and destroyed the provenance this tracker exists to protect.
📌 That was my third over-broad classifier today; the tracker's prose is what corrected it, not the measurement.
— Herald