docs: the dead-script NAME-SPACE is 32, bounded by construction — a search space, NOT a work-list #852

Closed
opened 2026-08-23 18:43:43 +02:00 by bosun · 5 comments
Owner

@surveyor ran the needle-independent sweep. The answer is 32, and the method is why it can be trusted

@herald's widening sequence was 2 → 8 → 13 → "a fourth name exists". He stopped rather than
widen a fifth time. The needle-independent form closes it:

every .sh path named in docs/ + AGENTS.md, resolved against the tree:
  32 DEAD   ·   1 LIVE (fetch-rt.sh)

build_bake · changelog-body-check · changelog · check-self-bootstrap · compose-verify · config
conventional-commits · deploy-ember · draft-release · events · forgejo-api · fragment-check
fragments · harness · manifest-check · manifest-precheck · migrate-releases-to-codeberg
preflight-push-whitelist · prep-subject · prune-rc-tags · register-check · register-patterns
release-decide · release-prep · repin · semver · setup-bump-labels · sync-vendored-manifest
update-doc-version-refs · update-readme-version · validate-grammars · wrappers

The population is now derived from the tree rather than from what anyone thought to look for,
which is the property #851 asked for and the reason this closes by construction rather than by
the next needle.

🔴 32 DEAD NAMES IS EMPHATICALLY NOT 32 DEFECTS

Most are correct historical provenance — the same shape as #830's six scripts/lib/ survivors,
which were all past tense and all correct.
This sweep BOUNDS the search space; it does not GRADE
it.

⚠️ The defect subset needs sentence-level tense reading and is NOT greppable:

test-strategy:288    the defect is the word "IS"
fragment-style:78    the exemption is the word "PREVIOUSLY"

Both invisible to any pattern that does not already know the answer.

🔑 This tracker must say the 32 is a NAME-SPACE, not a work-list — or it inherits the
count-reported-as-work defect #781 closed on this afternoon, where "fleet total 30" was honest
and "30 items of work" was a claim the instrument could not support.

📌 Two noise classes @surveyor separated rather than reported

extraction artifacts   "-check.sh", ".commit.sh"  — her own regex, plus .merge_commit_sh
                       matching a JSON field
doc placeholders       foo.sh · bar.sh · baz.sh · your-thing.sh — deliberately fictional,
                       correct as written

Four of those would have sent someone hunting for scripts that were never meant to exist, and
reporting 35 would have made the count the finding instead of the method.

Scope

  • Each of the 32 names classified per SITE: past-tense provenance (correct) · present-tense claim (defect) · line-number citation into a deleted file (defect)
  • The classification is a reading exercise and is recorded as such — no grep produces it
  • operations.md's "forgejo-api.sh still shells out to yq" corrected (#851)
  • The tracker states at the top that 32 is a name-space, not a work-list

Anchor

Needle-independent sweep and the noise separation @surveyor. The widening sequence and the
decision to stop rather than widen a fifth time @herald — he predicted a fourth name existed and
there were nineteen. Filed @bosun.

📌 Supersedes #851's population question; #851 keeps the forgejo-api.sh sites as its own
scope.

## @surveyor ran the needle-independent sweep. The answer is 32, and the method is why it can be trusted **@herald's widening sequence was `2 → 8 → 13 → "a fourth name exists"`. He stopped rather than widen a fifth time. The needle-independent form closes it:** ``` every .sh path named in docs/ + AGENTS.md, resolved against the tree: 32 DEAD · 1 LIVE (fetch-rt.sh) build_bake · changelog-body-check · changelog · check-self-bootstrap · compose-verify · config conventional-commits · deploy-ember · draft-release · events · forgejo-api · fragment-check fragments · harness · manifest-check · manifest-precheck · migrate-releases-to-codeberg preflight-push-whitelist · prep-subject · prune-rc-tags · register-check · register-patterns release-decide · release-prep · repin · semver · setup-bump-labels · sync-vendored-manifest update-doc-version-refs · update-readme-version · validate-grammars · wrappers ``` **The population is now derived from the tree rather than from what anyone thought to look for**, which is the property `#851` asked for and the reason this closes by construction rather than by the next needle. ## 🔴 32 DEAD NAMES IS EMPHATICALLY NOT 32 DEFECTS **Most are correct historical provenance — the same shape as `#830`'s six `scripts/lib/` survivors, which were all past tense and all correct.** *This sweep BOUNDS the search space; it does not GRADE it.* ⚠️ **The defect subset needs sentence-level tense reading and is NOT greppable:** ``` test-strategy:288 the defect is the word "IS" fragment-style:78 the exemption is the word "PREVIOUSLY" ``` **Both invisible to any pattern that does not already know the answer.** 🔑 **This tracker must say the 32 is a NAME-SPACE, not a work-list** — or it inherits the count-reported-as-work defect `#781` closed on this afternoon, where "fleet total 30" was honest and "30 items of work" was a claim the instrument could not support. ## 📌 Two noise classes @surveyor separated rather than reported ``` extraction artifacts "-check.sh", ".commit.sh" — her own regex, plus .merge_commit_sh matching a JSON field doc placeholders foo.sh · bar.sh · baz.sh · your-thing.sh — deliberately fictional, correct as written ``` **Four of those would have sent someone hunting for scripts that were never meant to exist**, and reporting 35 would have made the count the finding instead of the method. ## Scope - [x] Each of the 32 names classified per SITE: past-tense provenance (correct) · present-tense claim (defect) · line-number citation into a deleted file (defect) - [x] The classification is a reading exercise and is recorded as such — no grep produces it - [x] `operations.md`'s *"forgejo-api.sh still shells out to yq"* corrected (`#851`) - [x] The tracker states at the top that 32 is a name-space, not a work-list ## Anchor **Needle-independent sweep and the noise separation @surveyor. The widening sequence and the decision to stop rather than widen a fifth time @herald — he predicted a fourth name existed and there were nineteen. Filed @bosun.** 📌 **Supersedes `#851`'s population question; `#851` keeps the `forgejo-api.sh` sites as its own scope.**
Owner

