skip to content
Replays

First-Class Patterns

Patterns Become Drivers

A migration from fixed Rust drivers to typed pattern data, frozen inputs, and declared run shape.

Gantry milestones

8 milestones 57 tasks 114 agents

19 plan 85 execute 69 review

246k peak context

171k median execute

A migration from fixed Rust drivers to typed pattern data, frozen inputs, and declared run shape.

17h 31m total 12m 24s per task

1m 4s plan 11h 39m execute 2h 18m review

1.1k edits 5.7k commands

codex harness

This run moved Gantry toward treating orchestration patterns as the primary driver contract rather than as decoration around fixed Rust modes. Its own build was wide enough to become a nested campaign: remove old compatibility paths, introduce typed selection and frozen state, migrate build, map, goal, loop, and design onto shared pattern machinery, then close the release boundary.

The artifacts still visible in the tree show both sides of that migration. Pattern definitions now live as data, the language validates parameters, prompts, channels, and display levels, the run projection reads declared shape from durable state, and design returns as bundled pattern data instead of a privileged mode.

How this walkthrough is structured

Feature

What did the run build and ship?

Gantry now carries a pattern language, bundled pattern data, frozen generic invocation state, shape-derived display, declared channels, and data-only design flows in the current tree.

Build

How did Gantry structure the work?

The cut repeatedly cleared compatibility leftovers before letting later workers depend on generic pattern state, and the stress showed up where old driver assumptions had not fully disappeared.

Milestone 1

Legacy Driver Cleanup

7 tasks 17 agents 3h 27m wall time 245k peak context

Several of the deleted surfaces are still gone from the tree: the old sprint and design driver files are absent, retired prompt aliases are not shipped, and runtime timeout knobs no longer form the active budget model. Modern continuation and screencast reconstruction survived through newer context and journal paths rather than through the removed compatibility layer.

This opening milestone was asked to make the migration possible by deleting old driver assumptions without starting the generic replacement. The nested sprints were mostly removal-sized and stayed green, while the milestone review found leftover flat-driver references in the heavy gate and forced the next cut to clean that boundary before selector work could stand on it.

Orphan Surface Retire

2 agents 28m 4s wall time 151k peak context

The current command and pattern surfaces no longer advertise those retired aliases as live options. Pattern validation is centered on the surviving vocabulary, and compatibility text that once kept obsolete names visible has been pruned from docs and tests.

This sprint took the safest deletion work first: retired selector spellings, stale prompt override aliases, decorative condition language, and dead compatibility helpers. It was small enough for one worker because each removal had a loud failure or a surviving current spelling to prove.

Continuation Contract Guard

2 agents 11m 36s wall time 135k peak context

Cold and resumed modern runs still have continuation facts without depending on the deleted flat sprint driver. Screencast metadata reads from pattern-journal information and current run context rather than from retired driver-specific projection state.

This unit moved the pieces modern drivers still needed before the old home was deleted. The boundary was contract work, not removal: preserve replan, already-built checks, and screencast metadata through the modern context and journal path.

Flat Path Removal

2 agents 1h 4m wall time 242k peak context

The flat sprint driver and its focused tests are absent in the live tree. Modern run projection now expects durable pattern or journal state, and ancient pinless layouts are treated as outside the supported resume surface rather than inferred into a driver.

This was the broadest early deletion: remove flat sprint resume, pinless layout inference, and pattern-journal-less projection fallback. Because the previous sprint had isolated the live continuation contract, this worker could delete old read paths without also inventing their replacement.

Design Driver Removal

2 agents 43m 8s wall time 243k peak context

The old design driver module is no longer present, and design-only prompt assets from that regime are gone. The current tree later reintroduces design through ordinary pattern files and prompt ids, so the removed Rust-owned mode did not come back under another name.

This sprint removed design and redesign as privileged entry points for the intermediate migration state. The brief kept generic prompt and baseline primitives out of scope for deletion, which kept the worker from erasing machinery later pattern data would need.

Shared Hook Trimming

2 agents 6m 31s wall time 119k peak context

Shared runtime code no longer carries design as a special namespace or mode switch. The relaxed-baseline behavior now lives as declared pattern data, which is why bundled design can use it without restoring a design-specific engine branch.

