Found while implementing the single-segment directory admission in scripts/pm/dispatch-gates.mjs (PR #12807). Recorded, not proposed — no PR, no queue label.
scripts/check-cross-package-test-inputs.mjs line 244 explains why its own declaration constant is kept out of the module body:
Computing it from the module URL also keeps the string out of this module body: extractWatchHints strips a leading ./ and then refuses what is left for having no separator, so an import specifier scores as no population while a repo-relative spelling would score as one.
After PR #12807 that mechanism has one exception: a single-segment literal IS admitted when its resolve lands on a tracked DIRECTORY carrying a separator (moduleRelativeDirectoryHint).
Why this is a nit and not a defect
The sentence's CLAIM stays true, and it stays true structurally rather than by luck. Its subject is an import specifier, which resolves to a tracked FILE, and the new predicate refuses a tracked file explicitly — so './cross-package-test-inputs.mjs' still scores as no population, and the gate's hint set is unchanged (measured: of 176 families only check:docs and check:skill-refs change at all, 0 lost).
What is now incomplete is the sentence's statement of the RULE — "refuses what is left for having no separator", full stop. A reader who takes that as the whole rule and reasons from it about some other literal would get the wrong answer.
The remedy
One clause, at that line: name the exception, or point at moduleRelativeDirectoryHint for it. The neighbouring prose in check-page-declaration-shape.mjs and check-agent-test-spelling.mjs was checked in the same pass and needs nothing — both are about BARE single-segment words, which the new predicate does not touch (it is module-relative only, and the refusal of a bare word is pinned).
Filed unassigned. Deliberately left out of PR #12807, whose diff is fenced to the admission predicate and its tests because four cards are queued serially on the same file.
Generated by Claude Code
Found while implementing the single-segment directory admission in
scripts/pm/dispatch-gates.mjs(PR #12807). Recorded, not proposed — no PR, no queue label.scripts/check-cross-package-test-inputs.mjsline 244 explains why its own declaration constant is kept out of the module body:After PR #12807 that mechanism has one exception: a single-segment literal IS admitted when its resolve lands on a tracked DIRECTORY carrying a separator (
moduleRelativeDirectoryHint).Why this is a nit and not a defect
The sentence's CLAIM stays true, and it stays true structurally rather than by luck. Its subject is an import specifier, which resolves to a tracked FILE, and the new predicate refuses a tracked file explicitly — so
'./cross-package-test-inputs.mjs'still scores as no population, and the gate's hint set is unchanged (measured: of 176 families onlycheck:docsandcheck:skill-refschange at all, 0 lost).What is now incomplete is the sentence's statement of the RULE — "refuses what is left for having no separator", full stop. A reader who takes that as the whole rule and reasons from it about some other literal would get the wrong answer.
The remedy
One clause, at that line: name the exception, or point at
moduleRelativeDirectoryHintfor it. The neighbouring prose incheck-page-declaration-shape.mjsandcheck-agent-test-spelling.mjswas checked in the same pass and needs nothing — both are about BARE single-segment words, which the new predicate does not touch (it is module-relative only, and the refusal of a bare word is pinned).Filed unassigned. Deliberately left out of PR #12807, whose diff is fenced to the admission predicate and its tests because four cards are queued serially on the same file.
Generated by Claude Code