ci: cut runner load from drafts, re-pushes, and the mutation canary
TH
1h ago+145+145+012345678901234567890123456789-44-44-01234567890123456789
Summary
Reduces load on GitHub runners. In a 5-hour sample (2026-10-14), the advisory mutation canary used about 16% of runner time, mostly on PRs that only edited a workspace package.json. Agents also re-push often, and each push restarts every lane.
- Mutation canary:
LANE_TOOLINGis split intoLANE_SOURCES(lane code and config, includingvitest.config.tsandscripts/lib/) andLANE_DEPENDENCIES(root and workspacepackage.json, the lockfile).- A diff touching only dependencies runs the self-test.
- Mutants run only through
gh workflow run mutation-affected.yml --ref <branch> [-f base=<parent>], which passes--with-dependencies.
- Device smoke lanes: they skip drafts, start on
ready_for_review, and cancel onconverted_to_draft. A gate test enforces this. - Agent docs: push once per review round. Allow 2,500 lines for one coherent change with self-contained commits.
- Two duplicate lines were removed to fit the guidance budget.
check:fallowalready runs incheck:affected. The misrouted-path rule repeats "If selection rules change, plant a failure".
- Two duplicate lines were removed to fit the guidance budget.
10 files.
Validation
At 2a4c15cb1:
pnpm check:affected --runpasses.- The mutation and gate workflow tests pass (25/25).
- Removing either draft guard fails the new test, and the new selection test fails on
main. - A fresh-context review's findings were applied, except the two doc deletions above.
No device runs: workflow and tooling changes only.
🤖 Generated with Claude Code