← all reports

AgentArmies: end states, contracts and plans

Snapshot 2026-09-02 14:56 UTC · written by the parent orchestrator from the repos, the PRs and Linear · fleet paused at 14:4x UTC on Joel's word, one Claude child at a time from here
15
repos in the org (7 services, 3 wave-2, 5 labs)
4 + 1 + 4
end states merged + approved + in review
8
contracts defined (C1–C8); C1, C2 at v0 in build
6 / 3
tier A plans approved / in revision
3 of 5
labs open with cards, harnesses and first runs
16 · 7 · 10
PRs today: merged · ready · draft
5
cards waiting on Joel (INB)

1. The six stages and who owns them

One direction, one producer per surface (ARCHITECTURE.md §1). Each box shows the repo and the state of its end state, the document that describes the repo as if it were finished and that every plan is reviewed against.

IMPORT · NORMALIZEearth-data end state merged ✓ · DATA-2 building COMPILEtile-compiler + 4 compile-step labs end state in review (PR #1) · 3 labs open STOREworld-serve end state in review (PR #1) SIMULATEworld-sim end state in review (PR #2) RENDERclient-web from before · wave 3 Cross-cutting, pinned by every stage: contracts (C1–C8)merged ✓ · PLAT-15 C1, C2 v0 in build platform (standard, gate, jobs)gauntlet live · job runner planned eval (acceptance as a service)merged ✓ · harness and ladder building asset-catalog (C5, the one writer of assets/)approved, waiting for merge · store PR open merged ✓ approved, awaiting merge in review (draft PR with reviewers) not touched today
Status of each repo's END-STATE.md. The labs (LAB-1 to LAB-4) feed COMPILE only by ports under the port standard; a lab is never a dependency.

2. End states, repo by repo

An end state is reviewed like code: tier A, two reviewers from two providers, findings answered by number, the ops agent merges when both approve the current head. The one-line summaries below are lifted from each file's "What it is".

repo · layerend statewhat it islead · first work
contracts · schemasmerged e14c7a2 file · PLAT-8Every cross-service schema as machine-checked definitions (Protobuf, JSON Schema), generated SDKs for TypeScript, Rust and Python, fixture packs, consumer-driven contract tests in each producer's CI. A world is (earth generation, variant, instance).lead-contracts (Fable, xhigh) · PLAT-15 C1 + C2 v0 · PLAT-16 C7 · PLAT-17 C8 · PLAT-20 C5 · the places.v0 fixture (decided today)
earth-data · IMPORT, NORMALIZEmerged 5a25c82 file · DATA-1Acquisition into immutable raw blobs with provenance and licence; normalisation to the versioned ontology with every field marked by basis; authored enrichment with confidence; live layers. Publishes the Layer Catalog, World Manifest and Tile Data API on R2 for any coordinate on Earth, with honest gaps, refreshed on schedules no agent runs by hand.lead-earth-data (Fable) · DATA-2 Dagster + first source (approved, building) · DATA-3 coverage of the 17 places (Opus grind) · DATA-4 C2 v0 · DATA-5 one-call tiles for experiments
eval · acceptancemerged bc70004 file · EVAL-1The reference board (a ladder of fetchable opponents topped by real photographs), the capture harness (every judged image produced by scripts with a sidecar; inadmissible captures marked), the realism critic, scoreboards, the swipe deck for Joel's pairwise votes, proposal cards with kill dates.lead-eval (Fable) · EVAL-2 harness (draft #4) · EVAL-3 ladder (draft #3) · EVAL-4 judge packs · EVAL-5 judge rail for the forge pilots · EVAL-6 perf gate
asset-catalog · assets (C5)approved, awaiting merge PR #1 · AST-3The one place an asset is identified, described, budgeted, licensed and published, and the only writer of assets/ in the store. Forges make things; the catalog says what they are and lets everyone fetch them by digest. Publishes C5; never serves bytes itself. Built on the approved library design (AST-1).lead-asset-catalog (Fable) · AST-4 the store (plan approved; PR #2 open, 7,097 lines, needs its two reviewers) · PLAT-20 with contracts
tile-compiler · COMPILEin review PR #1 · CMP-1The pure function from manifests and a cell to products: reads the cell and its halo through the Tile Data API, solves the tile into one consistent plan (buildings meet the ground, roads meet buildings, water is level, every face has one owner) and projects it to render, sim and plan products. Bodies solved once at their feature id; solvers are plug-ins so a lab's solver can graduate without changing the job.no lead yet: spawns on Fable when this PR merges (the first wave-2 lead) · MIGRATION.md already lists the quarry's reference solver
world-serve · STOREin review PR #1 · CMP-2The product store, the generation index, the one bake queue and the serving policy: a product by address from the CDN, or an honest 404 plus a queued demand. Content-addressed and immutable; a generation is the digest of compiler build, World Manifest and Asset Manifest, so a promotion moves pointers rather than rebaking. TypeScript on Cloudflare Workers, Queues, R2 and D1.no lead yet: spawns on Opus 5 when this PR merges · requirements draft in STANDARDS §9
world-sim · SIMULATEin review PR #2 · SIM-1Server-side truth for every world, in Rust: tile groups of contiguous level-16 cells simulated at three LODs, merging and splitting as players gather and part; physics in tiers, traffic, NPCs, combat, vehicles; every state change appended to the group's event log, the only truth. Clients send intents and predict with the same core compiled to WASM; a client is never trusted.no lead yet: spawns on Opus 5 when this PR merges
labs · R&D indexin review PR #2 · LAB-5The index and templates for prototypes: every lab is its own lab-<slug> repo with a hypothesis, a metric eval judges blind on the same cells as its siblings, a budget and a kill date. A lab answers one question cheaply and is killed or graduated; what it learns reaches a product repo only by a port, one module per PR with evidence.lead-labs (Fable) · LAB-8 the index (draft labs#3, two tier A reviews running)
platform · the standardfrom before todayThe template every repo is cut from, the gauntlet gate, the sweep, the weekly report, the job runner, the release train, identities and helpers. Owns ~/.aa2/bin on the Mac.lead-platform (Fable) · PLAT-13 require the gate · PLAT-14 job runner · PLAT-10 merge queue · PLAT-22 kill switch
client-web · RENDERfrom before todayClients draw served products and view-dependent effects only; the alpha ships from here once it talks to the new services. The frozen monorepo stays the demo until then.wave 3 · the wrapper for the gate landed today (#1)

The five lab repos (lab-earth-compiler, lab-satellite-vision, lab-llm-authored, lab-geometry-solves, lab-forge-props-bakeoff) carry hypothesis cards instead of end states; see section 5.

3. The contracts (C1 to C8)

Additive within a major, consumers pin a major, producers publish fixture packs, consumer-driven tests run in the producer's CI. Every repo pins what it consumes through contracts.lock (grammar decided today: contracts:, fixtures:, assets:), fetched by digest from the store at store.agentarmies.io (prod) and store-dev.agentarmies.io (dev), both live since 13:00 UTC.

idcontractproducer → consumersv0 ownerstate
C1Layer Catalog + World Manifestearth-data → compiler, sim, evalPLAT-15 (contracts) with earth-data as first producer (DATA-2)plan rev 1a under review
C2Tile Data API: static range-readable objects, whole-feature query for bodies, live-layer streamearth-data → compiler, client map, labsPLAT-15 · DATA-4 publishes it for the first sourceplan rev 1a under review
C3Tile Products at s2/<level>/<cell>/<kind>@<generation>; generation = hash(compiler, world manifest, asset manifest)compiler → serve → client, sim, evalcontracts, after C1 and C2; tile-compiler and world-serve leads consumeafter wave-2 leads
C4Demand APIclient, sim → servecontracts with world-serveafter wave-2 leads
C5Asset Catalog + Asset Manifestasset-catalog → compiler, client, sim, evalPLAT-20, thin, driven by pilot A's field list (posted today)todo, field list posted
C6Game Protocol + prediction crate compatibility matrixsim ↔ clientcontracts with world-simwave 3
C7Eval Protocol, including report.v1eval ↔ allPLAT-16todo
C8Release Manifestplatform → allPLAT-17todo
Decided today and not in the table: places.v0, a fixture pack contracts publishes for the seventeen portal places (ids, names, lat/lon, level-15 S2 tokens, the spawn flag), so eval's ladder, earth-data's coverage grind and the labs' shared cells fixture stop copying the quarry's file separately.

4. Plans: tier A reviews and where each stands

Every tier A ticket gets a written plan, then an adversarial reviewer with fresh context re-derives it and posts numbered findings; the lead answers by number and revises until approval. Only then does a builder start. The chart shows how much the reviews changed: none passed unchanged.

DATA-2 Dagster + first sourceDATA-2: 16 findings over two rounds, approved on revision 2; estimate 2–3 days became 4–516 EVAL-4 judge packsEVAL-4: 16 findings, four blocking; revision 2 under re-review; raised from tier B to A16 PLAT-4 the gauntletPLAT-4: 15 findings; approved on revision 2; built, reverted once, re-landed reviewed15 EVAL-2 capture harnessEVAL-2: 15 findings, two blocking (WebGL2 not WebGPU on the frozen alpha; no scene hook); approved on v215 EVAL-3 reference ladderEVAL-3: 15 findings, one blocking (HUD and watermarks on five of six GTA5 shots); approved as amended15 EVAL-5 judge rail (pilots)EVAL-5: 15 findings, three blocking; approved on v2 consuming EVAL-415 AST-4 the asset storeAST-4: 12 findings, three blocking; the biggest reversal was a configurable store root, called out as a reversal of the one-store decision12 016 findings in the first review
Findings raised by the adversarial plan review, per approved or revising plan. Hover a bar for the blocking ones. Source: the tickets' review comments.
planstatethen
DATA-2 Dagster skeleton, first source on aa-cpu-1approved rev 2builder mid-skeleton; two PRs; store decision recorded (dev store in Phase 1, prod at first promotion)
EVAL-2 capture harnessapproved v2draft eval#4 pushed; perf carved out to EVAL-6
EVAL-3 reference ladderapproveddraft eval#3; stacks on EVAL-2
EVAL-5 judge rail for the forge pilotsapproved v2viewer builder starts when a lane frees; pilot A's judging earliest next week
AST-4 the storeapproved rev 2PR #2 open, reviewers to spawn (Opus + Codex)
PLAT-4 the gauntletbuilt, livetwo green runs on real PRs (platform#16, #17); PLAT-13 makes it required after one in a second repo
EVAL-4 judge packs and pairingrev 2 in re-reviewraised to tier A; owns the judge protocol and the one normalisation path
PLAT-14 job runnerrev 1 in reviewfirst real job: DATA-2's Overture materialisation
PLAT-15 C1 + C2 v0 with SDKsrev 1a in reviewstore URLs and lock grammar folded in; earth-data's store decision relayed
AST-1 asset library designapproved, mergedbecame asset-catalog's end state

5. The labs (the compile step's R&D) and the forge pilots

Joel's four bets on the compile step, each a repo with a hypothesis card, a metric eval judges blind on the same cells, a budget and a kill date (2026-09-30); plus pilot A of the forge bake-off from his AST-2 charter. The labs index (LAB-8) is the ledger.

labbetstatefirst result
lab-earth-compiler · LAB-1Diffusion post-trained on our data: a conditional generative pass over imperfect Earth sources emits the layers (SDXL + LoRA within 24 GB; rectified-flow fallback if not ahead of the regressor by 2026-09-16)openheld-out registry of 153 judged cells + 1,024 Travis cells; NAIP, Sentinel-2, DEM, WorldCover pulling; kill rule: LPIPS ≤ 0.85× best baseline and FID below every baseline and eval's swipe 2:1
lab-satellite-vision · LAB-2Classic machine vision over NAIP and Sentinel: land cover, roofs and roof material, tree crowns, each with a compiler consumeropenshared Austin source store on aa-gpu-1 (NAIP 2022, Sentinel-2, DEM, 3DEP lidar, WorldCover, OSM), sixteen more places pulling; per-class IoU on an independently labelled set; its on-node layout is now the fleet's
lab-llm-authored · LAB-3Existing vision and language models chained, with LLMs authoring semantic dataopenbaseline and shuffled control over Austin (164 buildings) and Seattle (96), 0 USD; the API arms wait on keys (INB-9); independent labeller running
lab-geometry-solves · LAB-4Constraint solves over footprints, heights, roads, terrain and water: one consistent plan per tilesetupsetup agent walled on limits, resumes itself
lab-forge-props-bakeoff · LAB-6Pilot A: ten street-furniture items, five producer arms (Blender procedural, TRELLIS.2, Hunyuan3D 2.1, free Megascans, Tripo/Meshy controls) behind eval's one blind judgesetupBlender 5.2 Cycles proven on the card; TRELLIS.2 built for sm_120; refboard of 58 licensed photographs; Megascans exist for 8 of 10 items; draft PR next
lab-forge-facade-bakeoff · LAB-7Pilot B: twenty Austin buildings, four arms, the same judgetodoafter pilot A's controls exist

6. Pull requests across the org

16
merged today: 3 end states, sweep, gauntlet (re-landed), 6 wrappers, platform#16, 4 reverts and small fixes
7
ready for review or merge
10
drafts building
PRwhatstateblocked on
platform#17aa-linear, the one reviewed Linear helper (PLAT-25)gate greenthe strict status-check rule wants a rebase after #16 merged, which would stale both approvals; the parent turns strict off (PLAT-10 merge queue is the proper fix)
asset-catalog#1END-STATE.md (AST-3)2 approvals on headtwo leftover threads from the bootstrapper's stood-down reviewer need a reply and resolve; then it is the second green gate run
platform#15sweep: armed-unmerged line (PLAT-12)changes requestedbuilder fixing; severity split decided by the lead
platform#18the aa command line (PLAT-24)changes requestedmanifest validation (Codex); 7 non-blocking (Fable)
platform#19the weekly report with cost per repo (PLAT-21)changes requestedeight blocking findings; Opus builder takes the fix
platform#20template adopts contracts.lock, fixtures by digest (PLAT-26)changes requestedfive findings; gates the contracts lead's template use
asset-catalog#2the store core, aa-asset publish and verify (AST-4, PR 1)needs reviewerstier A on 7,097 lines; Opus + Codex reviewers when lanes allow
Drafts: eval#3, eval#4 (harness, ladder) · labs#3 (index) · tile-compiler#1, world-serve#1, world-sim#2, labs#2 (end states) · lab-earth-compiler#1, lab-satellite-vision#1, lab-llm-authored#1 (lab setups).

7. The fleet, the capacity and today's course change

At 13:06 UTC Joel called the pace: too many Fable 5.1 sessions spawned recursively. The policy since: Fable for the parent and the leads only; Opus 5 and Codex below them; three working children per lead; a token budget on every child. At 13:40 the Claude pool walled anyway on the earlier burn, and at 14:4x everything was paused. From here: one Claude child at a time, ramping back to eight Fable lanes over the next hours.

Fable 5.1Opus 5Codex
Fable 5.1102.2M tokens on Fable 5.1, 12:36 to 13:20 UTC102.2M Opus 516.4M tokens on Opus 516.4M Codex5.3M tokens on Codex (gpt-5.6-sol)5.3M tokens counted by the broker, 12:36 to 13:20 UTC (platform#19's live run); dollars wait on admin keys
Forty-four minutes of the fleet before the policy: 124M tokens, 82% on Fable. The same work after 13:06 goes to Opus and Codex below the leads.
threadmodelstate
parent (this thread)Fable 5.1running
lead-platform, lead-contracts, lead-earth-data, lead-eval, lead-labs, lead-asset-catalogFable 5.1 · 80M budget eachpaused
org-ops-2 (merges, CI, sweep, nodes, the Sunday weekly)Opus 5 · 40Mpaused
wave-2-bootstrap-2 (four end-state PRs)Opus 5 · 25Mpaused
org-ops, wave-2-bootstrap (originals)Fable 5.1retired: stuck on a seat at its limit, retried instead of rotated
tile-compiler lead (next)Fable 5.1when its end state merges
world-serve, world-sim leads (next)Opus 5, xhighwhen their end states merge

Policy text: MASTER-PLAN §6.1 · budgets: state/allocations.md · every step of the day: state/feed.md

8. The day, in order

08:0009:0010:0011:0012:0013:0014:0015:00 08:20 agentarmies.io zone active on Cloudflare 09:07 both Hetzner boxes enrolled as fleet nodes 11:14 first three end states merged (contracts, earth-data, eval) 11:34 the sweep merged; first real run 12:31 the gauntlet re-landed, reviewed (after the unreviewed 11:53 merge and its reverts) 12:36 to 12:49 six leads, an ops agent and a bootstrapper spawned 13:05 the gauntlet wrapper in every repo 13:06 Joel: about eight Fable lanes, budgets, slower pace 13:17 first green gauntlet run on a real PR (platform#16); two threads stuck on a limited seat 13:33 org-ops-2 and wave-2-bootstrap-2 replace them on Opus 5 13:40 the Claude pool walled; children park until resets 14:4x everything paused; one child at a time from here zone live nodes enrolled 3 end states merged sweep gauntlet re-landed fleet spawned wrappers everywhere Joel: 8 lanes first green gate · seat incident replacements · pool walled paused
Blue: build and structure. Orange: the capacity story. Hover a dot for the detail; the feed has every line.

9. Where it paused, and the plan from here

Paused mid-flight

  • platform#17 gate-green, waiting only for the strict rule to be turned off.
  • asset-catalog#1 approved, two threads to resolve, then merge and the second green run, then the gate becomes required in all fifteen rulesets (PLAT-13).
  • DATA-2 builder mid-skeleton on Fable (grandfathered); the coverage grind on round 1.
  • eval harness and ladder drafts pushed; EVAL-4 in re-review.
  • labs: three open, two setups; LAB-1's Travis pull runs as a systemd unit on aa-gpu-1 (65 of 140 quads at 13:40).
  • Four end-state PRs (tile-compiler, world-serve, world-sim, labs) with first-round reviews posted; the new bootstrapper takes them.
  • The ops agent's queue: eval's store credentials on the rig, the stage bucket's removal, the fleet nodes' T3 Code update in a quiet window.

The ramp (one Claude child at a time)

  1. Parent alone: strict off on the fifteen rulesets.
  2. org-ops-2 (Opus): merge platform#17, the rig credentials, the stage bucket, the node update.
  3. asset-catalog lead, one turn: resolve its two threads; asset-catalog#1 merges; the gate becomes required everywhere.
  4. contracts lead, one turn: the PLAT-15 verdict, then Opus builders for C1, C2 and places.v0.
  5. platform lead alone, then eval and earth-data with their builders as the seat windows reset; reviews on Codex during the ramp.

Joel's cards

  • INB-9 accounts and provider keys (ANTHROPIC_API_KEY, OPENAI_API_KEY, admin keys, Mapillary, Maps, Modal, Fab); option B is one action.
  • INB-8 asset licences · INB-6 geo conventions (default as written 2026-09-05) · INB-5 sensitive-places policy before the friends-and-family link · INB-4 old instances (2026-09-09).
  • Open in the plan: the friends-and-family horizon; whether Opus counts toward the eight lanes.

Documents: MASTER-PLAN.md · ARCHITECTURE.md · STANDARDS.md · state/status.md · state/steers.md · Linear