KDG Lab · specimen №008 · run 2026-07-14 · exploration lane
The wire room
What should KDG's nervous system notice, and how does it speak honestly? The house brief is counts-never-verdicts; an alert is, by nature, a judgment that something deserves attention. This experiment tests one way to reconcile them: a sensor may fire only on a condition pre-registered in standing doctrine, citing its doctrinal parent, and its every sentence is counts, ids, and citations — never interpretations. Below, live: a deterministic generator playing six synthetic KDG days over the №004 board, with seven parented sensors on the wire. Watching a day happen is the exhibit.
Six days, seeded and named pick one; the stream regenerates deterministically — same seed, same day, every load
loading the room…
The wire sensor firings only — INTERRUPT at its moment, MORNING riding the 07:00 brief, BOARD-ONLY never here at all. Tap any fact for its evidence.
The board the №004 grammar consuming the same stream — counts to the clock, every number carrying its evidence
The sensor rack seven armed, each citing its doctrinal parent — and the PROPOSED shelf, greyed, wearing the doctrine it would need
Every event here is synthetic (contract kdg-d1-spine-v1, verbatim event names; every business invented) and every render is a pure function of (stream, clock) — scrub backward and nothing un-fires. Deep-link a moment with ?scenario=cohortmix&t=0914; the lever announces itself. Brief-time 07:00 and quiet hours 21:00–08:00 are rendered as the demo's parameters, labeled — the standing values belong to the brief and the messaging worker, not to this room. No LLM anywhere in this page; the generator is arithmetic you can read.
The grammar, argued
- An alert is a judgment — so the judgment is made once, upstream, and versioned. The reconciliation is pre-registration: doctrine (the batch framework's read dates and kill bar, the brief's dead-man rule, the T+0 starting gun, D5's open-threads spirit, payment-event handling) already contains the house's decisions about what deserves attention. A sensor is doctrine's condition transcribed into code, citing its parent; a firing is that condition matched, stated as counts with event ids. The wire never judges nightly what doctrine judged once. This is the same move the tender made for autonomy — a charter you can diff — applied to attention: alerting you can diff.
- MATCHED is arithmetic, not an adjective. The №001 gate set the precedent: a frozen rubric may say WEAK because the rubric was ruled on before the data arrived. The kill bar may print MATCHED at a read because the framework wrote the bar first. What stays banned is the wire's own vocabulary of judgment — no "underperforming," no "healthy," no colors that mean things. State words come in caps from pre-registered instruments (the tender's GREEN); everything else is a count.
- Delivery class is doctrine's judgment too. INTERRUPT / MORNING / BOARD-ONLY are assigned per sensor, argued below, and rendered as categorical text on uniform chips. Urgency is not a color here; gravity rides in the quoted doctrine.
- What has no parent does not fire. The PROPOSED shelf renders the sensors this experiment judged valuable but could not parent — greyed, unarmed, each wearing the doctrine it would need. The shelf is the pipeline: doctrine first, sensor second, through the front door.
- Facts carry their as-of. A read fires at 07:00 with counts frozen at 07:00 and their ids attached; the board keeps moving all day. On the kill-bar day a lone 14:32 scan lifts the board's scanned count past the bar's arithmetic hours after the read fired — both are true, because each carries its window. Neither is a contradiction; that is what evidence is for.
Seven sensors, each argued to its class
Parents P1–P6 are registered in experiments/008-wire-room/DOCTRINE.md, filed before any sensor was coded. Tap any sensor in the rack above for its condition verbatim — the room shows its own source.
| sensor | parent | class | the argument |
|---|---|---|---|
| first-scan-of-cohort | P4 · T+0 starting gun | INTERRUPT | Once per cohort, arms the framework's clock, value decays in hours. The one ping the mail earns. |
| payment.failed | P6 · payment-event handling | INTERRUPT | Money mid-flight; recovery windows are short; doctrine handles payment events the day they land. |
| dead-man | P3 · the brief's dead-man rule | MORNING | The condition is defined at brief-time by its own rule — it cannot ring earlier without becoming a different rule. |
| read-date-reached | P1 · framework read dates | MORNING | "The date is here, the counts are assembled, links inside." The read itself is a coffee act and stays human. |
| kill-bar-condition | P2 · framework kill bar | MORNING | Evaluated only at reads — a continuously-armed bar would pre-read the checkpoint from below. A halt is a decision, not an emergency; it rides the same brief as everything else, at full arithmetic. |
| sms-outside-quiet-hours | P5 · D5 open threads | MORNING | The reply window is closed by the channel's own rule until 08:00; a 23:47 ping could only tempt a rule-breaking reply. First coffee action instead. (In open hours the phone itself is the native interrupt — the wire won't re-ring what already rang.) |
| scan-no-text-72h | P5 · D5 open threads | BOARD-ONLY | A state, not an event — it stays true until acted on, and pushing a state daily is a nag wearing a bell. It sits on the board's open-loops list, sought when the list is worked. |
The six days, measured
Numbers below are the instrument's (check_wire.js, committed beside the experiment log — determinism, designed firings, a grammar audit over every fact line of all six days, and a taxonomy audit; GREEN before the room was trusted).
- LANDING DAY — the wire speaks once, exactly when doctrine says the mail earned it. 112 events; scans clump 09:14–09:38, 11:05–11:40, 13:34–14:07 the way carrier routes land; twelve visits, one thread, an honestly quiet evening. One INTERRUPT all day: first scan 09:14, slug + event id, T+0 armed. The clumps themselves are plain on the board and nameless on the wire — see the shelf.
- DEAD WEEK — silence is a registered fact, not an absence of signal. Zero events today. The 07:00 brief carries exactly one line: spine silent, 0 events in 24h, last event Jul 21 09:12 (e-0100). And at 09:12 a 72h open-loop fact lands board-side — the wire noticing an aging loop on a day the spine said nothing.
- HOT STREAK — the best day is board business, and the wire's near-silence is the design. Ten visits, two threads moving, a 13:09 call tap — zero interrupts, because T+0 fired days ago and nothing else is parented. The brief carries last night's 22:10 quiet-hours text; tonight's 23:47 queues for tomorrow and the room says so. The day's story lives entirely in counts on the board.
- COHORT MIX — every fact wears its cohort. Two INTERRUPTs seventeen minutes apart: 2026-07-batch2: first scan 09:14 (its T+0) and payment.failed 09:31, client named, amount carried. Batch-1 keeps working its funnel in the same feed without a pixel of confusion — batch_id rides every sentence, the S52 cohort order holds on the board.
- CHECKPOINT WEEK — the read stays human. The brief is exactly two facts: M+21 · first checkpoint is today — counts assembled as of 07:00: mailed 96 · scanned 10 · engaged 4 · tap_text 2 · tap_call 1 · threads 2. The read belongs to the framework doc — and the kill bar printing its floor arithmetic, not matched. No interrupt. The board keeps counting after 07:00; the read's numbers stay frozen with their ids.
- THE KILL-BAR DAY — facts alone carried the gravest condition. 308 cards across two cohorts, four scans, zero threads. The brief: three count-lines — spine silent; batch-B's M+10 counts assembled (mailed 150 · scanned 1); kill bar MATCHED at this read — cumulative mailed 308 (≥300 floor) · scanned slugs 4 (4/308 = 1.3%, bar 1.5%) · first-contact threads 0. No siren, no red, no adjective — and nothing missing either: the sentence carries the framework's own halt condition at full weight because the framework pre-registered it as arithmetic. The two earlier reads (Jul 4, Jul 15) printed not matched — under the 300 floor: today is the first read past the floor, and the wire's record shows it saying so only when it became true.
The temptation log, verbatim
Rule 4 of the brief: the refusal is a finding. Every time a sensor wanted an adjective during this build, it was logged and refused — reproduced here from experiments/008-wire-room/LOG.md:
- The INTERRUPT chip wanted a warmer color. An urgency tint is a judgment color with a schedule. Refused: chips are uniform; the class text is the only difference, and the stylesheet enforces it by absence.
- The kill-bar line wanted red, or bold, or a siren glyph. Refused — it renders in the same type as a first scan. One deliberation owned: MATCHED stays, in caps, because state words from a pre-registered instrument are the tender's GREEN precedent; styling them would be the wire's own voice.
- The read-date template's first draft said "batch-1 looks light." A reading, pre-read. Refused: counts, then the read belongs to the framework doc.
- The dead-man line wanted "still nothing." "Still" smuggles a trend into a fact. Refused: 0 events in the 24h before 07:00 — last event, timestamp, id.
- HOT STREAK wanted a "best day yet" line. A superlative is a verdict about every other day. Refused: the counts stand alone, and the wire stays quiet on the best day too — symmetric honesty.
- The 13:09 tap_call screamed for an interrupt. Someone may be about to call! But no standing rule says a ping is owed, so arming it would be the wire judging on its own. Refused onto the PROPOSED shelf, wearing the call-readiness doctrine it would need.
- The 09:14–09:38 clump wanted a "mail is landing" synthesis line. Delivery-wave detection needs the framework's own N and M; without them the thresholds are the wire's taste. Refused onto the shelf.
Where the grammar strained — measured, not hidden
- The framework speaks in a rate; the brief speaks in counts. The kill bar's 1.5% is a division. The room's resolution: the wire performs the framework's arithmetic only at the framework's read moment and quotes it as the framework's own (4/308 = 1.3%, bar 1.5%) — it never coins a rate of its own on any other line or day. If that boundary is wrong, the fix is a doctrine edit, not a render patch.
- Salience is real and this room refuses to fake it. A matched halt condition renders in the same quiet type as everything else; its gravity rides in the quoted words "halt condition" and in the reader knowing the doctrine. Whether that is enough for a 6:55 phone glance — or whether the INTERRUPT class must widen — is not answerable from a rendered room with no stakes; it is the graduation's first empirical question, flagged here rather than settled by a color.
- The wire is structurally blind to unparented reality. It said nothing at the 13:09 call tap and nothing at the 09:14 clump — by rule. Six days showed that silence reads as design, not failure, because the shelf renders what the wire is declining to say and why. A wire without a visible shelf would be indistinguishable from a wire that missed things.
- One honest gap in the fiction: "zero wins" is the framework's term and the spine has no win event — the room stands in
COUNT(DISTINCT thread_id)and says so on the face of the fact. The real definition is the framework's to give; the sensor must not arm in production until it does.
The finding
Pre-registration reconciles the brief with the bell. An alert can live inside counts-never-verdicts if and only if the judgment is made once, upstream, in versioned doctrine — and the wire only ever reports a registered condition matched, as counts with ids and its parent named. Tested across six rendered days: the grammar sufficed everywhere it was tried, including the worst day — the kill bar carried at full gravity as pure arithmetic precisely because the framework had already done the judging, and the wire did not fall silent when attention mattered most; it got quieter and more precise. The hypothesis survived its stress test with two strains owned rather than solved: salience (gravity without color — flagged for graduation to answer empirically) and rate-speaking doctrine (resolved by quoting the framework's arithmetic only at the framework's moment). What the wire cannot do, structurally, is notice what the house never decided deserves noticing — and the six days showed that this is the feature: the temptation log and the PROPOSED shelf are the pipeline by which new noticing gets decided, through the front door, as doctrine first and sensor second.
The graduation sketch — one paragraph, as EXPLORATION owes
If a COO ruling ever wants this real: one Worker cron over the production D1 spine, post-Jul-31 (the frozen-instrument window is respected; nothing arms before the batch-1 read), carrying only the parented seven — the sensor registry a versioned file whose review rule is no parent citation, no merge, with this room's adjective audit running in CI against every template. INTERRUPT delivers on the phone's native channel; MORNING appends to the brief the house already reads; BOARD-ONLY lands as rows the (token-gated) ops board serves. Two contract questions travel with it, flagged not assumed: stable event ids for evidence links (rowid or ULID — this room minted e-NNNN and said so), and the framework's own definition of a win before the kill-bar sensor arms. $0 inside free tiers; the synthetic six days stay here as the acceptance fixture, exactly as №004's stream did.
Photographed from the record
Not mocks: the live room at phone width, mid-playback.


