-
Notifications
You must be signed in to change notification settings - Fork 0
(shepherd): Treat superseded cancelled check runs as non-failing #583
Copy link
Copy link
Open
Labels
ai-generatedCreated or authored by an AI agentCreated or authored by an AI agentarea:shepherdThe shepherd skill and its checker/readiness-gate assetsThe shepherd skill and its checker/readiness-gate assetsbugSomething isn't workingSomething isn't workingdomain:agent-workflowAI-delegated dev sessions: the universal skill suite (kickoff→wrap) and shared subagentsAI-delegated dev sessions: the universal skill suite (kickoff→wrap) and shared subagents
Description
Activity
Metadata
Metadata
Assignees
Labels
ai-generatedCreated or authored by an AI agentCreated or authored by an AI agentarea:shepherdThe shepherd skill and its checker/readiness-gate assetsThe shepherd skill and its checker/readiness-gate assetsbugSomething isn't workingSomething isn't workingdomain:agent-workflowAI-delegated dev sessions: the universal skill suite (kickoff→wrap) and shared subagentsAI-delegated dev sessions: the universal skill suite (kickoff→wrap) and shared subagents
Problem
ai/skills/universal/shepherd/assets/readiness-gate.shevaluates every check run on the head and fails closed on any non-passing conclusion. That is right forfailure, but acancelledcheck run that was superseded by a later passing run of the same check on the same head — the shape a workflowconcurrencygroup produces when two triggers (a push and a PR-body edit) arrive seconds apart — blocks promotion withchecks-failing: guardeven thoughgh pr checks --watchreports the check green. The operator has to notice the duplicate,gh run rerunthe cancelled one, and re-gate: a round trip the gate could avoid.Current violation (observed 2026-08-22)
evanharmon1/harmon-init#1023 head
91452af: twoguardcheck runs —cancelledat 17:27:24 (cancelled by the concurrency group after a body edit) andsuccessat 17:27:27 (the push).readiness-gate.sh check … --codex-disabled→{"status":"fail","condition":"checks-failing","detail":"checks failing: guard"}. Re-running the cancelled run to success cleared it.Acceptance criteria
cancelledrun that has a later-started run of the same name concludingsuccesson the same head is treated as superseded (neither failing nor pending);failure, andcancelledwith no later passing run, still fail closed. Tests cover all three shapes.gh run rerun <id>of the cancelled run, then re-gate) so it does not cost a diagnosis.Verify
grep -n "cancelled\|superseded" ai/skills/universal/shepherd/assets/readiness-gate.shNo handling of the superseded shape means the gap is still open.
Provenance
Hit live while shepherding harmon-init#1023 on 2026-08-22.