Observation-class finding, measured while implementing #10029 direction B (PR #10852). No gate is red today. Filed unassigned, no pm:queue.
This is the same class as #10163 (closed by PR #10690), recurring with different content — and the mechanism named in that card's adjudication is exactly what produced it: "禁令会腐烂,因为它描述的东西被扩宽了,而陈述它的散文没有跟着改" — a prohibition rots because the thing it describes was widened while the prose stating it was not.
Measured
PR #10852 teaches scripts/check-cross-package-test-inputs.mjs the findUp anchor seeds: a walk up from process.cwd() keyed on this package's own manifest name now resolves to the package root, and one keyed on pnpm-workspace.yaml resolves to the repo root. Both are on the published RECOGNISED_PATH_SPELLINGS list and each is pinned by a --self-test case.
Three files still tell authors the opposite, and in two of them that sentence is the stated reason for a code decision — load-bearing prose that no longer describes the gate.
| file | line | what it says | status after PR #10852 |
|---|
packages/cli/src/commands/serve-multi-node-cap-advisory.pin.test.ts | 70-72 | "The spellings that genuinely produce no flag are the ones the detector cannot resolve at all: a template-literal path, a findUp walk from process.cwd(), segments arriving out of a variable or an array." | false for the anchor forms. The other two examples stay correct. |
packages/plugins/plugin-auth/src/rate-limit-storage-isolation.test.ts | 61-62 | "A findUp walk from process.cwd() is not a spelling it resolves — process.cwd() appears nowhere in that detector" | false, and the second clause was already false on origin/main@37ba31a4b8 before that PR: process.cwd occurs once in the detector (in prose). Counter-checked on the same tree: __dirname 9, import.meta.dirname 7. |
packages/plugins/plugin-auth/src/managed-extension-fields.test.ts | 318-321 | "Deriving the root any other way — the findUp walk from process.cwd() that member-role-canonical.test.ts uses — makes this radius INVISIBLE to that gate" | false. A findUp-seeded reseed now resolves to the repo root and the escape stays visible and named. |
Why the third row is the one that matters
That sentence is the stated mechanism behind a standing ⛔ prohibition — managed-extension-fields.test.ts may not be reseeded, because doing so was said to make plugin-auth's packages/**/*.object.ts radius invisible. The prohibition itself is not being challenged here and PR #10852 left the file untouched; what changed is that its stated reason is now wrong, so the next author who re-derives it from the prose gets a false answer in the dangerous direction ("the gate can't see this either way, so the seed doesn't matter").
Whether the prohibition should be restated on a different reason, relaxed, or kept verbatim is a triage judgment, not a mechanical edit — which is the main reason this is filed rather than fixed in place. The others: managed-extension-fields.test.ts is plugin-auth's single hot surface and was explicitly reserved by #10029's claim, and editing two packages/** test files pulls in a verification surface (the plugin-auth and cli test farms) that a scripts/**-only PR does not have.
Population
Scanned repo-wide on 37ba31a4b8: findUp occurs in 10 places across 6 files. Six are the live implementations and their bindings (all in plugin-auth); the other four are the prose above, minus one line already corrected inside the detector by PR #10852 (globHolderVerdict()'s docblock, which told the next reader to ablate that limb by reseeding from process.cwd() — that sentence now says bareprocess.cwd() and has a --self-test case pinning the bare form is still unresolved).
Backlinks
#10029 (the card, direction B) · PR #10852 (where it was measured) · #10163 and PR #10690 (the same class, previous round) · #7802 (the blind spot the gate exists for) · #10161 (direction A).
Generated by Claude Code
Generated by Claude Code
Observation-class finding, measured while implementing #10029 direction B (PR #10852). No gate is red today. Filed unassigned, no
pm:queue.This is the same class as #10163 (closed by PR #10690), recurring with different content — and the mechanism named in that card's adjudication is exactly what produced it: "禁令会腐烂,因为它描述的东西被扩宽了,而陈述它的散文没有跟着改" — a prohibition rots because the thing it describes was widened while the prose stating it was not.
Measured
PR #10852 teaches
scripts/check-cross-package-test-inputs.mjsthefindUpanchor seeds: a walk up fromprocess.cwd()keyed on this package's own manifestnamenow resolves to the package root, and one keyed onpnpm-workspace.yamlresolves to the repo root. Both are on the publishedRECOGNISED_PATH_SPELLINGSlist and each is pinned by a--self-testcase.Three files still tell authors the opposite, and in two of them that sentence is the stated reason for a code decision — load-bearing prose that no longer describes the gate.
packages/cli/src/commands/serve-multi-node-cap-advisory.pin.test.tsfindUpwalk fromprocess.cwd(), segments arriving out of a variable or an array."packages/plugins/plugin-auth/src/rate-limit-storage-isolation.test.tsfindUpwalk fromprocess.cwd()is not a spelling it resolves —process.cwd()appears nowhere in that detector"origin/main@37ba31a4b8before that PR:process.cwdoccurs once in the detector (in prose). Counter-checked on the same tree:__dirname9,import.meta.dirname7.packages/plugins/plugin-auth/src/managed-extension-fields.test.tsfindUpwalk fromprocess.cwd()thatmember-role-canonical.test.tsuses — makes this radius INVISIBLE to that gate"findUp-seeded reseed now resolves to the repo root and the escape stays visible and named.Why the third row is the one that matters
That sentence is the stated mechanism behind a standing ⛔ prohibition —
managed-extension-fields.test.tsmay not be reseeded, because doing so was said to make plugin-auth'spackages/**/*.object.tsradius invisible. The prohibition itself is not being challenged here and PR #10852 left the file untouched; what changed is that its stated reason is now wrong, so the next author who re-derives it from the prose gets a false answer in the dangerous direction ("the gate can't see this either way, so the seed doesn't matter").Whether the prohibition should be restated on a different reason, relaxed, or kept verbatim is a triage judgment, not a mechanical edit — which is the main reason this is filed rather than fixed in place. The others:
managed-extension-fields.test.tsis plugin-auth's single hot surface and was explicitly reserved by #10029's claim, and editing twopackages/**test files pulls in a verification surface (the plugin-auth and cli test farms) that ascripts/**-only PR does not have.Population
Scanned repo-wide on
37ba31a4b8:findUpoccurs in 10 places across 6 files. Six are the live implementations and their bindings (all inplugin-auth); the other four are the prose above, minus one line already corrected inside the detector by PR #10852 (globHolderVerdict()'s docblock, which told the next reader to ablate that limb by reseeding fromprocess.cwd()— that sentence now says bareprocess.cwd()and has a--self-testcase pinning the bare form is still unresolved).Backlinks
#10029 (the card, direction B) · PR #10852 (where it was measured) · #10163 and PR #10690 (the same class, previous round) · #7802 (the blind spot the gate exists for) · #10161 (direction A).
Generated by Claude Code
Generated by Claude Code