After the design entry point disappeared, this unit cleaned the design branches that had leaked into shared execution. Its build boundary was the shared task-set contract: strip design-only namespace and mode clauses while keeping prompt, confirm, ledger, and child-pattern primitives alive.

Force Rebuild Deletion

2 agents 10m 49s wall time 144k peak context

Map specs no longer use force rebuild as a separate completion regime. The current map pattern and driver lean on ordinary artifact and ledger state, while refilm behavior is documented through the later screencast flow instead of a retired map input.

This unit removed map force rebuild before completion semantics were converted. The brief made the temporary refilm gap explicit, so the worker's task was deletion plus documentation rather than replacing one parallel done tracker with another.

Runtime Guard Removal

2 agents 33m 53s wall time 245k peak context

Runtime configuration now treats effort as the per-unit budget signal, with retry and operator abort documented as separate surviving mechanisms. The old elapsed-time and silence reapers are not part of the current execution contract.

This final cleanup sprint removed automatic wall-clock and no-output guards while preserving effort, aborts, retries, harness selection, and sandboxing. The slice was narrow because it touched budget semantics without changing how stages themselves are chosen.

Milestone 2

Generic Selector Inputs

6 tasks 18 agents 2h 11m wall time 244k peak context

Generic pattern selection and frozen invocation state are now real concepts in the run code. The current pattern language exposes typed parameters, generic pins persist selected pattern identity and inputs, and old driver-payload state is treated as a boundary rather than silently upgraded.

This milestone began the constructive side of the migration: typed inputs, a generic selector, frozen assets, generic pins, and explicit old-pin rejection. Its review found that the first pass still behaved too much like built-in header-name compatibility, so the remaining plan had to pull generic production execution forward and repair the parameter vocabulary.

Flat Contract Cleanup

1 agents 3m 53s wall time 56k peak context

The heavy test surface no longer relies on recreating flat sprint resume. Review edit verification is covered through the modern build path, and the old flat-driver tests are absent rather than maintained as compatibility fixtures.

This sprint cleared test and gate-contract fallout from the retired flat sprint driver. It was a preparatory slice: move any still-important review re-gating behavior onto the surviving interpreted path and stop letting deleted coverage define the heavy gate.

Typed Pattern Parameters

3 agents 8m 14s wall time 122k peak context

Pattern headers now declare parameters with kinds, defaults, descriptions, and plan-source metadata. The loader rejects unsupported parameter shapes, and bundled pattern files use the same typed vocabulary as user-authored patterns.

This worker established the typed parameter contract the selector would bind later. The brief kept the vocabulary closed and asked only for declarations, defaults, descriptions, and validation, which gave the next worker a typed model instead of raw strings.

Generic Selector Path

1 agents 15m 51s wall time 86k peak context

Current selection routes converge on generic pattern identity. Fixed flags such as map, goal, loop, and ralph act as sugar over pattern selection, while direct pattern names and path-selected files use the same binding rules.

This sprint connected pattern names, pattern files, and surviving sugar flags to one bound invocation shape. The run record shows a clean pass, which fits a boundary focused on selection and validation before frozen execution took over.

Frozen Pattern Assets

2 agents 9m 45s wall time 208k peak context

The current run state uses frozen pattern assets and bound inputs as the durable source of execution. A resumed generic run reads the frozen closure rather than rediscovering changed project, global, bundled, or path-selected pattern text.

This unit made a run's source material stable at start time. Its contract was to freeze the reachable pattern closure and bound file or directory inputs, so later execution and resume would stop observing edits in the operator's live source tree.

Generic Run Pin

6 agents 56m 5s wall time 244k peak context 1 replan

Generic pins now preserve selected pattern identity, typed bound inputs, and frozen closure references. The current pattern run code reconstructs selection from that pin, and identity changes when the frozen material or bound values change.

This sprint replaced driver-shaped pin data with one generic pattern pin and folded frozen content into identity. Review triggered a replan here, which matches the risk named by the brief: resume, nested build invocation, and default build identity all had to stop taking lazy source reads.

Repin Legacy Runs

2 agents 28m 57s wall time 99k peak context

