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
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.mjsopens with a warning and closes with a section justifying it:The second sentence is no longer true.
extractWatchHintsinscripts/pm/dispatch-gates.mjsnow opens withmaskComments(scriptSource), and that function's own docblock says so in as many words — naming this very file as the specimen: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
⚠️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
maskComments/maskSelfTests. This is its documentation residue, not a defect in it.Generated by Claude Code