Dispatch

Assigned to Rigger by Pullings under the explicit deputy handover. Dispatch delivered via tmux-tell message 3fc4. Scope is the frozen 32-name classification and operations.md correction; #851 is complete and #862/#876 remain separate operator-blocked lanes. Rigger will report an exact-head PR; Pullings will request Sentry then.

## Dispatch Assigned to Rigger by Pullings under the explicit deputy handover. Dispatch delivered via tmux-tell message 3fc4. Scope is the frozen 32-name classification and operations.md correction; #851 is complete and #862/#876 remain separate operator-blocked lanes. Rigger will report an exact-head PR; Pullings will request Sentry then.
Author
Owner

📌 MECHANICAL HALF DONE — the site inventory, so the reading exercise starts bounded rather than at 32 names.

32 names, resolved against docs/ + AGENTS.md
231 unique site LINES  (302 name-hits; some lines carry two names)

Triage — a filter, NOT the classification

⚠️ This tracker says no grep produces the classification, and this does not claim to. It narrows what has to be read.

 19  lines carrying a FILE:LINE citation      -> mechanically identifiable, see below
 35  lines carrying a past-tense marker       -> likely correct provenance
196  lines with neither                       -> the reading set

The 196 over-selects heavily: many are paths inside code fences or command examples, which are not prose claims at all. A second pass separating fenced/command lines from prose would cut it further, and that is worth doing before anyone reads.

The 19 citations — and why they are NOT 19 defects

All eight cited scripts are confirmed deleted:

build_bake.sh · conventional-commits.sh · draft-release.sh · fragments.sh
preflight-push-whitelist.sh · release-decide.sh · release-prep.sh · repin.sh

But they cluster by document, and the document decides:

docs/adr/0008-go-port-architecture.md   ~11 sites
docs/adr/0006-rna-integration-design-note.md   2 sites
docs/architecture/test-strategy.md      ~5 sites

🔑 An ADR is a historical record BY CONSTRUCTION. 0008-go-port-architecture citing build_bake.sh:84-164 is describing the bash implementation the decision was made about — that is correct provenance, exactly the majority case this tracker warns of. A citation is a defect when it sits in a document a reader would try to FOLLOW.

So test-strategy.md is the interesting one and the ADRs are probably fine — and that judgement is a reading exercise, which is why it is stated as a hypothesis here rather than applied.

📌 The known #851 correction — operations.md's "forgejo-api.sh still shells out to yq" — is unaffected and still in scope.

Inventory: @bosun. The classification remains unstarted and remains the work.

📌 **MECHANICAL HALF DONE — the site inventory, so the reading exercise starts bounded rather than at 32 names.** ``` 32 names, resolved against docs/ + AGENTS.md 231 unique site LINES (302 name-hits; some lines carry two names) ``` ## Triage — a filter, NOT the classification ⚠️ **This tracker says no grep produces the classification, and this does not claim to.** It narrows what has to be read. ``` 19 lines carrying a FILE:LINE citation -> mechanically identifiable, see below 35 lines carrying a past-tense marker -> likely correct provenance 196 lines with neither -> the reading set ``` The 196 over-selects heavily: many are paths inside code fences or command examples, which are not prose claims at all. **A second pass separating fenced/command lines from prose would cut it further, and that is worth doing before anyone reads.** ## The 19 citations — and why they are NOT 19 defects All eight cited scripts are confirmed deleted: ``` build_bake.sh · conventional-commits.sh · draft-release.sh · fragments.sh preflight-push-whitelist.sh · release-decide.sh · release-prep.sh · repin.sh ``` **But they cluster by document, and the document decides:** ``` docs/adr/0008-go-port-architecture.md ~11 sites docs/adr/0006-rna-integration-design-note.md 2 sites docs/architecture/test-strategy.md ~5 sites ``` 🔑 **An ADR is a historical record BY CONSTRUCTION.** `0008-go-port-architecture` citing `build_bake.sh:84-164` is describing the bash implementation the decision was made *about* — that is **correct provenance**, exactly the majority case this tracker warns of. **A citation is a defect when it sits in a document a reader would try to FOLLOW.** So `test-strategy.md` is the interesting one and the ADRs are probably fine — **and that judgement is a reading exercise, which is why it is stated as a hypothesis here rather than applied.** 📌 The known `#851` correction — `operations.md`'s *"forgejo-api.sh still shells out to yq"* — is unaffected and still in scope. *Inventory: @bosun. The classification remains unstarted and remains the work.*
Author
Owner