Old payload pins are rejected rather than upgraded by hidden shims. Generic runs can still be refreshed through an intentional repin operation, making the semantic change visible instead of silently changing what a resume means.

This closeout made the compatibility boundary explicit. Instead of accepting old driver payloads as resume inputs, the worker added loud rejection plus a deliberate repin path for generic-pinned runs that intentionally refreshes frozen state.

Milestone 3

Declared Pattern Capabilities

20 tasks 52 agents 7h 42m wall time 246k peak context

Much of the standing pattern architecture comes from this pass. The tree has the typed language model, pattern interpreter, shared production world, generic run modules, declared capabilities, prompt ids, bundled patterns, and shape-derived projection surfaces that later work refined.

This milestone was the largest migration pass, moving execution, completion, capabilities, prompts, shared worlds, and display reads toward pattern declarations. It hit real friction: review forced replans, the gate caught legacy resume status, and a later retry had to remove binding compatibility before design could come back as data.

Retire Compatibility Surface

2 agents 13m 43s wall time 86k peak context 1 replan

The old compatibility helpers named by this pass are not the active route in today's tree. Current run modules favor generic pattern state and projection instead of keeping closed driver binding as the normal path.

This sprint removed dead compatibility code left from the generic-driver transition. Review immediately replanned later work, showing that the cleanup boundary was not just deletion; it changed what the rest of the milestone was allowed to assume.

Remove Timeout Guards

2 agents 6m 42s wall time 111k peak context

The runtime docs and domain model keep retry and abort separate from elapsed-time supervision. Pattern execution does not expose wall-clock or silence guards as authorable language features.

This unit repeated the runtime-guard removal inside the larger migration plan so later pattern execution would not inherit retired budget controls. It stayed green, leaving effort and explicit stop handling as the budget vocabulary for the shared world.

Delete Legacy Resume

3 agents 17m 38s wall time 186k peak context

The current projection and stats code now read declared run shape instead of deriving status from the removed flat layout. Some historical status vocabulary remains for old journals, but current pattern completion is represented through declared dispositions and ledger-backed task state.

This was where the gate found a remaining legacy terminal status and sent the sprint back. The brief had asked for flat sprint resumes and pinless projection to disappear, but the failed gate showed skipped-as-found state still flowing through domain, history, projection, and ledger handling.

Remove Design Mode

2 agents 10m 40s wall time 181k peak context

Design is absent as a privileged driver module and present as bundled pattern data. The live CLI and pattern registry route design semantics through generic selection rather than a design-specific resume path.

This sprint eliminated design and redesign as Rust-owned modes for the larger pattern migration. Its clean run gave later workers a cleared surface: if design returned, it had to return through pattern selection and data.

Delete Force Rebuild

3 agents 8m 31s wall time 144k peak context 1 replan

The current map pattern uses declared fan-out and artifact checks instead of a force-rebuild branch. The old rebuild key is outside the shipped spec path, and completion is interpreted through the common run model.

This unit removed map force rebuild in the pattern-runtime context and review adjusted the remaining plan afterward. The useful boundary was keeping map completion from depending on a second journal regime before uniform ledger completion landed.

Typed Pattern Binding

1 agents 13m 28s wall time 100k peak context

Pattern invocation now binds declared inputs through one typed model. User-authored pattern names, bundled sugar, and path-selected patterns all feed the same selected invocation structure.

This sprint made pattern selection the central binding path and consumed the typed parameter vocabulary. It stayed green, letting later frozen-state work assume that file, directory, and string bindings were already checked before execution.

Freeze Invocation State

2 agents 21m 20s wall time 238k peak context

Generic run state stores the selected pattern and frozen assets as the source of truth. Resume reads that stored invocation, which prevents live pattern edits from changing an already-started run.

This unit persisted the frozen invocation: pattern identity, closure, and bound inputs. It was sequenced after binding so it could focus on durable state rather than parsing the selector again.

Ledger Completion

2 agents 40m 24s wall time 245k peak context

Completion now flows through the common ledger and pattern disposition model. Modern runs record task progress in durable journals and ledgers that projection, stats, and display consumers can read consistently.

This sprint folded completion into one ledger policy across patterns. The clean boundary was done-ness, not display: a worker could unify terminal recording before later projection work decided how to show it.

Declared Capabilities

2 agents 28m 47s wall time 244k peak context

Run capabilities are now projected from pattern data rather than from a fixed driver enum. Current display, stats, and merge-related consumers can ask the run view what the pattern supports.

This worker gave patterns a way to declare what a run can do before consumers asked driver-specific questions. It stayed inside the model boundary, deriving capability facts from pattern shape and declarations.

Open Prompts

2 agents 25m 56s wall time 242k peak context

Pattern-authored prompts now resolve by string id through project, global, and bundled prompt tiers. Bundled design prompt files live under ordinary prompt paths, and missing prompt ids are validated before work begins.

This sprint opened prompt ids without opening the parameter vocabulary. It let patterns name string prompt ids through the existing tiers while keeping engine-selected prompts internal where the engine still chooses them.

Shared Production World

2 agents 20m 42s wall time 235k peak context

The live pattern interpreter and run modules operate through shared world services. Pattern steps can dispatch agents, gates, scripts, git operations, products, and journals without each driver owning a bespoke production wrapper.

This unit introduced a shared production world over deterministic services. Its job was to give later built-ins one target contract, so every following migration did not need to carry its own filesystem, git, gate, and prompt plumbing.

Ralph On Shared World

5 agents 38m 34s wall time 235k peak context

Ralph is represented as bundled pattern data and no longer depends on its old dedicated pattern module. Its standing-loop behavior now travels through the shared interpreter and prompt machinery.

This sprint moved ralph onto the shared world and proved it end to end. The record includes investigation but no repair, which points to integration verification rather than a redesign of the shared contract.

Build On Shared World

5 agents 46m 8s wall time 246k peak context 1 replan

The bundled build pattern is current data, with levels for milestones and sprints, a milestone review channel, and a sub-pattern call into the shared milestone unit. The default run path now matches that declared structure.

This unit moved the default build campaign onto the same world contract. Review replanned later work afterward, which is expected at this boundary because build is the parent pattern other workflows call into.

Map On Shared World

1 agents 21m 21s wall time 112k peak context

Map is shipped as pattern data with declared plan-source input, generated spec products, fan-out, side-loop checkpointing, and execute and review prompts. The current tree also carries careful and steady variants as copied pattern data.

This sprint migrated map fan-out onto the generic world with declared behavior. It was scoped to real map execution, so the worker could validate fan-out products and checkpoint behavior against the shared interpreter.

Goal On Shared World

2 agents 23m 1s wall time 237k peak context

Goal is now a bundled pattern with a declared goal source, cycle level, partial-merge channel, and build sub-pattern body. The old goal driver still provides compatibility integration points, but the pattern data is the standing contract.

This worker moved goal execution onto the shared world and removed the need for a bespoke executor. Its boundary was the cycle loop: freeze a check, build a composed plan, and read the partial-merge signal through common state.

Delete Bespoke Worlds

2 agents 39m 44s wall time 243k peak context

Bespoke production world modules for ralph and design are absent, and map and goal use the generic pattern infrastructure. Shared deterministic services are the common substrate for pattern execution.

Once the major built-ins had shared-world routes, this sprint removed the old world constructors. The worker had a deletion boundary that depended on prior migrations being complete enough not to strand a driver.

Delete Legacy Binding

5 agents 21m 13s wall time 132k peak context

Old driver binding is no longer the ordinary way to reconstruct a run. Generic selection and frozen pins provide the durable path, while old payload families are handled as a version boundary.

This unit rejected old resume pins and removed the closed driver binding registry. The record shows an investigation pass and extra review, matching a risky compatibility boundary where silent upgrade would have been worse than a loud stop.

Shape Derived Reads

2 agents 33m 5s wall time 236k peak context

The current run projection reads pattern journals into a task tree with declared levels, display roots, counts, fan-out, progress, and capabilities. Stats and front ends consume that run view instead of rebuilding shape from driver names.

This sprint shifted read-side projection, merge, and display checks toward declared shape and levels. It was deliberately downstream of capabilities and ledger completion, because display can only be honest after the durable model is settled.

Reintroduce Design Patterns

2 agents 11m 56s wall time 235k peak context

