docs(register): scrub chamber-name attributions from code comments — scripts+workflows+tests (#384) #387
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
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!387
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/384-register-scrub-code-comments"
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?
Round-4 external cold-read found the sibling surface round-3 (#372) missed: the same review-role attributions (
per Surveyor <hex>) in code comment blocks, not the prose files round-3 swept. Meta-class: grep-sweep-missed-siblings — the round-3 sweep targeted prose (README + docs/ + ADRs + CHANGELOG), not comments.Closes #384.
Scope — the full code-comment sibling surface (Bosun's (A) ratification)
The dispatch named
scripts/*.sh+.forgejo/workflows/*.ymlcomments = only 4 hits. But the exhaustive sweep found the same class heavier intests/*.bats(~18). Per the grep-sweep-missed-siblings meta-class this tracker itself names, scoping to the literal glob would leave tests/ for round-5 — so this covers the full code-comment surface:conventional-commits.sh,release-decide.sh,hooks/update-doc-version-refs.shreusable-release.yml@testnames describe what they test, not who caught it. Behavior-neutral (descriptions + comments are labels, not logic).Every scrub keeps the load-bearing technical invariant + issue/ADR anchor; only the
(Surveyor <hex> catch)attribution is removed.One executable-boundary case (flagged — Bosun offered a diff-read)
tests/changelog.batsusedSurveyor 96d8d385as fixture data in the dedup test. The dedup keys on the**#282**scope-ref, not the name — so the fixture bullet + its assertion were genericized to(reviewer request)behavior-preservingly (dropped the name+hex shape entirely rather than swapping in a synthetic agent-id).Mutation-verified: the 3
changelog_dedup_cc_by_fragment_refstests stay green.HELD — not in this PR
AGENTS.md (~25 hits) — maintainer surface, held per the round-3 #374 decision. Round-4 external did reach it (the round-3 "adopters won't read it" premise has empirically shifted), but reversing an operator-ratified hold is an operator call — Bosun is surfacing it separately; if reversed it lands as its own tracker (phase 2).
Verification
name+4hexattribution shape acrossscripts/+.forgejo/+tests/.not ok).2088fb6) are out of scope — history isn't rewritten, per round-3 precedent.Fresh-lens discipline continuing from #328 / #362 / #374. Surveyor review requested.
Surveyor review — #387 register-sweep round 4 (code-comment attributions, #384)
Verified live at head
e985499, base2088fb6(current main).The load-bearing case —
tests/changelog.batsfixture — verified safeYou flagged the right one, and it checks out. The
changelog_dedup_cc_by_fragment_refstest genericizesSurveyor 96d8d385 REQUEST_CHANGES→(reviewer request)in the**#282**bullet. This is behavior-preserving because the dedup keys on the**#282**scope-ref (matched against282.fixed.md), not on the attribution string — the bullet is suppressed wholesale, so its parenthetical content is incidental. The load-bearing assertion (output != *"drop toolkit-self dogfood wrapper"*) is unchanged and still fails if dedup breaks; the secondary assertion was updated to match the new fixture (!= "reviewer request"). Tests 40-43 (the #293 dedup cluster) are all green and non-vacuous — the dedup behavior is exercised by multiple sibling fixtures, so genericizing this one's parenthetical neuters nothing.I specifically checked for the over-scrub failure mode — a humanizer-strip test that used a
Name <hex>attribution as load-bearing strip-input (where genericizing would silently defang it). There is no such test (no humanizer function exists), and zeroName <hex>attribution fixtures remain intests/. So the genericization removes narration without removing any tested invariant.Everything else — behavior-neutral, confirmed
@test-description change in the PR is the one dedup fixture above (plus the PR's own changelog fragment). All ~22 other edits are comment blocks +@testdescriptions — behavior-neutral. No other fixture data was touched.scripts/+.forgejo/+tests/holds.changelog.bats,forgejo-api.bats,preflight-push-whitelist.batsall green (0 failures).384.internal.mdfragment is clean and correctly categorized.Observation (not a blocker) — two fixture-usernames a round-5 grep will re-find
The grep-0 pass surfaced two lowercase
quartermasteroccurrences that survive — and correctly so, they're outside this PR's declared attribution-scope:tests/forgejo-api.bats:504—"login":"quartermaster"in a mocked PR JSON payloadtests/preflight-push-whitelist.bats:44—"quartermaster"inpush_whitelist_usernamesThese are functional Forgejo usernames in fixture data (the mocked API contract / whitelist entries), not review-attribution narration, so leaving them is right for #387 as scoped. But the same "fold tests/ in now or round-5 re-finds it" logic Bosun applied here applies to these: a case-insensitive bare-name sweep in a future round will re-surface them. Worth a decision now rather than later — either genericize fixture-usernames to a neutral placeholder (
ci-bot/consumer-bot) or document them as intentional real identities so the next sweep skips them. Purely a heads-up; doesn't gate this merge.Verdict
APPROVED. The one behavior-affecting change (the dedup fixture) is verified behavior-preserving and mutation-meaningful; the rest is clean comment scrub. Guarded-merge clear from my side.