docs(backlog): record the leak-gate six-digit review, verdict leave it (BACKLOG #1436) - #834
Open
wshallwshall wants to merge 1 commit into
Open
docs(backlog): record the leak-gate six-digit review, verdict leave it (BACKLOG #1436)#834wshallwshall wants to merge 1 commit into
wshallwshall wants to merge 1 commit into
Conversation
…t (BACKLOG #1436) A Builder reported the leak gate flags any bare six-digit number as a site code. Measured at 46ea10a: it does not. _ESTATE_ID_SHAPE needs an underscore-joined identifier and matches 0 of 2,038 tracked files; _SITE_CODE_FILE fires only when the leading digits match a loaded [site_prefix], of which two load. The gate as configured flags 0 lines of the tracked tree. Four narrowings were tested against 12 realistic site codes built on the shipped synthetic prefix. All four miss at least one; the underscore anchor misses 8 and only re-derives a detector that already ships. Verdict: change no detector. Scope left open is one paragraph in CONTRIBUTING.md correcting the mental model. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
wshallwshall
force-pushed
the
worktree-agent-a056e3d1358c919f9
branch
from
September 4, 2026 21:19
f0dcd12 to
c608325
Compare
Collaborator
Author
|
Disclosure: the It is not an independent read of the scope. COMMON.md is explicit that the label proves a step happened, not that an independent party looked, and that a seat labelling work it commissioned must say so. The owner has since disabled the Reviewer role and its tag requirement; this disclosure stands regardless, so a later auditor can tell the two cases apart. What I actually checked, so the record is specific rather than a blanket claim:
I did NOT re-run the scanner population counts; the zero-of-2038 and 12-true-positive figures are the reviewer's. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
One commit,
docs/BACKLOG.mdonly. No detector was changed — this is the finding, not a fix.Verdict: leave the rule alone, and the asymmetry settles it
The reported defect does not exist as described. The claim was that the leak gate flags any bare
six-digit number as a site code. It does not:
_ESTATE_ID_SHAPEneeds the six-digit run welded into an underscore-joined identifier, and matches0 lines across 2,038 tracked files.
_SITE_CODE_FILEfires on a bare six-digit run only when its leading digits match a loaded[site_prefix]value, of which two load.scripts/security/scan_forbidden.pyflagszero lines and exits 0.
So the friction the "a control everyone routes around is not a control" argument depends on is not
there when measured. Per hypothetical two-digit prefix: median 1 blocked commit in 350, max 6.
The block that prompted this was a true positive, not a structural false one — the timeout
constant's leading two digits are a real loaded site prefix.
Narrowings tested, against 12 constructed true positives
The most plausible narrowing also merely re-derives a detector that already ships, deleting the
token-loaded detector's entire reason for existing: reaching codes in HL7 fields, prose, quoted
config values and CSV cells. There is no trade available.
Populations, measured at
46ea10a78Using the scanner's own file walker, skip sets and allowlist rather than a second definition.
_SITE_CODE_FILEsees_ESTATE_ID_SHAPEPositive control: the same loop returned 1,619 / 1,199 / 453 lines at widths 5 / 6 / 7 and 0 for
a nonsense token, so the estate-shape zero is a real zero and not a broken query.
Third paths, and why they are displacement
The documented allowlist already exists, with a canary guard, already carrying an entry for exactly
this false-positive class. A per-hit reason naming the loaded set was already declined under #322.
The one real gap: the text explaining this class lives only in
scan-tokens.local.txt.example, undera heading scoped to running the synthetic set, so a maintainer on the real list reads it as somebody
else's problem. That is the remaining scope — one paragraph in
CONTRIBUTING.md.Disclosure
While measuring, the reviewer ran the scanner's
--show-contextflag once, and it echoed a realtoken value into that session's transcript. The scanner's own docstring says that flag is never used
in CI for exactly this reason. It was one run against a scratch probe file outside the repository;
the value reached no tracked file, no commit and no pull request, and every later run was
reasons-only. No concrete six-digit value was written into the backlog item, since a placeholder
built from a loaded prefix is itself a hit.
Checks
ruffreported "no files to check" — the diff touches no Python. Passed at commit time: ledger gate,backlog-parses, forbidden-content, control-characters, username-access-key screen, gitleaks. Also run
by hand:
backlog_status_check.py,backlog_citation_check.py,verdict_divergence_check.py, andlink_check.py(4,800 links, all resolve).🤖 Generated with Claude Code