The live tree has bundled design and redesign pattern files plus prompt content under ordinary prompt ids. Additive design and clean-slate redesign are selected as patterns, with redesign guarded by a marker file rather than simulated mode state.

This unit brought design and redesign back after the special mode had been removed. The slice depended on generic prompts, typed inputs, and shared world execution, so design could return as data instead of as Rust branches.

Version Docs Closeout

2 agents 8m 32s wall time 141k peak context

Current docs describe patterns as a first-class driver surface and explain the removed compatibility paths. The README and agent references present map, loop, goal, ralph, and design in terms of pattern-driven execution.

This closeout applied version and documentation updates after the migration pass. It stayed green, indicating that the compatibility story could be recorded without reopening the implementation cuts.

Milestone 4

Shared Build Loop World

7 tasks 21 agents 1h 45m wall time 243k peak context

The current bundled build, milestone, sprint, and loop patterns show this shared-world architecture. Campaign data is declared, terminal state is uniform, and loop execution uses the same pattern machinery as the rest of the run family.

This milestone rebuilt build and loop behavior around shared-world gating, declared envelopes, and pattern capabilities. Its visible stress came when the build campaign envelope hit a red gate and needed investigation before the loop migration could finish cleanly.

Uniform Completion State

1 agents 13m 53s wall time 118k peak context

Pattern dispositions and ledger-backed task state now provide uniform completion signals. Projection and stats read terminal state from that shared model instead of hardcoding each old driver.

This sprint normalized terminal success and failure before capability or world work depended on it. The slice was intentionally semantic: every later pattern needed one way to say a unit was done or failed.

Pattern Run Capabilities

1 agents 2m 15s wall time 106k peak context

Run capabilities are present on the current run view. Consumers can learn whether partial merge and other run behaviors are declared by the pattern, without switching on a driver name.

This unit added the capability model for pattern runs. It was a clean model pass, and the run record shows no review stage for the leaf, which suggests the gate was enough to prove the narrow contract.

Production World Contract

2 agents 8m 34s wall time 148k peak context

The pattern interpreter runs against shared production services for files, git, gates, agents, products, and journals. That contract is the execution target for bundled patterns rather than a per-driver implementation detail.

This sprint defined the generic production world contract that later pattern steps target. It was kept separate from build campaign details so the worker could focus on the interface and deterministic services.

Shared Task Gates

3 agents 26m 8s wall time 243k peak context

The sprint pattern now expresses the implement, gate, repair, review, and completion flow as declared pattern data. Its inner-unit state channels are part of the shared language rather than a private Rust-only verdict set.

This unit moved the gated task set onto the shared world. A planning stage followed the green gate, which shows the sprint adjusted remaining work after proving the reusable unit boundary.

Declared Campaign Envelope

4 agents 18m 51s wall time 116k peak context

The build pattern now wraps campaign work in declared structure: a roster, a milestone sub-pattern body, review channels, and protected future-plan handling. Display and projection can read that envelope as pattern shape.

This was the milestone's difficult cut. The gate went red and the run investigated before review, placing the stress at the handoff between build campaign data and downstream consumers rather than at basic pattern parsing.

Campaign Presentation Closure

2 agents 9m 32s wall time 156k peak context

Current display surfaces read campaign levels and progress descriptors from run projection rather than deriving milestone vocabulary independently. Build presentation follows the declared envelope carried in pattern journals.

This sprint closed the presentation layer around the declared campaign envelope. It depended on the prior red-gate fix, so its own scope was to make the already-declared data visible and coherent.

Shared World Loop

5 agents 15m 6s wall time 107k peak context

Loop and goal-shaped execution now share the pattern world and declared channels. The current goal pattern composes a build body inside a loop, while loop-shaped runs no longer require a fully separate executor surface.

This unit moved loop execution directly onto the shared world. The record shows investigation and extra review but no red gate, which fits an integration boundary around a standing loop rather than a basic model failure.

Milestone 5

Shared Map And Goal

7 tasks 16 agents 1h 25m wall time 191k peak context

Map and goal now stand as reusable pattern data and shared run modules. The tree keeps map spec generation and validation, declared fan-out, goal checks, goal cycle state, and generic goal execution tied to the same projection model.

