Skip to content

Commit 900334a

Browse files
claude[bot]claude
andauthored
fix(devx): dispatch-gates emits the REAL check where the script declares its argv default, and its self-test harness prints the readings its call sites pass (#15570)
The `notRunnable` rule asked whether the WORKFLOW supplies a value and never whether the SCRIPT needs it supplied. For the three `--base` gates the two answers differ, so the only member `--commands` offered for check-adr-0087-registration was that script's `--self-test`: a zero from a command that cannot answer the question, sitting in the runnable union where nothing distinguishes it from a green. The class was enumerated by predicate before anything was repaired, read from the workflow text rather than recalled — 15 value-bearing invocation keys across 7 scripts. 6 keys / 3 scripts declare a default for the flag CI pins (check-adr-0087-registration.mjs:8, check-changeset-no-major.mjs:7, check-empty-changeset.mjs:7, each implemented at :5141 / :760 / :1627). 9 keys / 4 scripts are genuinely unrunnable: a runner temp path, a matrix shard, step results and a provenance string this tool cannot invent. - declaredArgvDefaults reads the declaration out of the script's own LEADING usage block, so no table here can drift from it; a script that stops documenting its default returns its family to NOT RUNNABLE LOCALLY on the next run, with no edit in this file. - defaultedArgv renders the invocation as it runs here, with the default spelled out where CI writes the variable, and it is all-or-nothing: a partially covered argv stays unrunnable, because a command that runs with one real value and one invented one answers a question CI never asked. - The derivation KEY is untouched. Only the rendered runnable member moves. - Every family that genuinely cannot run now prints NOT MEASURED by name, in the human block and on --commands stderr, and says that a sibling invocation of the same script in the list above grades the script and not your diff. - The pasted block deduplicates on the command, so two keys that render one command cannot repeat in the published harvest. - The self-test harness `t` takes the third argument six call sites were already passing; it prints on a RED only, so a passing run's log is byte-identical to what it has always been. One existing case's EXPECTATION moves with the rendering it pins (the empty-changeset family in the matched block); its subject and its invariant are unchanged, the reason is written at the case. check:pm-dispatch-gates: 1415 cases before, 1445 after. Claude-Session: https://claude.ai/code/session_012zGPuVVX3deAx9LdjK8jCk Co-authored-by: Claude <noreply@anthropic.com>
1 parent 954cb0b commit 900334a

1 file changed

Lines changed: 597 additions & 16 deletions

File tree

0 commit comments

Comments
 (0)