Relationships
#2782 gatorwalk-factory skill: stop on repeated automatic rework, and lay out every exit neutrally at human stops
Opened by skunk-ape · 9/30/2026· Shipped 9/30/2026
In the 2026-09-29 trial (work item cue-er7koww5), two things went wrong around loops and human stops.
No churn stop. Plan review looped through automatic rework on one high finding per round. Under rule 5 the agent had to keep taking rework until the cycle limit. It stopped in round 4 only because Seth broke in with "Seems like we're churning. Is the advice contradictory?". The first point where the skill makes the agent stop in a loop is a refusal, and that is also where the options look narrowest.
A human gate framed as a forced choice. After round 5 the agent wrote: "The plan stage has now been entered 5 times, which is its limit. Going back to planning again would need you to grant an override, so approving with these four folded into implementation is the practical way forward. Approve … Or decline it?" The facts were right. Declining, then a cycle override and revise, was a real option costing one override and one round. So was abandon. But the agent presented a cost as a barrier, and a gate presented with only one reasonable answer is no longer a gate.
Cause
references/driving.md:328-336frames a stop as binary: "Approve the plan and move to implement, or decline and send it back with revise?". It never says to list every open exit, or that a limit which has been reached still leaves the override andabandonopen. The refusal table covers a limit only once something has been refused.- Rule 5 (propulsion) has no counter for repeated automatic loops.
- The driving agent's harness prompt says "give a recommendation, not an exhaustive survey", and nothing in the skill overrides that at a human gate.
Fix (skill only: SKILL.md rules and references/driving.md)
- Churn rule. When a review stage's automatic loop exit (such as
rework) would be taken for the second time in a row, stop and ask, even though rule 5 would advance. Show each round's blocking finding in one line. Ask whether to loop again, revise with the person's direction, approve past it, or abandon. Decision for the implementer: keep the threshold at two, or make it relative to the stage'smaxCycles. Define "in a row" by the recorded journal, not by the agent's memory. - Neutral options at every human stop. List every exit that is open or can be opened, including override routes (with the
grant_overridethey need) andabandon, each with its cost: an override, another round, lost work. Never say that a limit forces a choice. A recommendation may follow, labelled as the agent's own, after the options. The skill says explicitly that this holds even when the agent's general instructions prefer a single recommendation. - Warn before a limit, not only at one. When
statusshows a stage one entry below its cycle limit, the next stop says so, so the person can steer before the options narrow.
Done when
- The skill contains the churn rule, the neutral-options rule and the near-limit warning. The worked example shows a human stop listing every exit, one of them an override route.
integration/skill_test.tsstill passes, and every command in the new text names a real method with accepted inputs.- A scripted replay of the trial's loop, with three automatic reworks recorded, shows that the skill's rule stops at the second one. The driving reference's worked example can carry this.
Related: the review-calibration issue filed alongside this one; #2703 (a work item parked by its dispatch cap is not projected).
Shipped
Click a lifecycle step above to view its details.
Sign in to post a ripple.