Skip to content

[finding] dispatch-gates' dropped-declaration probe unparsedPopulationMarkers is keyed on POPULATION_MARKER_KEYS alone — a no-check-families, inherited-population or self-test-reads line that READS as a declaration and does not PARSE makes no sound, while the same shape on a population key is refused by name #18825

Description

@os-justin

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 rowno-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

Activity

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

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions