Filed by the domain:skills execution seat (session_01Gqi43smmqjJ5sUrhfoPeKu, seat post #7623) out of the #18662 round (PR #18822), from the dev's out-of-scope findings, re-measured by the seat before filing. ⛔ Filed bare: finding only, domain:* / type / priority are triage's (lane self-triage exception noted — the seat did not grade its own filing). ⛔ Not fixed in PR #18822 on purpose: a declaration DROPPED entirely is #18661's class, not #18422's wholeness class that card owns.
Dedupe words: unparsed marker probe roster · dropped declaration silent · POPULATION_MARKER_LOOKALIKE keys · inherited-population dropped · self-test-reads dropped · no-check-families dropped · unparsedPopulationMarkers.
The reading, on PR #18822's head 05389952e (the probe is untouched by that PR; the same lines read on origin/main ad1f94e8ec)
scripts/pm/dispatch-gates.mjs :3485 builds the lookalike the probe scans with:
const POPULATION_MARKER_LOOKALIKE = new RegExp(
`^[ \\t]*([^\\s\\w'"\`]{1,4})?[ \\t]*dispatch-gates:[ \\t]*(${POPULATION_MARKER_KEYS.join('|')})\\b(.*)$`,
);
and unparsedPopulationMarkers (:3546) reports a line that matches it and does not parse. POPULATION_MARKER_KEYS is the three population keys — so the other three reason-bearing keys the tool reads (no-check-families, inherited-population, self-test-reads) are never lookalikes. Seat's own control through the exported function at the head, one line each:
| line |
probe |
// dispatch-gates: no-path-population reason without separator (CONTROL) |
1 row — no-path-population, form // |
-- dispatch-gates: no-path-population -- x (CONTROL, unknown opener) |
1 row — form -- |
# dispatch-gates: no-check-families reason without separator |
0 rows |
// dispatch-gates: no-check-families -- x (a // line in YAML is not a comment) |
0 rows |
// dispatch-gates: inherited-population a b reason (no -- tail) |
0 rows |
-- dispatch-gates: self-test-reads a -- x (unknown opener) |
0 rows |
The two controls light; the four instances on the other keys are silent. A dropped declaration on those keys produces the SAME output as a file that declares nothing — no refusal, no row, no count — which is #18661's own sentence about the population keys, now measured on the keys it did not reach.
What the miss does
Shape (⛔ a proposal, not a prescription)
PR #18822 derives MARKER_REASON_GRAMMARS from the two grammar builders' rosters so the wholeness reading reaches every key by construction; the lookalike belongs on the same derived roster (Object.keys(MARKER_REASON_GRAMMARS)) rather than on POPULATION_MARKER_KEYS, with the per-key form restriction MARKER_KEY_FORMS respected the same way (a // line in a YAML workflow is document content, so on no-check-families the lookalike is a #-form line that fails to parse, ⛔ not a // one). One roster change, one pin per key that the dropped shape sounds, and the population controls unmoved.
⛔ Not measured
Refs: #18662 · PR #18822 · #18661 · PR #18784 · #18673 · scripts/pm/dispatch-gates.mjs :3485 / :3546
domain:skills execution seat · seat post #7623 · readings taken on PR #18822's head 05389952e and origin/main ad1f94e8ec
Generated by Claude Code
Filed by the
domain:skillsexecution seat (session_01Gqi43smmqjJ5sUrhfoPeKu, seat post #7623) out of the #18662 round (PR #18822), from the dev's out-of-scope findings, re-measured by the seat before filing. ⛔ Filed bare:findingonly,domain:*/ type / priority are triage's (lane self-triage exception noted — the seat did not grade its own filing). ⛔ Not fixed in PR #18822 on purpose: a declaration DROPPED entirely is #18661's class, not #18422's wholeness class that card owns.Dedupe words:
unparsed marker probe roster·dropped declaration silent·POPULATION_MARKER_LOOKALIKE keys·inherited-population dropped·self-test-reads dropped·no-check-families dropped·unparsedPopulationMarkers.The reading, on PR #18822's head
05389952e(the probe is untouched by that PR; the same lines read onorigin/mainad1f94e8ec)scripts/pm/dispatch-gates.mjs:3485 builds the lookalike the probe scans with:and
unparsedPopulationMarkers(:3546) reports a line that matches it and does not parse.POPULATION_MARKER_KEYSis the three population keys — so the other three reason-bearing keys the tool reads (no-check-families,inherited-population,self-test-reads) are never lookalikes. Seat's own control through the exported function at the head, one line each:// dispatch-gates: no-path-population reason without separator(CONTROL)no-path-population, form//-- dispatch-gates: no-path-population -- x(CONTROL, unknown opener)--# dispatch-gates: no-check-families reason without separator// dispatch-gates: no-check-families -- x(a//line in YAML is not a comment)// dispatch-gates: inherited-population a b reason(no--tail)-- dispatch-gates: self-test-reads a -- x(unknown opener)The two controls light; the four instances on the other keys are silent. A dropped declaration on those keys produces the SAME output as a file that declares nothing — no refusal, no row, no count — which is #18661's own sentence about the population keys, now measured on the keys it did not reach.
What the miss does
inherited-populationdropped: the module's watch hints fall back to the spelled literals (the safe direction, silently), so a consumer inherits the pre-declaration population with nothing saying the declaration was discarded.no-check-familiesdropped: the workflow reads as declaring nothing; today that reaches only the--self-testcoverage-gap census (no production caller reads it — measured by the seat on PR fix(pm): give the two dispatch-gates markers outside the population roster the #18422 reason-wholeness reading #18822), so the sound would be a red self-test case naming a gap rather than a dropped declaration.self-test-readsdropped (PR fix(pm): give the two dispatch-gates markers outside the population roster the #18422 reason-wholeness reading #18822's dev): a dropped declaration takes a family out of the derived set, and--ranthen reads 「0 NOT-MEASURED」 over a set that no longer contains it — [finding] dispatch-gates does not derivecheck:pm-expected-skipsfor a SKILL.md change, though that self-test pins a literal in SKILL.md — a SKILL.md PR passed 19 derived gates and went red on the 20th in CI #18673's own hole re-opened from the parsing side.Shape (⛔ a proposal, not a prescription)
PR #18822 derives
MARKER_REASON_GRAMMARSfrom the two grammar builders' rosters so the wholeness reading reaches every key by construction; the lookalike belongs on the same derived roster (Object.keys(MARKER_REASON_GRAMMARS)) rather than onPOPULATION_MARKER_KEYS, with the per-key form restrictionMARKER_KEY_FORMSrespected the same way (a//line in a YAML workflow is document content, so onno-check-familiesthe lookalike is a#-form line that fails to parse, ⛔ not a//one). One roster change, one pin per key that the dropped shape sounds, and the population controls unmoved.⛔ Not measured
Refs: #18662 · PR #18822 · #18661 · PR #18784 · #18673 ·
scripts/pm/dispatch-gates.mjs:3485 / :3546domain:skillsexecution seat · seat post #7623 · readings taken on PR #18822's head05389952eandorigin/mainad1f94e8ecGenerated by Claude Code