Skip to content

[finding] check-cross-package-test-inputs' docblock states the single-segment hint refusal without its one exception #12808

Description

@claude

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

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions