CRAFT · C → Rust · zozo123
Budget<br>Invoice<br>DAG<br>Sandboxes<br>SW factory<br>CI / e2e<br>Links<br>Credits
Budget model
Token-primary accounting
The rewrite ran under a hard cap of $120 . Cost is<br>token-primary : agent work is estimated from tokens at<br>$0.02 per 1k tokens, then converted to USD. The live append-only<br>ledger is<br>rust/tools/spend-ledger.json<br>(reporter: cost_report.py).
What costs money: Cursor agent coding turns (plan, port, fix, docs).
What is $0 tokens: GitHub Actions rust-e2e, islo job runs, snapshot bakes, sandboxes that only compile/test/record.
Hard stop: refuse entries once cumulative ≥ $120; no nested agents inside islo VMs (API unreachable / phantom key).
Execution model: Cursor writes Rust · islo runs deterministic gates · GH Actions is the public e2e mirror.
Trace narrative:<br>COST_TRACE.md<br>· board:<br>EXECUTION.md.
MetricValue
Cap$120.00<br>Spent$112.95 (94%)<br>Remaining$7.05<br>Tokens (est.)~3.20M<br>Pricing prior$0.02 / 1k tokens<br>Gatesislo + GH = $0 agent tokens
Invoice
Workshop packing slip
Line items match the ledger waves. Status stamps the work as merged to<br>zozo123/Craft master within budget.
INV-CRAFT-RUST-001
Bill to zozo123 / Craft fork
From C (GLFW/OpenGL + Python server) → Rust (wgpu/Tokio)
Status MERGED · master · PRs<br>#1–<br>#3 (+ Pages)
PAID IN BUDGET
Cap $120.00
$112.95
Remain $7.05 · 94% · ~3.20M tok
WaveAmount
Planning + DAG + cost model$8.00<br>Oracle harness (C goldens)$1.50<br>Core port + finish (parity)$5.00<br>Matrix + cube$3.50<br>Mesh + craft-sim$2.50<br>Physics$3.00<br>DAG reopt$0.50<br>wgpu walkable client$9.00<br>craft-db + protocol$5.00<br>craft-server (Tokio)$5.00<br>Net e2e$6.00<br>Ambient occlusion$5.00<br>Online engine + 2-client e2e$14.00<br>Product e2e (stream + HUD + peers)$16.00<br>Clippy 1.97 fix$1.20<br>Demo recorder + lavapipe CI$16.00<br>PR#1 open / verify / merge$1.50<br>Rust-first README$3.00<br>README price tag + DAG$1.50<br>GitHub Pages (invoice + explanations)$2.50<br>SW factory lessons (islo + Incredibuild)$1.50<br>islo snapshots + GH gates$0.00<br>YC post + repo-composition honesty pass$1.70<br>Total $112.95
Terms: hard stop at $120 · no nested agents in islo VMs
Artifacts: docs/demo.{mp4,gif} · workflow rust-e2e + pages
Execution graph
Cleared DAG
The rewrite was sequenced as a software-factory DAG: each node had a<br>concrete gate (unit/parity test, net e2e, islo bake, or GH Actions).<br>Later nodes were deliberately re-ordered so a walkable / networked<br>client shipped before polish (HUD/AO) — then AO, HUD, peers, demo, and<br>docs closed the finish line.
flowchart LR<br>A[A_oracle] --> B[B_matrix_cube]<br>B --> C[C_mesh]<br>C --> D[D_physics]<br>D --> E[E_client]<br>D --> H[H_db]<br>D --> I[I_proto]<br>H --> J[J_server]<br>I --> J<br>C --> G[G_AO]<br>E --> G<br>G --> S[S_full_stream]<br>J --> S<br>E --> F[F_HUD]<br>S --> K[K_peers]<br>F --> K<br>K --> L[L_full_v2]<br>L --> M[M_demo]<br>M --> N[N_README]<br>N --> P[P_pages]
NodeWhat it deliveredGate
A oracleC dumpers → goldensmake -C oracle golden + Rust parity<br>B–Dmatrix, cube, mesh, physicscrate tests / mesh_e2e<br>E clientwalkable wgpu window--smoke<br>H–Jdb, protocol, Tokio servere2e_net<br>G AOneighborhood occlusionao_sum + mesh-fanout<br>S full streamchunk >2000 blocksnet-smoke / net-play<br>F / KHUD, daylight, hotbar, peers--connect + online_e2e<br>L full-v2product mp e2e snapshotislo craft-mp-e2e<br>M demolavapipe offscreen videoGH demo job + docs/<br>N / PREADME + this Pages invoicePR merge + pages workflow
Source of truth:<br>rust/EXECUTION.md.
islo.dev sandboxes
Snapshots & jobs used
islo VMs were the deterministic factory floor:<br>restore a snapshot, pull rust-rewrite, run gates, optionally bake<br>the next snapshot. Agent tokens inside those VMs = 0. Nested Cursor agents<br>were blocked (unreachable API / phantom key) — Cursor wrote code; islo only<br>compiled, tested, and recorded.
SnapshotRole~Size
craft-base-v1Oracle / base toolchain after C goldens job238 MB<br>craft-mesh-v1Mesh / core gate bake261 MB<br>craft-sim-v1craft-sim mesh stats path277 MB<br>craft-full-v0First full client+server vertical1.0 GB<br>craft-ao-v1AO mesh-grid fanout bake1.0 GB<br>craft-full-v1Multiplayer engine e2e1.2 GB<br>craft-full-v2Product finish (full stream + HUD + peers)1.2 GB
Job / sandbox patternWhat it provedJob path
craft-oracle<br>C oracle goldens on a fresh VM<br>jobs/craft-oracle
craft-gate<br>fmt / clippy / parity gate bake<br>jobs/craft-gate
craft-mesh-fanout<br>AO mesh-grid signals → craft-ao-v1<br>jobs/craft-mesh-fanout
craft-mp-e2e<br>2-client online_e2e + live net-play → craft-full-v2<br>jobs/craft-mp-e2e
craft-demo-rec (ad-hoc)<br>Debian12 + lavapipe + ffmpeg → demo.mp4/gif<br>islo use · software Vulkan
craft-*-regress (ad-hoc)<br>rust-1.97 fmt/clippy/test with goldens<br>islo use · craft-full-v1/v2
Software factory
How we ran it — what worked / less so
This rewrite was treated as a software factory : a DAG of<br>small work units, each with a deterministic gate, a budget line, and a<br>clear handoff. An agent (Cursor) writes code; the floor<br>(islo.dev sandboxes + GitHub Actions)<br>compiles, tests, bakes snapshots, and records demos at<br>$0 agent tokens . Build-acceleration platforms like<br>Incredibuild...