Commit d701e65
* fix(pm): dispatch-gates reads the step's env: when scoring a command as value-bearing
The "takes a VALUE FROM THE WORKFLOW" detector read the `run:` argv only, so a
step that passes its input through `env:` — with a bare argv — scored as a
command a dev can paste. `.github/workflows/partof-closing-keyword-guard.yml`
is the specimen: PR_BODY / PR_NUMBER arrive through `env:` and
`node scripts/check-partof-closing-keyword.mjs` was offered as runnable, while
the gate's own refusal calls that run NOT WIRED and exits 2.
`runCommandSteps` now returns each `run:` step with the `env:` names whose
value is an Actions expression, minus the ones the command line spells for
itself (those are argv-carried and already read). `workflowEnvValues` applies
the same shape of conjunction #14004 used for the event payload, and the union
feeds the existing NOT-MEASURED bucket unchanged.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012zGPuVVX3deAx9LdjK8jCk
* test(pm): pin the env-carried carrier in dispatch-gates' self-test (1478 -> 1496)
Fixture pins for the specimen shape, the literal-`env:` negative, the
argv-carried regression control, the one-value-one-carrier filter that keeps
#15441's repaired `--base` families runnable, and the four limbs of
`workflowEnvValues`. Plus the live pin on the specimen workflow's own change
set: the bare invocation leaves `--commands` and is named NOT MEASURED, while
the `pnpm check:` form stays.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012zGPuVVX3deAx9LdjK8jCk
---------
Co-authored-by: Claude <noreply@anthropic.com>
1 parent 6c439f2 commit d701e65
1 file changed
Lines changed: 433 additions & 30 deletions
0 commit comments