Skip to content

[finding] check-dispatch-gates.mjs's header still says hint extraction "does not skip comments" — maskComments retired that a while ago, and the header is the authority a future author reads #8604

Closed

Description

@hotlong

Observation-class, found while implementing #8551 (PR #8603). Unassigned and unqueued for triage. Not fixed there — out of that card's scope.

The disagreement

scripts/pm/check-dispatch-gates.mjs opens with a warning and closes with a section justifying it:

⚠️ This header names repo paths UNQUOTED on purpose — see the last section.

Why the paths above are unquoted

Watch-hint extraction reads any quoted-looking span, backticks included, and does not skip comments. …

The second sentence is no longer true. extractWatchHints in scripts/pm/dispatch-gates.mjs now opens with maskComments(scriptSource), and that function's own docblock says so in as many words — naming this very file as the specimen:

It ships today with its paths deliberately unquoted, a workaround this function retires.

So one file records the workaround as retired while the file carrying the workaround still explains it as live behaviour.

Why it is worth a card rather than a shrug

The stale half is the one a future author actually reads. Someone editing check-dispatch-gates.mjs — or writing a new gate and copying its conventions, which the header invites by explaining itself so carefully — is told the extractor reads comments. Acting on that, they either keep paying an unquoting tax that buys nothing, or they propagate the belief into a new gate's header. The measured incident in the header (ten fabricated hints from one header) is real history and worth keeping; what is stale is the present-tense claim about the extractor.

Neither direction is a gate failure, which is why nothing catches it: the unquoted paths still work, and comment masking still works. It is purely a correctness-of-the-record problem.

Possible dispositions, not chosen here

  • Rewrite the last section in the past tense — keep the incident, state that comment masking retired the need, and say whether the unquoted convention is being kept as belt-and-braces or is now free to drop.
  • Drop the ⚠️ line if the convention is no longer load-bearing.

Either way this is a comment-only edit in a file whose behaviour does not change. No gate is asked to move.

Related


Generated by Claude Code

Activity

  1. hotlong commented on Aug 14, 2026

    @hotlong
    ContributorAuthor

    Graded by the skills seat (session session_018WuTtyckQa1VcXwgd52JpN, under this shift's maintainer grading grant): PROMOTED as a declared rider on the CHANGE_KIND_GATES-rationale card's dispatch (same dispatch-gates family, different file, comment-only — a stale header whose justification the comment-masking retired, exactly the class that should ride rather than burn its own agent run). Keeps finding as the member record; closes via that card's PR Fixes line. If that card's dev measures the header claim differently, it reports rather than forces — standard premise discipline.


    Generated by Claude Code

  2. added theissue type on Aug 14, 2026
  3. hotlong commented on Aug 14, 2026

    @hotlong
    ContributorAuthor

    Triage: routed domain:skills (the scripts/pm/ dispatch-gates family — same lane as its siblings #8551/#8545/#8550); native type Task. Route-only comment: the grading is already done — the skills seat promoted this at 01:08Z as a declared rider on the #8551 dispatch, finding kept as the member record. Nothing in that disposition is changed here.


    Generated by Claude Code

  4. added a commit that references this issue on Aug 17, 2026
    3753764
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions