Plato · Master Plan · for Robert’s read

The Genome Master Plan

Layer 1 authored by Fable — the session that lived the discovery, 2026-07-01. Layer 1 is canonical intent: if anything below the fence disagrees with this page, this page wins. Machinery (Layer 2) is expanded by workers and graded against this page.

Draft for annotation · Layer 1 is canonical intent · Layer 2 is the machinery below the fence

Decisions awaiting Robert — with context

1
When does W4 (the intent plane + Eve's re-seat) kick off?
Context: W1 and W3 are shipped; the plan sequenced W4 "after W1 proves." Eve's Phase-1 is dual-write — a fail-open side effect that cannot break her live cycles.
Implications: Starting now gets the intent layer earlest and makes Eve the first real consumer proving the shared core — but splits attention with W6's revenue path. Waiting keeps focus but leaves intent (the layer this program exists for) unbuilt longest.
Recommendation: Start Phase-1 dual-write now, in parallel with W6's internal build — it's cheap, kill-gated, and structurally unable to hurt Eve. Hold Phase-2 (reads) until the dual-write diffs go quiet.
2
Personal vs company: one namespace or two?
Context: Eve holds your personal facts and company facts in one head. The ledger needs addressable subjects; this is also a privacy boundary.
Implications: One shared namespace maximizes connection-seeing (the point of the genome) but puts personal facts in company infrastructure. Full separation protects privacy but blinds the intent layer to half its context.
Recommendation: Two namespaces, one contract — federation, not merging. Personal facts live in Eve's own ledger instance wearing the same honesty envelope; company facts deposit to the shared core; Eve reads both. The GaaS multi-repo pattern already supports exactly this shape.
3
Which of Eve's four internal stores survives?
Context: The study found Eve is secretly four stores that don't talk (facts, audit, per-cycle view, drift-reconciliation). Re-seating without a ruling risks adding a fifth memory instead of collapsing four.
Implications: Each surviving store is a parallel truth surface to keep honest forever; each collapsed one is migration work now.
Recommendation: The ledger replaces the facts store and the audit store (deposits with receipts ARE the audit). The per-cycle view survives — it's a projection, and projections are legitimate. The reconciliation track becomes Eve's instance of the standing recount (W2's drill pattern), not a private mechanism.
4
Eve's belief-decay math: port or cut?
Context: Eve softens confidence in facts over time. The ledger has no "confidence" — it has proofs and currency anchors.
Implications: Cutting loses real nuance (beliefs that should fade). Porting into the envelope would smuggle an unproven "confidence" number into an honesty contract — vibes wearing a receipt.
Recommendation: Port it as plane-private payload, never envelope truth (exactly what amended ruling 5 permits). Reframed honestly: decay isn't a truth claim — it's Eve's private heuristic for what to RE-VERIFY next. The ledger records what's proven; decay schedules the re-proving.
5
Do Eve's currency claims wait for W7, or ship fenced-honest?
Context: Life and business facts have no commit SHA — "is this still true?" has no anchor yet. This is W7, the program's one true research question, and Eve is its first live case.
Implications: Waiting blocks Eve's Phase-2 on the hardest open research. Shipping fenced means degraded-but-honest answers ("unverified since Tuesday") in production.
Recommendation: Ship fenced-honest — never a false current. Eve becomes W7's living laboratory: her real staleness patterns are precisely the data the research needs. The fence IS the feature until the anchor exists.
6
Also standing (smaller, whenever):
Context: Two items from earlier rounds remain open.
Implications: Neither blocks the critical path.
Recommendation: Ratify the roadmap fold-in (PR #53, drafted and waiting) when you next have the pen; and keep red-penning the Master Plan surface — every note auto-syncs and gets folded same-day.

LAYER 1 — the decision page

The story

We spent a day trying to get agents to use a code map, and discovered we were building the wrong thing for the right reason. Agents don't need help — five straight experiments proved they are relentless, skeptical, and correct on any code they can read. What they need doesn't exist yet anywhere: a world that remembers. Every truth an agent derives today evaporates when its session ends. Every verification is paid for again tomorrow. The whole agentic world is an oral culture — brilliant, and amnesiac.

The end state is written memory for that world: the genome — settled truth, deposited as a byproduct of work, carrying receipts (a re-runnable proof), currency stamps (proof it's still true now), and honest fences (where it can't see) — held in one shared ledger that agents' own tools stand on and humans' own dashboards render from. Nobody adopts it. Work secretes it; work reads it; arithmetic makes reading cheaper than re-deriving; and an independent auditor tries to catch it lying, forever, because today we caught our own truth layer wrong by 63 files and the auditor we improvised is now the most valuable thing we own.

The end state, measurably

  1. Verification compounds: the cost of the factory's full quality gate on an unchanged basis approaches the cost of checking receipts (target: >70% of gate legs skipped-with-proof on a typical increment; full re-mint on every trunk merge as the floor).
  2. Workers born knowing: a cold agent/session resumes real work from genome reads alone — zero hand-written handoffs (target: HANDOFF docs retired; priming cost measured down >50%).
  3. The world audited: every genome answer carries pin + receipt + fence; an independent recount runs continuously; a planted lie is caught within one cycle (proven mechanism — keep it red-teamed).
  4. One core, many consumers: Eve, Fides, and DE Brain read/write the shared ledger contract instead of maintaining four private reimplementations (the substrate audit's finding).
  5. Humans see honest surfaces: leadership dashboards and briefs render from the genome with the same stamps ("current as of… blind about…").
  6. Fleet change with receipts: one shared-truth edit expresses across Neuron's fleet with per-site conformance receipts instead of per-site QA.
  7. Intent has currency: North Stars and rulings live as deposited facts; "does this week's work still serve the point" is a checkable query (Eve, at the intent altitude).

What I decided and why — in consequences

  • Structural-first, never voluntary. Every experiment that asked agents to trust or adopt, failed; every tool simply placed in their hands got used. So the genome arrives inside hooks, briefs, dispatches, gates, and tool results — the water, not the medicine. Consequence: internal delivery is a wiring task we fully control; persuasion is dead as a strategy.
  • Deposits are byproducts, not products. Agents will never stop re-verifying — good; their re-derivations mint deposits and audit the ledger for free. Consequence: "adoption" dissolves as a concept.
  • Two planes, one namespace. Facts append forever; intents (in-flight claims) lease and expire, and mint facts when resolved — never share a row shape (frame-fitness verified against four fields). Consequence: no Command-Sourcing rot, no tuple-space collapse, one migration avoided.
  • One core, many consumers. Four DE systems independently reinvented provenance+supersession+fail-closed with zero shared code. We build the ledger core once; Eve/Fides/DE Brain consume. Eve 2.0's doctrine is the best-proven — steal it, and seat Eve as the intent-altitude projection. Consequence: the fourth reimplementation never gets written.
  • Prove-first sequencing. Everything lands on Plato (cheap to be wrong) before Neuron (expensive to be wrong) before clients (unforgivable to be wrong). Consequence: the flagship only ever inherits proven machinery.
  • Both verification layers are permanent. Work-verification (adversaries on builds — already caught and bounced a bad build tonight) AND world-verification (the swarm recount on the map itself — already caught the 63-file lie). The reviewer is never the author, including when the author is the truth layer.

The workstreams, at map altitude

  • W1 — Verification capital (in repair loop now): the deposit ledger; gate legs bank receipts; unchanged basis = skip-with-proof; full re-mint at every merge. Kill: if receipt upkeep costs more than re-running, stop and study.
  • W2 — The standing world (v0 merged): harden the genome service — auth, tenancy, deploy (Cloudflare), multi-repo; never-serve-stale stays mutation-tested. Kill: none; hygiene-paced.
  • W3 — Workers born knowing: dispatch briefs and session hooks become genome reads; agent derivations deposit automatically; handoff docs retire. Gated on W1's ledger. Kill: if genome-read briefs measurably underperform hand priming, study before scaling.
  • W4 — The intent plane: leased claims + rulings + North Stars on the shared core; Eve consumes as its projection. Gated on W1 + the two-plane contract. This is where Eve stops being a private reimplementation. Consumer arithmetic, closed: four reimplementations collapse to one core — Eve seats first (W4), DE Brain seats second (a named W4 deliverable — it is the live-in-production case and the highest-friction migration), Fides seats at W8, and de-memory is absorbed and retired as pattern-donor (its two-plane split is the ratified schema).
  • W5 — Human projections: the two-altitude doctrine applied to dashboards/briefings — rendered from the genome, stamped with currency and blindness. First surface: the leadership brief.
  • W6 — Neuron inherits (the business): adapter + fleet blast-radius with per-site receipts; first real fleet-wide change ships with receipts and a measured QA delta. Prove-first gate: W1–W3 green on Plato first. (Known debt: the adapter's cited spec never existed — rebuild from the deposited recon, honestly.)
  • W7 — Currency beyond git (research): what "current" means without a commit SHA — source-of-record pointers, freshness windows, honest fences. The one true research risk; run as falsification probes, not a build.
  • W8 — The authoritative record → certification layer (parked): practice genomes feeding Fides and AI surfaces; then cross-org receipts. Un-parks only when W6 ships its first receipted fleet change.

Critical path: W1 → W3 → W6. W2, W5 ride alongside; W4 joins after W1; W7 runs as research throughout; W8 waits.

Your calls, standing

  1. Red-pen this page (the annotatable surface renders when you're at a screen).
  2. The fold-in draft (#53) — ratify the consolidated roadmap.
  3. W4 kickoff timing — when Eve's seat gets built (after W1 proves, my recommendation).
  4. Alie is a gate, not a memo. Her survival frame (revenue, runway) formally gates W6 kickoff — the moment the program touches the business, her pushback is a gate, not input. Concretely: W5's first rendered artifact is HER brief (the story + the wall-clock spent + what W6 defers), delivered when W1 is demonstrable — which it now is. Nothing revenue-deferring proceeds past W6's gate without her frame heard.
  5. Scope note (deliberate): the DE team's human touchpoints begin at W5 (rendered briefs) and W6 (fleet work) — Stages before that are Plato-internal by design.
  6. Standing ownership: the planted-lie drill against the genome (not just the code graph) is W2's permanent obligation — as the ledger grows facts, intents, and practice truth, the recount grows with it. The day it stops being red-teamed, this program has failed its own thesis.

What could go wrong, honestly

  • The compounding never pays (receipts cost more than re-runs) → W1's kill criterion catches it in days, on Plato, cheaply.
  • Currency-beyond-git resists → W7 is fenced as research; business-truth surfaces stay fenced-honest ("unverified since Tuesday") rather than lying — degraded, never false.
  • The genome gets trusted and then lies once → the standing recount + planted-lie drills exist precisely for this; the day it stops being red-teamed is the day this program has failed its own thesis.
  • Fragmentation persists (teams keep private truth layers) → the substrate ruling makes the core the cheapest option; if consumers don't migrate, that's a signal to study, not to mandate.
  • Agents re-verify by default — our own strongest finding. Six of six re-checked an oracle billed as never-wrong; the one calibration data point re-derived everything anyway. End-state #2's cost collapse may not come from trust at all. So "W3 green" is defined on the machinery bar, not the trust bar: structural consumption wired + deposits flowing + briefs measurably not-worse than hand priming. That unblocks W6. Voluntary trust-savings are upside, tracked by W3's instrument — never load-bearing.

The standing commitment (Robert, 2026-07-01: "make sure we don't stop until this vision is real and proved transformative")

This program does not stop at merged code. It stops when the proof bar is met — or a kill criterion fires and we say so plainly. The proof bar, measurable: (1) the three counters — facts minted · reads · re-derivations avoided — compound for four consecutive weeks; (2) one documented real task completed at ≥5× lower cost because settled truth was read, not re-derived; (3) W6's first fleet change ships with receipts and a measured QA-effort delta. Until all three: every session inherits this mission from this page and the latest STATE deposit, advances the critical path, and reports the counters. No hyperbole — the numbers carry the claim.

How we'll know it's working

Each workstream's definition-of-done is a measured number on this page's end-state list — and the meta-signal is singular: each build cycle should get cheaper than the last on unchanged ground. The week the gate's skip-rate first exceeds half with every skip carrying a receipt, the thesis is realized in miniature. Everything after that is scale.


LAYER 2 — machinery below this fence: expanded by workers, graded against Layer 1, Layer 1 wins on conflict.

Layer 2 — the machinery (builders read this; you never need to)

L2.0 — How to read this machinery, and what binds all of it

Layer 2 is the builder contract for W1–W8. Robert never needs to read past the fence (§Layer 1 is canonical intent; if this machinery ever contradicts it, this machinery is wrong). Every load-bearing claim below cites its deposited source — the doc + line where the decision was already made — so nothing here is invented at the machinery altitude; it is expanded from what the session already settled. Where a fact could not be verified against a deposited source or the live repo, it is marked [UNVERIFIED] rather than asserted.

Repo ground truth, re-derived from origin/main @ 05253b5 on 2026-07-01 (re-pinned from b91ab54; 5 commits landed since, most recently PR #61 the W3 merge) — receipts inlined, NOT inherited from any STATE doc:

⚠️ Currency correction (folded 2026-07-01, git ls-tree origin/main src/deposit/ receipt below). An earlier draft of this block asserted "src/deposit/ is absent from main / the W1 build sits unmerged on feat/deposit-layer-v0." That was false when written, and inherited — not re-derived. It is verbatim the pre-merge REFUTED state of STATE-genome-night-2.md:140 (the handoff doc this section copied), whereas PR #60 (b91ab54) merged the full deposit layer to origin/main at 2026-07-01 19:30:10 PDT — 8 minutes BEFORE this plan was authored (dc3ec3a, 19:38:27), on a branch cut at be1d653 (#59, 19:24) that never contained #60. This is the exact false-current failure mode Plato exists to catch (plato-frame.md:65, the 63-file lie) reproduced in Plato's own master plan, at the root of the critical path, under a false "re-derived from origin/main" freshness stamp — corrected here against the live tree per F-FAIL-CLOSED. Layer 1 §36's "(in repair loop now)" parenthetical also predates #60; Layer 1's intent stands unchanged — only that in-flight status annotation is overtaken, and this block is the status of record.

Verified against origin/main HEAD 05253b5 via git ls-tree origin/main (run 2026-07-01):

  • grep -c '^check "' scripts/gate.sh124 legs (Stage-0 swarm-differential leg landed via PR #55, 676a12c; STATE-genome-night-2.md:14; +6 legs from PR #61 05253b5, the W3 merge — fact-store, secret-scan, verify-fact, deposit-cli, task-brief, session-end-hook, per PR #61's own commit body: "gate.sh: +6 provable node --test legs... Full gate green, 124/124, single-threaded."). SPEC_PROVABLE = 86 (tests/gatesh-falsification.test.mjs:294; the code comment there reads // 80 base +6 W3 (workers born knowing)).
  • src/genome-service/{dispatch,router,serve-genome}.mjs present on main (confirms Layer 1's "W2 — v0 merged").
  • src/deposit/{types,global-hash,dirty,basis,hermetic-scan,store,manifest,reuse,incremental}.mjs (9 modules) present on main — the W1 deposit ledger MERGED via PR #60 (b91ab54), make gate 118/0 GREEN. PR-#60 body (the merge receipt): "REFUTED once by the independent adversary (two confirmed defects), repaired root-cause, re-verified by a fresh adversary: CONFIRMED-GREEN, gate 118/0, all falsify teeth proven to bite." Also landed with #60: scripts/{gate-incremental,gen-leg-manifest}.mjs, root leg-manifest.json, tests/deposit-{store,basis-manifest,incremental}.test.mjs, and a live banked deposit at genome/deposits/*.jsonl.
  • src/adapters/neuron/index.mjs present as the STUB; NEURON-ADAPTER.md genuinely absent (confirms Layer 1's W6 "the adapter's cited spec never existed").
  • docs/ai/SPEC-hosted-mcp-oidc.md and src/mcp/http-server.mjs present (W2's auth groundwork).
  • src/snapshot/currency-proof.mjs, src/graph/reach.mjs, src/witness/edge-completeness.mjs, src/index-engine/cache.mjs, src/snapshot/persist.mjs all present (the machinery W1 reuses).
  • docs/ai/SPEC-deposit-layer.md on main is still the 45-line STUB; the authoritative 525-line v2 contract remains unmerged on origin/docs/spec-deposit-layer @ 322600b — now a doc-drift cleanup (land the real spec over the stub), no longer a merge-blocker (see L2.X #3).
  • Honest currency finding (this pass, 2026-07-01): leg-manifest.json on origin/main is still 118 entriesgit log --oneline -- leg-manifest.json shows its only commit is b91ab54 (PR #60). PR #61 (05253b5, the W3 merge) added the 6 legs confirmed above (118→124) but git show 05253b5 --stat touches scripts/gate.sh only — no leg-manifest.json entry. The manifest was not re-minted; it is now out of sync with gate.sh by 6 legs. This is trunk drift, not a correctness bug: the manifest isn't wrong about what it covers, it just doesn't know the 6 new legs exist. Recomputed against the REAL current leg count, the manifest's 1 Tier-A-promoted leg is 1/124 ≈ 0.81% of the gate — not the stale-denominator 1/118 ≈ 0.85% cited in §L2.W1 — and even that 0.81% is provisional: the 6 new W3 legs' Tier-A status is simply unrecorded, not proven zero, until the manifest is re-minted. Flagged for the genome driver: re-mint leg-manifest.json on its next gate run per DEP-MERGE-ANCHOR (SPEC-deposit-layer.md — "full gate.sh runs ledger-blind on every merge to main and re-mints the ledger from clean bytes"; cited above at §L2.W1's "Authoritative: SPEC-deposit-layer.md:425" convention) — this merge's re-mint did not fire/land.

Standing invariants (constitution floors — bind EVERY workstream, not restated per-W)

These are ~/.claude/rules/constitution.md floors, named here because each W's gates inherit them and no W may weaken one for speed. They harden as models improve (a stronger model mints more convincing false greens).

  • F-INDEP — the reviewer is never the author, including when the author is the truth layer itself. The 63-file lie (plato-frame.md:65) was caught by an independent swarm, not Plato's own 118-leg gate — so every W's verification leg is dispatched independent of its builder (opus for any verdict; sonnet for build/gather — constitution.md worker tiers).
  • F-ADVERSARIAL — ≥1 adversarial leg at every quality gate, running the cheapest experiment that turns the green RED, not "it looks correct." Every falsifiable gate below names its deliberate-break.
  • F-READ-RECEIPT — read-receipt + lead grep-verify on any agent that reads an artifact; READ-FAILED and stop rather than confabulate.
  • F-FAIL-CLOSED — no false greens; anything unverifiable is a FAIL / an honest fence, never a fake pass. Currency ≠ correctness; every surface labels which it is (CLAUDE.md Key Gates).
  • F-COMPLETENESS-AUDIT — every verdict-emitting query runs the completeness-claim audit BEFORE code (CLAUDE.md → "the completeness-claim audit … MANDATORY"): name the absence claim, enumerate every blind axis, gate the green on completeness across all of them, fail to CANNOT-CERTIFY where completeness can't be proven. W1 already did this (SPEC-deposit-layer.md:244, nine axes A1–A9); W2, W3, W4, W5, W6 each owe their own before building — W2's never-serve-stale + planted-lie recount emit currency/honesty verdicts ("this served genome is current"; "no planted lie present") and W5's render emits a render-as-current verdict ("a fact with neither stamp nor fence must not render as current"), so both are verdict-emitting surfaces the audit governs, not just the agent-facing W3/W4/W6.
  • F-FRONTIER-FIRST — Frontier phase before any code for a novel mechanism (CLAUDE.md build doctrine): name the problem class abstractly, cite the field's default + strongest alternative (grep-verified), hunt the anti-pattern of your own pick. Each W's frame-fitness obligations below name the Step-0 scans it owes.
  • F-FALSIFY-FIRST — run the cheapest experiment that could invalidate a metric-moving build BEFORE building it (constitution.md "Falsify before you build": >50% of expected effect → proceed; <25% → back to diagnosis). The program's single load-bearing falsification — the receipt-vs-asserted A/B (GENOME-ROADMAP.md:22, "Stage 1 — THE load-bearing hypothesis"; :24, "days, not weeks") — is a W3 obligation and MUST run before W3's brief-assembler + auto-deposit machinery is built, not after (see L2.W3 item 0 + L2.X #7). A cheap, high-information falsification sequenced behind an expensive build is a dependency inversion of this floor — the exact anti-pattern that made this a review finding.
  • F-SMALL-DIFFS / F-REGRESSION — thin slices; every bug or audit finding becomes a regression test or deterministic gate so it cannot silently return.
  • F-PROVE-FIRST — Plato before Neuron before clients (GENOME-ROADMAP.md:7, Layer 1 decision "Prove-first sequencing"): nothing expensive inherits unproven machinery.

The cross-workstream dependency DAG (explicit — Layer 1 §"Critical path")

Stage-0 (map honest) ──DONE──▶ W1 (deposit ledger — MECH MERGED #60; payoff unproven 1/118)
   PR#51 backward-reach fix          │
   PR#55 swarm-differential leg      ├─────────▶ W3 (workers born knowing)  ─┐
                                     │                                        │
                                     ├─────────▶ W4 (intent plane, +GR:9 ────┤
                                     │            two-plane contract)         │
W2 (standing world, v0 merged) ──────┼───────────────────────────────────────┤
   rides alongside; hygiene-paced    │                                        ▼
                                     └──[W1∧W2∧W3 green on Plato]──────▶ W6 (Neuron inherits) ─▶ W8 un-parks
W5 (human projections) ── rides alongside, renders from W2/W1/W4 facts        (parked until W6
W7 (currency-beyond-git, research) ── runs THROUGHOUT; feeds W6 + W4           ships 1st receipted
                                                                              fleet change)

Critical path: W1 → W3 → W6 (Layer 1 §45). Hard edges: W3 gated on W1's ledger; W4 gated on W1 + the ratified two-plane contract (GENOME-ROADMAP.md:9); W6 gated on W1∧W2∧W3 green on Plato (prove-first, GENOME-ROADMAP.md:34); W8 gated on W6's first receipted fleet change (Layer 1 §43). Soft edges (ride-alongside, no blocking dependency): W2, W5. Research feed — split (A3): W7→W4 is a soft feed (intent leases). W7→W6 is a conditional-hard dependency for the practice-business-fact half of W6's receipts — those facts carry no commit SHA, so a trustworthy currency stamp needs W7's mechanism; if W7 nulls, that half degrades to fenced-honest ("unverified since…", Layer 1 §57), never a false green. W6's template/code-fleet receipts are git-SHA-backed (the code-repo adapter, proven today) and depend on W7 not at all — so W7 stays off the critical path exactly as Layer 1 §45 requires. See L2.W6 (DoD split) + L2.W7.

Scope — who touches this, when (deliberate, Layer 1 §53)

W1–W4 are Plato-internal / agent-facing by design — deposit ledger, standing service, genome-read briefs, the intent plane; no DE-human touchpoint, on purpose. The DE team's human touchpoints begin at W5 (rendered briefs — first surface is Alie's brief) and W6 (the fleet work that reaches client sites). This is a narrowing, not an omission: Lukasz/Jess/Derek surface downstream through consuming systems (Neuron at W6, Fides at W8), not through a W1–W4 surface. If a Stage before W5 needs a human touchpoint, that is a scope change to raise with Robert, not a silent gap.


L2.W1 — Verification capital (the deposit ledger) — MECHANISM MERGED (#60 b91ab54, sound) · PAYOFF UNPROVEN (skip-ceiling 1/118 = 0.8% today)

Deposited sources. The full build contract already exists and is authoritative for this workstream: docs/ai/SPEC-deposit-layer.md v2 (on origin/docs/spec-deposit-layer @ 322600b; 525 lines, two-layer, F1–F7 folded + ratification-#5-aligned — STATE-genome-night-2.md:21, :59). Layer 1 end-state #1 (§17); GENOME-ROADMAP.md:26 (Stage 2); build state in STATE-genome-night-2.md:102–196. This section does not re-derive the spec — it captures the build/merge record (now MERGED green via #60); the spec is the contract, and on any conflict the spec's own Layer 1 wins over its Layer 2 per SPEC-deposit-layer.md:7.

One-line machinery. Every gate leg that passes banks a facts-plane deposit{claim, basis (repo-file closure + committed-blob hashes), global_hash, receipt (re-runnable argv), currency (pin+tree_sha), supersedes} — into a committed, in-repo ledger genome/deposits/<leg_id>.jsonl; a later run REUSEs the banked PASS only when nothing in the basis (or the global hash) drifted, else it RUNs for real (SPEC-deposit-layer.md:264 record shape, :355 invalidation, :378 algorithm).

Concrete deliverables (build state: MECHANISM BUILT+MERGED+GREEN · PAYOFF UNPROVEN, W1 work remains)

The Stage-2 mechanism is built AND merged to origin/main via PR #60 (b91ab54), make gate 118/0 green (was 117/1 on the pre-merge branch), and the four "owed-to-green" items Layer 1 §36's repair loop named are all RESOLVED at merge — the build/bug-repair loop is genuinely closed (receipt below). What is NOT done is the payoff. Layer 1 end-state #1 (§17) / §63 define W1's DONE as ">70% of gate legs skipped-with-proof on a typical increment." Re-derived from raw at the merged state (leg-manifest.json on origin/main): exactly 1 of 118 legs is promoted to proven-hermetic Tier-A (the hand-promoted centrality core, hermetic:true + a declared basis) with exactly 1 banked deposit (genome/deposits/67ab7487….jsonl, that leg's own receipt); the other 117 legs carry declared_basis: null and hermetic absent → fail-closed, never cacheable, always RUN. So the skip-CEILING is 1/118 = 0.8% TODAY — the >70% payoff is structurally unreachable at the merged state. Remaining W1 work (payoff, not build): promote legs to proven-hermetic Tier-A — each needing its own basis-completeness proof (the exact discipline that makes a skip safe, SPEC-deposit-layer.md:244) — until the incremental skip-rate measured on a real PR clears the >70% bar (§17), then recompute net wall-clock from raw and evaluate the kill-criterion inequality. The ledger genuinely EXISTS, so W1 unblocks W3 item 0 (briefs have receipts to read); it is the compounding payoff that is unproven, not the mechanism.

  • MERGED (on origin/main, verify not rebuild): src/deposit/{types,global-hash,dirty,basis, hermetic-scan,store,manifest,reuse,incremental}.mjs; scripts/{gate-incremental,gen-leg-manifest}.mjs; generated leg-manifest.json (118 legs, 1 hand-promoted Tier-A "centrality core"); the deposit test files (tests/deposit-{store,basis-manifest,incremental}.test.mjs); Makefile targets gate-incremental + leg-manifest-check; a live banked deposit at genome/deposits/*.jsonl.
  • RESOLVED at merge (#60) — how each "owed" item closed:
    1. Finding 1 (the JSDoc import(...) allowlist trip in src/deposit/reuse.mjs) — fixed root-cause; make gate is 118/0 on main (PR-#60 body: "repaired root-cause").
    2. Finding 2 (the lost second defect)recovered. The merge was gated on a fresh independent adversarial pass that reproduced both defects, not just Finding 1 (PR-#60 body: "REFUTED once… two confirmed defects… repaired root-cause, re-verified by a fresh adversary: CONFIRMED-GREEN"). F-FAIL-CLOSED satisfied: the branch was not merged on Finding-1-fixed alone.
    3. Independent re-grade / re-verify — done: the fresh adversary (reviewer ≠ author, F-INDEP) returned CONFIRMED-GREEN, gate 118/0, all falsify teeth proven to bite (basis-edit re-runs, tamper detected, belt-off goes RED). This is the load-bearing re-verification the build sequence required after the CRITICAL F1 fix.
    4. The SPEC-deposit-layer.md path collision — the deposit code merged cleanly; the doc collision persists in a benign form: origin/main carries the 45-line stub while the authoritative 525-line v2 spec is still on origin/docs/spec-deposit-layer @ 322600b. Now a doc-drift cleanup (land the real spec over the stub), not a merge-blocker (tracked at L2.X #3).

File / module targets

Authoritative list: SPEC-deposit-layer.md:507 (Rollback §). Ledger lives at genome/deposits/ (tracked, committed — the in-repo ruling, SPEC-deposit-layer.md:93), NOT getCacheRoot() (:408). Reuses existing producers unchanged: hashCommittedBlob (src/snapshot/currency-proof.mjs:61), verifyCurrency STEP-2 recompute (:355), readEdges/buildReachIndex (src/witness/edge-completeness.mjs, src/graph/reach.mjs:123), persist.mjs atomic-write discipline.

Quantitative gates + verification commands

Authoritative: SPEC-deposit-layer.md:425 (Gates) + :487 (Quantitative gates + DoD). The teeth, each with its named deliberate-break (F-ADVERSARIAL):

  • DEP-MERGE-ANCHOR (the trunk floor, the real never-false-green guarantee): full gate.sh runs ledger-blind on every merge to main and re-mints the ledger from clean bytes; any fast-path reuse of a would-fail leg → RED (:427).
  • DEP-SOUND (sampling net, not a proof): gate --incremental verdict === gate --full verdict per leg across a synthetic-PR corpus (no-op, single-file, cross-cutting, touch-everything, fixture-only, non-hermetic-only, dependency-bump, ambient-nondeterminism). Break: delete the hashCommittedBlob compare in reuse() → RED (:431).
  • DEP-MINT-CLEAN (F1), DEP-GLOBALHASH (F2), DEP-4 ambient-nondeterminism (F3), DEP-ENTRYPOINTS (F5), DEP-INDEP (F6), DEP-NOSELF (A8), DEP-CLEAN, DEP-PASSABILITY, DEP-5 corrupt-deposit, DEP-6 no-false-green — each with a break proven RED (:441–:483).
  • Verification commands: make gate (full) is 118/0 green on origin/main post-#60 (was 117/1 pre-merge); node --test tests/deposit-store.test.mjs tests/deposit-basis-manifest.test.mjs tests/deposit-incremental.test.mjs (own suite, 28/28 confirmed); make gate-incremental (the speed layer); make leg-manifest-check (DEP-MANIFEST drift, :481).
  • Payoff number (Stage-2 DONE, GENOME-ROADMAP.md:28 / Layer 1 end-state #1 "≥70% legs skipped-with- proof") — UNPROVEN at the merged state, the actual remaining W1 obligation: the >70% skip-rate is the DONE bar, and today it is structurally unreachable — only 1/118 legs is Tier-A-promoted with a banked deposit, so gate --incremental on a representative single-file PR can reuse at most 1 leg (skip-ceiling 0.8%); the other 117 fail-closed to RUN for want of a declared, basis-complete input set. Reaching the >70% bar requires promoting legs to proven-hermetic Tier-A first. The payoff is measured — never asserted — by the lead recomputing wall-clock + skipped-leg-count on a real PR from the emitted {ran, reused, banked, wall_clock_ms} from raw (SPEC-deposit-layer.md:492); until that measurement clears >70%, W1's payoff stays UNPROVEN and is labeled so (F-FAIL-CLOSED — no false green on our own plan). Token savings are explicitly out of scope here (these are node --test, not model calls) — deferred to W3 (:496).

Dependencies

Depends on Stage-0 DONE (map honest): PR #51 backward-reach frontier fix + PR #55 swarm-differential leg, both on main (STATE-genome-night-2.md:14, :263). No dependency on any other W. Blocks W3 (the ledger must exist for briefs to read receipts, Layer 1 §38) and is on the critical path W1→W3→W6.

Kill-criterion test procedure

Layer 1 §36 / GENOME-ROADMAP.md:28 / SPEC-deposit-layer.md:500: "if receipt upkeep costs more than re-running, stop and study." Procedure — measured as net wall-clock over a real PR series: Σ(incremental PR runs) + Σ(merge-time full re-anchors) < Σ(full-every-time). If the inequality fails, remove the deposit layer (it is purely additive — SPEC-deposit-layer.md:505 — so removal = stop invoking --incremental; the committed ledger becomes inert data) and write down why. This is falsifiable and cheap ("days, not weeks" — GENOME-ROADMAP.md:24), and it runs on Plato where being wrong is cheap (F-PROVE-FIRST).

Agentic wall-clock estimate

Mechanism: 0 h remaining. Payoff: NOT complete — leg-promotion work remains. The mechanism build + bug-repair loop is done (the prior ~3–4 h, dominated by the independent adversarial re-run per F-INDEP/F-ADVERSARIAL, was spent), and the ledger EXISTS — so W1 already unblocks W3 item 0 (briefs have receipts to read). But reaching Layer 1 end-state #1's >70% skip-rate is unfinished W1 work: promote the ~117 fail-closed legs toward proven-hermetic Tier-A, each requiring its own basis-completeness proof (entry-points/declared-basis + a mint-clean check), until the incremental skip-rate on a real PR clears

70% — estimate ~10–20 h of promotion + per-leg basis proofs (many legs are not cleanly hermetic and some may never promote, which itself is a kill-criterion signal), then a lead recompute of net wall-clock from raw. Only after that measurement is W1's payoff done. (Separately, the benign doc-drift cleanup at L2.X #3 — land the 525-line spec over the main stub — is not W1 build work.)

Robert-vs-Claude lane split

Claude's lane (autonomous): the entire repair loop — Finding-1 fix, dispatching the independent adversarial re-run, the re-grade, path-collision reconciliation, PR + merge-on-green (git lifecycle is Claude's, ROBERT.md §6). Robert's lane: nothing new here — Stage-2 boundaries were already ratified (the in-repo ledger ruling + ratification #5, SPEC-deposit-layer.md:14). Robert sees the payoff number when the skip-rate first exceeds half (Layer 1 §63 — "the thesis realized in miniature"), as a result, not an approval gate.

Frame-fitness obligations

DISCHARGED — no novel mechanism remains. The Step-0 scan is on record: content-addressed memoization of verdicts keyed on a declared-input basis, invalidated by basis drift; field default Bazel action-cache/CAS + Nx/Turborepo affected+task-hash+global-hash; the named anti-pattern (under-declared inputs → false cache hit, bazelbuild/bazel#11057) with two justified divergences owned by a non-author (SPEC-deposit-layer.md:175–223). The completeness-claim audit is done (nine axes, :244). The procedural frame-fitness debt is now also discharged: the fresh-adversary re-verify at #60 (CONFIRMED-GREEN, all falsify teeth proven to bite) confirmed the folded F1–F7 did not reopen a frame question. W1 frame-fitness is fully closed.


L2.W2 — The standing world (harden the genome service) — v0 MERGED

Deposited sources. Layer 1 §37 ("v0 merged; harden — auth, tenancy, deploy (Cloudflare), multi-repo; never-serve-stale stays mutation-tested"). Build state: STATE-genome-night-2.md:29–56 (GaaS GREEN 117/0 + 13/13 own suite, reproduced twice from fresh clones). Live-repo confirm: src/genome-service/{dispatch,router,serve-genome}.mjs is on origin/main. Auth groundwork already on main: docs/ai/SPEC-hosted-mcp-oidc.md + src/mcp/http-server.mjs.

One-line machinery. plato serve-genome --port <p> --repo <path>... is a long-lived local HTTP+JSON face over the existing MCP handlers (GET /repos, /:repo/prime, /:repo/brief, /:repo/reach) — thin wrappers, never reimplementing graph logic, riding the same commit-keyed cache createPlatoMcpServer uses, read-only by construction (STATE-genome-build-night.md:178). Hardening turns this single-user local service into the shared standing world Layer 1 end-state #4 names.

Concrete deliverables

  1. Auth — gate the HTTP face; the deposited groundwork is the hosted-MCP OIDC spec (docs/ai/SPEC-hosted-mcp-oidc.md, already on main). Deliverable: bearer/OIDC on every route, fail-closed (401 default), following gates.md Routes/Auth category (endpoint registry, request-size 413, auth enforcement, rate limiting).
  2. Tenancy — multi-tenant repo isolation so one caller cannot read another's genome; per-tenant --repo scoping enforced server-side, not client-trusted.
  3. Multi-repoGET /repos already lists; harden concurrent multi-repo serving (the commit-keyed cache is already per-repo).
  4. Deploy (Cloudflare) — Layer 1 says Cloudflare; the existing prod MCP endpoint is plato-mcp.fly.dev (ROADMAP.md:47). This is a migration, flagged as an open question below — Cloudflare Workers + the agents-sdk/workers-best-practices skills are the platform per the available skill set. Deploy anchor recorded before, verified from raw after, rollback rehearsed (ROBERT.md §6 production-deploy rule).
  5. Never-serve-stale, mutation-tested — the __freezeForTest RED-flip proof already exists (STATE-genome-build-night.md:184); harden it into a standing mutation-tested gate leg so the currency guarantee cannot silently regress (F-REGRESSION).
  6. Complete the outstanding process gate — the merged code cleared Measure (gate green twice) but Layer 1's build sequence also wants an adversarial-verify pass on the service itself (STATE-genome-night-2.md:228 names this as still-owed).
  7. The standing planted-lie drill against the genome — W2's PERMANENT obligation (Layer 1 §54). This is the operational home of end-state #3 ("an independent recount runs continuously; a planted lie is caught within one cycle"). Today the standing recount is the swarm-differential leg on the code reach-graph only (Stage-0, PR #55) — Layer 1 §54 makes W2 the owner of extending that drill to the whole genome as it grows: plant a lie in a facts deposit today, in a W4 intent row when W4 lands, in a W6/W8 practice-genome fact when the business inherits — the recount must catch each within one cycle or the leg goes RED. This is never "done": it is a hygiene-paced obligation that grows a new planted-lie fixture every time the genome grows a new fact kind. The day it stops being red-teamed is the day this program has failed its own thesis (Layer 1 §54, §60). Independent of the builder (F-INDEP — the recount that caught the 63-file lie was an independent swarm, not Plato's own gate).
  8. Persist the proof-bar counters + per-session report (Layer 1 §66; wiring in L2.PROOF-BAR). As the standing world, W2 owns snapshotting plato counters (the instrument merged in PR #64) per week into the genome so the four-consecutive-week compounding trend survives a session cycle, and every session reports the current counters into the STATE deposit it inherits from (Layer 1 §66 — "reports the counters"). Hygiene-paced, forever — like #7, this is never "done."

File / module targets

src/genome-service/{dispatch,router,serve-genome}.mjs (exists); src/mcp/http-server.mjs + docs/ai/SPEC-hosted-mcp-oidc.md (auth reuse); tests/serve-genome.test.mjs (13 tests, extend for auth/tenancy). New: deploy manifest (Cloudflare wrangler.jsonc per the wrangler skill) + a never-serve-stale mutation gate leg in scripts/gate.sh.

Quantitative gates + verification commands

  • node --test tests/serve-genome.test.mjs → currently 13/13 (STATE-genome-night-2.md:43); must stay green + grow with auth/tenancy cases.
  • gates.md Routes/Auth gates present: auth-enforcement test (a request with no/invalid token → 401), request-size 413, rate-limit, endpoint registry.
  • Never-serve-stale mutation tooth: disabling the live re-pin check must turn the leg RED (the __freezeForTest proof, promoted to a standing leg).
  • Deploy: rollback anchor recorded + live verified-from-raw post-deploy + rollback path exercised once (ROBERT.md §6). make gate stays green throughout.

Dependencies

None hard — rides alongside the critical path (Layer 1 §45 "W2 … ride alongside"). It is the delivery substrate W3 and W5 consume (the HTTP face is how a genome read reaches a worker or a dashboard — ROADMAP.md:47), so it should stay ahead of them, but nothing blocks starting it now.

Kill-criterion test procedure

Layer 1 §37: "Kill: none; hygiene-paced." That blanket holds for the hardening of already-proven, already-merged machinery — auth, tenancy, multi-repo, the never-serve-stale mutation leg: no hypothesis to falsify, so no kill-gate; paced by need (auth before any non-local consumer; tenancy before any second tenant), not by an experiment. The one W2 obligation with the opposite shape is deliverable #7, the standing planted-lie drill (Layer 1 §54): it is never killed and never "done" — it is a permanent standing gate that grows a new fixture each time the genome grows a new fact kind. "Hygiene-paced" for it means forever, expanding, not until complete.

Carve-out (A4) — the one W2 deliverable that is NOT harmless hygiene: the fly.dev→Cloudflare deploy migration (deliverable #4). Layer 1's "none" was premised on W2 being hygiene; a platform migration with lock-in is not — it carries a real, cheap-to-run falsifiable hypothesis: "a long-lived stateful HTTP service with a per-commit cache fits Cloudflare Workers' stateless model (Durable Objects/KV for the cache) without degrading the never-serve-stale guarantee." Fit-or-abort: run the W2 Step-0 fit-check (see Frame-fitness below) BEFORE committing the migration; if the Workers frame fights the stateful/cache shape, abort the migration and stay on the proven fly.dev deploy. The hardening (auth/tenancy/never-serve-stale) ships regardless of platform, so aborting the migration does not kill W2 — this stays faithful to Layer 1's workstream-level "none" while refusing to let a lock-in migration ride under a "hygiene, no kill" label. The deploy target itself is a Robert-lane call (L2.X #1); this criterion governs whether the migration is even attempted.

Agentic wall-clock estimate

Auth (reusing the OIDC spec) ~2–3 h; tenancy ~2 h; never-serve-stale mutation leg ~1 h; Cloudflare deploy + rollback rehearsal ~2–3 h (dominated by first-time platform wiring); adversarial-verify pass ~1–2 h; the standing planted-lie drill (deliverable #7) ~2–3 h to stand up the facts-plane fixture + recount leg, then ongoing/expanding forever (a new fixture per new fact kind — not a one-time cost). ~10–14 h agent wall-clock for the bounded work, parallelizable with W1 (independent branches, no shared checkout — ROBERT.md §6 parallel-git-hygiene: isolated worktrees); the drill's recurring cost is permanent by design.

Robert-vs-Claude lane split

Claude's lane: all of the build + the git lifecycle + the Cloudflare deploy if rollback is proven (ROBERT.md §6 — production deploy of a verified bundle with a rehearsed rollback is autonomous). Robert's lane: the Cloudflare-vs-fly deploy-target call if it carries cost/strategy weight (a genuine judgment call, ROBERT.md §6 "Held"), surfaced as a one-block ruling; and any tenancy model that touches who-can-see-whose-data (a values/scope call).

Frame-fitness obligations

  • Auth mechanism — reuse, not novel: the hosted-MCP OIDC spec is the deposited frame; confirm it still fits a multi-tenant read-only service (Step-0 already banked as SPEC-hosted-mcp-oidc.md).
  • Deploy platform (novel choice → Step-0 REQUIRED): Cloudflare Workers vs. the incumbent fly.dev is a mechanism-selection with lock-in — F-FRONTIER-FIRST applies. Named scan: "long-lived stateful HTTP service with a per-commit cache — Workers (stateless + Durable Objects/KV for the cache) vs. a long-lived container (fly.dev)"; the cloudflare/durable-objects/workers-best-practices skills are the field-default source. The smoothness of "just use Cloudflare because the skills are here" is exactly the availability signal F-FRONTIER-FIRST says to check harder.

L2.W3 — Workers born knowing — GATED ON W1

Deposited sources. Layer 1 §38 + end-state #2 ("HANDOFF docs retired; priming cost measured down

50%"). GENOME-ROADMAP.md:30 (Stage 3). The delivery pipes already exist and are re-used (not rebuilt): plato prime / hooks reflex stack (PRs #35/#37/#46/#47), the MCP agent face, the team installer --commit mode (PR #49) — all catalogued in ROADMAP.md:45–47 with their original reach-rationale marked SUPERSEDED but their plumbing ABSORBED.

One-line machinery. A dispatch brief and a session-start hook stop being hand-written priming and become genome reads — current, receipted, blast-radius-scoped — pulled from the W1 ledger + the W2 service; and every agent derivation deposits back automatically (the byproduct-of-work frame, Layer 1 §28). Handoff docs (like the two STATE files this plan was built from) retire.

Concrete deliverables

0. Falsify FIRST — the receipt-vs-asserted A/B, before items 1–3 are built (F-FALSIFY-FIRST). This is the cheapest, highest-information experiment in the entire program and it gates the expensive W3 machinery, not the reverse. GENOME-ROADMAP.md:22 names it "Stage 1 — THE load-bearing hypothesis," :24 sizes it "days, not weeks," and this workstream "Depends on: Stage 1 receipts" (:32). Same blast-radius task, two arms — asserted-trust vs a receipted claim (answer + one-command runnable recount + currency stamp); measure re-verification rate + token/wall cost (GENOME-ROADMAP.md:23). The prior it tests: agents reject asserted trust 6/6 (plato-frame.md:35 — even an oracle told "never wrong, don't re-check"); untested is whether a receipt moves them. W1 is now MERGED (#60), so the gate that blocked this is OPEN — the A/B runs immediately against the live ledger, before the brief-assembler/auto-deposit build is paid for. Per the ratified frame this is CALIBRATION, not a kill-gate (GENOME-ROADMAP.md:6): a null does not kill the program — it resizes W3 (the genome stays CI/human infra; the agent-substrate bet shrinks) before the expensive build, not after. Gate: >50% re-derivation-cost drop vs the ~50-call baseline (GENOME-ROADMAP.md:24) → proceed to items 1–4; <25% → resize before building.

  1. Genome-read dispatch brief — replace hand-priming: a brief assembled from ledger receipts + plato prime/plato_reach reads, scoped to the change's blast radius, each fact carrying its currency stamp + fence (Layer 1 §38).
  2. Session hook → genome read — the reflex-stack hooks (already built) carry a genome read into a cold session instead of a nudge (ROADMAP.md:45 — new job: "carry genome reads … replacing hand-written priming").
  3. Auto-deposit on derivation — instrumented work-paths deposit their derivations as a side effect (the structural-first delivery, Layer 1 §27; GENOME-ROADMAP.md:6 "agents deposit via instrumented work-paths").
  4. Handoff-doc retirement — demonstrate a cold agent resuming real work from genome reads alone, zero hand-written handoff (Layer 1 end-state #2).

File / module targets

Reuse: the reflex-stack hooks + plato prime (PRs #35/#37/#46/#47 — [UNVERIFIED exact paths; catalogued in ROADMAP.md:45, confirm against src/ before building]); the MCP face (src/mcp/server.mjs, src/mcp/http-server.mjs); the W1 ledger read API (src/deposit/store.mjs readActiveDeposit); the W2 service routes (/:repo/brief, /:repo/prime). New: a brief-assembler that composes receipts + reach reads into a scoped, stamped brief; an auto-deposit shim on the instrumented work-paths.

Quantitative gates + verification commands

  • "W3 green" (the gate that unblocks W6) = the MACHINERY bar, NOT the trust bar (Layer 1 §62). Because agents re-verify by default — our own strongest finding (6/6 re-checked an oracle billed as never-wrong; the one calibration data point re-derived everything anyway) — W3's green is defined as (i) structural consumption wired (briefs/hooks actually read from the ledger + W2 service), (ii) deposits flowing (agent derivations auto-deposit as a byproduct), and (iii) genome-read briefs measurably not-worse than hand priming. Clearing that unblocks W6. Lead recomputes each from raw (F-INDEP).
  • Priming-cost delta is UPSIDE, not the gate (Layer 1 §62): the >50% priming-cost-down target (end-state #2 + GENOME-ROADMAP.md:32) is a token+wall-clock measurement W3's instrument tracks (W3 is where token savings finally count — SPEC-deposit-layer.md:496 deferred them here), but it is voluntary trust-savings upside — never load-bearing for the W6 gate. If it never arrives, W3 is still green on the machinery bar and W6 is still unblocked; the >50% is a bonus, not a blocker.
  • A/B falsification (the calibration Stage-1 never finished): the receipt-vs-asserted arm. Only one data point exists (STATE-genome-build-night.md:95 — an agent re-verified a receipted claim anyway, 0 missing / 0 extra against 1,172 files, but no matched asserted arm + token diff). W3 must complete the matched A/B before scaling (see kill-criterion).
  • Every genome-read brief carries pin + receipt + fence or fails closed (F-FAIL-CLOSED, GENOME-ROADMAP.md:50).

Dependencies

Hard: gated on W1's ledger (Layer 1 §38 — briefs read receipts; no ledger, nothing to read). Soft: consumes W2's service as the delivery substrate. On the critical path (W1→W3→W6).

Kill-criterion test procedure

Layer 1 §38 + §62: "if genome-read briefs measurably underperform hand priming, study before scaling." The kill/study trigger is defined on the machinery bar, not the trust bar: it fires only if the genome-read brief is measurably WORSE than hand priming on leg (iii) of W3-green (the "briefs not-worse" bar above) — not if it fails to hit the >50% trust-savings number. Missing >50% is upside not arriving, never a kill (Layer 1 §62): a trust-savings null resizes W3 (calibration — the genome stays valuable as CI/human infra, GENOME-ROADMAP.md:6,:24), it does not stop the program; only a brief that is worse than hand priming triggers study-before-scaling. Procedure: the receipt-vs-asserted A/B (W3 item 0 / Stage-1's unfinished experiment) — same blast-radius task, two arms (hand-primed vs genome-read-primed), measure re-verification rate + token/wall cost; the >50% figure (GENOME-ROADMAP.md:24) is read as the upside target W3's instrument tracks, not the pass/fail line. Live risk flagged from plato-frame.md:35: agents re-verify structural claims by default (6/6 re-verified even an oracle told "never wrong, don't re-check") — so the genome-read brief's value may be cost/currency at scale, not trust-substitution; the A/B must be honest about which it proves, and because W3-green rests on the machinery bar, a trust null neither kills the program nor blocks W6.

Agentic wall-clock estimate

Item 0 first (F-FALSIFY-FIRST): the A/B falsification experiment ~2–3 h (dispatch + lead recompute) — cheap, and it gates the rest. W1 is now MERGED (#60), so W3 is unblocked and item 0 can run immediately. Only on a green A/B (receipts move behavior) is the expensive machinery built: brief-assembler ~3–4 h; hook rewiring (pipes exist) ~2 h; auto-deposit shim ~2–3 h. ~2–3 h to the load-bearing answer; ~9–12 h total if the A/B clears the bar — a null resizes W3 before the ~7–9 h build is spent.

Robert-vs-Claude lane split

Claude's lane: all build + the A/B experiment + measurement. Robert's lane: the "study before scaling" checkpoint if the A/B comes back null or ambiguous — a strategic resize call (does the agent-substrate bet shrink to CI/human infra? GENOME-ROADMAP.md:24), surfaced as a one-block ruling.

Frame-fitness obligations

  • Completeness-claim audit REQUIRED before code (F-COMPLETENESS-AUDIT): a genome-read brief emits an implicit verdict ("this brief is a complete-enough basis to start work"). Name the absence claim, enumerate blind axes (a receipt whose basis went stale between deposit and read; a fact the ledger never held; a fence the brief dropped), fail to an honest "primed-partial, re-derive X" fence rather than a fake "you're fully briefed."
  • Auto-deposit instrumentation (novel → Step-0): "capturing a derivation as a byproduct of work without the agent choosing to" — name the field's pattern (build-system provenance capture / OpenTelemetry-style side-effect emission) and its anti-pattern (deposits that are themselves unverified → poisoning the ledger; guard with W1's mint-clean + currency floors).

L2.W4 — The intent plane — GATED ON W1 + the two-plane contract

Deposited sources. Layer 1 §39 + end-state #7 ("Intent has currency; 'does this week's work still serve the point' is a checkable query"). GENOME-ROADMAP.md:9 (the ledger-schema ruling — the frame-fitness-corrected two-plane contract) + :8 (substrate ruling: build one core, Eve/Fides/DE Brain consume; steal Eve 2.0's doctrine; Eve is the intent-altitude projection). The whole SUBSTRATE-AUDIT.md is the deposited recon underneath this.

One-line machinery. Leased claims + rulings + North Stars live on the shared ledger core as a structurally distinct plane from facts — leased/TTL'd, and a resolved intent mints a new fact record, never mutates into one (GENOME-ROADMAP.md:9). Eve stops being a private reimplementation and becomes the intent-altitude projection of this plane (GENOME-ROADMAP.md:8).

Concrete deliverables

  1. The intent record type — structurally distinct from the W1 Deposit fact row: leased/TTL'd, its own lifecycle contract. Per the amended ratified contract (GENOME-ROADMAP.md:9"separate what may change; share what must be honest," #65 4b2f049, superseding the earlier "shared ID/addressing scheme ONLY" wording; echoed at SPEC-deposit-layer.md:225), the two planes share (as an obligation) the identity layer + the honesty envelope — the namespaced id/addressing scheme, the plane discriminator, and provenance/source/observedAt/occurredAt/receipt-or-fence carried on every row — and do NOT share lifecycle or payload: an intent carries lease/TTL fields a fact never has; a fact carries basis/receipt/global_hash/currency/supersedes an intent never has; and claim is per-plane (a fact's claim is settled truth, an intent's is an intention). (The deposited sources' "shares no fields" is shorthand for no shared lifecycle/payload — never zero shared identity or honesty, both of which the amended contract mandates.) The Stage-2 facts plane already committed to this seam (the reserved intent/… namespace + plane discriminator, SPEC-deposit-layer.md:271) so the intent plane slots in without reshaping facts.
  2. Lease/TTL semantics — the etcd lease-vs-resource split is the deposited field basis (GENOME-ROADMAP.md:9); an intent expires unless renewed.
  3. Intent→fact minting — resolution writes a new fact (receipted, currency-stamped), records the supersession, never rewrites the intent in place (append-only doctrine, GENOME-ROADMAP.md:9).
  4. Steal Eve 2.0's honesty contract — fail-closed inserts, the Provenance enum (ground|copy|inference|judgment|correction), bitemporal (observedAt vs occurredAt), VERIFIED|DRIFTED|UNVERIFIED receipts — all evidenced at file:line in SUBSTRATE-AUDIT.md:19 (eve/src/runtime/world-model.ts:31,74-119,583-633; receipt-store.ts:66).
  5. Eve seats first — as the projection — Eve reads/writes this shared core instead of its private world-model (Layer 1 end-state #4 + §39; Eve 2.0's doctrine is the best-proven, so it is stolen and Eve becomes the intent-altitude projection — Layer 1 §30).
  6. DE Brain seats second — a named W4 deliverable (Layer 1 §39, consumer arithmetic closed). DE Brain is the live-in-production consumer (connected MCP tools today, SUBSTRATE-AUDIT.md:22,45) and therefore the highest-friction migration — its seat is scoped here, not deferred to "someday": wire signal_lineage + supersession_audit.check_signal_dependencies() onto the shared facts/intents contract so DE Brain reads/writes the core instead of its private provenance+supersession reimplementation. Sequencing: after Eve (Eve proves the retrofit is portable) and before Fides (Fides seats at W8). [Migration cost against a live DE Brain read/write path is UNVERIFIED — measure on seating; fail-closed to "study before forcing" per the kill-criterion below, never assert it's cheap.]

Consumer arithmetic, closed (Layer 1 §39 — the four reimplementations collapse to one core). The SUBSTRATE-AUDIT's four private reimplementations (SUBSTRATE-AUDIT.md:58 — Eve, Fides, DE Brain, de-memory) each get an explicit disposition, so nothing is left as a silent-omission: Eve seats in W4 (deliverable #5), DE Brain seats in W4 (deliverable #6), Fides seats at W8 (GENOME-ROADMAP.md:40; Fides already cites Plato as its substrate — SUBSTRATE-AUDIT.md:21), and de-memory is absorbed and RETIRED as a pattern-donor, not seated as a consumer — its raw_content-vs-knowledge_index two-mutability-contract split (SUBSTRATE-AUDIT.md:23,50) is the ratified facts-vs-intents schema (GENOME-ROADMAP.md:9), so once that schema is the shared core, de-memory's separate implementation has nothing left to reimplement. The "fifth reimplementation never gets written" (the substrate ruling, GENOME-ROADMAP.md:8) — and the fourth (de-memory) is dissolved into the schema rather than migrated.

File / module targets

New plane on the same store as W1 (genome/deposits/ facts + a sibling intent store; plane discriminator per SPEC-deposit-layer.md:271). Pattern-donor (steal, don't import — different repos, ROBERT.md §6 no cross-checkout races): eve src/runtime/world-model.ts + receipt-store.ts (SUBSTRATE-AUDIT.md:19); Fides durable-memory.ts three-layer split + provenance-ordinal.ts trust ladder + mandatory-TTL fail-closed gate (SUBSTRATE-AUDIT.md:21); de-brain signal_lineage + supersession_audit.check_signal_dependencies() (SUBSTRATE-AUDIT.md:22); de-memory raw_content vs knowledge_index two-mutability-contract split + memory_sha currency pattern (SUBSTRATE-AUDIT.md:23,50).

Quantitative gates + verification commands

  • Two-plane structural gate — enforces AMENDED ruling #5 (GENOME-ROADMAP.md:9, "separate what may change; share what must be honest," ratified via #65 4b2f049, which supersedes the earlier "shared ID/addressing scheme ONLY" wording — retained there as superseded). The planes are separated by LIFECYCLE, never by HONESTY:

    • Shared, as an obligation on BOTH planes (the genome's admission contract — this is what "steal Eve's doctrine," Decision #5a, means): identity (id, plane) + the honesty envelopeprovenance, source, observedAt/occurredAt, and a receipt-or-fence.
    • Never shared (plane-private): lifecycle and payload — a fact carries basis/receipt/global_hash/currency/supersedes; an intent carries lease/TTL; and claim is per-plane (a fact's claim is settled truth, an intent's claim is an intention — same field name, plane-private meaning, never a shared-identical value). Envelope version is shared plumbing; each plane's payload versions independently.
    • Field test (amended #5): governs change → plane-private; states who/when/how-proven → shared obligation; says what's claimed → plane-private payload. A resolved intent produces a new fact + a supersession record, never an in-place mutation.

    Breaks — each MUST go RED (deterministic schema + behavior test, F-REGRESSION): (a) a row on EITHER plane missing any honesty-envelope field (provenance/source/observedAt|occurredAt/receipt-or-fence) — the fail-closed admission tooth ("share what must be honest"); (b) an intent row carrying a fact-only lifecycle/payload field (basis/receipt/global_hash/currency/supersedes), or a fact row carrying a lease/TTL field ("separate what may change"); (c) a resolved intent mutating in place instead of minting a new fact. Anti-vacuity (the pole that keeps this gate honest) — the ratified design MUST PASS: a fact row and an intent row that each carry the full honesty envelope + their own per-plane claim + disjoint lifecycle/payload → PASS. A gate that reds on the shared honesty envelope, or on each plane having its own claim, contradicts amended #5 and is FORBIDDEN (the false-RED pole). The live fact row already carries claim + a top-level schemaVersion (src/deposit/types.mjs:13, {leg_id,label,verdict}); the intent plane adds the same honesty obligation without importing fact lifecycle. Layer 1 §29's "never share a row shape" is the payload/lifecycle-disjointness pole; amended #5 supplies the co-equal "share what must be honest" pole. (The #5-vs-#5a tension this section originally flagged as open is RESOLVED — see L2.X #8.)

  • Lease expiry gate: an un-renewed intent past its TTL is not served as live (mirror Fides' mandatory-TTL fail-closed gate, SUBSTRATE-AUDIT.md:21). Break: serve an expired lease → RED.

  • Fail-closed insert gate: stolen from Eve — a missing provenance/source/observedAt/claim is REJECTED with a named reason (SUBSTRATE-AUDIT.md:19 world-model.ts:583-633).

  • The intent-currency query (DONE, Layer 1 end-state #7): "does this week's work still serve the North Star" runs as a checkable query against deposited intents. Verification: the query returns a receipted answer with a currency stamp, or fences.

Dependencies

Hard: gated on W1 (the shared ledger core must exist; Layer 1 §39 "joins after W1") + the ratified two-plane contract (GENOME-ROADMAP.md:9, already ratified — no new Robert call needed for the contract itself). Off the critical path (rides after W1, alongside W3).

Kill-criterion test procedure

Layer 1 §59 (the fragmentation risk): "if consumers don't migrate, that's a signal to study, not to mandate." Procedure — the consumer arithmetic is discharged one measured seat at a time, fail-closed between seats: (1) build the core + seat Eve first; measure whether Eve's private world-model can actually be retired onto the shared core (SUBSTRATE-AUDIT.md:19 flags this as "Moderate retrofit — the mechanism is portable but every ingest path is wired to Robert's personal sources"). (2) Only on a green Eve seat, seat DE Brain second (deliverable #6) — the live-in-production, highest-friction case; measure its migration cost against a real read/write path. If either seat costs more than the fragmentation it removes, study before forcing the next consumer (DE Brain after Eve; Fides at W8). de-memory is not in this sequence — it is retired into the schema, not migrated. This is a falsifiable per-consumer migration-cost measurement, not a mandate.

Agentic wall-clock estimate

Intent record + lease/TTL ~3–4 h; intent→fact minting + supersession ~2–3 h; porting Eve's honesty contract ~3–4 h; seating Eve as the projection (the retrofit) ~6–10 h (dominated by peeling the mechanism off Eve's personal-source wiring — SUBSTRATE-AUDIT.md:19); seating DE Brain second ~8–14 h (the live-in-production, highest-friction case — dominated by migrating a running consumer's signal_lineage/supersession_audit onto the shared contract without downtime, and UNVERIFIED until measured). ~22–35 h agent wall-clock, after W1. (Fides seating is W8, not counted here; de-memory is retired, not seated.)

Robert-vs-Claude lane split

Claude's lane: the core build + the Eve seating + all gates. Robert's lane: W4 kickoff timing — Layer 1 §51 makes this an explicit standing Robert call ("when Eve's seat gets built — after W1 proves, my recommendation"); and the North Star content itself (rulings + North Stars are strategic-intent facts — Robert authors, Claude deposits, ROBERT.md §5 "the strategic-intent call is his").

Frame-fitness obligations

  • The two-plane schema — Step-0 ALREADY DONE and CORRECTIVE (GENOME-ROADMAP.md:9): the scan corrected an initial two-slot-schema proposal; field basis = Command-Sourcing anti-pattern (event sourcing), tuple-space failure mode, etcd lease-vs-resource split, ledger append-only doctrine (Fowler / Modern Treasury). This scan is banked (session task a648895e55d9b9711) and is a review criterion, not to be re-litigated.
  • Completeness-claim audit REQUIRED for the intent-currency query (it emits a verdict: "this work still serves / no longer serves the North Star" — an absence claim about drift). Name the blind axes (an intent never deposited; a North Star with no lease; a ruling superseded but not re-minted) and fence each.
  • The substrate ruling forbids a 5th reimplementation (GENOME-ROADMAP.md:8, SUBSTRATE-AUDIT.md:58 — "four separate teams converged on the same three primitives with zero shared code"): W4 must compose from the proven donors, not invent (F-COMPOSE, constitution).

L2.W5 — Human projections — RIDES ALONGSIDE

Deposited sources. Layer 1 §40 + end-state #5 ("leadership dashboards and briefs render from the genome with the same stamps — 'current as of… blind about…'"). The two-altitude doctrine is ROBERT.md §4 (the Alie test; one-block rulings; agent-altitude blocks never in human surfaces) + the two-layer spec doctrine (constitution.md). ROADMAP.md:51 (Candidate D — the human surface, "support-not-show, scaffolding not display," PARKED but direction ratified).

One-line machinery. Leadership dashboards + briefings are projections of the genome, not hand-assembled — every rendered fact carries its currency stamp and its blindness fence ("current as of Tuesday; blind about X"), so a human surface can be degraded-but-honest and never a false green (Layer 1 §57). First surface: the leadership brief.

Concrete deliverables

  1. The leadership brief, rendered from the genome (first surface, Layer 1 §40) — the existing briefing skill's output sourced from genome facts + W2 service reads instead of hand-assembly. W5's first rendered artifact is specifically Alie's brief (Layer 1 §52): the story + the agent wall-clock already spent (W1–W3 + W5) + what W6 defers — because that brief is what discharges the Alie survival-frame gate on W6 kickoff (see L2.W6 Dependencies). It is delivered when W1 is demonstrable (now), and it is draft-for-Robert before it reaches Alie (team-facing words are trust-gated, ROBERT.md §6).
  2. The two-altitude render — Layer 1 (human, plain, Alie-test) on top; Layer 2 (machinery) fenced below, per the two-layer doctrine. Currency + blindness stamps on every fact ("current as of…, blind about…").
  3. Honest degradation — when a fact is stale or the genome is blind, the surface says so ("unverified since Tuesday") rather than omitting or faking (Layer 1 §57 — "degraded, never false").

File / module targets

Consume W2's service (/:repo/brief) + the W1 ledger; reuse the briefing/relay/prep skills as the render layer. [UNVERIFIED — exact briefing pipeline paths not in the deposited sources; confirm against the skill definitions before building.] New: a genome→brief projection that maps deposited facts to the two-altitude human surface.

Quantitative gates + verification commands

  • Every rendered fact carries a currency stamp + a blindness fence (F-FAIL-CLOSED, GENOME-ROADMAP.md:50); a fact with neither must not render as current. Break: render an unstamped fact as live → gate RED.
  • The Alie test (the human-legibility gate, ROBERT.md §4): the Layer-1 surface is readable cold by a smart non-technical reader; no agent-altitude blocks ({action, target, scope} lines) leak into the human surface. This is a gates.md User-Facing-Artifacts category build → the Experience-First gates apply (walk script precedes build; one-truth-one-home; walk-audit is the final gate).
  • Degraded-honest gate: a stale/blind genome produces a fenced surface, not an omission or a fake green (deterministic test).

Dependencies

Soft: rides alongside (Layer 1 §45). Consumes W2 (something to render from) and whatever facts W1/W4 have deposited — so it produces its first real surface after W1 has facts and W2 serves them, but it is not on the blocking critical path and its design (the two-altitude render) can start now.

Kill-criterion test procedure

Layer 1 gives W5 no explicit kill criterion (it is a projection of already-proven facts, like W2's hygiene pacing). The implicit falsification: if a genome-rendered brief is less trusted/useful than the hand-assembled one (the human re-checks it anyway — the plato-frame.md:35 re-verification finding applied to humans), study why before replacing the hand brief. Honest degradation is the design hedge: the surface is allowed to be stale-but-labeled, never wrong.

Agentic wall-clock estimate

Genome→brief projection ~3–4 h; two-altitude render + stamps ~2–3 h; Experience-First walk script + walk-audit ~2 h. ~7–9 h agent wall-clock, parallelizable.

Robert-vs-Claude lane split

Claude's lane: the build + the walk-audit. Robert's lane: this surface is team-facing / his own leadership surface — ROBERT.md §6 marks team-facing words trust-gated (carries strategic intent + sounds like him), draft-for-review until drafts consistently clear both bars. So the first leadership briefs are draft-for-Robert, not autonomous-send. Alie is the legibility test (ROBERT.md §1).

Frame-fitness obligations

  • The task→encoding scan is BANKED — reuse, don't re-derive: CLAUDE.md build doctrine names a banked visualization frontier scan (node-link vs matrix, task→encoding — docs/ai/STATE.md, viz research). Any dashboard visualization reuses it.
  • The two-altitude doctrine is the deposited frame (ROBERT.md §4 + the two-layer spec) — no novel mechanism; the obligation is fidelity to it (the Alie test), not a new scan.
  • User-facing → Experience-First is mandatory (gates.md): the walk script precedes the build.

L2.W6 — Neuron inherits (the business) — GATED ON W1∧W2∧W3 GREEN ON PLATO

Deposited sources. Layer 1 §41 + end-state #6 ("one shared-truth edit expresses across Neuron's fleet with per-site conformance receipts instead of per-site QA"). GENOME-ROADMAP.md:34 (Stage 4 — "this is where the factory becomes the business"). Known debt, deposited verbatim (Layer 1 §41): "the adapter's cited spec never existed — rebuild from the deposited recon, honestly." Confirmed live: NEURON-ADAPTER.md is absent from origin/main; src/adapters/neuron/index.mjs exists only as a stub (CLAUDE.md Structure: "adapters/neuron/ — STUB; read NEURON-ADAPTER.md before touching").

One-line machinery. The proven Plato deposit/receipt/currency machinery (W1) is carried to the practice genome via the Neuron adapter: one edit to shared truth → a computable blast radius across all fleet sites → per-site conformance receipts instead of per-site manual QA.

Concrete deliverables

  1. Rebuild the Neuron adapter spec, honestlyNEURON-ADAPTER.md from the deposited recon (not the phantom cited spec). This is the first deliverable and it is a negative-verdict discipline case: the claim "the spec never existed" is itself grep-verified (it is — absent on main), so the rebuild starts from confirmed absence, per constitution.md "grep-verify negatives before canon."
  2. The Neuron adaptergroundTruth + hashCurrency + graph() producer/consumer edges over Neuron's fleet, filling the stub (src/adapters/neuron/index.mjs). hashCurrency splits by fact kind (A3): template/code-fleet facts (site templates, components, code in ~/vetharness-sites) are git-SHA-backed — the proven code-repo adapter's verifyCurrency (committed-blob bytes via git show, SPEC-deposit-layer.md:285) works on them today, with zero W7 dependency; practice business facts (hours, services, staff, addresses — real-world truth with no commit SHA) get a currency stamp only from W7's source-of-record/freshness mechanism, and fail-closed to a fenced-honest stamp ("unverified since…", Layer 1 §57) until W7 delivers — never a fake "current."
  3. Fleet blast-radius with per-site receipts — one shared-genome edit → computed blast radius → a conformance receipt per affected site.
  4. First real receipted fleet change — ship one, measure wall-clock vs historical per-site QA (Layer 1 §41; GENOME-ROADMAP.md:36).

File / module targets

NEURON-ADAPTER.md (rebuild — currently absent); src/adapters/neuron/index.mjs (fill the stub); reuse the src/adapters/code-repo/ + src/adapters/scip-core/ adapter patterns (exist on main) and the W1 deposit machinery. scripts/neuron-remeasure.mjs + tests/neuron-reach-e2e.test.mjs exist — the e2e harness to build against. Neuron repo itself is ~/vetharness-sites (ROBERT.md §1) — read via isolated /tmp clone or worktree; never race the live checkout (ROBERT.md §6 data-loss scar).

Quantitative gates + verification commands

  • Per-site conformance receipt for every site in the blast radius; a site with no receipt is not certified-conformant (F-FAIL-CLOSED). Fleet-scale = ~492 practices (ROBERT.md §1) — the completeness claim ("all affected sites conformant") must fence per-site, not assert fleet-wide.
  • QA-delta (the DONE number, GENOME-ROADMAP.md:36): one real fleet-wide change ships with receipted verification; wall-clock vs historical per-site QA measured, lead-recomputed from raw.
  • DoD currency split (A3) — the DONE number is conditional on fact kind: W6's headline DoD (per-site receipts replace per-site QA) is fully achievable today for a template/code-fleet change (git-SHA currency, no W7), so the first receipted fleet change SHOULD be a template/code change — proving W6 without a hidden W7 block. A business-fact fleet change's receipts are only as trustworthy as W7's currency mechanism; until W7 lands, those receipts render fenced-honest ("current as of… / unverified since…") — a degraded-but-honest DONE, never a false green. W6 is therefore not silently blocked on W7, but MUST NOT emit a clean "certified-current" business-fact receipt while W7 is null (F-FAIL-CLOSED).
  • Adapter correctness vs the Neuron e2e harness (tests/neuron-reach-e2e.test.mjs); the swarm-differential discipline (independent resolver vs adapter output, the artifact that caught the 63-file lie — plato-frame.md:72) applied to the Neuron graph before any receipt is trusted.

Dependencies

Hard, prove-first gate: W1 ∧ W2 ∧ W3 green on Plato first (Layer 1 §41 "Prove-first gate: W1–W3 green on Plato first"; GENOME-ROADMAP.md:7 decision; F-PROVE-FIRST). What each "green" means for this gate, stated precisely so no false-green slips in:

  • W1 green = the MECHANISM is proven (deposit/receipt/currency machinery merged + sound, #60) — that is the thing W6 inherits, and it IS satisfied. It does not require W1's compounding payoff (>70% skip-rate, still unproven — see L2.W1); W6 inherits the machinery, not W1's kill-criterion outcome.
  • W3 green = the MACHINERY bar, NOT the trust bar (Layer 1 §62). Because agents re-verify by default (our own strongest finding, 6/6), W3-green that gates W6 is defined as structural consumption wired + deposits flowing + genome-read briefs measurably not-worse than hand primingnot the >50% trust-savings number (that is upside, tracked by W3's instrument, never load-bearing for this gate). This is what keeps W6 from being blocked forever on a trust payoff that may never arrive.
  • W2 green = the hardened standing service (auth/tenancy/never-serve-stale) plus its standing planted-lie drill live.

The flagship inherits only proven machinery — "expensive to be wrong" (Layer 1 §31). Conditional-hard on W7 (A3): the business-fact half of W6's receipts needs W7's no-SHA currency mechanism; absent it, that half degrades to fenced-honest rather than blocks (Layer 1 §57). The template/code-fleet half has no W7 dependency (git-SHA currency works today) — which is exactly why W7 stays off the critical path (Layer 1 §45) and W6's first proof can ship without it. Terminal on the critical path (W1→W3→W6). Un-parks W8.

Alie's survival frame is a GATE on W6 kickoff, not a memo (Layer 1 §52). W6 is "where the factory becomes the business" — the first workstream that touches revenue/runway — so Alie's frame (the survival-risk counterweight, ROBERT.md §1/§5) formally gates its kickoff: nothing revenue-deferring proceeds past W6's gate without her frame heard. Concretely, the gate is discharged by W5 rendering its first artifact as Alie's brief — the story + the agent wall-clock already spent (W1–W3+W5) + what W6 defers — delivered when W1 is demonstrable (it now is). Her pushback on that brief is a gate, not input (ROBERT.md §1). This is a Robert/Alie judgment gate, not a mechanical leg; it sits ahead of the W6 build, not inside it.

Kill-criterion test procedure

No explicit Layer-1 kill for W6 (it is inheritance of proven machinery, gated behind prove-first). The implicit falsification is the QA-delta: if the receipted fleet change does not beat historical per-site QA on wall-clock, the fleet-receipt bet doesn't pay at Neuron scale — study before rolling to more sites. The prove-first gate is itself the primary risk-control: W6 cannot start until the same machinery is green on Plato where being wrong is cheap.

Agentic wall-clock estimate

Rebuild NEURON-ADAPTER.md ~2–3 h; adapter groundTruth+hashCurrency+graph() ~8–12 h (dominated by Neuron's fleet-scale graph, 2,872 files at the pinned clone — plato-frame.md:62); fleet blast-radius + per-site receipts ~4–6 h; first receipted change + measurement ~3–4 h. ~17–25 h agent wall-clock, and cannot start until W1–W3 are green on Plato (the dominant schedule constraint, not the build time).

Robert-vs-Claude lane split

Claude's lane: adapter build, spec rebuild, the e2e verification, all git. Robert's lane: Neuron is his #1-focus revenue flagship (ROBERT.md §1) — the first live fleet change is client-facing / business-outcome (ROBERT.md §5, "unforgivable to be wrong", Layer 1 §31), so shipping it to real sites is a scope/values checkpoint surfaced as a one-block ruling, not autonomous. Reading + building the adapter is Claude's; pushing a change to 492 live practices is Robert's call.

Frame-fitness obligations

  • Completeness-claim audit REQUIRED before code (F-COMPLETENESS-AUDIT — this is the exact trap that shipped three times per CLAUDE.md): the per-site conformance receipt emits an absence claim ("no affected site is non-conformant"). Enumerate every axis Neuron's graph can be blind to (dynamic/string wiring in .astro/.vue/.svelte hosts, cross-repo edges, parse-failed sites) and fence each to a per-site CANNOT-CERTIFY, never a fake fleet-green. This is non-optional at fleet scale.
  • The Neuron adapter graph is a novel measurement instrument → Step-0 for anything beyond the code-repo adapter's already-proven frame (the code-repo adapter is frame-verified; the Neuron content/site graph is not). Name the scan when the adapter commits to a novel edge-extraction mechanism.
  • Negative-verdict floor (constitution.md "grep-verify negatives before canon"): the "spec never existed" claim is grep-verified (done: absent on main); the rebuilt spec must not re-cite the phantom.

L2.W7 — Currency beyond git (research) — RUNS THROUGHOUT

Deposited sources. Layer 1 §42 ("what 'current' means without a commit SHA — source-of-record pointers, freshness windows, honest fences. The one true research risk; run as falsification probes, not a build") + §57 (the risk hedge: "business-truth surfaces stay fenced-honest — degraded, never false"). The git-anchored currency machinery it must generalize beyond is verifyCurrency (src/snapshot/currency-proof.mjs, SPEC-deposit-layer.md:285 — "committed-blob bytes via git show, never working-tree bytes").

One-line machinery. Plato's entire currency proof today rests on a commit SHA (pin, tree_sha). Neuron practice facts and org intents have no commit SHA — "current" must be redefined via source-of-record pointers + freshness windows + honest fences. This is research, run as falsification probes, not a build (Layer 1 §42) — the single genuine open research risk in the whole program.

Concrete deliverables

  1. A falsification-probe set (not a build): for each candidate currency mechanism without a SHA (source-of-record pointer + last-observed timestamp; freshness-window TTL; content-hash of the source-of-record like de-memory's memory_shaSUBSTRATE-AUDIT.md:51), the cheapest experiment that would show it can't deliver a trustworthy "current as of / blind about" claim.
  2. The honest-fence design for each blind axis where no SHA-equivalent exists — the surface degrades to "unverified since Tuesday" rather than lying (Layer 1 §57).
  3. A frontier scan feeding W4 + W6 — intent currency (leases/TTL, the etcd split already banked at GENOME-ROADMAP.md:9) and Neuron-fact currency (no SHA) are the two consumers.

File / module targets

Research — no committed build target on the critical path. Probes live in a scratch/harness form; findings deposit into this plan + GENOME-ROADMAP.md. Generalizes src/snapshot/currency-proof.mjs's verifyCurrency contract; feeds W4's lease semantics and W6's hashCurrency.

Quantitative gates + verification commands

Research gates are falsification results, not pass/fail legs: each probe states a hypothesis ("a freshness-window TTL delivers a trustworthy currency claim for practice-fact X"), runs the cheapest disconfirming experiment, and reports honest nulls. Per constitution.md falsifiable-vs-judgment fork: where a cheap falsifying experiment exists, run it and fail closed on the result; where none exists (pure judgment on what "current" should mean), the job is to sharpen, not reject.

Dependencies

None blocking upstream — runs throughout (Layer 1 §45). Feeds W4 (intent leases, soft) and is a conditional-hard input to W6's business-fact receipts (A3) — those facts have no commit SHA, so a trustworthy currency stamp needs W7. A W7 null does not stall the critical path (W6's template/code-fleet receipts are git-SHA-backed and W7-independent); it degrades the business-fact half to fenced-honest (Layer 1 §57). Deliberately not on the build critical path so a null doesn't stall W1→W3→W6.

Kill-criterion test procedure

W7 is a kill-criterion instrument by design (it runs as falsification probes). The program-level hedge is Layer 1 §57: if currency-beyond-git resists, business-truth surfaces stay fenced-honest ("unverified since Tuesday") rather than lying — degraded, never false. So W7 "failing" doesn't kill the program; it collapses the affected surfaces to honest-degraded mode. The thing that would be fatal — a currency claim that lies — is exactly what the fenced-honest fallback prevents.

Agentic wall-clock estimate

Per-probe ~1–2 h; a first useful probe set (3–4 candidate mechanisms) ~4–8 h. Ongoing, low-intensity, throughout the program rather than a bounded sprint. Cheap by construction (falsification probes, not a build — the cost asymmetry constitution.md names).

Robert-vs-Claude lane split

Claude's lane: run the probes, report honest nulls, sharpen the judgment calls, feed W4/W6. Robert's lane: the definition-of-"current" is partly a judgment call (what freshness is trustworthy enough for a client-facing fact) — surfaced to Robert as a sharpened one-block ruling where no experiment can settle it (constitution.md falsifiable-vs-judgment fork).

Frame-fitness obligations

  • This IS a frame-fitness workstream — its entire job is Step-0 for the currency mechanism. Name the problem class abstractly: "provable freshness of a fact whose source-of-record is not content-addressed / not version-pinned." Field candidates to cite-and-check: cache-invalidation / TTL + ETag/Last-Modified semantics; event-sourcing watermarks; CRDT/vector-clock causality; de-memory's git-content-hash pattern (SUBSTRATE-AUDIT.md:51). Hunt the anti-pattern of each pick (a freshness window that silently serves stale = the Bazel under-declared-input scar in a new costume, SPEC-deposit-layer.md:188).
  • The banked intent-currency scan (GENOME-ROADMAP.md:9, etcd lease-vs-resource) is reused for the intent half; W7 owns the fact-half (no-SHA) scan.

L2.W8 — The authoritative record → certification layer — PARKED

Deposited sources. Layer 1 §43 ("practice genomes feeding Fides and AI surfaces; then cross-org receipts. Un-parks only when W6 ships its first receipted fleet change"). GENOME-ROADMAP.md:38 (Stage 5 — "DE stops selling pages; starts selling the layer pages are made from") + :42 (Stage 6 — "cross-org receipted truth… the TLS moment of the agent economy. Parked until Stage 5 proves the wedge"). ROADMAP.md:50,57 (Candidate C behavioral-capture + legacy-migration market, PARKED-still-live).

One-line machinery. The practice genome becomes a certified truth source: Fides answers pin to genome facts with currency stamps; external AI answer-engines get fed provably-current truth; then (the empire, deferred) one org's agents verify another's claims by checking receipts, not trusting counterparties.

Concrete deliverables (deferred — captured so nothing is lost, NOT scheduled)

  1. Fides consumes genome facts with receipts (Stage 5 first surface, GENOME-ROADMAP.md:40) — Fides already cites Plato as its "deterministic substrate" (SUBSTRATE-AUDIT.md:21, fides/docs/ai/PLATO-doctrine.md), so this is a consumer wiring, not a new core.
  2. External AI-answer-engine feed — provably-current practice truth to answer engines.
  3. Cross-org certification (Stage 6, the empire) — receipt-checking across org boundaries.

File / module targets

None yet — parked. Fides consumer wiring would target the Fides repo (Digital-Empathy/fides, isolated clone) against W4's shared core + W6's practice genome.

Quantitative gates + verification commands

Deferred. Stage 5 DONE (GENOME-ROADMAP.md:40): first surface (Fides or AI-search feed) consumes genome facts with receipts in production. When un-parked, inherits every standing floor (F-FAIL-CLOSED especially — a certified external claim that lies is the worst possible false green).

Dependencies

Hard: parked until W6 ships its first receipted fleet change (Layer 1 §43). Downstream of the entire critical path. Do not start; do not design-lock — Layer 1 §43 "Un-parks only when…".

Kill-criterion test procedure

N/A while parked. The un-park trigger is itself the gate: W6's first receipted fleet change must ship and beat historical QA before W8 revisits. Revisiting is deliberate, not automatic (GENOME-ROADMAP.md:43 "Revisit deliberately").

Agentic wall-clock estimate

Not estimated — parked, and estimating a parked workstream invites premature design-lock. The Fides consumer wiring is plausibly small (Fides already leans on Plato); the cross-org empire is open-ended.

Robert-vs-Claude lane split

Robert's lane dominates: un-parking is a strategic-timing + scope call (the wedge → the empire, Layer 1 §43; the "TLS moment" framing). Claude's lane: hold the parked state faithfully; surface the un-park trigger the moment W6 ships (protect the follow-through, ROBERT.md §5), don't let it sit.

Frame-fitness obligations

Deferred until un-park. When it starts, cross-org receipt-checking is a genuinely novel mechanism → a full Step-0 (name the class: "trust-minimized cross-boundary verification"; the deposited framing is the "TLS moment of the agent economy," GENOME-ROADMAP.md:42 — the TLS/PKI analogy is the field-anchor to scan against, not to assume).


L2.PROOF-BAR — the standing commitment, wired to raw (Layer 1 §64–§66)

Layer 1 §66 makes the program's stop-condition measurable: the three counters compounding four weeks, one ≥5× task, and W6's first receipted fleet change. This section maps each to the exact raw emit point that computes it — so "the numbers carry the claim" (§66) is a lead-recompute-from-raw, never an assertion. The instrument is MERGED (plato counters, PR #64) and computes all three honestly or fails closed — never a fabricated zero (src/deposit/counters.mjs:288; CLI src/cli/plato.mjs:501).

  • Counter 1 — facts minted ← W1's incremental gate banks it. runIncrementalGate returns banked for every leg that RAN, PASSED committed-clean, and deposited (src/deposit/incremental.mjs:160–182, via attemptMintappendDeposit); computeFactsMinted (src/deposit/counters.mjs:146) then counts every valid line of every genome/deposits/<leg_id>.jsonl (all historical mints, not just active tips) and is the only counter carrying a timestamped week-over-week trend (counters.mjs:38–40) — so it bears the "four consecutive weeks" test directly.
  • Counter 2 — re-derivations avoided ← W1's reuse summary. runIncrementalGate's reused tally (incremental.mjs:181) is the live count of legs skipped-with-proof; computeRederivationsAvoided (counters.mjs:232) recomputes it through the same decideReuse/computeBasisNow path without executing any leg, returning reusable + the backing receipt per skip. This is W1's payoff counter — ceilinged at 1/118 today (L2.W1) and rising only as legs promote to proven-hermetic Tier-A.
  • Counter 3 — reads ← W3's brief-read instrument (scaffold merged in #64; wiring owed by W3). Today reads reports {instrumented:false} honestly (counters.mjs:298) with the exact hook point named: READS_HOOK = src/deposit/store.mjs :: readActiveDeposit (counters.mjs:60), the single choke point every consumer of a settled fact reads through. W3 deliverables 1–2 wire a recordRead(repoPath, legId, consumer) there into a parallel reads ledger — never mutating the facts plane (the plane-separation ruling, Decision #5). Until W3 wires it, reads fails closed to "not yet instrumented," never a fake number.
  • Persistence + per-session report ← W2 / STATE (L2.W2 deliverable #8). The four-week compounding test needs the counters persisted across sessions: W2 owns snapshotting plato counters per week into the genome so the trend survives a session cycle, and every session reports the current counters into the STATE deposit it inherits from (Layer 1 §66). A named, forever-paced W2 hygiene obligation, not a one-time build.
  • The ≥5× proof (Layer 1 §66 part 2) is NOT a counter — it is one documented real task, recomputed from raw. It is discharged by either W3's receipt-vs-asserted A/B (W3 item 0 — the matched two-arm re-derivation-cost measurement) or a real-PR wall-clock recompute (the lead re-deriving net wall-clock/token cost of a task done by reading settled truth vs re-deriving it, from the emitted {ran, reused, banked, wall_clock_ms}SPEC-deposit-layer.md:492). Part 3 (W6's first fleet change + measured QA-effort delta) is the L2.W6 DoD number. All three are lead-recomputed from raw (F-FAIL-CLOSED — no false green on our own proof bar).

L2.X — Open questions + conflicts surfaced by the expansion (deposited, not resolved)

Per F-FAIL-CLOSED and the negative-verdict floor — surfaced for the lead, not silently resolved.

  1. W2 deploy target: Cloudflare (Layer 1 §37) vs the incumbent fly.dev (ROADMAP.md:47 plato-mcp.fly.dev). Layer 1 says Cloudflare; the live prod endpoint is fly.dev. This is a migration with real lock-in — flagged as a Robert-lane deploy call + a mandatory W2 Step-0 fit-check with a fit-or-abort criterion (A4): if the Workers frame fights the long-lived-stateful / per-commit-cache shape, abort the migration and stay on fly.dev (the hardening ships either way). Still open (the target is Robert's call).
  2. RESOLVED (#60). W1 Finding 2 — the "lost" second defect — was recovered and fixed. The merge was gated on a fresh independent adversarial pass that reproduced both defects and repaired root-cause (PR-#60 body: "two confirmed defects… repaired root-cause, re-verified by a fresh adversary: CONFIRMED-GREEN, gate 118/0"). No longer a gap on the critical path.
  3. Partially resolved (#60). The deposit code merged cleanly — the code path collision is gone. The doc collision persists benignly: origin/main carries the 45-line SPEC-deposit-layer.md stub while the authoritative 525-line v2 spec is still on origin/docs/spec-deposit-layer @ 322600b. Now a doc-drift cleanup (land the real spec over the main stub), not a merge-blocker. Lead call: the spec doc's merge order.
  4. RESOLVED (#60). The build/spec was independently re-verified after the CRITICAL F1 fix by a fresh adversary (reviewer ≠ author, F-INDEP): CONFIRMED-GREEN, gate 118/0, all falsify teeth proven to bite. The "would be a 9 / is a 9" gap is closed by a re-run, not an assertion.
  5. W3/W5 exact file targets are [UNVERIFIED] — the reflex-stack hook paths (PRs #35/#37/#46/#47) and the briefing-pipeline paths are catalogued in ROADMAP.md but not confirmed against src/; confirm before building (F-READ-RECEIPT).
  6. Stage-numbering vs workstream-numbering: GENOME-ROADMAP.md uses Stages 0–6; Layer 1 uses W1–W8. The mapping is close but not 1:1 (W1≈Stage 2, W2 is new/absorbed, W3≈Stage 3, W4≈the intent half of the schema ruling, W5≈Candidate D, W6≈Stage 4, W7 is the currency research surfaced as its own stream, W8≈Stages 5–6). Layer 1's W-numbering is canonical for this plan; the roadmap stages remain the ratified sequence doc. Worth a single reconciling pass so the two don't drift. Note the seam this finding #7 lands in: the roadmap's Stage 1 (the receipt-vs-asserted A/B) maps to no W of its own — it is folded into W3 (≈Stage 3), which is exactly how it came to sit behind an expensive build.
  7. RESOLVED here (A-review — F-FALSIFY-FIRST). The cheapest, highest-information falsification must not sit behind the most expensive build. GENOME-ROADMAP.md:22 names the receipt-vs-asserted A/B "THE load-bearing hypothesis" and :24 sizes it "days, not weeks" — yet it maps to no workstream of its own (see #6: Stage 1 has no W) and survived only inside W3, which is gated on the (now-merged, but expensive) W1 build. That inverts constitution.md "Falsify before you build." Resolution — within Layer 1, no critical-path change: the A/B is elevated to W3 item 0 and runs FIRST (F-FALSIFY-FIRST, L2.0 standing invariants); now that W1 is MERGED (#60) the gate is open, so it runs immediately, before W3's brief-assembler/auto-deposit machinery is paid for. A null resizes W3 (calibration, not kill — GENOME-ROADMAP.md:6) before the expensive build, not after. Layer 1 §45's critical path (W1→W3→W6) is unchanged — this sequences within W3's front edge. Surfaced (not silently absorbed) because the ratified direction (:6) treats Stage 1 as calibration — but "not a kill-gate" was never license to build the expensive thing first.
  8. RESOLVED (#65 4b2f049, amended ruling #5) — which envelope fields the two planes share. Surfaced as an open #5-vs-#5a tension: Decision #5 originally said facts↔intents unification is "a shared ID/addressing scheme only," while Decision #5a (GENOME-ROADMAP.md:8) says steal Eve 2.0's provenance/bitemporal honesty contract — which, if both planes carry it, is a shared envelope beyond {id, plane}. Robert ruled it via #65: ruling #5 was AMENDED to "separate what may change; share what must be honest" (GENOME-ROADMAP.md:9; the original wording is retained there, explicitly superseded). Resolution, now encoded in the L2.W4 two-plane gate above: planes separate by LIFECYCLE, never by HONESTYshared as an obligation: identity (id, plane) + the honesty envelope (provenance, source, observedAt/occurredAt, receipt-or-fence); plane-private: lifecycle, payload, and claim (per-plane meaning); envelope version shared, payload version per-plane. That is exactly #5a's "steal Eve's doctrine" reconciled with #5's separation — no open call remains for Robert here. ⚠ Currency note (F-FAIL-CLOSED, mirroring the L2.0 correction block): this plan's L2 machinery was first drafted against the pre-#65 "shared ID/addressing ONLY" wording (the incorporation branch was cut before #65); #65 landed on origin/main at 2026-07-01 22:24 during this incorporation and is folded in here against the live tree, not inherited from the stale read — the same drift Plato exists to catch, caught in Plato's own plan.