Feed Cards That Match the Run's Real Shape
A run classified for milestones but built as one flat sprint no longer announces a structure it never builds.
0 milestones 1 sprints
15m 22s total 9m 8s per sprint
5.3M tokens in 29.7k tokens out
$5.91 nominal cost
Gantry streams card events while a run is still deciding how the work will be shaped. This job addressed a case where the classifier could route a plan through the milestone driver, the planner could author only one brief, and the run would collapse into the ordinary flat sprint path after the first cards had already been written.
The change was display-only. It made the early cards describe planning without naming a milestone structure before that structure exists, and it kept explicit milestone language for runs that actually proceed as multi-milestone builds.
How this walkthrough is structured
Feature
What did the run build and ship?
The current tree still keeps pre-decision build cards neutral and reserves explicit milestone wording for committed multi-milestone routes.
Build
How did Gantry structure the work?
The run was a single constrained wording sprint, so the cut put all risk in preserving routing behavior while changing only feed text.
Neutral Card Wording
0 agents 9m 8s wall time 21.5k tokens out $4.06 nominal cost
The live milestone driver still has named card strings for the pre-count decomposition step, with comments documenting why they avoid both milestone wording and the directory path that exists on disk. The collapse route still reports a single coherent build, while the multi-milestone route keeps the explicit milestone card. Tests in the milestone driver still pin those display rules, though the earlier triage-card helper from this sprint has since been absorbed by later build-engine work and can no longer be isolated in today's tree.
This sprint carried the whole job because the work was one invariant applied to a few display surfaces: cards emitted before the final build shape is known must read truthfully either way. The brief made the boundary tight for a fresh agent by naming what could change and what had to stay fixed: visible card text could move, but routing, parsed triage output, collapse dispatch, the on-disk layout, and existing route summaries could not. The run facts show no repair, retry, or re-plan, which fits a slice whose difficulty was constraint discipline rather than sequencing across multiple agents.