Carry Plato’s proven truth-and-receipt machinery onto the business — the 14-site Neuron fleet. Given a change to a shared piece of the fleet, compute for each client site whether it was affected or untouched, and make every “untouched” carry a re-runnable proof. A provably-untouched site is a site you can skip with proof, not skip on faith.
The picture is the index — each node jumps to where that step is decided. Follow one shared-package change from edit to per-site verdict.
Reference strip: Decisions · The one idea · Risks · Your calls · How we’ll know · Kill criterion · The machinery (Layer 2)
Plato has proven, on itself, that it can tell an agent the truth about a codebase cheaply: what’s here, what’s wired to what, and a receipt that proves the answer is still current. W6 carries that machinery onto the business — the 14-site Neuron fleet Digital Empathy actually runs.
The payoff is one specific, expensive thing made cheap. Today, when someone changes a shared piece of the fleet — a component every site renders, a build step every site runs through — the honest answer to “which of our 14 client sites did that just change?” is nobody’s. So the whole fleet gets re-QA’d by hand, or worse, nobody checks and a site breaks silently. W6 replaces that with a computed answer that carries its own proof.
packages/* — a component, a build step. That’s “a change” (one commit’s worth of touched files).
NeuronAdapter(repoPath) composes the code adapter over packages/**+scripts/** and adds three Neuron pieces: groundTruth (delegates), currency via buildVerifiedSnapshot → hashCommittedBlob (never hash genome.json — authority-deprecated), and graph() with the site-wiring layer kept as a separate, fenced relation. Fleet universe = the 14 enabled sites in sites-manifest.json. Full: L2.1.
scripts/assembly-line.ts iterates siteIds and renders package code over site content), NOT an import edge. The pipeline-reach model over-approximates toward AFFECTED. Where it hits an .astro component Plato can’t parse (38 of them), or a site whose per-site config selects code dynamically — the answer is CANNOT-CERTIFY, never “untouched.” Full completeness audit (8 blind axes): L2.2.
{basis, receipt, currency} proof in the exact shape W1’s gate already banks. We’re not inventing a proof format; we’re pointing the proven one at the fleet.
So the bar is deliberately lopsided: cheap to say “affected,” expensive (proof-gated) to say “untouched.” Over-approximation is safe (extra QA); under-approximation is the nightmare.
sites/ layout, the fleet manifest, the .astro fence). Consequence: small build, low risk, hard-won correctness carries over free.{basis, receipt, currency} — the record W1 banks today. Consequence: auditable and re-runnable on day one; the standing planted-lie drill already knows how to attack that shape./tmp clone. Consequence: full-velocity, gate-free build — Alie’s survival-frame gate sits only at the first live expression, which this spec does not reach.If almost every change hits an .astro component or ambiguous wiring, nearly everything returns CANNOT-CERTIFY — a true result, but useless.
Caught by: the kill criterion. If the split can’t beat “re-QA everything” on a real change, we stop and study the wiring model before building more.
The nightmare: a site wrongly called untouched, and it actually broke.
Caught by: a falsify gate — a planted cross-site dependency MUST flip that site’s verdict from untouched to affected, or the gate goes red.
An altered “untouched” receipt would make the proof theater.
Caught by: a falsify gate — a deliberately-tampered site-receipt MUST be detected by re-running it. Gate leg, not hope.
Then we’re now calling something true “unverified.”
But: “unverified” is the honest state of a claim with no on-disk evidence, and it’s recoverable — re-run the comparison and it earns “verified” back. A false “verified” is not recoverable the same way. Degraded-honest beats confidently-wrong.
Annotate anywhere — hover a block and click the ✎, or use “Comment on anything.”
A “shared-package change” needs a unit. I chose the git commit (blast-radius computed for that diff). The alternative is a looser multi-commit “changeset.” My rec: commit-scoped — it’s the unit that already carries a currency pin. Your call if you want the looser unit; it changes nothing about the proof shape, only the boundary of “a change.”
W6’s done-bar is one real fleet-wide change shipped with receipts and a measured QA delta. I’ll pick a low-stakes shared-component change on the clone and measure. Flagging it because the choice of which change is the kind of thing you may want eyes on — it’s the headline number (“we skipped N of 14 sites with proof”) the Master Plan’s proof-bar #3 rests on.
The full build contract lives in the canonical Markdown (docs/ai/SPEC-w6-internal.md, Layer 2): the ground-truth re-derived from the pinned clone at b68a4b1; the adapter interface reuse; the 8-axis completeness audit; the pipeline-reach model with its frontier-brief prerequisite; the per-site deposit shape; the G1–G6 gates with named deliberate-breaks; rollback and dependencies. Drill into the key pieces:
UNTOUCHED absence claim is gated on clearing every axis: A1 build-pipeline path (not imports), A2 transitive code reach, A3 .astro non-graph hosts, A4 dynamic/string pipeline dispatch, A5 direct content-file changes, A6 the fleet roster itself, A7 parse-failed files, A8 clone staleness. Any blind axis → CANNOT-CERTIFY. Same pattern as the shipped conformance verdict (three answers, never two; green scoped to exactly what’s provable).
affected (task-graph + input-hash reach). Named anti-pattern of the pick: under-declared inputs → false “unaffected” (bazelbuild/bazel#11057) — exactly the nightmare A1/A4 fence against. The brief is a build prerequisite, non-author-owned.
NEURON-ADAPTER.md never existed on any branch/commit. Every live authoritative pointer (CLAUDE.md, SPEC.md, src/adapters/neuron/index.mjs, GENOME-ROADMAP.md) is rewritten to point at this spec with a “never existed” note. The SPEC.md:164 “proven 73/73 byte-identical (verified)” figure is relabeled UNVERIFIED with provenance. Grep gate G5 enforces zero live dangling pointers. A quietly-erased false “verified” is how a truth layer launders its own history — the exact failure mode Plato exists to catch.