Roadmap · v2 · red-pen folded · 2026-08-12 night

The Road to Team-Ready

From tonight’s truth — the 12-minute edit, the 50-minute gate — to a factory that births fully editable sites: five stops, four calls that are yours, and the meters that make speed a measurement instead of a hope.

v2 · Q1–Q4 ruled · the excavation’s measured findings inside · executing
The mission is the experience — a teammate says what they want in their own words, it happens, and they trust what they’re told. Everything below is plumbing that either reaches that person or does not count. The cold walk is the finish line; the heartbeat is the standing meter. (Ratified 2026-08-12 — this document answers to it.)

v2 — The excavation: I went and looked

Your red-pen said “you’re the agent, you’re the one that can see it — I really would love you to look.” I did, the same night: a scratch copy of the MVAH genome, your exact headline ask replayed by my own hands, every layer timed by the machinery’s own clock. Your hunch was right, and here is the proof:

LayerMeasured tonight
The door’s decision core (parse, classify, refuse)1–3 milliseconds
Boot tax, every command0.6–1.5 s
One read (search 11,721 facts + 43,712 spans)~1.7 s
Preview that changed nothing (re-pins 5,270 files)5–7 s
Rebuild of all 178 pages11.2 s
One single-place edit, end to end22.3 s
The same edit, reach-scoped (the floor)~0.3–0.5 s

The finding: the door’s mind is milliseconds — everything slow is the world being re-proven on every step. One edit re-runs whole-site rebuild-and-verify work two to three times inside itself. The anchors already know every edit’s blast radius; scope the re-proving to that reach and the machinery is sub-second — your “huge changes in less than a second” memory is the true physics, verified. Zero trust change: same records, same receipts — the integrity pin verifies the delta against the recorded inventory instead of re-hashing the world.

↘ go deeper — why agents spin here: seven exhibits, all hit live by me tonight
(1) stdout is a husk — on a contract miss the workflow door’s visible reply carries empty slots; the honest answer (what’s missing, how to repair) is written only to a file you must already know to ask for (--result). (2) The contract drip-feeds — filing a decision reveals its required fields one probe at a time; four probes to learn a schema that sits one file away. (3) The manual lies — all seven doc-vs-machinery contradictions are still live in the genome’s CLAUDE.md. (4) Same-value facts fracture — the hero headline is six separate facts (desktop, mobile, slider config, page title, two social titles) with no join surface; the receipt names what a narrow edit left behind, but only after. (5) “Which world am I in” is unanswerable from inside — the git spine commits to whatever branch the clone sits on; Robert’s clone and trunk silently held different hero values. (6) Surfaces aren’t pipe-clean — npm’s banner breaks JSON pipes. (7) The good bones are real — the whole-truth receipt answered my narrow edit with scope-incomplete + remainingCopies:5; the trust core held everywhere the legibility failed. Full detail: ROADMAP-team-ready.md §v2.

CI from the ground up, at your targets — merge in ~a minute (genome-data checks only: manifest hash, receipts, arming, bounds; the door already verified the edit at write time) · the expensive battery runs on machinery changes only, parallel, ~13–15 min, amortized per machinery version · birth stays inside your 20 minutes · the heartbeat is a meter, never a gate. Audit of today’s 15 gate steps: ~11 certify machinery and re-run on every content commit — your hunch confirmed: right checks, wrong altitude and cadence.

And the rename is adopted: it’s the genome, not a book. Information doesn’t talk. The agent is the only voice; the genome’s one job is to be legible to the agent. Three structural locks keep code from ever holding meaning again: exits are codes + slots only, enforced by a census gate that rides the machinery battery forever; the rename kills the frame that invited speech; and every adversarial review carries the seat question — who is judging here, code or a reader?

The frame — what MVAH is to the compiler

The factory is the product. The genome is its output. MVAH is the proving ground. A practice’s genome is information — its facts, pages, anchors, records. It doesn’t talk; nothing in it talks. The agent works in the genome, and the genome’s one job is to be legible to the agent. Defects are discovered on MVAH — real pages, a real practice, a real teammate’s moment. Cures are built in the factory. Every practice’s genome, MVAH included, receives the machinery from one canonical home, versioned. Your instinct — “MVAH is maybe a sandbox so we can prove how it needs to work in a real repo” — is exactly the ruling we already have. It just was never wired into how we worked.

