You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(pm): make check-family discovery fail loud on undiscoverable workflow verification steps (#9202)
* fix(pm): make check-family discovery fail loud on undiscoverable workflow verification steps
dispatch-gates.mjs only recognized `pnpm check:NAME` and `node scripts/**check-NAME.mjs`
as check-family invocations, so a workflow verification step using neither shape
contributed zero discovered families and was invisible to BOTH halves of the tool's
output (#9187). Measured: of the 25 workflow files, only 6 declare a `paths:` filter,
and of those, `docs-drift-check.yml` (self-test via a non-`check-`-named script) and
`scaffold-e2e.yml` (a genuine e2e pipeline, no check family at all) were the only two
with zero discovered families — matching the issue's own count, so the fix is scoped to
exactly those two rather than a broader regex widening.
- dispatch-gates.mjs: add `checkFamilyCoverageGaps` + `declaredNoCheckFamiliesReason`,
asserted in the tool's own self-test (both fixture-pinned and against the live
workflow tree) — every paths-filtered workflow must now discover at least one check
family, or declare why not via a `# dispatch-gates: no-check-families -- <reason>`
comment carried IN the workflow file itself (never a hardcoded filename list here).
- docs-drift-check.yml: name the mapper self-test through a new `check:docs-drift-mapper`
package.json script instead of a raw `node` invocation, so it becomes discoverable.
- scaffold-e2e.yml: declare the opt-out — its steps are an e2e build, not a named
verification.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y26DJEHSBhhAQ6wwfsHNza
* fix(pm): make docs-drift-check's self-test discoverable without needing pnpm
docs-drift-check.yml's job never runs `pnpm install` (the mapper it self-tests has
zero dependencies, kept that way deliberately so the job stays fast on every PR
touching packages/**), so a `pnpm check:NAME` invocation broke it outright
(`pnpm: command not found`, PR #9202 CI). Route it through a thin wrapper script
instead — scripts/docs-audit/check-affected-docs.mjs, spawned via a plain `node`
call, mirroring scripts/pm/check-dispatch-gates.mjs's own established shape — which
satisfies dispatch-gates.mjs's OTHER discovery form (`node scripts/**check-NAME.mjs`)
without adding a pnpm dependency to a job that deliberately has none.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y26DJEHSBhhAQ6wwfsHNza
---------
Co-authored-by: Claude <noreply@anthropic.com>
t('the live tree has at least one paths-filtered workflow (the guard is not vacuous)',liveWorkflowEntries.some((e)=>extractTriggerPaths(e.text).length>0));
0 commit comments