Surfaced by Copilot review on #38, deferred there because it is #36's design and #38 was a re-land.
skills/overnight/SKILL.md Phase 2 preflights the base with:
gh run list --branch "<base branch>" --limit 1 --json conclusion,status,workflowName
--limit 1 selects one run across all workflows and the output omits the run's head SHA. So a green run from an unrelated workflow, or from an older commit, passes the preflight while a required workflow is red or the current tip has no completed checks. Every chain sits on that base, so a false green sends the whole night onto broken ground.
Fix: query the required check-runs for the base's current SHA, and define how empty / in-progress results are handled. deliver Phase 7b already has the check-runs pattern to borrow, including the skipped-is-not-failed rule the preflight also needs.
Surfaced by Copilot review on #38, deferred there because it is #36's design and #38 was a re-land.
skills/overnight/SKILL.mdPhase 2 preflights the base with:gh run list --branch "<base branch>" --limit 1 --json conclusion,status,workflowName--limit 1selects one run across all workflows and the output omits the run's head SHA. So a green run from an unrelated workflow, or from an older commit, passes the preflight while a required workflow is red or the current tip has no completed checks. Every chain sits on that base, so a false green sends the whole night onto broken ground.Fix: query the required check-runs for the base's current SHA, and define how empty / in-progress results are handled.
deliverPhase 7b already has the check-runs pattern to borrow, including theskipped-is-not-failedrule the preflight also needs.