Tonight that flow is inverted: the cures live in MVAH’s repo, and the factory births new sites without them. A site born tonight gets 4 of the 151 machinery files and 2 of the 12 safety checks MVAH runs. Phase H rights the flow — and after it, machinery grows factory-first forever, and a genome that hand-edits its machinery goes red at its own gate.

↘ go deeper — the measured drift and the ruling
Measured 2026-08-13 recon: the book runs 151 machinery files; the factory holds 128 by path, 93 byte-identical (62%); the 35 diverged files are the actively-evolving core (the edit resolver alone differs by ~48% of its lines); 12 files carry ~88% of the total delta. Book→factory flow: none automated — two hand-ports ever, both stale. Birth (emitBookEditLane) stamps exactly 4 files; newborn gate carries 2/12 checks. Verified tonight at the factory’s current main: the factory door still composes its own refusal prose (refusalText/humanList live call sites) — the exact defect the book killed this week. Authority: RULING 12 + SPEC-machinery-homing (both in ~/next-arc/).

The road — five stops, in order

  1. Truth gets cheap (Phase 0 — running tonight). The merge gate has been taking ~50 minutes and failing 6 of 10 runs on a standing defect unrelated to anyone’s change — so “wait for green” was unsatisfiable and every landing queued behind a lie. The cause is found and the fix is filed and in gate now: the sabotage-planting check gripped the door by a comment sentence; a cleanup sweep rewrote the sentence; the check failed on every run since. The fix grips a code call-site instead, makes the failure name its own cure, and runs the cheapest proof first — so any future red surfaces in ~2 minutes instead of hiding behind 28 minutes of passing checks. Then the gate itself gets re-architected: checks in parallel instead of single-file, one bill per change instead of two, and a jurisdiction split so a teammate’s content edit answers in minutes (Q2 — your call). Your headline change gets its first honest verdict the moment this lands.
    ↘ go deeper — receipts and the target numbers
    Standing red: unclaimed-write did not prove the expected RED + r8 mutation: edited seal site did not match exactly once — 7 of the last 8 failures, identical. Fix: PR #29 — anchor moved from a prose comment to sealBookOperation( call-site; proofs reordered fastest-first (measured: single-place proofs ~2.1–2.2 min, undo/world ~11.8–12.3 min); local proof of the exact failing check passed before push. Merge only on the PR’s own gate green. Re-architecture targets: full battery ~50 min → ~13–15 (parallel legs = longest leg); content-edit verdict ~3–5 min (jurisdiction split, fail-closed to full on mixed changes); cached installs; dedupe push+PR double-billing; checkout without full 348 MB history where the round-trip check doesn’t need it. Robert’s headline: PR #28.
  2. One home (Phase H — the port; you already steered “sooner”). Move the proven machinery from MVAH’s repo into the factory, give it one canonical home with a version stamp, and make both sides check the stamp — so a hand-edit in a book goes red in the book, and rot in the factory goes red in the factory. Birth starts stamping the full set: a newborn site carries every check MVAH carries, not 2 of 12. The upgrade lane is proven on MVAH first — the site we know best becomes the first walk of the path every future site will ride. This is the load-bearing stop: every phase after it builds once, in the right place, and flows down to every site. It is a merge of working, receipted code — not a rebuild.
    ↘ go deeper — the mechanism, in five moves
    (1) MACHINERY MANIFEST: committed file list + content hashes + version id, lives with the machinery in the factory; each book records its manifest version. (2) BOOK GATE ci:machinery-manifest: book’s machinery hash-matches its recorded version — pure byte checks, no meaning judgment. (3) FACTORY GATE: emitted template set == machinery source == manifest; the old frozen-fixture test retires (it compared the factory to a pin of itself — structurally blind to book-side drift). (4) BIRTH: emitBookEditLane widens 4 files → full manifest; newborn gate.yml carries 12/12. (5) UPGRADE: mechanical vN→vN+1 (copy set + bump record + run the book’s full gate), proven on MVAH. Sequencing per spec: settling port → birth rehearsal (fresh capture + 3-ask mini-gauntlet) → flip the rule (factory-first forever; book machinery dirs receive-only). Scope: ~35 diverged files, 12 = ~88% of the delta. Rejected alternatives (recorded in spec): blessed-reference-book cloning; versioned package dependency.
  3. The environment answers in seconds (Phase L — your plumbing steer). Tonight’s measurement: your 12-minute edit was ~90% legibility failure and ~10% machine speed — the assistant spent its time discovering that the docs lie, the documented command can’t finish the job, and nobody’s past verification was recorded. So: the heartbeat becomes a real meter (every ask records how long it took, what it asked, whether a refusal offered a path — if the feel degrades it’s a fire, no matter how green the checks are). The docs stop lying — all seven measured contradictions fixed, every stop names the lane that works, preview hands a link. One read answers “what does a visitor see right now.” Verification is recorded once instead of re-derived by every assistant. Every decision names a person. And machinery that does nothing gets re-shaped or removed — including the confirmation step that fired 919 times without once changing an outcome (Q4 — your call), exploration that leaves commits behind, and the one-second startup tax every single command pays.
    ↘ go deeper — the six items, with tonight’s numbers
    L1 heartbeat: ask-to-live stage-attributed + questions + refusals-with-path vs dead-ends + confusion moments; ratified 2026-08-12 (THE MISSION IS THE EXPERIENCE), never built; also closes the gap that this whole diagnosis had to be hand-reconstructed from the GitHub API. L2 docs: 7 rule-vs-machinery contradictions measured 2026-08-12 (preview link that can’t exist; “read the page file” reads stale capture; “merge when green” unsatisfiable; headline command stops by construction on any multi-place headline — 4 places on the home hero — exit 0, wrote nothing, names no next lane; the working lane was found by reading engine source: 12 of ~35 agent calls). L3 visitor-truth read: projection-backed, kills the stale-capture trap that mis-read the current headline. L4 recorded verification: e.g. “slider renders from the page, not its config” — settled by browser once, then a record. L5 attribution: 1,185 rows = 715 ci-probe@example.invalid + 470 UNATTRIBUTED; zero named humans; floor says verdicts travel with basis. L6: confirm ceremony 457 staged = 457 confirmed, 0 refused, 78% of all decisions routed to it; dry-runs commit (2 commits before any decision this session); boot tax 883–1,336 ms every invocation (~8% of lane time, paid again by every CI fixture); zero-work preview 11 s re-pinning 5,270 files. Exit metric: same headline ask, cold session, ≤3 min, zero source-reading — heartbeat-proven.
  4. Edit anything, completed (Phase E — what still needs building). The honest ledger says roughly 30 of 58 ask-shapes are reachable through the door today — the core is real (words, business facts, images, colors, page titles, links, undo — your phone-number test moved 1,606 places in one wish and undid byte-identically). What’s left, ranked by the worst teammate moment first: the silent refusal dies (every “found nothing” names what it searched, its limit, and the route onward); the two finished builds land (add-a-page, the consent battery); the things that already exist get wired (headline through the door; section move/reorder — the primitive exists in the factory, court-confirmed, it needs a door not a build); the one real missing build (logo/photo whole-edit, which today half-finishes); and the factory’s own coverage honesty work so “everything is named” is true by measurement, not assertion.
    ↘ go deeper — the concrete backlog with sources
    E1 silent-refusal cure = write-side “found nothing” record with parity to the read side’s honest abstain (VICTORY-GAP’s cardinal sin; baton §3’s one real walk gap). E2 landings: add-a-page 24-file merge (running on codex; 19 door-core conflicts; resolution rule recorded — trunk’s voice wins speech hunks, capability code survives as additive) · consent battery bay/consent-battery-rework @ c39eb8ef (6 forgeries refuse on the real door + 6 positive controls proceed; wire to gate). E3 wiring: edit:headline exists, door-wired to nothing · REARRANGE: court finding — ReorderArrangement in green-tree.ts, projector-applied, test-proven, unwired (NEEDS-WIRING, not NEEDS-BUILD). E4: logo/photo whole-edit. E5 factory sprint (2026-08-10 plan, courted): S1 whole-truth denominator (court proved the old one lies by omission — 72.7% of page bytes outside it) → the one-join collapse (uncovered words are replication: ~355 distinct values) → 48 type-gated refusal sites converted to physics/route/rails → value-test rulings for styling internals + whitespace (one standing ruling covers ~74K spans). Discipline per item: build → independent adversary → does the heartbeat move.
  5. The proof (Phase W — the finish line, unchanged). A cold walk on MVAH: a fresh teammate session doing real asks, scored by someone who didn’t build it, the feel ruled by you and Alie — tonight was the demonstration of why this outranks every green check: a person standing where the teammate stands caught what all the machinery missed. Then the sealed twelve-ask gauntlet, cold. Then the real graduation: a churned practice born from the homed factory, its checks green, the gauntlet run against the newborn. That’s the moment you tell the team — with receipts, not vibes.
    ↘ go deeper — what each proof certifies
    W1 cold walk = the experience claim (craftsman standard; grader is a non-author; Robert + Alie rule the feel — the lead never grades its own experience claim). W2 gauntlet = the capability claim (12/12; authored blind; asks sealed from build sessions; hash-first open by the grader; refusal-by-category counts as a miss). W3 day-zero birth = the PRODUCT claim (the factory births a fully-editable site: full manifest, 12/12 gates, gauntlet-passing, sub-30-min birth clock per Goal 3 + the two-runs-max draft bar). Sequence W1 → W2 → W3; each is a gate for the next.