This milestone extended the shared world to map and goal, adding generated map specs, fan-out execution, reusable checks, and cycle state. One goal-check sprint hit an execute error and later goal-cycle work triggered planning, but the milestone mostly held because map and goal were split into pure products, dispatch, and shared validation.

Map Spec Products

1 agents 9m 58s wall time 54k peak context

The map pattern now declares generated spec products and validation steps. Current map runs can produce a map spec from prose or validate an existing one before expanding the worker roster.

This sprint defined the product map and spec artifacts for map execution. It was an input-output slice: write and validate the spec products before any fan-out worker scheduling depended on them.

Declared Fan-Out

2 agents 8m 41s wall time 178k peak context

The map pattern declares fan-out over a generated spec and a work body. Current projection and stats can recognize fan-out as run shape instead of treating interleaved work as ordinary flat progress.

This unit made fan-out execution predictable by expanding and dispatching declared work. It stayed green, suggesting the earlier spec-product boundary gave the worker a stable input shape.

Generic World Mapping

2 agents 9m 36s wall time 171k peak context

Map execution uses the shared pattern runtime while preserving its artifact, checkpoint, and worker behavior. The old map-specific route has been folded into the generic pattern infrastructure.

This sprint ran map logic against the generic world interface. The boundary was adapter removal: keep map semantics, but stop treating map as a special execution island.

Reusable Goal Checks

2 agents 21m 19s wall time 116k peak context

Goal checks are a reusable pattern step rather than only a bespoke goal-driver behavior. The current goal pattern freezes an acceptance input, runs checks, and composes cycle plans from check output.

This sprint extracted goal validation for reuse, and the execute stage had to recover before the gate passed. That places the difficulty inside the check abstraction itself, where multiple flows needed one verdict contract.

Goal Cycle State

3 agents 14m 16s wall time 191k peak context

Goal pattern data now includes cycle-level state, empty-cycle counting, partial-merge signaling, and a build sub-pattern body. Current goal runs can stop or continue from declared cycle conditions.

This unit tracked goal cycle state across repeated passes and transitions. A planning stage followed the gate, which made sense because cycle state affects how later goal execution should be cut.

Generic Goal Execution

2 agents 5m 31s wall time 143k peak context

Goal execution now participates in the shared pattern world. The current tree keeps goal driver integration for user-facing entry, while durable behavior is expressed through generic pattern data and channels.

This sprint moved goal logic onto the generic world abstraction. It consumed reusable checks and cycle state, so the worker could focus on execution flow rather than defining goal verdict semantics again.

Shared World Closeout

1 agents 8m 55s wall time 96k peak context

Shared world state is now the common closeout path for these pattern runs. The live code reads durable journals and ledgers consistently after map and goal complete.

This closeout cleaned shared world state and wrapped the pass. Its green run indicates the prior map and goal cuts had left no major open interface issue for the final worker.

Milestone 6

Shape-Derived Display

5 tasks 16 agents 56m 47s wall time 204k peak context

Shape-derived projection is a central standing feature. The current run view carries declared levels, display roots, progress, fan-out, and capabilities, while old pins are rejected at the compatibility boundary instead of being interpreted as current state.

This milestone moved display, projection, partial merge, and stale-pin rejection onto declared run shape. Review found that compatibility pattern invocations and built-in plan-source recovery were still alive, so the following channel milestone inherited a cleanup obligation.

Projection Contract

2 agents 7m 51s wall time 131k peak context

`RunView` is the live projection contract. It reads durable pattern journals, ledgers, and pins into a task tree with declared levels and capabilities for headless, TUI, status, MCP, and attach consumers.

This sprint defined the projection contract for turning pattern shape into downstream views. It was the right first unit because display and partial merge needed a common read model before they could stop asking driver-specific questions.

Run Shape Display

6 agents 21m 38s wall time 204k peak context 1 replan

Display surfaces now use the run projection's shape instead of hardcoded milestone or sprint counters. The stats model republishes declared nouns and counts so pattern-authored depth can reach the front end.

This was the milestone's most scrutinized display cut. The run investigated and replanned after review, showing that rendering from declared shape exposed assumptions still embedded in presentation code.

Shape Merge

2 agents 9m 41s wall time 123k peak context