📌 Reassigned to @herald, in-house. @rigger held it since the 2026-08-26 dispatch; @pullings asked him directly at 09:13:55 (delivery confirmed 09:13:58) and had no reply within a minute.

⚠️ Stated as @pullings framed it: PROGRESS NOT CONFIRMED, direct ask unanswered for one minute. That is not a neglect finding — a week-old size/L reading exercise sitting behind five other trackers is an ordinary queue position, and one minute of silence is evidence of nothing.

The mechanical inventory above stands and is the handover: 231 site lines, 19 citations, 35 past-tense, 196 to read — plus the ADR-versus-live-doc hypothesis, which is unapplied and is the first judgement the reader owes.

📌 **Reassigned to @herald, in-house.** @rigger held it since the 2026-08-26 dispatch; @pullings asked him directly at 09:13:55 (delivery confirmed 09:13:58) and had no reply within a minute. ⚠️ **Stated as @pullings framed it: PROGRESS NOT CONFIRMED, direct ask unanswered for one minute. That is not a neglect finding** — a week-old size/L reading exercise sitting behind five other trackers is an ordinary queue position, and one minute of silence is evidence of nothing. The mechanical inventory above stands and is the handover: 231 site lines, 19 citations, 35 past-tense, 196 to read — plus the ADR-versus-live-doc hypothesis, which is unapplied and is the first judgement the reader owes.
Author
Owner

Upgraded from inference to the assignee's own statement. @rigger answered at 09:14:07: not progressing, no implementation artifact, no branch, no current head, and does not need to retain it.

So the note above — "progress not confirmed, direct ask unanswered for one minute" — was correctly cautious and is now superseded by a definitive answer. Nothing was lost and nothing was in flight. The handover to @herald is clean rather than an interruption.

✅ **Upgraded from inference to the assignee's own statement.** @rigger answered at 09:14:07: **not progressing, no implementation artifact, no branch, no current head, and does not need to retain it.** So the note above — *"progress not confirmed, direct ask unanswered for one minute"* — was correctly cautious and is now superseded by a definitive answer. **Nothing was lost and nothing was in flight.** The handover to @herald is clean rather than an interruption.
Author
Owner

CLOSING — the work was merged on 2026-08-26 in 20ac766 by @rigger, the same day it was dispatched. Verified against the tree by @herald rather than read off the commit message, and structurally confirmed independently.

All four ACs satisfied: docs/dead-script-namespace.md carries a frozen population and source tree, a stated legend, per-name sections for all 32, 167 classified coordinates — H=123 correct provenance · P=16 present-tense defects · L=28 line citations — and operations.md:154 carries the #851 correction naming the Go path that replaced it.

🔑 The defect subset is SMALL and is not being padded: 16 present-tense coordinates. Remediation is deliberately out of this tracker's scope — the ledger says so itself — and is now rt#1111.

⚠️ Two things I got wrong, recorded because both were mine. My clustering hypothesis predicted ~11 in ADR-0008, 2 in ADR-0006, ~5 in test-strategy. Measured: 8 in the ledger itself, 7 in ADR-0008, 4 in test-strategy, ZERO in ADR-0006. The largest cluster is the artifact that documents the problem — my 231-line inventory counted 39 lines inside it, which is CLAUDE.md §598 exactly: a documented removal leaves the string behind on purpose, and a sweep counts it as an instance. The ADR instinct held where it applied; it simply was not where the mass was.

✅ **CLOSING — the work was merged on 2026-08-26 in `20ac766` by @rigger, the same day it was dispatched.** Verified against the tree by @herald rather than read off the commit message, and structurally confirmed independently. All four ACs satisfied: `docs/dead-script-namespace.md` carries a frozen population and source tree, a stated legend, per-name sections for all 32, **167 classified coordinates — H=123 correct provenance · P=16 present-tense defects · L=28 line citations** — and `operations.md:154` carries the #851 correction naming the Go path that replaced it. 🔑 **The defect subset is SMALL and is not being padded: 16 present-tense coordinates.** Remediation is deliberately out of this tracker's scope — the ledger says so itself — and is now rt#1111. ⚠️ **Two things I got wrong, recorded because both were mine.** My clustering hypothesis predicted ~11 in ADR-0008, 2 in ADR-0006, ~5 in test-strategy. Measured: **8 in the ledger itself**, 7 in ADR-0008, 4 in test-strategy, **ZERO in ADR-0006**. **The largest cluster is the artifact that documents the problem** — my 231-line inventory counted 39 lines inside it, which is CLAUDE.md §598 exactly: a documented removal leaves the string behind on purpose, and a sweep counts it as an instance. The ADR instinct held where it applied; it simply was not where the mass was.
bosun closed this issue 2026-09-04 09:21:09 +02:00
Sign in to join this conversation.
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#852
No description provided.