The rules that hold through every phase

No gate weakens silently. Scope changes come to you as written proposals first. Speed comes from ordering, parallelism, caching, amortization — never from skipping a proof.
The walk outranks the courts. Adversaries and gates stay exactly as strong; a green suite is testimony, never the verdict. Done is a felt verdict graded by a non-builder.
Reversibility is the held line. Nothing ships without a working undo. The irreversible surfaces to you first, in plain consequences.
No dates until the meters exist. Once the gate is honest and the heartbeat is live, speed is measured — then you get dates from measurements, not hope.

Your four calls — all RULED (2026-08-12 red-pen)

Q1 ★ — Homing before the plumbing sprint? RULED

Your ruling: homing proceeds — in parallel with the practice window if that’s safe, sequential if it must be. The exception valve stays: one-file felt-moment fixes may land genome-side, each logged so nothing gets ported twice silently.

Q2 ★ — The gate’s jurisdiction split. RULED + SHARPENED

Your ruling: the expensive battery belongs to compiler/machinery changes ONLY — and the targets got harder: merges in about a minute (“if merges take more than a minute, we don’t have our value proposition intact”), ask-to-live under 5 minutes, pipeline under 20. CI gets re-thought from the ground up — support, not a box. The ground-up design is in the excavation; the detailed gate rework still comes as its own surface before it lands.