Partial merge now consults shape and declared capabilities through the run model. Finished units can be identified by pattern task paths instead of only by legacy milestone or sprint assumptions.

This sprint derived partial merge behavior from the shape model. It was sequenced after display so the worker could reuse the same task tree rather than inventing another read-side structure.

Stale Pin Rejection

2 agents 7m 21s wall time 125k peak context

Old or stale pin state is treated as a compatibility boundary. Generic pins and frozen pattern data define resumable identity, while older payload assumptions are rejected or kept only for historical read needs.

This unit rejected updates against older pinned state. The sprint stayed green, but the milestone review still found broader compatibility synthesis in goal and loop, so stale-pin rejection was necessary but not sufficient.

Milestone 7

Open Prompt Channels

4 tasks 40 agents 23m 44s wall time 127k peak context

Patterns can now name prompts by string id and declare channels with allowed values. The current bundled sprint, build, goal, loop, and design data all use declared channels and prompt ids rather than a closed engine verdict vocabulary.

This milestone opened prompt ids and channel vocabularies after repairing leftover compatibility synthesis. Its production channel sprint fought back in both execute and gate, which is exactly where declared channel values had to become real runtime behavior.

Compatibility Boundary

1 agents 1m 43s wall time 84k peak context

Goal-shaped and loop-shaped runs now pin through generic pattern identity. Plan-source recovery is driven by declared pattern inputs, and old driver payloads are not silently converted into new generic state.

This sprint finished the goal and loop compatibility cleanup before opening prompts. Its boundary was resume and selector identity: sugar and generic selection had to meet at generic pins, with old payloads rejected clearly.

Declared Channel Language

2 agents 4m 48s wall time 102k peak context

The pattern language now has channel declarations and channel-value conditions. Bundled sprint state and top-level workflow decisions use named channel products with declared values rather than closed Rust-only enums.

This worker made verdict and state channels pattern-declared data. It was a language-model slice, so it validated declarations, references, bad values, degraded defaults, and compatibility spellings before production dispatch consumed them.

Production Channel Flow

33 agents 6m 27s wall time 127k peak context

Production pattern steps resolve prompt ids, write declared channel products, reject invalid values, clear stale producer-owned state, and branch from channel conditions. Build milestone review, loop completion, goal partial merge, and inner-unit verdicts now share that mechanism.

This sprint wired declared prompts and channels into production execution, and it hit both execute and gate trouble before passing. The stress sat at the exact boundary where a validated language feature became persisted products, stale-value cleanup, and workflow branching.

Milestone 8

Pattern Design Release

4 tasks 9 agents 30m 47s wall time 181k peak context

The shipped tree contains design and redesign pattern files, design prompt directories, selector and resume boundary checks, and release documentation for the compatibility break. Design is again user-facing, but only as bundled pattern data.

This final milestone closed the selector boundary, reintroduced design and redesign as data, and recorded the release change. It stayed comparatively clean because the earlier milestones had already supplied generic pins, prompt ids, channels, shared world execution, and shape projection.

Selector Boundary

2 agents 12m 52s wall time 181k peak context

Surviving sugar flags and direct pattern selection now converge on frozen generic invocation identity. Old pin families fail at the boundary, while declared inputs recover plan-like sources without a special parameter kind.

This sprint closed the remaining selector and resume cutoff. Its job was to make every surviving shape enter through generic selection and to reject retired driver-shaped state without attempting an upgrade.

Pattern Data Redesign

2 agents 5m 6s wall time 125k peak context

`config/patterns/design.toml` and `config/patterns/redesign.toml` are present as bundled data. They run shared milestone passes, resolve design prompt ids through ordinary tiers, and guard redesign preparation with a real marker file.

This unit rebuilt design and redesign as ordinary bundled patterns. It consumed the generic selector, prompt, channel, and shared-world contracts, so the worker could express the workflow in data and prompt prose.

Release Hardening

1 agents 1m 15s wall time 75k peak context

Release notes and docs describe the compatibility removals and the new generic-pattern behavior. Regression coverage protects authored pattern selection, structural map-shaped variants, and data-only design and redesign.

This closeout bumped the release story and exercised the acid tests named by the plan. The run record shows a green finish, so the final worker was able to verify the user-facing boundary without another repair loop.