problem
Every repository re-authors the same agent scaffolding. The rules an agent reads, the skills it runs, the prose standards it writes against, the tooling config it verifies with. Each copy starts from the last one and drifts from it, so the same agent gets different instructions depending on which checkout it opened.
Drift on this surface is quiet. A rule that fell behind still loads, still reads as authoritative, and produces work against a convention the team abandoned two projects ago. Nothing fails, so nothing reports it.
thesis
This is infrastructure that carries a team across a step of AI adoption, rather than tooling one engineer prefers. Four prescriptions are published for the gap between running agents ad hoc and running them as a system. Three of them are what this installs.
- Give the agent a way to pull in its own context from code, wikis, and discussions
- Break work into loops and routines
- Let the agent start other agents
The fourth is raising agency and review speed once agents touch code other teams own, which is an organizational permission rather than a thing a CLI can install.
The claim stops there deliberately, with the token budget named out loud as the ceiling. A larger claim about autonomous fleets is one question about agent count away from falling over.
taxonomy
Content reaches a project through three separate operations, and what each one is allowed to touch is the whole design.
- install
- Overwrites. Runs once to bootstrap a project.
- sync
- Updates only files already present. Safe to re-run on a cadence.
- build
- Derives a payload from current state for pasting into any chat.
- configs
- overwrite
- seeds
- merge additively, survive user edits
- references
- copy through an extends chain
- generated
- derive from target state
That taxonomy is what makes an update safe to run without reading it first. A sync that only touches files already present cannot introduce a surface the project never asked for, and a seed that merges rather than replaces cannot discard the edits a team made to it. The cost of pulling the toolkit forward drops to a command, which is the only version of this a team actually runs.
Stacks compose through the same extends
field. react extends
node, which extends
base, and installing one pulls
everything it inherits. Rules carry a path glob, so a Python rule
stays dormant in a TypeScript project rather than adding noise the
agent has to filter.
model
The toolkit ships the way of working alongside the files. Sessions split by vantage rather than by capability.
Review travels on the pull request itself. One skill posts findings to it, another reads them back, fixes each, and pushes a follow-up, and the review then runs again against only the commits that follow-up added. The heading carries the state, so a reader knows whether anything is open without reading the thread.
The two passes differ by vantage rather than by depth. A worker's self-review asks whether it built the plan and whether it passes, and it is blind to its own misreadings, because the same misreading wrote both the code and the review. The orchestrator's review is a fresh session carrying every sibling branch in flight, so it can question the plan itself.
What binds the number of tracks is collision between file sets rather than a fixed cap. A candidate opens only where its files are disjoint from every track already running, and what thins as tracks multiply is the review attention each one gets.
agents
Every command has a non-interactive path, every listing emits JSON on stdout, and the framed terminal UI goes to stderr. A skill shelling out to the CLI can treat stdout as data without parsing around a progress frame.
Because bash exec drops parent traps,
each subcommand re-arms its exit trap before an early JSON exit, so
exactly one frame renders per invocation.
Verification runs on sandbox scenarios rather than unit tests. Each scenario provisions an isolated project state anchored to a baseline git ref, and a disposable GitHub remote lets the skills that depend on the GitHub CLI run end to end, including opening a pull request, merging it, and editing its body. Naming a scenario through an environment variable routes it non-interactively, so CI and an agent exercise the same path a person would.