Q3 — Does MVAH’s practice window pause during the port? RULED

Your ruling: parallel if safe, pause if dangerous — the lead makes the safety call. (Spec default stands: the port doesn’t touch MVAH’s genome until the final, proven upgrade step, so the window runs through.)

Q4 — The confirmation ceremony. RULED, in your own words

Your ruling: “the agent is a helpful colleague… takes the request, does it zippy fast, comes back and says here’s what I changed, here’s what I think you should know — and that’s it.” That is proceed-and-inform with a real named-person record for routine edits; hard consent stays only for world-facing acts (redirects, delisting). Executed as part of the legibility sprint.

What I’m doing right now (tonight → 48h)

  1. Watching the gate-fix PR to green, merging it, then refreshing your headline change so it gets an honest verdict (watcher armed; you’ll hear the result, not the waiting).
  2. Writing the gate re-architecture proposal (Q2’s detail) as its own review surface.
  3. Writing the heartbeat spec — the “verification that is the human experience” you asked for tonight. It’s already ratified doctrine; it becomes a real meter.
  4. Kicking off the homing port per its spec (pending your Q1 call), so the next cure is born in the factory.

Standing filter on every item, before building: which teammate moment does this move, and does it move it better?

Reference strip — jump by type

Phases: 0 truth · H home · L legible · E complete · W prove
Decisions open: Q1 sequencing · Q2 gate split · Q3 practice window · Q4 confirm ceremony
Anchors this answers to: the mission (2026-08-12) · three goals (2026-07-27) · end state (2026-08-10) · one-home ruling (2026-08-13) · the gap ledger (2026-08-12)
Canonical source: ~/next-arc/ROADMAP-team-ready.md (this page is the review skin)