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.sh → 124 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 entries — git 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:
- 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").
- 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.
- 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.
- 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
- 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).
- Tenancy — multi-tenant repo isolation so one caller cannot read another's genome; per-tenant
--repo scoping enforced server-side, not client-trusted.
- Multi-repo —
GET /repos already lists; harden concurrent multi-repo serving (the commit-keyed
cache is already per-repo).
- 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).
- 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).
- 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).
- 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).
- 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.
- 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).
- 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").
- 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").
- 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
- 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.
- Lease/TTL semantics — the etcd lease-vs-resource split is the deposited field basis
(
GENOME-ROADMAP.md:9); an intent expires unless renewed.
- 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).
- 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).
- 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).
- 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 envelope —
provenance, 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
- 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).
- 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…").
- 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
- Rebuild the Neuron adapter spec, honestly —
NEURON-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."
- The Neuron adapter —
groundTruth + 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."
- Fleet blast-radius with per-site receipts — one shared-genome edit → computed blast radius →
a conformance receipt per affected site.
- 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 priming — not 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
- 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_sha — SUBSTRATE-AUDIT.md:51), the cheapest experiment
that would show it can't deliver a trustworthy "current as of / blind about" claim.
- 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).
- 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)
- 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.
- External AI-answer-engine feed — provably-current practice truth to answer engines.
- 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 attemptMint→appendDeposit); 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.
- 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).
- 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.
- 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.
- 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.
- 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).
- 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.
- 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.
- 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 HONESTY — shared 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.