Finish One World
Pattern World Cleanup
A run that moved built-in pattern behavior into declarations, compatibility checks, and authored coverage.
3 milestones 15 tasks 30 agents
6 plan 12 execute 16 review
240k peak context
122k median execute
3h 57m total 12m 45s per task
4m 2s plan 1h 41m execute 49m 1s review
162 edits 1.2k commands
codex harness
This run finished Gantry's one-world pattern cleanup. Its brief was not to add another driver, but to remove the places where shipped pattern names still carried behavior that user-authored patterns could not request through the pattern format.
The work landed as a milestone run over the pattern specification, the generic runtime, bundled patterns, docs, and production-world tests. The current tree still shows that shape: agent stages, standing loops, goal cycles, map plan sources, legacy pin handling, and authored fan-out coverage are expressed through declared pattern structure or documented engine authority instead of hidden runtime contracts.
How this walkthrough is structured
Feature
What did the run build and ship?
Gantry's pattern engine now exposes the former one-world exceptions as declared stages, channels, standing-loop pieces, goal-check authority, plan-source pins, and authored production-world tests.
Build
How did Gantry structure the work?
The cut moved from reader-facing declaration rules, through runtime contract deletion, to compatibility and coverage closure, with review-driven replanning only where the documentation boundary needed more work.
Milestone 1
Declared Dispatch Spec
5 tasks 12 agents 1h wall time 192k peak context
The current pattern reference still presents the format as the authority for changes, and agent steps now carry an optional display stage with role-derived defaults. Review verdict recovery is a channel-format behavior instead of a bundled channel spelling. The role vocabulary is closed in the pattern parser, while prompt ids no longer decide how work appears in journals or monitors.
This milestone carried the smallest name-dispatch cases before the runtime contracts were touched. It made the pattern spec reachable, then moved agent display stages and review verdict recovery into declarations a fresh worker could test in isolation. Every sprint stayed green in the run record, so the work reads as a sequence of narrow format changes rather than a troubled integration. Its boundary was the enforcement surface: temporary allowances could remain only when the docs recorded why they were permanent vocabulary rather than dispatch.
Pattern Reachability
2 agents 1m 58s wall time 35k peak context
The agent docs still direct readers from the core orientation material into the pattern documentation. The pattern spec itself says it is the authority for intentional format changes and treats mismatch with running code as something to reconcile. That standing text is the base that later pattern-language changes now lean on.
This sprint gave later workers a shared source of truth before they changed the format. Its scope was deliberately document-only: point the agent orientation path at the pattern material and state which document governs format changes. The gate and review passed cleanly, which fits a unit whose risk was ambiguity rather than runtime behavior. That made the following declaration sprints start from a named authority instead of scattered examples.
Declared Agent Stage
2 agents 21m 31s wall time 192k peak context
Agent steps now expose `stage` as a declared display field, and the parser defaults that field from the closed role vocabulary when it is omitted. Bundled patterns declare the non-default wording they still need. Current tests cover authored patterns receiving their own declared stage under their own prompt names, so this behavior is no longer reserved for shipped prompt ids.
This was the first production dispatch removal. The worker had to add an optional stage declaration, preserve existing bundled output, and keep the future-work-list behavior structural rather than prompt-owned. The sprint stayed green, suggesting the boundary around display classification and parser tests was small enough for a single fresh context. It left later role work with a concrete defaulting rule instead of a prompt-name table.
Role Vocabulary
2 agents 7m 30s wall time 88k peak context
The pattern language still accepts only the runtime roles used for harness selection and stage defaults. Invented role values are load errors, and the spec describes the role list as closed vocabulary. Later code still calls the same role parsing path before an agent request is dispatched.
This sprint consumed the stage defaulting contract and narrowed what role strings are allowed to mean. Its job was to separate closed parsing vocabulary from author identity, while keeping the detector strict. The run facts show the ordinary green path, with no repair or recovery attached to this unit. That is consistent with a small semantic audit backed by parser and interpreter tests.
Verdict Recovery
1 agents 15m 15s wall time 89k peak context
Review verdict recovery now lives on declared channel metadata in the pattern engine. Bundled review channels keep their malformed-verdict fallback, but authored channel names can receive the same treatment when they declare the format. Current shared interpreter and production tests still exercise non-bundled recovery paths.
This sprint removed the review recovery case that depended on a bundled channel name. The brief framed a precise replacement: channels declare that their prose uses review-verdict recovery format, and recovery follows that declaration. The run record has no red gate here, so the tricky part stayed inside the channel contract rather than spilling into later control flow. Production and interpreter coverage were part of done, which kept the recovery from becoming a doc-only claim.
Spec Enforcement Closure
2 agents 4m 36s wall time 75k peak context
The spec and manual still describe stages, roles, structural future-work-list replanning, and channel recovery as declared pattern behavior. The temporary dispatch debt is no longer presented as an open list of special names. The surviving rows are treated as closed vocabulary or documented engine behavior, not as user-authored identifiers that grant privileges.
This sprint closed the first milestone after the declaration changes landed. It was asked to make the spec, manual, and enforcement posture agree, including display stages, role defaults, future-work-list behavior, and declared verdict recovery. The sprint passed through the normal checks without repair. Its build boundary was editorial and enforcement alignment: no new hidden branch could be accepted unless the written rule explained it.
Milestone 2
Runtime Contract Removal
4 tasks 9 agents 1h 9m wall time 240k peak context
The standing-loop pattern now declares its loop agent, counters, done channel, validation gate, and endings directly in `ralph.toml`. Goal-cycle behavior is expressed through declared goal-check and sub-pattern steps, with the remaining runner documented as engine authority. The old runtime contract file is gone from the current pattern set, while the generic interpreter still carries the converted behavior.
This milestone carried the core cleanup: remove standing-loop and goal-cycle runtime contracts without replacing them under different names. Its first sprint triggered a replan, and the top-level review later recorded that the authoring manual still needed a closure pass. The gates stayed green, so the recorded stress was not failing tests but a boundary correction after review noticed documentation drift. That replan shaped the final milestone by adding a specific docs closure requirement.
Standing Loop Declarations
3 agents 28m 18s wall time 240k peak context 1 replan
Standing loops now have a visible declaration contract in the spec. The current `ralph` pattern marks the iteration agent, names the standing instruction and done channel, declares red-streak and empty-iteration counters, and routes endings through rule blocks. Resume relies on declared durable state rather than a hidden loop-specific runtime block.
This sprint established the declaration route for standing loops before deleting the old state. Its brief was broad but cohesive: one standing iteration agent, typed inputs, counters, conditions, channels, resume, and validation behavior. The run facts show a replan on this sprint, which marks the boundary where partial conversion needed a sharper follow-up. That let the next sprint focus on completion and deletion rather than rediscovering the whole contract.
Standing Loop Runtime Removal
1 agents 10m 16s wall time 59k peak context
The pattern language validates marked standing-loop iteration agents and rejects incomplete declarations. Current `ralph` startup reads the declared instruction, done channel, invariant test, effort hint, and validation step. The old `loop_run` contract no longer appears as active pattern syntax or as a bundled pattern file.
This sprint took the partial standing-loop declaration work over the deletion line. It had to bind the remaining loop inputs through declared names, move quiescence and done handling into general counters and channels, and remove the old production-world state. The run facts show the unit passing without a recovery stage. Because the prior sprint exposed the missing pieces, this worker could treat the task as completion of a known contract.
Goal Cycle Declarations
1 agents 19m 13s wall time 123k peak context
The spec still describes `goal-check` as a distinct deterministic step with declared input, output, optional test and cycle limit parameters, and cycle-plan composition. The engine persists goal-check output and verdict files and treats the runner as injected authority, not pattern-owned state. Goal-cycle sub-pattern execution now hangs off declared steps and durable files.
This sprint performed the equivalent conversion for goal cycles after standing-loop removal had proven the pattern. Its brief separated declared pattern state from the goal-check service that may remain in the engine. The unit stayed green, with no recorded repair, so the risk was contained in specializing the right engine authority and leaving prompt, test, ceiling, snapshot, and resume data in declared homes. That made the closure sprint mostly an audit of remaining state.
Goal Runtime Closure
1 agents 2m 23s wall time 30k peak context
The current tree has no active per-run goal-cycle contract state alongside the declared goal-check path. Documentation presents the goal-check runner as deterministic engine authority, and tests continue to exercise goal-cycle behavior through declared pattern structure. This unit's contribution is mostly the closure posture rather than a separable code surface.
This sprint was the final cleanup pass for the runtime-removal milestone. The ledger note says the work was already satisfied and the gate was green, so the worker recorded completion after rechecking the closure criteria. That makes this a thin but real unit: it existed to prove no remaining goal-cycle state or enforcement debt had survived the prior conversions. It also kept the milestone from ending on an implicit assumption.
Milestone 3
Compatibility Coverage
6 tasks 14 agents 2h wall time 177k peak context
Current Gantry pins generic pattern runs with a pattern-language compatibility marker, rejects older unstamped pins before parsing, and documents the operator recovery path. Shipped map variants declare their plan source consistently, and authored pattern tests exercise fan-out review and build-shape composition under non-bundled names. The docs now describe the declared standing-loop shape and final enforcement posture.
This milestone finished the run by proving the converted world at its compatibility edges and authored-pattern surfaces. It added the pin boundary first, then source parity, production-world acid tests, docs closure, and heavy-tier enforcement review. The ordinary gates stayed green, and the last sprint was recorded as already satisfied, so the milestone's main stress was coverage breadth rather than a broken implementation. It consumed the manual drift found by the previous review and closed the run with the debt posture checked.
Compatibility Boundary
2 agents 21m 3s wall time 129k peak context
Generic `pattern.toml` pins now carry a pattern-language compatibility marker. Resume checks that marker before reading the frozen pattern closure as current data, and older unstamped pins stop with an older-Gantry diagnostic while leaving artifacts inspectable. The current CLI and config docs describe that boundary.
This sprint protected older pinned runs after the runtime contracts were removed. The brief kept the work at the resume boundary: stamp current pins, check the marker before parsing frozen closures, and report older pins truthfully. The gate stayed green, which matters because the sprint touched failure timing rather than normal execution. It exposed a contract the later source-parity and docs sprints could reference.
Source Parity Mapping
2 agents 14m 42s wall time 90k peak context
The shipped `map`, `careful`, and `steady` patterns now declare their map-spec input as the plan source. Current pattern binding recovers plan text from that declaration before a run freezes its inputs. The spec records the identity implication so future pattern edits do not treat the change as invisible bookkeeping.
This sprint aligned shipped map-spec variants around declared plan-source handling. Its scope was small but compatibility-sensitive because changing the declared source can change run identity. The unit passed cleanly and documented the identity implication in engineering docs rather than release material. It gave the later authored coverage a consistent read-side surface to assert against.
Fanout Review Coverage
2 agents 21m 6s wall time 177k peak context
Production-world tests now distinguish generated-spec workers from review steps through an explicit declaration. Authored fan-out coverage verifies that review runs as part of each declared unit body without depending on shipped pattern names. The bundled map variants still carry the generated worker declaration where the worker prompt must come from the generated spec.
This sprint was coverage for a historical production-world gap rather than a new user command. It asked an authored fan-out pattern to run a per-unit body with review under its own names, away from shipped prompt ids and channel spellings. The run facts show a clean gate and review, so the acid test did not uncover another production dispatch branch. Its boundary was proving fan-out review behavior where interpreter-only tests had not been enough.
Build Shape Coverage
2 agents 20m 21s wall time 172k peak context
The current pattern test suite includes an authored build-shape scenario that uses custom names for prompts, blocks, channels, roster material, and display labels. It still verifies real plan-source handling, about-card data, completion rows, declared review recovery, and future-work replanning. That test is the observable proof that authored patterns are not second-class for the default build shape.
This sprint composed the strongest authored-pattern acid test. Instead of checking isolated features, it had to run a custom pattern through plan source recovery, roster titles, per-entry completion, review recovery, and replanning under its own names. The clean run record suggests the prior declaration work had already removed the blocking special cases. The sprint's value is the end-to-end boundary: a fresh worker could hold one fixture while the fixture exercised the whole shape.
Docs Closure
2 agents 16m 16s wall time 122k peak context
The pattern manual now teaches standing-loop iteration agents, counters, quiescence, done-channel termination, validation gates, and resume as ordinary declarations. The spec describes the same standing-loop contract and the generic pin compatibility check. Current driver docs also reflect that modern pins carry compatibility data and that legacy generic pins stop early.
This sprint consumed the documentation drift found after runtime removal. Its brief was a focused reconciliation pass over the manual, spec, compatibility marker, plan-source parity, and enforcement posture. It stayed green, which fits a unit whose risk was stale guidance rather than runtime failure. The placement after executing coverage meant the docs described behavior already exercised by the engine.
Enforcement Closure
1 agents 10m 48s wall time 18k peak context
The current tree carries the final enforcement posture in docs, pattern declarations, and tests rather than in a separate feature file from this sprint. Temporary dispatch and runtime-state allowances are gone or reclassified as documented permanent compatibility and closed-vocabulary rows. The heavy finding was reduced to the recorded closure state instead of being left as unexplained drift.
This final sprint checked the heavy-tier finding and the remaining enforcement posture after the behavioral and documentation work had landed. The ledger records it as already satisfied with a green gate, so it is intentionally a closure unit. It did not need a new repair loop; it needed evidence that temporary production-world debt had not survived the earlier sprints. That made the run finish with a checked boundary instead of an open heavy-test note.