docs(designs): scrub the private repo's former name and gate it (RIG-3756) - #1216
Draft
rigel-mintaka wants to merge 3 commits into
Draft
docs(designs): scrub the private repo's former name and gate it (RIG-3756)#1216rigel-mintaka wants to merge 3 commits into
rigel-mintaka wants to merge 3 commits into
Conversation
…3756) Family 5 of the managed-boundary leak: the private repo's former proper name and live paths inside it, left behind when families 1-4 were scrubbed. The census that drove the earlier passes scoped itself to docs/ + AGENTS.md, so code and config were structurally invisible to it. Sweeping the tracked tree instead found the former name in apps/eng-docs and .moon/workspace.yml, and family 4 still alive in 11 files under tools/ and agent-image/. Records keep every technical claim; only the provenance descriptor changes. A path citation becomes the mechanism it establishes, so a reader with access can still find the source and a reader without one learns the design. The replacement vocabulary (prior art, out of tree, the fleet, managed-plane) all pre-existed in the corpus. The gate now scans for the former name too, but cannot do it whole-word: the word is ordinary English throughout go/ (a sealed sum type, a ciphertext sealed under a key, an egress-sealed agent). Measured over the tracked tree a whole-word scan flags 60 lines, every one legitimate -- a gate that is 100% false positives gets switched off. It matches only repo-shaped uses: a path inside the repo, its docsite host, its possessive, or the word followed by a repo noun. Tests pin both directions, including the three public names that carry the string and must never trip it. Code comments lose their migration narration outright rather than being reworded -- a public reader needs what the code does, not where it came from. Co-authored-by: Matt Wilkinson <matt@rigel.build> wip: resolve rebase conflicts
|
Merging to
After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here |
…756) Review findings on PR #1216, both mediums on the gate rather than the scrub. The narrow pattern set missed two citation shapes, and both are shapes this scrub removed BY HAND — so the standing backstop would not have caught its own regression: - the space form, `sealed apps/docs/scripts/deploy.ts`, which is the most natural way to cite a file in another repo - the hyphenated repo-noun, `sealed-monorepo` / `sealed-repo` / `sealed-private` The space-form arm anchors on a source-file extension rather than on any slash-bearing token. A looser form false-positives on ordinary English, which carries slashes too: "values sealed and/or rotated" and "sealed in transit/at rest" both match a bare `sealed\s+\S*/`. Validated at 15/15 engineering-word negatives and 9/9 leak shapes; zero hits over the tracked tree. The module header contradicted the code after the two-name change, still reading "orion ONLY / a single blunt token beats a clever regex" while the former name is matched by exactly such a narrowing set. Rewritten to state both names and why the asymmetry is deliberate: blunt where the token is unambiguous, narrow where it collides with English. Also drops `\b` from the git grep pre-filter. It is a GNU extension, not base POSIX ERE, and a toolchain change that made git treat it literally would match nothing and exit 1 — a legitimately-clean signal — so the gate would fail OPEN. The pre-filter only has to be a superset; lineHasToken owns the boundary. Verified superset: 174 unanchored vs 168 anchored lines. Tests 26 -> 29. Mutation-tested: removing the two arms turns 29 pass/0 fail into 26 pass/3 fail. Co-authored-by: Matt Wilkinson <matt@rigel.build>
…(RIG-3756) Review round 2 on PR #1216: high 0, medium 0, low 2. This closes the one low that was a real defect; the other is explicitly informational (the reviewer adjudicated the extension-anchor narrowing as correct and recommended no change). The docstring justified the extension anchor by naming `sealed\s+\S*\/`, then attributed two false positives to it. Only the first actually fails under that pattern: in "rows sealed in transit/at rest" the `\S*` stops at the space before "in", so no slash is adjacent to the token run. Both examples fail under the DEPLOYED arm with its extension anchor stripped, which is the pattern the argument is really about — I had probed the deployed arm and then written up a different regex. A maintainer testing the cited one would find it does not hold and might conclude the anchor is unnecessary. Now names the anchor-stripped arm, and records the trade it buys: a directory-only citation and an off-list extension are missed, deliberately, because broadening to a bare `sealed <word>/<word>` puts those prose hits back and an all-false-positive gate gets switched off. Also makes the whole-word measurement exact. It read "flags 60 lines"; the count outside this gate's own carve-out is 59. A published number that drifts is worse than a stated magnitude, so it now gives the magnitude and scopes the exact figure to its measurement. Verified every claim the docstring now makes: both prose examples clean under the deployed arm, both documented misses confirmed, all three citation shapes still caught. Tests 29 pass / 0 fail; gate clean; root:ci rc=0. Co-authored-by: Matt Wilkinson <matt@rigel.build>
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.
Family 5 of the managed-boundary leak: the private repo's former proper
name and live paths inside it, left behind when families 1-4 were scrubbed.
The census that drove the earlier passes scoped itself to docs/ + AGENTS.md,
so code and config were structurally invisible to it. Sweeping the tracked
tree instead found the former name in apps/eng-docs and .moon/workspace.yml,
and family 4 still alive in 11 files under tools/ and agent-image/.
Records keep every technical claim; only the provenance descriptor changes.
A path citation becomes the mechanism it establishes, so a reader with access
can still find the source and a reader without one learns the design. The
replacement vocabulary (prior art, out of tree, the fleet, managed-plane) all
pre-existed in the corpus.
The gate now scans for the former name too, but cannot do it whole-word: the
word is ordinary English throughout go/ (a sealed sum type, a ciphertext
sealed under a key, an egress-sealed agent). Measured over the tracked tree a
whole-word scan flags 60 lines, every one legitimate -- a gate that is 100%
false positives gets switched off. It matches only repo-shaped uses: a path
inside the repo, its docsite host, its possessive, or the word followed by a
repo noun. Tests pin both directions, including the three public names that
carry the string and must never trip it.
Code comments lose their migration narration outright rather than being
reworded -- a public reader needs what the code does, not where it came from.
Co-authored-by: Matt Wilkinson matt@rigel.build
wip: resolve rebase conflicts