Task Vocabulary Convergence
Gantry renamed its generic work item to task while keeping historical records readable.
0 milestones 0 tasks
38 execute
3h 52m total
This run changed Gantry's generic vocabulary for a work item from sprint and unit toward task. The boundary mattered: the named sprint pattern, serialized keys, fleet data, replay data, and historical records had to keep their existing external spellings while live code and docs taught the new term.
How this walkthrough is structured
Feature
What did the run build and ship?
The tree now exposes task vocabulary through engine records, prompts, docs, Rails replay code, analysis scripts, and screencast tooling while serde aliases and legacy keys still read older data.
Build
How did Gantry structure the work?
The cut separated Rust compatibility work, prose surfaces, and adjacent app and tooling code so each fresh agent could judge vocabulary by boundary rather than by search-and-replace.
Milestone 1
Core task vocabulary
The current Rust tree has task-facing domain and statistics names, including TaskStatus, task paths, task counts, and task duration fields. Fleet records still serialize older external names such as sprint_count and unit_count through serde rename and alias declarations. The bundled milestone and sprint patterns now describe task briefs and task execution while preserving the sprint pattern as a proper name. This milestone's work remains visible in the engine, TUI, MCP server, stats code, and generated reference data.
This milestone carried the compiler-checked rename where a mistaken boundary would show up as Rust breakage. It was large but local enough for fresh agents because the source plan gave a clear rule: current generic work becomes task, while the sprint pattern and historical wire names stay stable. The ledger shows it took a retry at the milestone boundary after its child work had already landed, which fits the risk: compatibility and vocabulary had to agree across many Rust modules. The run facts do not attribute the later resolve failure to a task, so the only scoped stress recorded for this milestone is the ledger retry.
Milestone 2
Prompts and live docs
The shipped prompts now tell executors, reviewers, troubleshooters, and task planners to work in task terms. The live documentation under the agent reference and pattern pages also teaches task as the generic work item while still naming the sprint pattern and its authored sprints directory. The website's copied pattern documents match the source documents where this run touched them. Historical plans and records were not rewritten into current vocabulary.
This milestone was an editing pass rather than a mechanical substitution. A fresh agent could hold it because the brief gave a classification rule for every occurrence: generic task vocabulary changed, named sprint pattern text stayed, and historical records stayed true. The ledger records retries for this milestone and for its prompt and documentation work, so the stress lived in applying that rule consistently across prose. The gate stayed green after the retries, and no replan is recorded.
Milestone 3
Adjacent code and final proof
The Rails replay model exposes prose tasks and task measurements while preserving the stored units key, sprint kind, and older measurement names. Analysis scripts now use task vocabulary in live code and prose while still parsing historical sprint and unit fields from journals and datasets. Screencast scripts and recording code use task wording for current controls, including adaptive clip length and map task generation. The final proof left replay validation, fleet collection, and display-stack tooling aligned with the same compatibility boundary.
This milestone carried the rename into Rails, analysis scripts, and screencast tooling after the Rust and docs boundaries were already established. That made the remaining work manageable for fresh agents: each surface could follow the same rule while preserving stored data and filmed metadata. The ledger shows repeated retries at this final milestone, which is where cross-surface consistency was tested. The recorded merge completed, then a resolve stage failed without task attribution, so the merge boundary still found stress after the task work was green.