Stripping Internal Tooling from Shipped Builds
Default-on build features keep developer builds whole while paid and demo distributions ship without the internal tooling.
0 milestones 4 sprints 11 agents
2 plan 5 execute 4 review 1 fix
220k peak context
154k median execute
8h 29m total 23m 10s per sprint
2m 41s plan 47m 51s execute 13m 12s review
67 edits 349 commands
codex harness
Gantry's local binary carries internal authoring surfaces: replay and screencast production commands, narration and overlay tooling, and development harness entrypoints. This job separated that surface from what paid and demo distributions compile, while keeping ordinary developer and continuous-integration builds fully featured.
The run was cut from the smallest feature boundary outward. It first proved that development-only flags and demo licensing could be separated, then moved the larger screencast toolkit, then made stripped builds part of the root test gate, and finally wired the release and documentation story to the same contract.
How this walkthrough is structured
Feature
What did the run build and ship?
Gantry now has default-on internal features, stripped paid and demo build paths, focused boundary tests, and release documentation that names what distributed binaries omit.
Build
How did Gantry structure the work?
The run put the feature taxonomy before the larger product-surface cut, and the only red boundary was the opening devtools split that later sprints depended on.
Devtools Boundary
6 agents 22m 9s wall time 126k peak context 1 fix
The feature list still keeps internal development helpers enabled by default and keeps demo licensing as a separate optional feature. In the current tree, devtools-gated help and entrypoints are tested alongside stripped paid and demo configurations, with the demo build retaining licensing without restoring the development flags. The public key fixture and demo unlock tests from this work remain present, although the surrounding release and README text has changed since the original commits. The visible result is a paid binary path that can omit development harness affordances without losing the ordinary customer commands.
This sprint had to establish the feature vocabulary before any larger command surface could depend on it. Its scope was narrow enough for a fresh agent because it dealt with development-only flags, the mock demo engine, and the separate demo licensing axis rather than the whole replay system. That boundary was where the run came under stress: the gate rejected the work more than once, a fix did not finish it, and the piece was carried again before it passed. The later green sprints leaned on this proof that stripped invocations could fall through normal argument handling instead of needing special availability code.
Screencast Boundary
2 agents 24m 11s wall time 220k peak context
The screencast feature remains a default-on boundary in Cargo configuration and is used throughout the command and engine layers. Current command parsing still compiles replay and screencast verbs only when that feature is enabled, while regular build and run-management verbs stay outside the gate. The stripped integration tests still assert that omitted screencast words and replay-only options fall through the normal plan or argument path. The runbook for screencast production also now states that the pipeline applies only to binaries built with the screencast feature enabled.
With the development-helper axis already proven, this sprint could take the larger surface: replay, screencast production, narration, overlays, timing profiles, menu-tour authoring, and journal backfill. The brief kept the boundary concrete by requiring disabled builds to compile without the modules, omit the verbs from help, and treat stripped verb words as ordinary inputs. Despite being the broadest code cut, it stayed green, which shows the earlier feature taxonomy gave this agent a stable rule to apply across command parsing and dispatch. The sprint did not have to redesign map, goal, loop, MCP, or normal run management, because those were explicitly outside the omitted surface.
Shipped Build Matrix
2 agents 8m 24s wall time 96k peak context
The root test script still runs the full default tier and then checks stripped paid and demo configurations with warnings treated as errors. Those stripped tiers do not run the whole behavioral suite; they compile the reduced workspace and run focused boundary filters. Integration coverage still verifies that the gate calls the paid and demo stripped tiers and does not accidentally restore a full-feature test run under disabled defaults. Later display-gate work expanded nearby assertions, but this job's matrix shape is still visible in the test runner.
After both feature boundaries existed, this sprint moved the contract into the project gate. Its job was mechanical but important: keep the full default suite for local authoring behavior, then add stripped paid and demo checks that compile the reduced binaries and exercise the customer-visible surface. Because the work was about test orchestration rather than new product behavior, a fresh agent could hold it as a matrix problem. The sprint passed without recorded stress, so the boundary work became something future changes would break during the ordinary root gate.
Release Packaging
2 agents 3h 34m wall time 154k peak context
The release contract tests still require paid and demo distributed builds to use the stripped feature set, with the demo arm enabling only the demo licensing feature. They also check that the demo build does not bring the internal devtools or screencast features back. Notice generation remains tested as independent of distribution feature flags, and the screencast runbook still documents that shipped paid and demo binaries omit the production pipeline. Some release-builder implementation details have since been rewritten around a stripped tree, but the contract this sprint added is still enforced.
The final sprint was sequenced after implementation and gate coverage because it made the distribution path consume the proven feature flags. Its brief was low-risk by design: change the local release producer and documentation, confirm notices stayed feature-neutral, and avoid changing source-review archive behavior. The run facts show no gate stress here, matching a piece that mostly connected an already-tested boundary to release commands and public docs. That left the job ending on propagation rather than another design problem.