Loop Driver Transition
Goal Loop Command Surface
Moving goal campaigns onto `--loop` while giving Ralph its own explicit command.
0 milestones 3 tasks 8 agents
2 plan 3 execute 3 review
156k peak context
117k median execute
45m 10s total 8m 34s per task
2m 38s plan 25m 32s execute 4m 30s review
43 edits 196 commands
codex harness
This run changed a naming contract that sat across startup parsing, durable run identity, resume behavior, tests, documentation, and the website. The risky part was not replacing words; it was making the old persisted loop label continue to mean Ralph while the live `--loop` flag became the public spelling for goal campaigns.
The cut kept that transition small enough for fresh agents by establishing the routing and persistence contract first, then adding startup guards for mixed prompt front matter, then updating the material operators read. The current tree has moved much of the engine surface into generic pattern infrastructure, but the shipped command table, pattern binding tests, driver contract, and site copy still carry the result.
How this walkthrough is structured
Feature
What did the run build and ship?
Gantry now presents `--loop` as the goal campaign command, keeps `--goal` as its alias, and gives the standing Ralph loop the explicit `--ralph` spelling.
Build
How did Gantry structure the work?
The run stayed green by treating the rename as a sequence of contracts: routing and persistence first, misroute checks next, and public language last.
Driver Routing
2 agents 17m 38s wall time 156k peak context
The current command specification binds `--loop` and `--goal` to the goal pattern and refuses the retired `--ralph` shortcut. The driver contract documents durable shapes as pattern pins rather than a closed job registry. Some original files named in the commit have been refactored away, but the public selector behavior and compatibility model remain visible in the current tree.
This sprint carried the core compatibility contract. It had to separate command spelling from persisted run kind so a fresh goal campaign could be started through either `--loop` or `--goal`, while older loop pins still resumed as Ralph. That boundary was narrow enough for a single agent because it was all startup and read-side routing, not driver behavior. The gate and review stayed green, so later sprints could rely on the contract without reopening the rename.
Front Matter Guards
2 agents 6m 18s wall time 87k peak context
Ralph startup still rejects goal-campaign-only front matter and points the operator toward `--loop`. The current tests pin that diagnostic, including the goal-campaign language and the offending key. The mirror guard for goal campaigns has been absorbed into the newer pattern reader shape, so its original implementation is not isolated under the old file names, but the active startup surface still treats the two driver families as separate pattern invocations.
This sprint added the startup guard that made the rename safe for real prompt files. The brief scoped it to parse-time refusal when shared `goal:` and `test:` front matter made a file look superficially valid under the wrong driver. It consumed the routing contract from the prior sprint and did not need to change snapshot, baseline, iteration, or sentinel behavior. The sprint passed cleanly, which left the docs sprint with stable error-direction language to describe.
Docs and Copy
2 agents 8m 34s wall time 117k peak context
The README command table, generated CLI help data, driver reference, agent prompt reference, and web content reference all present the current surface. They lead with `gantry --loop goal.md`, keep `gantry --goal goal.md` as the permanent alias, and no longer advertise the retired Ralph shortcut. Some plan documents touched by the sprint have since moved into archival or successor locations, but the active operator-facing story still matches the current commands.
This sprint was the propagation pass after behavior and safety were in place. Its brief gave the agent current user-facing surfaces only: docs, prompts, help text, command tables, and website assertions. That made it safe to preserve historical records while removing active copy that still taught the old mapping. The run recorded no repair, so the copy change landed as a bounded follow-through rather than a discovery exercise.