Run suite and survivor gates in the Runner without an agent dispatch #1688
Labels
No labels
P0
P1
P2
P3
bug
category/code-change
category/cross-repo
category/eval-run
category/investigation
category/no-test-target
category/owner-ruling
category/prose-artifact
category/recurring-chore
category/structure
category/umbrella
crc-refactor
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
rule-proposal
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#1688
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The os-sdlc maps run the suite gate and the survivor gate through an agent that only runs one command.
Each such node costs one agent dispatch and one orchestrator turn, although the agent makes no judgment.
The session found this on tickets #1675 to #1677 and recommended that the Runner run these two gates itself.
Observed
The nodes
suite-checkandsurvivor-checkinplugins/os-sdlc/maps/poodr-ticket-implementation.yaml:167-193both useagent: suite-check.Their
instructions:read: "Runos-sdlc-gate DISPATCH_IDexactly once and stop. Do not edit files. Do not diagnose failures. The gate verdict routes the run."Their verdict comes from the gate (
verdict: source: gate,gates: [required-work, suite]andgates: [survivors]).The agent file
plugins/os-sdlc/agents/suite-check.mdrunsos-sdlc-gate <dispatch_id>one time, composes a handoff, and submits it; it states "The gate verdict routes the run to the next node -- that is not your decision."The map
plugins/os-sdlc/maps/poodr-guard-implementation.yaml:68,101also uses this agent.The session measured, for ticket #1677 (transcript, assistant reply on 2026-11-10 near 16:01 EST): "
suite-checkandsurvivor-check, 7 dispatches so far | 20 to 30 s each, plus one of my turns each | An agent runs one command and relays the result."The session also wrote: "Each change to the code costs two of these dispatches and two of my turns."
The transcript does not show a gate node that stalled or one that gave the orchestrator no instruction. It shows only the cost above.
Reproduce
n/a: this is a design gap, not a failure. Run
/os-sdlc:implementon any ticket that reachessuite-check; readelapsed_sof thesuite-checkandsurvivor-checkdispatches in theimplementation-reportoutput.Approach
Decide whether the Runner runs a gate-only node itself.
Both nodes name an
agent:; I did not check whether the map schema allows a node with none.A node without an agent needs a Runner step that runs the gates, records the verdict, and spends the node's
pass,fail,error, orescalateedge with no dispatch.The decision changes the map schema and
Implementation::Transition; it needs a ruling and probably an ADR (/os-adr:findfirst).Orchestrator work:
/os-adr:findon the map schema; an ADR if the schema change is a one-way door.Rejected: switch
suite-checkto a different model tier — the dispatch and the orchestrator turn remain, and the agent already uses haiku (agents/suite-check.mdfrontmatter).Origin
agent:(maps/poodr-ticket-implementation.yaml:168,183) ← no node in these maps is run by the Runner itself (not checked against the map schema)VERDICT: CREATE
REASON: Each gate-only node costs 20 to 30 s and an orchestrator turn; no open ticket covers the mechanism.