Three independent designs, three judge courts, four research legs — folded into one spec. The reframe: the detectors already run live; the build is the loop that turns every human reply into labeled truth — teaching Neo’s memory and grading each detector’s right to exist. Ships dark; every ping must be news by mechanism, not hope.
Status: THE SYNTHESIS. Robert ordered the 10/10 treatment; this document is the output
of it: 4 research legs (Arby strip-mine · Neo world-reality audit · external frontier with
citations · privilege prior-art), 3 independent designs with forced-apart mandates, 3 judge
courts (rulings 9/10 · frame · ten), the earlier v1 review pair's 7 machinery refutations —
all folded by the lead. SUPERSEDES signals-v1-2026-07-15.md. Robert's red-pen is the
external judge of this frame; build starts on his word. Everything ships DARK; the ratified
flip gate (trust meter + his word) is unchanged.
Two facts changed the problem underneath us tonight:
Everything ships dark: v1 banks to a Robert-visible ledger and interrupts NO ONE. The
shadow ledger fills with real candidates, refute verdicts, and **the drafts of what Neo
WOULD have said this week** — so the power is visible before a single ping is spent. The
meter has TWO axes: precision (fraction of graded pings that were news — floor ~90%, the
field's number) and coverage (a class that quietly stops firing flags itself — silence is
the same death as noise, reached from the other side). A class goes live per-class, on
meter + your word + a proven one-flag revert; below the floor it auto-reverts to dark.
grading), plus auto-revert after.
the whole risk is the table (your call #3) and its red/green fixture.
axis catches a class going quiet; no synthetic labels, ever — a fabricated label would
poison the exact number the flip rests on.
route+door → compose+deliver → resolution capture → genome deposit → meter update.
Adding detector #2..N = a registration.
deal_warm_and_dying (stamped at promote.ts:421-427; readsituations.ts:1295). v2 registrations: C2 going-stale (closure-engine), C9 stale-thread /
meeting-no-followup, past-close/slipping, checkout-stall (classifyDeal verdicts). NOT
sources: say-do ledger (appendActed newly wired but autonomy accounting, not staleness);
ask-ledger divergence (watches Neo's own promises).
observation{text, receiptQuote, receiptRef}, daysSinceMotion, stripeDollar|null,
firedAtCycle} — EDGE-triggered: emitted only on transition into the state (the durable
claim latch keys signal:<dealId>:<transitionCycle>; a healed-then-restarved deal is a
NEW transition). Freshness guard: gate on deriveDaysSinceMotion's honest null
(salesforce.ts:415-428), NEVER last_touch (the :441-445 now-fallback trap). Behavior
outranks stage (the documented stage-alone bug class): the adapter consumes the
reconciler's whole verdict, never raw stage.
receipt-vs-source · [M] freshness provenance · [J] already-resolved), anchored with a
contradicted fixture that MUST fail; refuter error → INCOMPLETE, re-run, counted.
severity (dollars × days, receipted) selects CHANNEL ONLY, with the mechanical invariant
+ test: no code path deletes or hides a candidate (bank is durable + readable). Surface
iff edge-trigger AND (accumulation ≥2/account/90d OR jump-queue class).
audience: "robert-only"|"team" on GenomeDeposit +EntityFileComposeRow, stamped at deposit from SOURCE; second allowlist check in
selectEntityFileRowsForCompose parallel to MECHANICAL_COMPOSE_PROVENANCE (closed enum,
allowlist, never denylist — the refuted shape); unstamped → robert-only. The
source→audience table is a single reviewable const (Robert red-pens). Leak fixture:
a planted robert-only fact MUST be absent from a team compose; removing the door check
MUST turn it red. Resolution deposits derive audience from the REPLY's source (judge
finding: never hardcode team).
ledger (asker signal:<class>, channel:ts synthesized as signal:<dealId>:<transitionCycle>
— satisfying logAsk's key contract); the owner's reply in-thread transitions it
(in-progress/done per the existing exact-affirmation + state machine); the closure text is
the deposit; a reply that fits no transition surfaces to Robert's queue as unparsed —
never guessed. Delivery of ledger-born asks (no Slack arrival event) is the ONE new
delivery lane: the ack path gains a deliverLedgerBorn entry using the same compose seam
+ allowlist (the v1-review finding, closed).
fired-per-window vs. trailing baseline; both recomputed from raw rows on disk; flip =
[M] meter ∧ [M] sample-size ∧ Robert's [J] word; live class auto-reverts below floor.
once) · vacuity BOTH poles honest to the 93% base rate (a correct detector fires on most
of a starved board — the vacuity check is on TRANSITIONS not states) · refute anchor MUST
fail · leak fixture red/green · claim-latch restart dedupe · flag-off byte-identity
(SIGNALS_ROUTE + the existing pair) · meter recompute-from-raw · the walk (three phones:
Robert grading dark, Derek receiving the first live ping, the quiet day) precedes any
flip.
all dark. v1.5 = work-on-arrival research. v2 = register remaining classes, accumulation
across classes, N-way audience lattice (the charter's named debt), richer detectors the
resolutions unlock (competitive displacement, champion turnover — feedable only because
stage 7 exists).
tonight) → signals dark → per-class live on meter + word.