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
Two faults appeared on main together with #830 (chore(deps): bump the actions group across 1 directory with 4 updates, head 0aa89724).
1. tests.yml is startup_failure — zero jobs
2026-09-22T14:22 startup_failure push 0aa89724 <- #830
2026-09-22T14:21 startup_failure pull_request b3e4057a
2026-09-22T14:20 failure push 0e121c94 <- last run that ran
2026-09-22T14:00 startup_failure pull_request 2e0e7bba
2026-09-22T13:51 failure pull_request c22ce6c1
2026-09-22T13:20 failure push 3bf9674a
Run 35739874762 on 0aa89724 has jobs = 0. A 0-job run is a startup death,
not a verdict — the workflow was never parsed into jobs, so nothing it would have
checked was checked, and the run does not report a failure anyone would read as
one.
The only diff between the last run that started (0e121c94) and the first that
did not (0aa89724) is the Dependabot pin bumps across five workflows — for tests.yml a pure step-level tag bump, taiki-e/install-action@v2.87.15 → v2.87.16. A step-level tag bump should not startup-kill a workflow, so the
cause is not obvious and is not yet established. The check-runs API returns 404
for annotations on this run.
Note this fault masks#836 rather than replacing it: the test tier was already
dead by needs:-skip before the workflow stopped starting at all.
2. governance / Actions lockfile verify is red on main
The same Dependabot commit changed uses: refs without regenerating .github/workflows/actions.lock. A hyperpolymath/standards reusable does
verify the lockfile, so it is now inconsistent with the tree.
This also corrects an earlier note in the #120 planning that said "no hypatia
workflow enforces actions.lock" — one does, via a standards reusable.
tests.yml reaches jobs > 0 on a push to main. Verify by the job count
in the run, never by a green tick — a startup death has no red tick to see.
.github/workflows/actions.lock regenerated in generate mode only. Never
fix/rewrite mode: it has previously de-pinned 24 SHAs and invented invalid uses: refs that themselves cause startup death. git diff the lock before
staging and confirm the change is purely additive.
governance / Actions lockfile verifygreen on main, evidenced from /commits/<sha>/check-runs, not from gh run list.
The lockfile must be transitively closed — a dangling edge to an
unresolvable ref is itself a jobs=0 killer. Absent is harmless; unresolvable
is fatal.
A regression guard: any Dependabot commit touching a uses: ref must either
update actions.lock in the same commit or fail. Prove it with a mutant —
hand-edit one uses: tag without touching the lock and confirm red.
Sequencing
(1)-(2) before (3)-(4). Regenerating the lock while the workflow cannot start
leaves you unable to tell which change fixed what.
The finding
Two faults appeared on
maintogether with #830 (chore(deps): bump the actions group across 1 directory with 4 updates, head0aa89724).1.
tests.ymlisstartup_failure— zero jobsRun
35739874762on0aa89724has jobs = 0. A 0-job run is a startup death,not a verdict — the workflow was never parsed into jobs, so nothing it would have
checked was checked, and the run does not report a failure anyone would read as
one.
The only diff between the last run that started (
0e121c94) and the first thatdid not (
0aa89724) is the Dependabot pin bumps across five workflows — fortests.ymla pure step-level tag bump,taiki-e/install-action@v2.87.15→v2.87.16. A step-level tag bump should not startup-kill a workflow, so thecause is not obvious and is not yet established. The check-runs API returns 404
for annotations on this run.
Note this fault masks #836 rather than replacing it: the test tier was already
dead by
needs:-skip before the workflow stopped starting at all.2.
governance / Actions lockfile verifyis red onmainThe same Dependabot commit changed
uses:refs without regenerating.github/workflows/actions.lock. Ahyperpolymath/standardsreusable doesverify the lockfile, so it is now inconsistent with the tree.
This also corrects an earlier note in the #120 planning that said "no hypatia
workflow enforces
actions.lock" — one does, via a standards reusable.Acceptance criteria
startup_failurenamed and evidenced, not guessed. Bisectby dispatching
tests.ymlon a branch that reverts only thetests.ymlhunk ofchore(deps): bump the actions group across 1 directory with 4 updates #830, and confirm jobs > 0. State which change did it.
tests.ymlreaches jobs > 0 on apushtomain. Verify by the job countin the run, never by a green tick — a startup death has no red tick to see.
.github/workflows/actions.lockregenerated in generate mode only. Neverfix/rewrite mode: it has previously de-pinned 24 SHAs and invented invalid
uses:refs that themselves cause startup death.git diffthe lock beforestaging and confirm the change is purely additive.
governance / Actions lockfile verifygreen onmain, evidenced from/commits/<sha>/check-runs, not fromgh run list.unresolvable ref is itself a jobs=0 killer. Absent is harmless; unresolvable
is fatal.
uses:ref must eitherupdate
actions.lockin the same commit or fail. Prove it with a mutant —hand-edit one
uses:tag without touching the lock and confirm red.Sequencing
(1)-(2) before (3)-(4). Regenerating the lock while the workflow cannot start
leaves you unable to tell which change fixed what.
Found while preparing #835. Related: #836.