Interventions · countable events
When a commit leaves its lane, extra work triggers — automatically
Every commit here gets a deterministic, LLM-free drift receipt (the mechanism). When a receipt lands out of lane (off-lane share above the 15% threshold), that is one countable event — and it triggers an intervention: a sensemaking pass explains the drift, the fixes get checklisted, and the story is published here. Countable events are what make a lane priceable; this page is the count. Each entry is a structural alert, not a scolding — a diagnosis, not a verdict — and the ledger you are reading is a loss ratio, published by the house that carries it. Stated exceptions are what surplus looks like in print.
Out-of-lane receipts per day
The interventions — why · fix · checklist
2026-09-28 · 🧪 laboratory · offPct 41
feat(vna): C394 — a one-page audit-chair brief, shaped like a SOX exception report, off this repo's own history
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 13→11 over 3 commits since
Open the signed attestation →2026-09-28 · 📐 architect · offPct 23
spec(vna): declare C397–C401 — the counter that can see a stranger, the door's largest halt, and the three market confirms
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 21→14 over 33 commits since
Open the signed attestation →2026-09-28 · 🔨 builder · offPct 16
feat(blog): the pulse staple — live iamfim 24h/7d renders, HUMAN-80 and the unverified multiple, beside the sticker
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 27→22 over 6 commits since
Open the signed attestation →2026-09-28 · 🧪 laboratory · offPct 44
spec(vna): C367 — the book club intro becomes the unsigned testimonial
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 13→11 over 3 commits since
Open the signed attestation →2026-09-28 · ☕ network · offPct 20
feat(bookclub): coding is flying — no attest-demo, no paste-a-prompt, the $20 beside the liability
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct —→0 over 12 commits since
Open the signed attestation →2026-09-28 · 🧪 laboratory · offPct 58 · mistagged
feat(vna): C395 — signer-export.mjs, one plain-text page per period for the person NYDFS 500.17/DORA Art. 5/the FTC chair name as answering
Why it left the lane: The event is scoped to room 🧪 laboratory, but the two changed files — scripts/vna/signer-export.mjs and tests/vna/c395-signer-export.test.mjs — appear nowhere in laboratory's owned surface (.claude/, .mcp.json, scripts/init-claude-flow-with-crm.sh, scripts/check-mcp-health.sh, scripts/claude-room, thetacoach-crm-mcp/, swarm-comms/, .thetacog/orchestrator/, .thetacog/punch-list*). The commit's own trailers already say Originating-Terminal: 🏛️ architect and Relevant-Rooms: architect, builder, operator — laboratory is named nowhere. The dense compliance vocabulary in the diff ('NYDFS 500.17(b)(2)', 'DORA Art. 5', 'the person the FTC chair names as answering', 'signer', 'attestation') fans the ballistic walk wide (litReality=144 vs litIntent=115, prewalkOverlap only 3), and because that fan is being scored against laboratory's narrow MCP/CRM-shaped lane fence instead of the VNA/architect-shaped lane the commit actually declares, most of that lit mass reads as off-lane by construction, not by genuine drift.
The semantic pull: Real strings from the diff — 'scripts/vna/signer-export.mjs', 'data/pmu/measure-history.ndjson', 'scripts/pmu/lane-jump-sn.mjs', 'NYDFS 500.17(b)(2)', 'DORA Art. 5', 'commit-triptych.mjs' — sit entirely inside VNA/compliance vocabulary space. None of them intersect laboratory's owned globs (thetacoach-crm-mcp/, swarm-comms/, .thetacog/orchestrator/). The pull toward C,A1 is the walk correctly finding VNA-lane content; the failure is that it's being fenced against the wrong room's C,B3.
Intent–reality gap: The commit message and trailers correctly and narrowly scope this to architect/builder/operator VNA work; the receipt nonetheless ran this intervention under 🧪 laboratory, a room whose owned surface contains none of the touched paths — so the 58% off-lane reading measures distance from a fence that was never the commit's declared fence.
- Audit the room-assignment step that produced 'room 🧪 laboratory' for this sha and confirm whether it's a hardcoded default/fallthrough for unclaimed paths.
- Add scripts/vna/** and tests/vna/** to the owned-surface data backing tests/ops/room-surface-coverage.test.js so they resolve to architect/builder/operator, never laboratory.
- Run tests/pmu-simulator/originating-terminal-matches-surface.test.mjs against this sha specifically — Originating-Terminal claims architect but the touched paths should be checked against architect's actual owned-surface list too, not just laboratory's absence.
- Filter data/pmu/measure-history.ndjson for the last 14 days: rows tagged room=laboratory whose diff paths start with scripts/vna/ or tests/vna/ — measure what fraction of the '266 out-of-lane events' this misroute pattern accounts for.
- Extract the long regulatory-citation comment block ('THE PERSON THIS PAGE IS FOR' through 'THE RECEIPT IS LLM-FREE') out of scripts/vna/signer-export.mjs into docs/specs/vna/research/2026-09-26-who-is-asking/opportunities.md, replacing it with a one-line pointer, so compliance-vocabulary density stops inflating lit-mass in files that are otherwise pure mechanism.
- Do the same header-comment extraction for tests/vna/c395-signer-export.test.mjs.
What we learned: Room bucketing for this intervention pipeline appears to default/fall through to 🧪 laboratory when a commit's touched paths match no room's owned-surface glob — meaning laboratory is functioning as an unintentional catch-all, and its reported '266 out-of-lane events in 14 days' is likely inflated by misrouted commits from unrelated domains (like VNA compliance tooling) rather than reflecting laboratory's own genuine drift rate. This is new: prior lessons in this room were facts-only outcome deltas with no mechanism identified.
The missing guard (the deliverable): tests/pmu-simulator/originating-terminal-matches-surface.test.mjs
Detector probe: signal attribution — gzip reef 15% · ballistic walk 85%. litIntent/walksIntent = 115/115 and litReality/walksReality = 144/144 — both sides are at 100% fill, i.e. saturated: every step the walk takes counts as lit on both sides, which means the walk currently has no discrimination margin (nothing it visits ever fails to light). Concrete adjustment: tighten the lit-cell acceptance aperture so not every walked step auto-lights, restoring contrast between genuine intent/reality overlap and mere vocabulary co-occurrence. Experiments: Re-run the reef seed with the regulatory comment blocks stripped from signer-export.mjs (per the proposed extraction) and measure whether offPct falls toward laneJump 0-1 — confirms whether comment-narrative mass, not mechanism code, was driving the reading. · Backfill and filter measure-history.ndjson for the trailing 14 days: count laboratory-tagged rows whose diff paths start with scripts/vna/ or tests/vna/, producing a measurable misroute count. · Add a pre-walk 'owned-surface overlap' check: if zero of a commit's diff paths match the assigned room's owned-surface globs, tag the row UNMEASURED-FOR-ROOM instead of computing offPct, then measure how many of laboratory's 266 events get reclassified out.Measured outcome (deterministic, not self-graded): room mean offPct 13→11 over 3 commits since · dictionary ablation saved 1031B
A room whose offPct trend is inflated by misrouted out-of-domain commits (VNA compliance tooling landing under laboratory) reads as a worse loss-ratio lane than it is; premium should be held, not raised, until the routing guard (ask-027) ships and the 266-event backlog is re-scored against the corrected room-surface mapping.
Open the signed attestation →2026-09-28 · 🧪 laboratory · offPct 60
feat(comms): C389 — /admin/linkedin, the LinkedIn → email → LOI funnel, with the LOI itself as the meeting agenda
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 13→11 over 3 commits since
Open the signed attestation →2026-09-28 · 🎤 voice · offPct 22
content(blog): the brief we did not write — cut the repeated refrain, S19 back under its floor
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct —→12 over 5 commits since
Open the signed attestation →2026-09-28 · 🧪 laboratory · offPct 16 · mistagged
feat(mdx-cook): S23 the runnable fold — section one hands the reader steps, a prior prediction, and their own delta
Why it left the lane: The diff bundles two different textures in one commit: content prose (SKILL.md's '11. The runnable fold', docs/05-content/blog/mdx-cook-format.md's 'THE RUNNABLE FOLD' section) that belongs on the declared intent column A1,C1, plus mechanism strings — 're.finditer(r'^\s*\d+\.\s+\S'', '_s1_start = raw.find(', 'execFileSync('bash', [...])', 'mkdtempSync' — that read as tooling/checker infra and pull the lattice reading toward A1,B1. Separately, the event is attributed to room 🧪 laboratory whose owned surface (thetacoach-crm-mcp/, swarm-comms/, .thetacog/orchestrator/, .thetacog/punch-list*) shares zero paths with any of the four changed files, while the commit's own Originating-Terminal trailer says 🎤 Voice and Relevant-Rooms lists 'voice, laboratory, navigator' — laboratory has no legitimate claim on docs/05-content/blog/, .claude/skills/mdx-cook/, scripts/blog/, or tests/blog/.
The semantic pull: 'Guard: `tests/blog/mdx-cook-runnable-fold.test.mjs`' and the regex/execFileSync machinery in mdx-cook-check.sh + the new test file are the exact strings dragging reality toward the B1 (tooling) column; the SKILL.md/docs prose ('the reader a walk-through they run', 'the prediction stated before the last step') is what anchors intent at C1 (content/voice).
Intent–reality gap: The commit claims Voice-terminal, content-authoring work (a street-post format rule) with Relevant-Rooms including laboratory; the receipt measured the work landing on a lattice column (B1) and in a room (🧪 laboratory) that owns none of the four touched paths — the room tag, not the content, is what's wrong.
- Correct this commit's Relevant-Rooms trailer per spec_rewrite (retroactive note, since the commit already shipped)
- Wire tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010, asked 33x) to fail when a Relevant-Rooms entry has zero glob overlap with the diff
- Wire tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, asked 25x) to check Originating-Terminal 🎤 Voice against the room the event gets routed to
- Wire tests/ops/room-glob-overlap.test.mjs (ask-024) as the general-purpose check: any room named in a commit's routing must own at least one touched path
- Extend whichever room's owned-surface glob list is meant to cover docs/05-content/blog/**, .claude/skills/mdx-cook/**, scripts/blog/**, tests/blog/** — right now no listed room surface (at minimum laboratory's) covers mdx-cook work, so routing falls through to a default
What we learned: mdx-cook/blog content work (SKILL.md, docs/05-content/blog/, scripts/blog/, tests/blog/) has no room whose documented owned-surface glob actually covers it — laboratory's glob list is a clean miss on all four paths, which means this class of commit has been falling through to a default room attribution rather than a legitimate one; this is a coverage gap in the room-ownership map itself, not a one-off mistake in this commit.
The missing guard (the deliverable): tests/rooms/relevant-rooms-covers-diff.test.mjs
Detector probe: signal attribution — gzip reef 70% · ballistic walk 30%. Right-sized, not saturated or shallow — the ~4.4% intent-to-reality growth in both walks and lit cells shows the recursive walk is finding a bounded, proportionate spread rather than exploding or flatlining. The lever here is the reef seed, not walk depth: enrich the pre-walk seed corpus for docs/05-content/blog + scripts/blog + tests/blog bundles specifically, rather than deepening the walk. Experiments: Re-run the gzip-NCD reef seed for the mdx-cook doc+guard commit class with an expanded per-room glob dictionary, then compare prewalkOverlap before/after — measurable outcome: prewalkOverlap rises materially above 5 for the next mdx-cook doc+guard commit · Ablate the checker-script regex boilerplate (re.finditer, execFileSync boilerplate) out of whatever corpus currently pulls toward the B1/laboratory column, re-score this commit's lane, and check whether offPct drops under 15 without it · Explicitly add docs/05-content/blog/**, .claude/skills/mdx-cook/**, scripts/blog/**, tests/blog/** to a content/voice-owned glob set and re-run routing on the last 30 mdx-cook commits — measurable outcome: % correctly attributed to the content/voice room risesMeasured outcome (deterministic, not self-graded): room mean offPct 13→11 over 3 commits since · dictionary ablation saved 1062B
An event this thin (offPct 16 vs a 15 threshold, driven by a room-attribution miss rather than real cross-lane work) is a low-severity loss on its own, but with 352 out-of-lane events in this room over 14 days and three prior facts-only interventions that never moved the mean below 13, the lane's loss ratio stays elevated until one of the three already-open room-glob-overlap guards (ask-010/024/027) actually merges.
Open the signed attestation →2026-09-28 · 📐 architect · offPct 55 · structural
docs(market): the market-close working doc — three buyers, numbers read from files, five Gmail drafts named
Why it left the lane: The diff's own vocabulary is underwriting/market vocabulary, not architect/strategy vocabulary: 'Lionchase is the capital channel, NSI the MGA seat', 'the sealed set places 2 wrong beside the 26 abstentions', and the receipt-source list 'parametric-trigger, severity-status, the live abstention re-decision, notary-audit, npm'. That is the exact vocabulary class already dense in the sibling specs sitting in the same directory (C399 builder-recompute-kit, C400 loss-trigger-sheet, C401 carrier-settlement-sheet, all at docs/specs/vna/market/). prewalkOverlap=1 means the gzip-NCD reef found a COMPLETE seed match against that market corpus before the recursive walk even ran, which is why litReality landed at B3,A1 instead of the claimed A1,B — the content pulled its own coordinate regardless of who authored it.
The semantic pull: 'Lionchase is the capital channel, NSI the MGA seat' and 'parametric-trigger, severity-status, the live abstention re-decision, notary-audit, npm' are market/underwriting nouns that co-occur, by directory, with the C399–C401 market spec rows already lit in the B3 region of the lattice — the walk followed the vocabulary, not the trailer.
Intent–reality gap: The commit message frames this as 'the chair's half' — architect-coordination work under A1/B — but the file it wrote, docs/specs/vna/market/2026-09-28-market-close.txt, is not on ANY glob in architect's owned-file-surface list (docs/strategy/, docs/03-product/, docs/01-business/strategy/, .workflow/rooms/*.html, .workflow/cognitive-dashboard.html, CLAUDE.md), and its content is substantively market data (buyer names, capital channel, MGA seat), which the receipt correctly reads as B3.
- Register docs/specs/vna/market/** (and docs/specs/vna/** generally) as a shared owned surface for {architect, navigator, operator} in the room-surface config
- Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, already asked 24x) — unify the three independently-spec'd fixes named in lesson ff09774e5 instead of leaving a fourth room re-derive it
- Ship tests/ops/room-surface-coverage.test.js (ask-001, asked 10x) so every path under docs/specs/vna/ resolves to a declared owner, even a shared one, rather than being unclaimed territory
- Update the commit-trailer convention doc (wherever Relevant-Rooms is documented) to state explicitly that a shared spec-tree write should list the data-owning room (navigator here) ahead of the compiling room in Relevant-Rooms
- Audit the other 102 out-of-lane events in architect's last 14 days for the same docs/specs/vna/ pattern before assuming each is a fresh cause
What we learned: The room-surface glob model has no entry at all for docs/specs/vna/ — a directory that is itself a numbered, load-bearing cross-room sequence (C1 through C401 and counting) — so any room's legitimate chair-role write into it reads as a near-total lane breach by construction, independent of Originating-Terminal correctness. Unlike ff09774e5 (a trailer-classification gap), this is a surface-registration gap: the owned-surface table was never extended to cover a tree that predates and outgrew it.
The missing guard (the deliverable): tests/pmu-simulator/originating-terminal-matches-surface.test.mjs
Detector probe: signal attribution — gzip reef 70% · ballistic walk 30%. Fully saturated on both sides (100% of walked cells lit, intent and reality alike) — the walk is not pruning or discriminating at all, it is just tracing the shape the reef seed already committed to. Adjustment: introduce a stricter admission threshold so lit is a proper subset of walked, restoring the walk's own discriminative signal instead of it being a passthrough of the reef's pre-walk match. Experiments: Re-run this sha's reef seed with docs/specs/vna/ excluded from the corpus dictionary and check whether prewalkOverlap drops below 1.0 — tests whether the shared directory is dominating reef seeding for every VNA-tagged commit regardless of author · After registering docs/specs/vna/market/** as shared, re-run this sha's receipt and measure whether offPct drops — direct ablation of the structural fix · Lower the walk's lit-admission threshold below saturation and re-measure litIntent/litReality on this sha plus the 5 most recent setpoint-class commits to confirm discriminative signal returns without flipping correct docsOnly commits to false negativesMeasured outcome (deterministic, not self-graded): room mean offPct 21→14 over 33 commits since
On its own this event is a config gap, not a behavioral defect, so it should not raise architect's loss-ratio once the shared-surface registration ships — but until it ships, every legitimate chair-role VNA spec commit will keep reading as a 50%+ breach, inflating the room's apparent defect rate and burying real drift signal under structural noise.
Open the signed attestation →2026-09-28 · 🧪 laboratory · offPct 64
spec(vna): C379 — tie the landfall shortened to /milestones
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 13→11 over 3 commits since
Open the signed attestation →2026-09-27 · 🔨 builder · offPct 20
chore(bookclub): high-score board update — recomputed after send
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 27→33 over 3 commits since
Open the signed attestation →2026-09-27 · 🧪 laboratory · offPct 41 · mistagged
test(ops): guard-discipline presence checks read the rulebook, not CLAUDE.md alone
Why it left the lane: The diff's actual substance is two literal strings repeated verbatim across both files: `import { rulebook } from '../lib/rulebook.mjs'` and the regex targets it now serves — `'A DELETION IS NOT A FIX'`, `'FORECLOSES:'`, `'guard-freezes-judgment.mjs'`, `'the rule survives in CLAUDE.md'`. Those are all rule-corpus/axiom-text tokens that live in CLAUDE.md's AXIOM sections plus docs/architecture/claude-rules/axioms-and-method.md — the coordinate cluster the walk lit as lensReality=A1,B1. The commit declared lensIntent=B,C (a routine ops/test repointer). None of the 143 lit-reality cells sit inside 🧪 laboratory's owned surface (memory/, .mcp.json, thetacoach-crm-mcp/, swarm-comms/, .thetacog/orchestrator/, punch-list*) at all — the diff only ever touches tests/ops/*.mjs. So offPct=41 isn't measuring content wandering out of a room it belongs in; it's measuring a commit that was never in this room's territory in the first place.
The semantic pull: 'rulebook.mjs' + 'axioms-and-method.md' + the quoted axiom strings pulled the walk toward A1 (the rule-corpus coordinate) because that's literally where that text is authored; 'guard-freezes-judgment.mjs'/'guard-seen-to-fail.mjs' anchor B1 (ops-guard test infra). Nothing in the diff — no MCP, no CRM, no swarm-comms, no orchestrator token — maps to 🧪 laboratory's glob, so there is zero semantic pull toward this room's lane at all; the pull is entirely between A1 and B1, a fight this room isn't even in.
Intent–reality gap: The commit message and diff both describe a fully-scoped, correct ops/test change confined to tests/ops/ — 'Regexes unchanged,' just a re-pointed read. The receipt instead attributes offPct=41 to 🧪 laboratory, a room whose declared owned surface never touches tests/ops/, scripts/ops/, or docs/architecture/claude-rules/. The gap is not in the work; it's that this event is being scored against the wrong room's lane entirely.
- Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010, already asked 25x, still open) as an enforced pre-commit gate, not a standing request
- Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, asked 20x) so an 📐 VS Code Architect-originated commit can never silently post its offPct to 🧪 laboratory's ledger
- Confirm the room-attribution fallback: when Relevant-Rooms is absent, what room does the pipeline default to, and why did it pick 🧪 laboratory here — that default is the actual bug, not this diff
- Sample the room's other 340 out-of-lane events from the last 14 days for the same missing-Relevant-Rooms signature before assuming they're independent drift incidents
- Re-run this sha's offPct after synthetically adding a correct Relevant-Rooms trailer, to confirm the routing hypothesis collapses the number toward the 15 threshold
What we learned: The prior three lessons for this room only report a measured offPct trend with no mechanism (facts-only). The new structural fact: 🧪 laboratory's chronic 340-event/14-day backlog may be substantially a ROUTING artifact, not content drift — commits that omit the Relevant-Rooms trailer appear to fall through to this room's ledger regardless of what they actually touch, and the one guard that would catch it (ask-010) has been asked 25 times without shipping.
The missing guard (the deliverable): tests/rooms/relevant-rooms-covers-diff.test.mjs
Detector probe: signal attribution — gzip reef 30% · ballistic walk 70%. litIntent==walksIntent (138/138) and litReality==walksReality (143/143) — a 100% lit-to-walked ratio on both sides. That's saturation, not discrimination: the walk never visits a cell it fails to light, so it can't distinguish 'explored and ruled out' from 'never explored.' Concrete adjustment: extend the reality-side walk budget past first-hit so some visited cells come back unlit, turning offPct into a real signal-to-noise ratio instead of a raw coverage count. Experiments: Re-run this sha's reef seed with a wider prewalk sampling window over tests/ops/*.mjs and remeasure whether prewalkOverlap rises above 12, tracking the effect on offPct · Synthetically add a Relevant-Rooms trailer naming the correct owning room(s) and recompute offPct for this sha, to isolate how much of the 41% is routing vs genuine content spread · Recompress this sha's reality-side text with the rulebook() concatenation excluded vs included, to confirm the A1 lighting is driven by the axiom-text content and not a walk-depth artifactMeasured outcome (deterministic, not self-graded): room mean offPct 18→11 over 3 commits since · dictionary ablation saved 1125B
This reads as a phantom loss against 🧪 laboratory's lane — the room's loss-ratio is inflated by mis-routed events rather than real drift, so premium shouldn't move on this one; what restores it is shipping ask-010 so the ledger separates routing noise from genuine out-of-lane work.
Open the signed attestation →2026-09-27 · ☕ network · offPct 32
fix(comms): Nicholas — his openjev post was about Jev, not us; landing page corrected, skill reads the replied-to message
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct —→0 over 12 commits since
Open the signed attestation →2026-09-27 · ☕ network · offPct 54 · mistagged
feat(dm): the magic link rides in the message with a reason to try it; versioned txt, always opened
Why it left the lane: None of the five touched paths — .claude/skills/dm/SKILL.md, docs/comms/dm/2026-09-27-gary-nuttall.dm.md, docs/comms/dm/2026-09-27-gary-nuttall.txt, scripts/comms/dm.mjs, tests/comms/dm.test.mjs — match any glob in ☕ network's owned surface (docs/outreach/, scripts/outreach/, .thetacog/outreach-reports/, docs/strategy/*, docs/ops/*-iterations/, scripts/check-reply.sh, docs/crm/, data/bookclub/, scripts/bookclub/, docs/comms/bookclub-*). The nearest glob, docs/comms/bookclub-*, requires the literal 'bookclub-' prefix; 'dm/' does not match it. The commit also pulls scripts/comms/dm.mjs into `import { readNd, STORE } from './claim-link-store.mjs'` and `import { linkUrl } from '../../src/lib/notary/grant-link.mjs'` — modules with no room-owner glob anywhere in this list — so the mass had nowhere legitimate to land inside Network's lane and scored as leakage.
Intent–reality gap: The commit message and trailers (Originating-Terminal: 📐 Architect, Relevant-Rooms: Network, Voice, Operator) claim this is comms/DM voice work reachable from Network's surface; the receipt measured the work landing at lensReality=A,A1 while the claimed lane was lensIntent=A2,B3 (laneJump=5, laneHamming=28) — a room-attribution mismatch, not a content defect in the DM feature itself.
- Add docs/comms/dm/**, scripts/comms/dm.mjs, .claude/skills/dm/**, tests/comms/dm.test.mjs to an explicit room's owned-surface glob list (Voice is the closest existing claimant per the trailer) — right now they are orphaned, claimed by nobody.
- Add src/lib/notary/grant-link.mjs and scripts/comms/claim-link-store.mjs to a 'shared library, no single room owns it' bucket so imports from them stop inflating the importing room's offPct.
- Fix the ask-010 guard (tests/rooms/relevant-rooms-covers-diff.test.mjs) to fire on THIS exact shape: a Relevant-Rooms trailer naming a room with zero owned-surface glob overlap with the diff.
- Audit the other 41 out-of-lane events in ☕ network's last 14 days for the same orphaned-surface pattern before assuming this is a one-off.
- Document in the room-ownership source (wherever the 'THE ROOM'S OWNED FILE SURFACE' block above is generated from) that docs/comms/bookclub-* is a prefix match, not a docs/comms/* wildcard, so future comms/* additions don't silently fall outside every room.
What we learned: An orphaned surface (a path no room's glob covers) is a distinct failure mode from a mistagged one (a path that belongs to a different room) — prior lesson f748e0b17 diagnosed 'implementation mass sits in general-purpose infra the consumer doesn't own,' but this event shows the room-glob config itself has gaps where NO room claims a path at all, so any commit touching it is offPct-penalized regardless of which room commits it.
The missing guard (the deliverable): tests/rooms/relevant-rooms-covers-diff.test.mjs
Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Saturated, not shallow or right-sized: 100% of walked cells lit on both intent (134/134) and reality (141/141) sides means the walk applies no admissibility filter — every touched cell counts as 'lit' regardless of strength. Concrete adjustment: apply the same z-cutoff already used elsewhere in this pipeline (the tree rows above gate admissibility at z≈1.9–2.27) inside litIntent/litReality accounting, so only cells clearing a z-threshold count as lit; re-run this commit's receipt with the cutoff on and check whether offPct changes. Experiments: Add docs/comms/dm/** and scripts/comms/dm.mjs to the reef's room-glob corpus, then recompute prewalkOverlap for this commit — measure whether it rises meaningfully above 3. · Re-run this commit's receipt with a z≥1.9 admissibility cutoff applied to litIntent/litReality and measure whether the 100%/100% saturation drops, tightening offPct. · Tag src/lib/notary/grant-link.mjs and scripts/comms/claim-link-store.mjs as shared-library files excluded from per-room lane attribution, then re-run offPct on this commit to measure how much of the 54 points those two imports alone contributed.Measured outcome (deterministic, not self-graded): room mean offPct —→0 over 12 commits since · dictionary ablation saved 729B
An orphaned-surface event inflates ☕ network's apparent loss ratio for work the room never actually did; premium is restored not by tightening Network's behavior but by closing the glob gap (ask-010) so the drift signal attaches to the right room or to an explicit UNOWNED bucket instead of the nearest bystander.
Open the signed attestation →2026-09-27 · 🔨 builder · offPct 18 · structural
fix(claims): the preview guard stays strict — reword the comment that quoted the old card
Why it left the lane: The diff is two comment lines inside src/app/claim/[token]/page.tsx. The removed text quoted the site's marketing headline verbatim ('Do you worry about $1.2B in AI liability? We fixed the math.'); the added text paraphrases it ('the home page's liability headline and banner'). Both versions still describe/reference marketing-headline content rather than pointing at a file or rule, so the walk's reality lane (A,A1) keeps landing on voice-and-pitch semantic mass even though the file itself sits squarely on Builder's owned surface (src/app/). The commit message's own vocabulary — 'guard', 'leak', 'openGraph', 'quoted' — belongs to B2,C (infra/guard), which is the claimed intent lane; the comment BODY belongs to A,A1.
The semantic pull: 'the home page's liability headline and banner' is the exact phrase pulling reality toward A,A1 — it is a description of marketing copy, not a description of code behavior, sitting inside a Builder-owned .tsx file.
Intent–reality gap: The commit claims a pure guard/infra fix ('the preview guard stays strict — reword the comment'), and the receipt agrees the file is right, but the comment text itself still narrates marketing-headline content, so the reality walk keeps landing in the voice lane the intent never claimed.
- Rewrite the page.tsx comment to reference src/app/page.tsx by path instead of describing its headline/banner content
- Locate the guard test that flagged b78169810c (the 'no such text in claim page' check) and confirm it matches literal substrings only, not paraphrase risk, so future comments aren't tempted to paraphrase-to-dodge it
- Add a one-line rule to the Builder room's surface notes: code comments never quote or paraphrase marketing/voice copy — reference the source file instead
- Grep src/app/**/*.tsx for other comments that narrate site-card/OG copy and apply the same pointer-style fix
- Extract the fuller OG-bug narrative into docs/architecture/claims-page-opengraph-fix.md, linked from the short in-code comment
What we learned: A guard that forbids literal marketing-copy strings on a page can be satisfied by paraphrasing while the positional walk still classifies the paraphrase as voice-lane content — string-match guards and semantic-lane guards are checking different things, and passing one doesn't mean passing the other.
The missing guard (the deliverable): tests/rooms/code-comment-voice-content-fence.test.mjs — flags any comment inside a Builder-owned src/app/**/*.tsx file that describes or paraphrases marketing/voice copy (headline, banner, CTA text) rather than referencing a file path or rule name; forces the 'point at the source, don't narrate the copy' convention this event revealed.
Detector probe: signal attribution — gzip reef 25% · ballistic walk 75%. litIntent=127 vs litReality=139 (+12, ~9% wider) on a 2-line comment-only diff — the walk is not saturated or obviously shallow, but the extra reality-side spread for such a small diff suggests the walk isn't discounting for diff size. Adjustment: scale walk depth/fan-out down for comment-only or docs-adjacent diffs under ~5 changed lines, so a two-line reword doesn't recurse as wide as a full logic change. Experiments: Re-run the reef seed for this commit with the voice-and-pitch.md corpus excluded from the comparison set, and measure whether offPct on comment-only diffs drops below 15 · Ablation: strip inline // comments before walking code-only diffs for a sample of past Builder commits, and compare resulting offPct distribution against the un-stripped baseline · Track comment-only diffs (diffstat all -/+ lines inside // or /* */) as a distinct commitClass and measure their offPct distribution separately from logic-changing commits to see if a class-specific threshold is warrantedMeasured outcome (deterministic, not self-graded): room mean offPct 27→33 over 3 commits since · dictionary ablation saved 871B
One guard-dodging paraphrase in a Builder file is a minor loss-ratio hit for this lane, but it's the second consecutive event where a technically-correct fix still tripped the lane threshold, so premium stays elevated until the comment-content guard ships and offPct on comment-only diffs is shown to clear 15.
Open the signed attestation →2026-09-27 · 🎤 voice · offPct 32
fix(blog): Restore semantic crest variants from color theory commit
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct —→12 over 5 commits since
Open the signed attestation →2026-09-27 · 🎤 voice · offPct 32
build(book): rebuild the giveaway text — COMPLETE-BOOK.txt was older than the chapters
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct —→12 over 5 commits since
Open the signed attestation →2026-09-27 · 🧪 laboratory · offPct 45
docs(dm): agree with their view, never assign them an experience — the rule from Nicholas's and Ahsan's corrections
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 13→11 over 3 commits since
Open the signed attestation →2026-09-27 · 🧪 laboratory · offPct 49
docs(vna): impasse v5 2026-09-26 — product side: Stripe fixed 09-20, first purchase was the operator (0 external), Marketplace 0.3.53 vs HEAD 0.3.54, Open VSX 404 (script unrun), tester invite already in the signup route, C148 painted order is 13 pills (mailed)
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 18→11 over 3 commits since
Open the signed attestation →2026-09-27 · 📐 architect · offPct 28 · mistagged
fix(ops): guard roster reads the whole rulebook, not CLAUDE.md alone
Why it left the lane: The diff's substantive new code (readdirSync, the RULES_DIR join/filter, the rulebookFiles() function, the loop over docs/architecture/claude-rules) lives entirely inside scripts/ops/guard-seen-to-fail.mjs. The commit message narrates this purely as a CLAUDE.md/rulebook content fix — architect's owned territory — but the receipt walks the actual bytes touched, and those bytes are ops-script plumbing (an fs-read/filter/join pipeline), not doc prose. litReality (129) exceeds litIntent (115) and 28% of the lit reality cells sit outside the declared A1/A3 lane, landing at B1 instead. The room correctly claimed the SUBJECT of the fix (the rulebook) but the WORK happened in a file the room does not own.
The semantic pull: 'scripts/ops/guard-seen-to-fail.mjs' (the only file in the diff) plus the new identifiers readdirSync, RULES_DIR, rulebookFiles(repo), join(repo, RULES_DIR) — all fs/path plumbing terms that gzip-NCD seeds toward the B1 ops-tooling region regardless of the CLAUDE.md/claude-rules prose sitting in the same lines' comments. The comment block itself ("the rulebook is CLAUDE.md + docs/architecture/claude-rules/*.md") is the only text pulling toward A1/A3; it lost to the surrounding code structure.
Intent–reality gap: The commit message frames the change as fixing what the rulebook IS (a docs/CLAUDE.md concern, architect's declared lane), but 100% of the diff's lines are in scripts/ops/guard-seen-to-fail.mjs, and the commit carries no Relevant-Rooms trailer at all to declare that ops surface — so the claimed lane (architect) and the measured lane (ops script) were never reconciled on the commit itself.
- Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010, already asked 26×) for real — a WARN-ONLY pre-commit hint alone hasn't moved this room's offPct in 3 prior lessons
- Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, asked 20×) so an architect-tagged commit touching scripts/ops/** is flagged at commit time, not just by the post-hoc receipt
- Backfill Relevant-Rooms on 44aa521dd5 via `git notes add` (never amend a shared-tree commit) naming the ops room
- Confirm in the room-surface config (whatever tests/ops/room-surface-coverage.test.js reads, ask-001) which room actually owns scripts/ops/*.mjs and add it explicitly if absent
- Check whether the room-drift-<room>-check.sh fix named 3× independently in lesson ff09774e5 has actually shipped anywhere — if not, that is why offPct climbed right back from 14 to 28 in only a handful of commits
- Add a short note to CLAUDE.md's Trailers row: 'Relevant-Rooms is required, not optional, even when Originating-Terminal alone feels sufficient'
What we learned: Prior lesson ff09774e5 diagnosed Relevant-Rooms/Originating-Terminal DIVERGENCE as sanctioned-but-unflagged; this event shows a stricter failure the prior diagnosis didn't cover — Relevant-Rooms can be ABSENT entirely, which isn't a sanctioned divergence at all, it's a missing declaration with nothing to check the receipt against. And despite that lesson being independently re-derived by three rooms, the room's offPct climbed straight back from 14 to 28 across just a few commits — proof that a prose diagnosis repeated three times does not reduce recurrence; only a merged guard file does.
The missing guard (the deliverable): tests/rooms/relevant-rooms-covers-diff.test.mjs
Detector probe: signal attribution — gzip reef 30% · ballistic walk 70%. walksIntent==litIntent (115==115) and walksReality==litReality (129==129) — every walk step lit a genuinely new cell with zero revisits on both sides, so the walk isn't saturated or looping; it's right-sized for exploration but under-cross-referenced, since it never folded the 4-cell reef overlap back into the walk to narrow the search. Adjustment: feed prewalkOverlap cells as a seeded anchor set into the walk so intent/reality paths are forced to compare against the same starting cells before diverging. Experiments: Re-run this sha's reef seed with docs/architecture/claude-rules/*.md content weighted equally to CLAUDE.md, and measure whether prewalkOverlap rises above 4 on commits that touch the claude-rules split · Re-run the same commit with a synthetic Relevant-Rooms trailer declaring the ops surface, and measure whether offPct drops below the 15 threshold — this isolates trailer-completeness as the actual lever vs code placement · Ablation-test seeding 'docs/architecture/claude-rules' and 'rulebookFiles(repo)' into the gzip dictionary across the last 14 days of architect-room commits, measuring compression-benefit bytesMeasured outcome (deterministic, not self-graded): room mean offPct 22→14 over 33 commits since · dictionary ablation saved 884B
An architect-lane commit whose bytes land 28% in ops-script territory with zero Relevant-Rooms declaration reads as an unpriced cross-lane exposure; premium on this lane is restored by merging ask-010's guard (not re-diagnosing it a fourth time) and by this commit's trailer being backfilled via git notes so the ledger reflects the true surface touched.
Open the signed attestation →2026-09-27 · 🧭 navigator · offPct 36
feat(vna): C340 — the annotated data-flow chart in the open-source package, linked from both READMEs
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct —→26 over 3 commits since
Open the signed attestation →2026-09-27 · 🧪 laboratory · offPct 27
feat(vna): C346 — the Steer This File ingest door, plus the two-hooks correction
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 18→11 over 3 commits since
Open the signed attestation →2026-09-27 · 🔨 builder · offPct 36
fix(claims): an unreached stage never looks reached — off pills greyed with 'not …' labels; claimed and bound show their ledger time
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 27→33 over 3 commits since
Open the signed attestation →2026-09-27 · 🔒 vault · offPct 20
docs(vna): impasse v4 2026-09-26 — S corp confirmed (EIN 88-2963055), NY law + AAA per ALC's own choice, Halcyon terms, ALC not Trotter for the draft, Track One first action due; new: patent ownership, Halcyon signature/IP, S election vs the round, IDS (mailed)
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 11 commits since
Open the signed attestation →2026-09-27 · 🧪 laboratory · offPct 38
fix(vscode): C119k.8 — the mask re-traced off the logo: the break closes, the T moves left, the lower-right edge curves, the D is smooth
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 13→11 over 3 commits since
Open the signed attestation →2026-09-27 · 🔨 builder · offPct 67
feat(claims): the landing page says how to use the panel — talk to it, or paste the meeting transcript → Paste → Tree
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 27→33 over 3 commits since
Open the signed attestation →2026-09-27 · 🧭 navigator · offPct 58
docs(C347): generated flowchart starts at install too
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct —→12 over 21 commits since
Open the signed attestation →2026-09-27 · 🧪 laboratory · offPct 27 · mistagged
test(voice): the amnesia-ledger rule checks read the rulebook
Why it left the lane: The entire diff is a 4-line edit inside tests/voice/amnesia-ledger.test.mjs — swapping `fs.readFileSync(...CLAUDE.md...)` for `import { rulebook } from '../lib/rulebook.mjs'` plus a comment naming 'docs/architecture/claude-rules/voice-and-pitch.md' and the '2026-09-10 split'. None of that touches any glob in 🧪 laboratory's owned surface (.claude/, .mcp.json, thetacoach-crm-mcp/, swarm-comms/, .thetacog/orchestrator/, punch-list*). With zero in-lane content to anchor on, the walk's 144 lit reality cells spread instead toward the rulebook/voice-rules region the diff actually names, and 27% of them fall outside whatever intent lane the commit was scored under.
The semantic pull: 'rulebook()' import + the comment 'Rulebook = CLAUDE.md + docs/architecture/claude-rules/' are cross-cutting infra terms that belong to the shared rules-lexicon region, not to laboratory's MCP/CRM/orchestrator vocabulary — pulling lensReality to A1,C3 (3 hops, 28-bit Hamming from lensIntent A,C1).
Intent–reality gap: The commit message and trailers claim this is a narrow test-path fix originating from 📐 VS Code Architect, with no Relevant-Rooms trailer naming laboratory at all — yet the receipt scored it against 🧪 laboratory's lane, a room whose owned surface the diff never touches.
- Add a Relevant-Rooms trailer to this commit's class of work (tests/voice/**, scripts/lib/rulebook.mjs, docs/architecture/claude-rules/**) naming its true owning room, never 🧪 laboratory by default.
- Wire tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010) into commit-msg / pre-commit so a missing trailer blocks silently landing as an unowned commit.
- Wire tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027) to also flag when the room the drift receipt SCORED against doesn't match either the Originating-Terminal trailer or any owned-surface glob.
- Confirm 🧪 laboratory's owned-surface list explicitly excludes tests/voice/** and scripts/lib/rulebook.mjs so the default-attribution path has something concrete to consult.
- Define a 'shared/common' room bucket for cross-cutting files like scripts/lib/rulebook.mjs so commits touching genuinely shared infra get a real lane instead of falling into whichever room is currently active.
What we learned: A commit missing its Relevant-Rooms trailer doesn't fail loudly — it gets silently scored against whatever room the pipeline defaults to (here, laboratory, despite zero file overlap), meaning offPct spikes on a room can be pure attribution noise from OTHER rooms' unlabeled commits, not that room's own drift.
The missing guard (the deliverable): tests/rooms/relevant-rooms-covers-diff.test.mjs
Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Right-sized in raw count (130→144, ~11% wider) but oversized relative to the diff: a 4-line, single-file change lighting up 130-144 cells on either side suggests the walk isn't scaling its breadth down for small diffs. Adjustment: cap walk breadth (or fold intent/reality faster) proportional to LOC changed, so a 4-line commit doesn't spend the same lattice footprint as a multi-file feature commit. Experiments: Re-run reef seeding using a valid Relevant-Rooms trailer as a hard prior on prewalkOverlap; compare prewalkOverlap for trailered vs trailer-less commits over the last 14 days to confirm the low-overlap pattern tracks missing trailers. · For commits under ~10 changed lines, cap walksReality to walksIntent (or a small fixed multiple) and re-measure offPct on this room's last 342 out-of-lane events to see how many were actually small-diff attribution noise vs real drift. · Seed a 'shared-infra' lane for scripts/lib/** + tests/*/imports-of-shared-helper patterns and re-score this commit against that lane instead of laboratory; measure whether laneHamming drops from 28 toward the null.Measured outcome (deterministic, not self-graded): room mean offPct 18→11 over 3 commits since · dictionary ablation saved 1094B
On its own this is a low-severity mistag (the code is correct, only the lane claim is wrong), but at 342 out-of-lane events in 14 days for this room the loss-ratio signal is being inflated by attribution noise rather than real drift, and premium is restored by enforcing the Relevant-Rooms trailer so laboratory's measured offPct reflects only laboratory's own commits.
Open the signed attestation →2026-09-27 · 🧪 laboratory · offPct 28 · mistagged
feat(vscode): C119k.3 — the activity-bar TD is one shape, as in the logo
Why it left the lane: The commit trailer literally reads "Relevant-Rooms: Architect, Builder, Laboratory" while the diff touches only packages/thetacog-mcp-vscode/media/thetacog.svg and tests/vna/c119k-activity-bar-icon-is-the-shield.test.mjs — neither path intersects 🧪 laboratory's owned surface (.claude/, .mcp.json, thetacoach-crm-mcp/, swarm-comms/, .thetacog/orchestrator, .thetacog/punch-list*). The word "Laboratory" in the trailer is free text the walk treats as intent-lane evidence, so it pulled the intent placement toward C,A1 even though every real token in the diff — "media/thetacog.svg", "activity-bar", "the TD makes one shape", "shield", "monoline", "stroke-width" — is vscode-extension/UI vocabulary that the reality walk correctly placed at C2,C, next to Architect/Builder's territory (encircled mass densest at B3,C1 / C1,C1 / C2,C1, laneJump=8).
The semantic pull: The single trailer token "Laboratory" (a free-text room name, not a path) dragged the intent lane toward C,A1; the diff's actual identifiers ("thetacog.svg", "activity-bar", "TD", "shield", "stroke-width=\"1.7\"") anchor to C2,C. prewalkOverlap=11 against walksIntent=119 (≈9%) shows the reef seed itself found almost no shared ground between the trailer's room list and the diff's real content before the walk even started.
Intent–reality gap: The commit claims Laboratory as a relevant room for this work; the receipt measured the actual lit mass landing at C2,C with zero overlap on any path Laboratory owns — the work is correctly-scoped vscode-icon work, but the commit's own trailer over-claims a room it never touches.
- Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010, asked 31× and still unshipped per this repo check) — for each named Relevant-Room, assert the diff contains ≥1 path matching that room's owned-surface glob list.
- Wire that guard into hooks/pre-commit as WARN-only (never a blocking hang, per the pre-commit-hang-fix-hook-never rule) until the false-positive rate is measured.
- Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, asked 21×) alongside it — Originating-Terminal (🏗️ Architect here) should also be surface-checked, not just Relevant-Rooms.
- Make 🧪 laboratory's owned-surface glob machine-readable/enumerable (wherever the list quoted in this event's context is sourced from) so the two guards above have something concrete to grep against.
- Batch-audit a sample of Laboratory's other 344 out-of-lane events for the same trailer-only mismatch pattern before assuming they're all genuine cross-lane work.
- Add the CLAUDE.md trailer clarification (see spec_rewrite) in the same commit as the guard, per CODE DEFINITION-OF-DONE.
What we learned: Laboratory's 345-events/14-days out-of-lane count is not proof of 345 instances of actual scope creep into Laboratory's code — this event shows the offPct metric can be driven entirely by a free-text trailer word with zero file-path backing. Until relevant-rooms-covers-diff.test.mjs ships (already asked 31× and still absent from tests/rooms/ on disk), the room's measured drift rate is contaminated by trailer-labeling noise, not just real cross-lane work — the prior facts-only interventions moved offPct by ±3-5 points because they never touched this labeling layer.
The missing guard (the deliverable): tests/rooms/relevant-rooms-covers-diff.test.mjs
Detector probe: signal attribution — gzip reef 30% · ballistic walk 70%. litIntent/walksIntent and litReality/walksReality are both near 100% (119/119, 115/115) — the walk is saturated, not shallow, on both sides. The problem isn't depth, it's that a saturated walk on a low-overlap seed (prewalkOverlap=11) still resolves to two different neighborhoods. Adjustment: when prewalkOverlap/walksIntent falls below ~15%, flag the placement as 'seed-divergent' before trusting offPct, rather than spending more walk depth on it. Experiments: Recompute prewalkOverlap for this sha using ONLY the file-glob-matched room's corpus (drop Laboratory's corpus from the reef seed, keep Architect/Builder) and measure whether offPct drops below 15 — tests the trailer-noise hypothesis directly. · Ablate free-text trailer fields (Relevant-Rooms, Originating-Terminal, Story) from the intent-lane walk input for a sample of the 345 Laboratory events and re-run offPct — measurable outcome: mean offPct shift for events where the trailer names a room with zero path overlap vs events where it doesn't. · Track prewalkOverlap/walksIntent as a standing ratio per room over the next 14 days; correlate against offPct>15 to confirm low-overlap commits are the mistagged-trailer class specifically, not genuine drift.Measured outcome (deterministic, not self-graded): room mean offPct 13→11 over 3 commits since · dictionary ablation saved 707B
If this trailer-mismatch pattern generalizes across Laboratory's 345 recent out-of-lane events, the room's loss-ratio/premium is currently being priced on labeling noise rather than real cross-lane exposure, understating how much of its "drift" is fictitious; shipping tests/rooms/relevant-rooms-covers-diff.test.mjs restores an accurate premium by pricing only genuine surface intrusions.
Open the signed attestation →2026-09-27 · 🔒 vault · offPct 18
docs(legal): draft v4 — New York law + AAA arbitration (seat by agreement, video hearings), matching our securities counsel's own choice for the Halcyon agreement
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 11 commits since
Open the signed attestation →2026-09-27 · 🧭 navigator · offPct 33
docs(vna): the end-to-end map — eleven ingresses, three routes into Rust, every side case, near the top of the open-source README
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct —→12 over 21 commits since
Open the signed attestation →2026-09-27 · 🧭 navigator · offPct 56
spec(vna): tick C342 — guard green (3/3; new test, each assertion verified red by targeted mutation then restored)
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct —→26 over 3 commits since
Open the signed attestation →2026-09-27 · ☕ network · offPct 38
feat(grant): keep claim-link tokens locally + admin page of every link, latest first, live status
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct —→0 over 12 commits since
Open the signed attestation →2026-09-27 · 🎤 voice · offPct 20
blog: Cross-link Flashlight and the Fog with 6 related posts
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct —→12 over 5 commits since
Open the signed attestation →2026-09-27 · 🧭 navigator · offPct 54
Revert "docs(thetacog-mcp): generated flowchart starts at install too (C347)"
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct —→12 over 21 commits since
Open the signed attestation →2026-09-27 · 📐 architect · offPct 36
spec(vna): tick C341 — guard green (6/6; red at f73a2bdfd6~1)
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 22→13 over 4 commits since
Open the signed attestation →2026-09-27 · 🧭 navigator · offPct 40
docs(vna): the flow chart names every extension source file, derived from the tree
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct —→12 over 21 commits since
Open the signed attestation →2026-09-27 · ☕ network · offPct 30 · mistagged
feat(claims): each claim page speaks to the person it was made for — their situation, their first /steer line, no name
Why it left the lane: The commit's claimed lane (C,C2) is carried entirely by 54 lines spread across 18 docs/comms/dm/*.dm.md files — three new frontmatter lines each (page_headline/page_opener/page_try). Everything else in the diff — scripts/comms/claim-pages.mjs (67 lines, a compiler), src/data/claim-pages.json (131 lines, its generated output), src/app/claim/[token]/page.tsx (29 lines, the Next.js route), tests/notary/claim-board.test.mjs (18 lines) — is 245 lines of app-route/data-compiler/attestation-test mass. The walk reads that vocabulary as product infrastructure and places it at A1,B1; only the small DM-prose slice sits at C,C2.
The semantic pull: Literal pulls toward A1,B1: 'compiles them into src/data/claim-pages.json keyed by link id (sha256 of the token...)', 'REFUSES to emit if a page carries the person's name', and the file paths themselves — src/app/claim/[token]/page.tsx, tests/notary/claim-board.test.mjs. None of that is comms-lane vocabulary; it's compiler/route/attestation vocabulary, which is exactly what the 30% off-lane mass is made of.
Intent–reality gap: The message claims this is comms personalization work (18 DM sources 'written to speak to the specific target') filed under Relevant-Rooms: Network, Voice, Operator — but the receipt shows the majority-mass code (compiler + generated JSON + app route + notary test) has no comms room named for it at all, and the originating room (📐 Architect) that actually holds that code isn't in the trailer either.
- Add docs/comms/dm/**.dm.md to Network's owned-surface glob — it's genuinely comms work and currently unclaimed by any listed pattern.
- Add src/app/claim/**, src/data/claim-pages.json, scripts/comms/claim-pages.mjs, tests/notary/claim-board.test.mjs to whichever room's owned-surface config actually holds product/app-route code (Architect, per Originating-Terminal).
- Fix the commit-trailer authoring habit so Relevant-Rooms is populated from 'which room's glob does this diff's bulk match' rather than 'who is the intended audience/consumer'.
- Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010) — it has been asked 30 times without landing; find out why before asking a 31st time.
- Disambiguate scripts/comms/ as a path prefix: decide whether generic data-compilers belong there or should move to a non-comms-named directory.
What we learned: The Relevant-Rooms trailer is being written as an audience list (who should care about this) rather than a surface-ownership list (whose glob the diff actually matches) — and the room that DID the work (Originating-Terminal: Architect) is routinely left off its own trailer because the author doesn't count themselves as an 'audience' for their own commit. Prior lesson f748e0b17 named the purpose-vs-mass split; this event shows the fix never reached the trailer-authoring habit itself, so a structurally identical personalization feature (claim pages, distinct from the DM system f748e0b17 flagged) re-triggered the same gap.
The missing guard (the deliverable): tests/rooms/relevant-rooms-covers-diff.test.mjs
Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Saturated, not discriminating. litIntent/walksIntent and litReality/walksReality both sit at 100% — every cell the walk visits gets lit on both sides, so the walk currently just reports what the reef already decided, with zero headroom to show that some visited cells were near-misses rather than clean hits. Adjustment: raise the lit-threshold (or the walk depth/EYE cap) for this commit class until litIntent/walksIntent drops measurably below 100%, restoring contrast between 'visited and confirmed' and 'visited and marginal'. Experiments: Recompute prewalkOverlap with docs/comms/dm/*.dm.md corpus isolated from src/app+src/data+scripts/comms corpus for this sha; measure whether the comms-only slice clears the 15 threshold on its own. · Add app-route vocabulary (src/app/claim, claim-pages.mjs, claim-pages.json) to the comms reef dictionary for one trial sha and re-measure offPct — if it drops sharply, the reef corpus is simply missing legitimate comms-adjacent build vocabulary rather than the placement being wrong. · Re-run the three prior lessons for this room (fdd4db2dc, f748e0b17, f3a2a628d) with an expanded walk depth/EYE cap and check whether their offPct trend (19→17, 27→21, 16→33) tightens or stays noisy — tells us whether saturation is a room-wide pattern, not a one-off.Measured outcome (deterministic, not self-graded): room mean offPct —→0 over 12 commits since · dictionary ablation saved 806B
Room ☕ network is now at 44 out-of-lane events in 14 days with this instance repeating a previously-named-but-unfixed mechanism (f748e0b17), which reads as a widening loss ratio on comms-tagged commits; premium restores when ask-010 ships with the ownership globs above already in place, not just re-flagged.
Open the signed attestation →2026-09-27 · 🔨 builder · offPct 23
docs(vna): C337 — x-says-z (41 verified rows) + the transcripts and primary texts they quote
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 27→33 over 3 commits since
Open the signed attestation →2026-09-27 · 🔨 builder · offPct 31
fix(claims): each claim link unfurls as its own page — the person's headline + opener, no image, not the $1.2B site card
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 27→33 over 3 commits since
Open the signed attestation →2026-09-27 · 🧪 laboratory · offPct 50 · mistagged
fix(site): /full serves the book as plain text — a rewrite to /api/fulltext, never a redirect to a JS page
Why it left the lane: The diff is genuinely split into two halves that read differently on the lattice. Half is production site-routing (`source: '/full'`, `destination: '/api/fulltext'`, the redirect-table deletion) — this is the B-lane, matches the claimed intent. The other half is a test-harness rewrite that stopped regexing next.config.js as text and instead does `(await import(join(REPO,'next.config.js'))).default`, then walks the parsed rewrite/redirect arrays and calls `existsSync(join(REPO,'src/app/full'))` — that is tooling/introspection vocabulary (parse-config-as-data, filesystem-shape assertions), which is exactly the register 🧪 laboratory's owned surface speaks (mcp config, orchestrator, settings.json). That half is what pulled the event's coordinate toward C2 even though the file itself (tests/site/full-route-serves-book.test.mjs) sits nowhere near laboratory's globs.
The semantic pull: 'await import(...).default' and 'existsSync(join(REPO, ...))' in the rewritten test — parsing a config module and checking filesystem shape reads as tooling/instrumentation, the same register as laboratory's mcp/orchestrator/settings surface — while 'source: /full' / 'destination: /api/fulltext' in next.config.js is pure site-routing (B2). The test rewrite's tooling vocabulary is the drag toward C2; the config edit itself never left B.
Intent–reality gap: The commit's own trailers are unambiguous: Originating-Terminal: 🏗️ Builder, Relevant-Rooms: Builder, Operator, Network — Laboratory is named nowhere. The receipt nonetheless filed this event under room 🧪 laboratory, whose owned surface (memory/, .mcp.json, settings*.json, thetacoach-crm-mcp/, swarm-comms/, .thetacog/orchestrator/, punch-list*) contains neither next.config.js nor tests/site/**. The 50% offPct is measuring a commit against a lane it was never claimed to occupy.
- Register next.config.js and tests/site/** under Builder's (not Laboratory's) owned-surface glob list, closing the same gap ask-001 (room-surface-coverage.test.js) already tracks.
- Wire tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027) to assert event.room === trailer-derived room whenever Originating-Terminal is present in the commit message.
- Cross-check against Relevant-Rooms (ask-010, relevant-rooms-covers-diff.test.mjs): if attributed room isn't a member of Relevant-Rooms, treat as mistagged and fail loud rather than scoring offPct.
- Audit the last N events currently attributed to 🧪 laboratory for the same trailer-vs-room mismatch — this may be inflating the room's reported '344 out-of-lane events in 14 days' with commits that were never laboratory's to begin with.
- Document explicitly on laboratory's owned-surface list that next.config.js and tests/site/** are out of scope, so a reviewer can spot this class of mistag on sight.
What we learned: A test file's own INTERNAL rewrite style (regex-over-text vs parse-as-data) can pull the lattice coordinate independently of which file it lives in or which room's glob it matches — the room-attribution pipeline is reading content register, not just path, and when content register (tooling-flavored test code) and path (tests/site/) disagree, path should win but currently doesn't appear to.
The missing guard (the deliverable): tests/pmu-simulator/originating-terminal-matches-surface.test.mjs
Detector probe: signal attribution — gzip reef 30% · ballistic walk 70%. Saturated, not shallow: litIntent/walksIntent = 98/98 and litReality/walksReality = 144/144 — every cell the walk visited on both sides lit up, zero discrimination. Adjustment: add a per-cell admission score threshold so a visited cell only counts as 'lit' above a confidence cutoff, then re-run this same commit and check whether litIntent/litReality drop below 100%. Experiments: Re-seed the reef for this commit class using Relevant-Rooms trailer tokens (Builder, Operator, Network) as extra gzip-NCD seed material and re-measure whether prewalkOverlap rises above 3. · Apply the proposed admission threshold to the ballistic walk and recompute litIntent/litReality on this same sha to confirm saturation (98/98, 144/144) drops to a non-trivial rate. · Run an ablation on config-only + single-test-file commits specifically (commitClass=work, 2-file diffs) to see if a shallower walk depth reduces litReality without losing genuine drift detection.Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since · dictionary ablation saved 1096B
A mistagged room-of-record inflates this lane's apparent loss-ratio with a claim that was never underwritten to it; restoring the trailer-first attribution rule (ask-027) removes the false claim rather than requiring the lane to absorb it.
Open the signed attestation →2026-09-27 · 🔨 builder · offPct 56
fix(grant): a claim link prints its URL before the write, and the default grant is $100
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 27→33 over 3 commits since
Open the signed attestation →2026-09-27 · 📐 architect · offPct 18
docs(impasse): flow chart v2 — PRESERVE splice + every-file chart resolved
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 22→14 over 33 commits since
Open the signed attestation →2026-09-27 · ☕ network · offPct 23 · mistagged
feat(dm): status unsubscribed / hold — Adam marked unsubscribed, the unsent Cambridge DMs held
Why it left the lane: The diff's mass splits across two domains that ☕ network's declared surface doesn't jointly cover. docs/comms/dm/*.dm.md (`status: unsubscribed 2026-09-27 16:08`, `status: hold 2026-09-27`) and the gate in scripts/comms/dm.mjs (`if (/^unsubscribed/i.test(header.status || ''))`) sit in the comms/DM domain near intent lane B/A1. But the other half of the same commit — `{r.dm?.status ? <Pill on color={/^unsub/i.test(r.dm.status) ? '#c0392b' : '#b7791f'}>` in src/app/admin/claims/page.tsx and `status: h.status || null` added to the dm object in src/lib/notary/claim-board.mjs — sits inside the notary/admin claims-board file, alongside its existing `signedInAt`, `claimed`, `bound`, `gate.passed` vocabulary. The walk placed reality at B3,B3 (laneJump 7 from A1). Neither docs/comms/dm/, scripts/comms/dm.mjs, src/lib/notary/, nor src/app/admin/claims/ appears in ☕ network's owned-surface list at all, so both halves register as off-lane even though each half is internally coherent for its own domain.
The semantic pull: The claim-board.mjs edit sits one line below `signedInAt: signIns[0]?.created_at`, `claimed: cs.claimed`, `bound: cs.bound` — the file's dominant vocabulary is licensing/notary state, not comms. The page.tsx Pill sits between the `✅ claimed` pill and the `gate {r.gate.passed ? '✓' : '✗'}` pill. Those surrounding strings are what the reef/walk keyed on, pulling the commit's center of mass toward B3,B3 (the claims-board lane) even though the commit narrative is entirely about a WhatsApp unsubscribe.
Intent–reality gap: The commit message and Relevant-Rooms trailer ("Network, Voice, Operator") frame this entirely as a DM/network event — Adam unsubscribed, Cambridge DMs held — with no acknowledgment that two of the four changed semantic files (claim-board.mjs, admin/claims/page.tsx) are core notary/admin-dashboard code, not comms code.
- Add `docs/comms/dm/**` and `scripts/comms/dm.mjs` to ☕ network's owned-surface glob config.
- Add `src/app/admin/claims/**` and `src/lib/notary/**` to Operator's owned-surface glob.
- Extract the duplicated unsubscribe-detection regex (dm.mjs's `/^unsubscribed/i` vs page.tsx's `/^unsub/i`) into one shared classifier both files import.
- Land tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010, asked 32×) so a diff touching a file outside every named room's glob fails pre-commit instead of surfacing only in the drift receipt.
- Audit this room's other 45 out-of-lane events for the same docs/comms/dm + notary/claims-board shape to size how much of the chronic count this one glob gap explains.
What we learned: Prior lesson f748e0b17 said lane-claims should track where code's bulk structurally lives, not who consumes it. This event shows a narrower, un-covered failure mode underneath that: the owned-surface glob lists are static and hand-maintained, and this repo has no mechanism that flags a glob as stale when the SAME undeclared path (scripts/comms/dm.mjs) keeps tripping the same room repeatedly (46 times/14 days) — the drift signal here is measuring a documentation gap, not a placement error, and nothing currently distinguishes those two causes from the offPct number alone.
The missing guard (the deliverable): tests/rooms/relevant-rooms-covers-diff.test.mjs
Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Saturated, not shallow: a 100% lit-to-visited ratio on both sides means the walk can't distinguish real signal from noise — everything it touches counts as 'lit'. Adjustment: tighten the illumination threshold (require a stronger gzip-NCD match to count as lit) so some visited cells genuinely fail to light, making offPct track real semantic distance instead of an artifact of an all-admitting threshold. Experiments: Re-run this commit's walk with the prewalkOverlap minimum raised from 6 to 10+ and measure whether offPct moves off 23 — isolates whether the reef seed or the walk spread is driving the number. · Add the proposed docs/comms/dm/** + scripts/comms/dm.mjs glob to ☕ network's corpus and re-walk sha ced8a983e; measure whether lensIntent shifts to include B3, which would confirm the declared-surface gap (not the code) was the cause. · Recompress the last 14 days of this room's commit corpus with notary-domain terms (`claimed`, `signedInAt`, `gate.passed`) partitioned into a separate dictionary segment from comms terms (`status:`, `unsubscribed`, `hold`); measure whether litReality for claims-board-touching commits drops below its current visited count.Measured outcome (deterministic, not self-graded): room mean offPct —→0 over 12 commits since · dictionary ablation saved 852B
A room mistagged 46 times in 14 days reads on paper as an elevated loss-ratio lane even though the underlying work here is a two-line, low-risk status pass-through; restoring the owned-surface globs to match the room's real recurring footprint converts this from a control-failure premium hit back into what it actually is — a stale-declaration cost.
Open the signed attestation →2026-09-27 · 🔨 builder · offPct 45
feat(dm): /dm is the loop — research care, grade the twelve, gate, open, track; the board shows each gate
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 27→33 over 3 commits since
Open the signed attestation →2026-09-27 · 🧪 laboratory · offPct 31
feat(site): thetadriven.com/full serves the whole book text
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 18→11 over 3 commits since
Open the signed attestation →2026-09-27 · 🧪 laboratory · offPct 30 · mistagged
test(voice): rule-presence checks read the rulebook, not CLAUDE.md alone
Why it left the lane: The diff's four edits are structurally identical: each swaps `readFileSync(join(REPO, 'CLAUDE.md'), 'utf8')` for `import { rulebook } from '../lib/rulebook.mjs'; ... const claude = rulebook();` (or `const md = rulebook();`). That is a shared-helper-module refactor touching only tests/voice/*.test.mjs and tests/lib/rulebook.mjs — files that appear in NONE of 🧪 laboratory's owned globs (.claude/, .mcp.json, scripts/init-claude-flow-with-crm.sh, thetacoach-crm-mcp/, swarm-comms/, .thetacog/orchestrator/, .thetacog/punch-list*). The commit carries no Relevant-Rooms trailer, so whatever tagged this receipt as 🧪 laboratory had to guess, and the shared-import-helper shape ('import ... from lib/*.mjs' feeding four call sites) structurally resembles laboratory's own helper-script pattern (check-mcp-health.sh, init-claude-flow-with-crm.sh), which is the plausible pull toward C3,A1.
The semantic pull: lensIntent B2,B2 (a pure voice/content correction) vs lensReality C3,A1 (an operations/infra coordinate, matching the 'C1.Operations.Grid' family seen in this session's own hat naming). The pull term is the shared retrieval helper itself: 'rulebook()' replacing four inline readFileSync calls is an infra abstraction, not a content edit — the walk read that abstraction pattern as operational tooling work (laboratory's register) rather than as a fix to voice-rule *content* retrieval.
Intent–reality gap: The commit message claims a narrow, correct fix: four voice/pitch test files now read the split rulebook instead of stale CLAUDE.md-only checks. The receipt measured that mass landing at offPct=30 against 🧪 laboratory's lane — but laboratory's owned surface contains none of the touched paths, so the 30% isn't evidence the fix drifted; it's evidence the room label itself was never asserted by the commit (no Relevant-Rooms trailer) and was guessed wrong.
- Wire tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010, already asked 28×) into hooks/pre-commit as a live check, not just an open ask — it is the exact guard this event needed.
- Resolve tests/rooms/voice-glossary-owned-surface.test.mjs (ask-021) so tests/voice/** and tests/lib/rulebook.mjs have a declared owning room other than 🧪 laboratory.
- Audit .thetacog/delegation-routing.ndjson for other commits from the last 14 days tagged 🧪 laboratory with zero path overlap against its owned globs — 343 out-of-lane events in the room suggests this may be systemic, not a one-off.
- Reconcile Originating-Terminal (📐 VS Code Architect) against the receipt's room field (🧪 laboratory) via ask-027 (tests/pmu-simulator/originating-terminal-matches-surface.test.mjs) — clarify whether these two fields are meant to agree.
- Re-score sha dc964d974 once the tagging fix ships, to confirm it reclassifies out of 🧪 laboratory's lane entirely rather than merely lowering offPct.
What we learned: 🧪 laboratory's 343-event/14-day out-of-lane rate is plausibly a tagging-gap artifact, not a room-behavior problem: commits touching shared test helpers (tests/lib/*.mjs) have no declared owning room anywhere in the room-surface config, so the attribution step falls back to structural resemblance (shared-helper-import shape) instead of a declared claim — and laboratory's own surface is full of shared-helper scripts, making it the nearest wrong match every time this pattern recurs.
The missing guard (the deliverable): tests/rooms/relevant-rooms-covers-diff.test.mjs
Detector probe: signal attribution — gzip reef 30% · ballistic walk 70%. litIntent/walksIntent = 142/142 and litReality/walksReality = 142/142 — both sides are 100% lit, i.e. saturated, not shallow. A saturated walk can't discriminate signal from noise within its own spread, which is consistent with a false-positive-shaped event like this one. Concrete adjustment: introduce a minimum σ/gain cutoff so cells below evidentiary strength don't count as 'lit', targeting a lit-fraction ceiling below ~90% instead of 100%. Experiments: Correlate prewalkOverlap/walksIntent ratio against Relevant-Rooms-trailer-presence across the last 14 days of 🧪 laboratory events; predict trailer-absent commits cluster below 15% overlap — if confirmed, trailer-presence becomes a reef feature. · Recompute offPct for sha dc964d974 with tests/lib/*.mjs reclassified into a neutral 'shared-infra-helper' reef bucket (rather than laboratory's helper-script bucket) and measure whether offPct drops below the 15 threshold. · Re-run the walk at a tightened σ/gain cutoff (targeting sub-90% lit fraction) against the last 20 laboratory-tagged events and measure whether the false-positive share (mistagged vs. genuinely off-lane) changes.Measured outcome (deterministic, not self-graded): room mean offPct 18→11 over 3 commits since · dictionary ablation saved 1120B
A mistagged commit like this one manufactures phantom loss-ratio for 🧪 laboratory's lane without any real operational risk behind it, corrupting the room's premium signal until the trailer guard and a real owned-surface declaration for shared test helpers are both in force.
Open the signed attestation →2026-09-27 · 🧭 navigator · offPct 44 · mistagged
feat(vscode): C119k.7 — the activity-bar mask is the logo's own yellow line, and icon.png is the original logo again
Why it left the lane: The commit's own trailers (Originating-Terminal: 🏗️ Architect; Relevant-Rooms: Architect, Builder, Laboratory) never mention 🧭 navigator, yet this event's offPct is booked against navigator's ledger. Navigator's owned-file globs (scripts/open-room-session.sh, openclaw/src/thematic-scheduler.ts, openclaw/data/*, .workflow/cognitive-dashboard.html) share zero tokens with the touched paths (packages/thetacog-mcp-vscode/icon.png, media/thetacog.svg, media/icon.svg, tests/vna/c119k-activity-bar-icon-is-the-shield.test.mjs). With no vocabulary overlap to anchor to, the reality-side walk came back with lensReality=null while lensIntent resolved cleanly to C,C2 — the walk had an intent lens to sit in but nowhere real to place the reality mass, so it registered as leaked (44%) against whatever room the event got filed under.
The semantic pull: Nothing in the diff itself pulled toward navigator — the pull is structural: 'Originating-Terminal: 🏗️ Architect' in the trailer vs the pipeline's own room-attribution choice of 🧭 navigator for this receipt. The diff's actual vocabulary (`fill="none" stroke="currentColor"`, `subpaths(markPath())`, `readFileSync(resolve(EXT, 'media/thetacog.svg')`) is pure vscode/SVG/test language with no scheduling or thematic-heartbeat terms navigator's surface would recognize — confirming the mass wasn't dragged semantically, it was mis-filed procedurally.
Intent–reality gap: The commit claims Architect as its originating room and Architect/Builder/Laboratory as the rooms it touches — correctly, given it only edits packages/thetacog-mcp-vscode and tests/vna. The receipt instead measured this event's 44% off-lane mass against 🧭 navigator, a room whose owned surface has no overlap with a single file in the diff.
- Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, already asked 21×, 1 spelling) as an enforced check: fail when a commit's Originating-Terminal/Relevant-Rooms trailers name rooms with zero owned-surface overlap with the room the receipt actually booked offPct against.
- Backfill-audit navigator's 107 out-of-lane events over the last 14 days for the same Originating-Terminal≠booked-room pattern before treating any of them as real scope creep.
- Extend Architect's (or Builder's) owned-surface globs to explicitly include packages/thetacog-mcp-vscode/** and tests/vna/c119k-*.test.mjs so a correctly-attributed commit has a lane to land in (feeds ask-001 room-surface-coverage.test.js).
- Add a rule: when lensReality resolves to null, mark the event UNMEASURED for lane purposes rather than computing a raw offPct against a room with no textual anchor.
- Re-run the room offPct trend for navigator excluding trailer-mismatched commits to see how much of its prior 3→34% drift (per the fd50acb6c/fc8719175 lessons) is this same mistagging class rather than genuine navigator drift.
What we learned: Room attribution for lane/offPct accounting is decoupled from the commit's own Originating-Terminal/Relevant-Rooms trailers — a commit can self-declare its lane correctly and still get booked against an unrelated room's ledger, so a room's offPct trend can be dominated by misrouting rather than actual scope creep. The prior three navigator interventions were facts-only (no mechanism captured); this is the first to show the mechanism is procedural mis-filing, not semantic drift.
The missing guard (the deliverable): tests/pmu-simulator/originating-terminal-matches-surface.test.mjs
Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. litReality (129) exactly equals walksReality (129) — full saturation, every cell the walk touched got lit with nothing left ambiguous. For a homogeneous SVG+test+binary diff like this, that reads as oversaturated rather than right-sized: the walk is lighting everything it can reach without ever classifying it into a real lane (lensReality=null). Adjustment: cap or gate the reality walk's fill rate on file-extension homogeneity (svg+test+png with no js/ts logic) so a narrow, self-contained diff doesn't auto-saturate. Experiments: Seed the reef dictionary with vscode-extension tokens (svg, viewBox, subpaths, currentColor, icon.png) pulled from packages/thetacog-mcp-vscode's own commit history, then replay the last 20 vscode commits and measure whether median prewalkOverlap rises above the current 15. · Patch room-attribution to prefer the Originating-Terminal trailer over session-inferred room when Relevant-Rooms glob-overlaps the diff, then replay navigator's 107 out-of-lane events from the last 14 days and measure how many drop below the 15% threshold. · When lensReality resolves null, route the event to a distinct UNMEASURED bucket instead of a numeric offPct, then measure what fraction of navigator's historical offPct spikes were actually null-lensReality events versus real content drift.Measured outcome (deterministic, not self-graded): room mean offPct —→12 over 21 commits since · dictionary ablation saved 895B
This 44% offPct, stacked on navigator's existing 107 out-of-lane events in 14 days, inflates the room's apparent loss-ratio with misrouted (not genuinely risky) work; premium is restored not by tightening navigator's actual scope but by shipping ask-027 so trailer-correct commits stop being booked against rooms they never touched.
Open the signed attestation →2026-09-27 · 🔨 builder · offPct 37
feat(grant): claim link — a $20 comp that binds to whatever email signs in
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 27→33 over 3 commits since
Open the signed attestation →2026-09-27 · ☕ network · offPct 51
fix(dm): open names the send step for the message's channel, not always WhatsApp
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct —→0 over 12 commits since
Open the signed attestation →2026-09-27 · 🔨 builder · offPct 55
feat(claims): board as the extension's pills — stats inside, open history filtered to not-you, most recent open first
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 27→33 over 3 commits since
Open the signed attestation →2026-09-27 · 🧪 laboratory · offPct 68
feat(vna): C341 — the additive chain: physics-predicted vs current-implementation, retained across runs
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 18→11 over 3 commits since
Open the signed attestation →2026-09-27 · 📐 architect · offPct 23
docs(vna): declare C343 — the C255 watchdog kills every headless worker longer than 10 min (json output is silent until the end); the rollback line is asserted, not measured
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 22→13 over 4 commits since
Open the signed attestation →2026-09-26 · ☕ network · offPct 18
docs(comms): audit the grip/mailbox LinkedIn post against current rules + v2 draft
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct —→0 over 12 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 20
docs(vna): tick C334 — guard green at its commit, red at the parent
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 17→11 over 3 commits since
Open the signed attestation →2026-09-26 · 📐 architect · offPct 22
spec(vna): C322 — red is a setpoint step: never halts (safety), a theme's red decays or is named (liveness)
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 22→12 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 18
fix(vna): C334 — /steer prints the engine's measured land rate before it dispatches, and the switch line when it trails
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 18→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 28
fix(vna): C233 — a quiet room crashed whisper-server and the daemon deleted 39 chunks behind it; srt replies + a supervised server
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 17→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 72
perf(vna): C318 — the prompt hook stops parsing the 84 MB tree inline; tool turns stop recomputing the meter
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 16→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 55
feat(vna): C336g — a peg that holds still carries a reading with n
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 18→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 48
feat(vna): C322c — theme-decay.mjs: one line per theme, red at t0 → red now over n commits · decaying | flat | rising
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 17→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 57
perf(vna): C233 — the fold runs beside the drain, the interval tunes itself, and the pill says how long speech takes to reach the tree
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 17→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 53
spec(vna): optimisation targets renumbered C319 → C321; a/b re-ticked
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 17→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 27
docs(vna): impasse v2 2026-09-26 — 4 resolved without the operator (dc021bb5fd, eebe6006ad, triage has 0 pending, this pair is the phase-0 report), v1 item 8 corrected, 12 one-line answers left (mailed)
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 18→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 72
feat(vna): C233b — a 🔨 auto-build box on the audio pill: a spoken part dispatches to /steer only if it opens with "steer …"/"build …" AND the walk admits it
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 17→11 over 3 commits since
Open the signed attestation →2026-09-26 · 📐 architect · offPct 38
docs(vna): declare C337 — who else is asking, the demand file sourced before it is cooked
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 22→12 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 29
fix(vna): C150e — 📈 Optimisation Targets' label scrolled under its + ; every pill lead now floats beside the + by construct
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🔒 vault · offPct 22
docs(legal): draft v3 — intended governing law Delaware for our own paper, forum not law is the negotiation, Lane Review opening fee $2,500 (to confirm)
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 11 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 39
fix(vna): C233b — the VAD pads speech 200 ms so the spoken cue survives: "steer" recognised 12/15 → 15/15
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 17→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 31
feat(vna): C336h — every target says which way is better
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 18→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🔨 builder · offPct 34
spec(vna): C312 ticked — long-on-short all red reruns, never breaks; guard 9/9 green under the C322a census
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 25→34 over 6 commits since
Open the signed attestation →2026-09-26 · 🔨 builder · offPct 23
chore(book): rebuild HTML (detached pre-push auto-heal)
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 25→11 over 9 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 32
test(vna): C322 ticked — red is a setpoint step: the parent's falsifier read live, safety and liveness both hold
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 17→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 46
feat(vna): C322d — a theme still flat or rising 5 commits after its declaration surfaces one line on the /steer close and in status
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 17→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 45
feat(vna): C334b — the switch line says how far it is, never asks (the code)
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 18→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 25
feat(skills): /impasse — every question for the operator goes out as a txt email with context and assumptions, then a second email says what the process resolved
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 18→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 39
docs(vna): tick C300 — guard green at 632eb5cfe2, red at its parent; split C300a (the fence below the tool) as its own row
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 18→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🎤 voice · offPct 27
edit(book): Appendix E §6.1 leads with the concession — "Yes, it is a git hook. No, it will never block your push."
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct —→12 over 5 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 28
docs(vna): impasse v3 2026-09-26 — decisions with reasons (Delaware for our paper, forum not law; $2,500 opening; inherit; strict; send both memos), the two Brians, Track One not yet examined, C-corp on record, 6 open issues (mailed)
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 18→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 24
docs(vna): C300a — split the fence below the tool off C300 as its own row
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 18→11 over 3 commits since
Open the signed attestation →2026-09-26 · 📐 architect · offPct 28
test(vna): C233 ticked — the audio stream is a basin; red witness: the guard fails at ca3619f935~1 and passes at HEAD
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 22→12 over 3 commits since
Open the signed attestation →2026-09-26 · 🔨 builder · offPct 22
feat(iamfim): the left door IS the extension — the card opens the ThetaCog Steer Marketplace listing and shows its screenshot
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 25→11 over 9 commits since
Open the signed attestation →2026-09-26 · 🔨 builder · offPct 23
feat(vna): C157 — the GIF names the file it should not have touched, and holds the punchline 2.5 s
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 23→36 over 14 commits since
Open the signed attestation →2026-09-26 · 📐 architect · offPct 53
feat(vna): C233 — the VAD threshold is measured on quiet speech too: 0.5 holds (0.3–0.7 all within one word at 0 to −32 dB)
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 22→12 over 3 commits since
Open the signed attestation →2026-09-26 · 🎩 operator · offPct 64
fix(pmu): C322b — a spec-only tick commit is a setpoint step, scored rows-before against rows-after, out of the drift series
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Open the signed attestation →2026-09-26 · 🔨 builder · offPct 62
docs(vna): /steergoal pair — Step 0 emptied: C334a made the engine switch unnecessary, and running it would overwrite the chat's selection
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 24→14 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 31
perf(vna): C233 — shorten the audio loop: slot every 2 × the fold (45 s), not 10 × (283 s); speech → tree ~160 s → ~55 s predicted
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 17→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 73
feat(vna): C233b — the spoken cue is the intent, the walk is the placement: "steer …" dispatches like a typed /steer
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 17→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🔨 builder · offPct 47
docs(vna): C337 — the steer timeline, verified: Nadella's first 'micro steering' is 2025-11-29, not 2026-09
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 27→33 over 3 commits since
Open the signed attestation →2026-09-26 · 🧭 navigator · offPct 17
docs(diligence): Realization 5 — follow the money: every party is paid for a receipt that recomputes, nobody for a promise
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 30→26 over 3 commits since
Open the signed attestation →2026-09-26 · 📐 architect · offPct 23
docs(vna): tick C334b — guard green at 5965cb15c4, red at its parent
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 22→12 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 73
feat(vna): C233 — the audio stream is a basin: mic → local whisper → stream.txt → the tree on a timer, and a 🎙️ pill above Copy Run Summary
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 17→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 51
feat(vna): C233 — the audio basin's variables, measured: turbo · 15 s chunks, and the incumbent holds unless beaten beyond the noise
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 17→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🧭 navigator · offPct 46
docs(extension): the runbook's Install step links the Marketplace listing and the public source
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 30→26 over 3 commits since
Open the signed attestation →2026-09-26 · 📐 architect · offPct 63
docs(vna): tick C337 — guard green at 43cb506d7e, red against the PENDING draft and a re-merged quote
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 22→17 over 7 commits since
Open the signed attestation →2026-09-26 · 🔨 builder · offPct 29
docs(vna): /steergoal pair — land the open work in four phases (config → the melt → aperture → public surface), with what the record says about the window hypothesis
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 24→14 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 23
docs(vna): impasse v1 2026-09-26 — 14 questions, 9 acts, 11 already answered (mailed)
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 18→11 over 3 commits since
Open the signed attestation →2026-09-26 · 🧪 laboratory · offPct 30
fix(vna): C334a — the steer chat's local engine never hijacks /steer: outside the chat /steer runs on claude unless --driver says otherwise, and steer.mjs never writes the chat's engine file
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 📐 architect · offPct 23
fix(vna): C279 — bisect runs each commit's own guard, not HEAD's: a guard grows after its tick, so HEAD's version read every row RED-AT-TICK
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 24→23 over 4 commits since
Open the signed attestation →2026-09-25 · 🔨 builder · offPct 17
docs(vna): C297–C298 — what C296's doc found: the chat's doors in a foreign repo, and five places the chat says one thing and the code another; goal widened
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 23→32 over 11 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 35
feat(vna): C295 — /steer steers the goal: every close line names the units closed, the uncovered asks and the /steergoal source
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 📐 architect · offPct 16
docs(vna): C263–C282 — the gold spec's nineteen units declared as rows, goal set to them (50–70 turns)
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 24→21 over 13 commits since
Open the signed attestation →2026-09-25 · 🧭 navigator · offPct 30
feat(vna): C277 — U14: ↻ keep /steer running — a box beside ⏹ End all that an ask from the chat ticks; a host daemon runs pass after pass
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 30→26 over 3 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 23
fix(vna): C256b — a thinking local worker is not a quiet one: the watchdog asks the host whether the model is generating before it ends it
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 27
fix(vna): C221's header carried to the guards it left red — C122a.0 and C116.0 re-pinned, the loop + tooltip ends next: again, C122h reads our voice only
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 18
feat(vna): C283 — a guard that cannot fail earns no tick: TODO/skip/zero-test guards are hollow, and the guard must be red on its own parent
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🧭 navigator · offPct 32
feat(vna): C250f — both models' stats on the pill face beside Online: 💬 tag GB ctx · 🤖 tag GB ctx · workers running
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 30→26 over 3 commits since
Open the signed attestation →2026-09-25 · 📐 architect · offPct 20
docs(vna): C280 names a runnable guard — c106j (asked-vs-built's full receipt reads contradicted 0), not 'the rows' own guards'
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 24→24 over 4 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 32
fix(vna): C275b — gooseTurns finds the session under its resolved dir (/var → /private/var): the first K=1 trial read 0 turns after 2 tool calls
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 16
feat(vna): C302 — /steergoal is what you run after /clear: it checks in off the record, reports progress, continues from NEXT
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 24
feat(vna): C266 · C271 — replay-bench --record writes the calibration and the A/B as one recomputable file; both guards committed, RED until the trials land
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 23
fix(vna): C256 — a quiet local worker gets 3 min, and its model is unloaded
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 57
fix(vna): C291 — the record keeps one engine per arm
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 📐 architect · offPct 21
docs(vna): C264 and C283 ticked; C263 and C264 re-proved under C283 (red on their parents, green at HEAD)
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 24→29 over 4 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 42
test(vna): C284 — the non-thinking build is read off its Modelfile, and seen red on six bad copies
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 50
test(vna): C106j · C280 — the no-contradicted-ticks guard is live: asked-vs-built's full run reads 0 CONTRADICTED
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🔨 builder · offPct 23
feat(vna): C295 — tick: the goal-accounting guard is green at HEAD and red at its parent
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 23→32 over 11 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 22
feat(vna): C282 — U18b: pattern sweeps — one witness generator per invariant, one C282 sub-row per violating file, armed only once variant B lands
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🔨 builder · offPct 17
docs(vna): C250 · C254 ticked — both guards green at HEAD with a red witness; /steergoal had proposed them as open units
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 23→32 over 11 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 45
fix(vna): C278 — gemma's class is trusted on her score (0.60 vs a 0.325 majority baseline, n 40); her DIAL stays unused until it beats the rotation
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🧭 navigator · offPct 33
fix(vna): C250b — the engines pill is the page's pill: [ + ] [ ⏹ End all ] · reading, the workers line behind the +
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 30→26 over 3 commits since
Open the signed attestation →2026-09-25 · 🧭 navigator · offPct 18
feat(vna): C250a — the engines pill refreshes itself: ↻ inside the +, every 15 s while open, after each chat reply
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 30→26 over 3 commits since
Open the signed attestation →2026-09-25 · 🧭 navigator · offPct 21
feat(vna): C297 — the chat's own doors run in a foreign repo: eight npx doors, buildCapabilities through the table, every home-only script with its why
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 30→26 over 3 commits since
Open the signed attestation →2026-09-25 · 📐 architect · offPct 25
docs(vna): C304 declared — gemma reads qwen's explanation cold; a reading kept only if it predicts landed over a null
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 24→20 over 4 commits since
Open the signed attestation →2026-09-25 · 🔨 builder · offPct 26
feat(milestones): C307 — the code and /milestones read each other: one binding, the forest and the trees
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 23→32 over 11 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 26
fix(vna): C287b — the hooks yield to the heavy lock: a running bench is no longer starved by the session's own turns
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 25
feat(vna): C275b — a thinking-only turn is named: goose's session store says when qwen3's whole turn was reasoning, and the bench, the learn row and triage carry it
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 24
feat(vna): C275 — U12: the alive signal is on the row — output events vs generation resets, how long the server's generating kept a silent worker
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 📐 architect · offPct 28
docs(vna): C262 ticked — its guard is green at HEAD
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 24→12 over 4 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 31
feat(vna): C279 — U16: which commit broke it — git bisect in a sparse scratch clone names the culprit for each regressed tick
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🎩 operator · offPct 38
fix(voice): the word names the chaos, we are Grip — close every door that taught "determinism"
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 24
fix(vna): C279 — bisect names the LIVE break: gallop back from HEAD to the most recent green commit, then bisect from there
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 24
feat(vna): C256c — D3: qwen stays warm across retries and unloads once when the loop stops, never per watchdog kill
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🔨 builder · offPct 31
feat(forms): v4 — the walking prompt ends on a dozen questions, brick on brick, so the reader's model grips the claim before it talks
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 23→32 over 11 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 21
fix(test): the deploy-hook guard skips the append-only tapes — git grep was OOM-killed (137), so 851f8e912a failed for the wrong reason
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 16→11 over 3 commits since
Open the signed attestation →2026-09-25 · 📐 architect · offPct 19
docs(vna): section 14 — the decisions we are working with, on tonight's raw Ollama measurements (thinking costs ~95 s a turn, cold prefill ~45 s, warm 0.4 s, /no_think does not pass through goose)
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 24→12 over 4 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 23
fix(vna): C280 — C103d: re-pin for C201b (chat removed) and C179 (engine-keys added), C200 key-box nesting, C109e ref-doors
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 26
feat(vna): C186c — /steer's end line names every ticked row whose guard went red, and the ledger files it under CORRECTIONS
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 24
feat(vna): C274 — U11: the loop leaves the tree as it found it — a halted dispatch rolls back only the brief's targets that were clean at dispatch
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 📐 architect · offPct 44
docs(vna): N8 — a gemma halt-triage sensor, scoped to the unstructured worker-log residue, after N1 and D1
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 24→12 over 4 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 33
feat(comms): /wave RESULT is the action the prospect agrees to, fitted to their seat, never "they reply"
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🔨 builder · offPct 17
docs(vna): C289–C291 — starved trials are not readings, a frozen arm opens one new arm, the nothink gauge's first reading; goal widened to 10 units
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 23→32 over 11 commits since
Open the signed attestation →2026-09-25 · 📐 architect · offPct 65
spec(vna): C308b + C308g + C308f ticked — two banks declared and uncrossed, the limit rides every recompute claim, the concession precedes the offer
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 23→30 over 4 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 22
feat(vna): C281 — U18a: the legibility rate — K trials of one module with one dial moved, landed/K with a Wilson interval, lowest first
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 24
fix(vna): C255b — one id names one row: the toggle refuses an ambiguous id, C255's twin renamed C254a, C255 ticked
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 📐 architect · offPct 24
docs(vna): C280 and C106j ticked — asked-vs-built's full run reads 0 contradicted, guard live and green
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 24→24 over 4 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 24
feat(vna): C276 — U13: a retry changes the brief, one dial — window+50 · narrow · no-helpers, picked by a fixed rotation, logged as an A/B pair
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🧪 laboratory · offPct 29
fix(ops): C250d — the ollama context floor finally reaches the server: bootout + bootstrap, never kickstart; models unload after 2 m idle
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 15→11 over 3 commits since
Open the signed attestation →2026-09-25 · 🧭 navigator · offPct 17
fix(vna): C250c — the chat's instructions live behind the +, the compose box only points there
Why it left the lane: (sensemaking unavailable — facts-only intervention)
Measured outcome (deterministic, not self-graded): room mean offPct 30→26 over 3 commits since
Open the signed attestation →