💳 Fund Autonomy Ledgernot signed in🔑 Sign in

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

2026-10-13
27 · 🧪 ☕ 📐 🎩 🧭 🔨 🎤
2026-10-11
5 · 📐 🎩 🧪
2026-10-10
10 · 📐 🔨 ☕ 🧪
2026-09-30
35 · 🧪 📐 🔨 🧭 🔒
2026-09-29
75 · ☕ 🔨 🧪 🎤 📐 🧭 🎩 steer-worker 🤖
2026-09-24
47 · 🧪 🔨 📐 🧭 ☕ 🎤
2026-09-23
88 · 🧭 📐 🧪 🔨 ☕ 🎤 🎩
2026-09-22
19 · 🔨 🧭 ☕ 📐 🧪 🎩
2026-09-21
66 · 🧭 🧪 🔨 📐 ☕
2026-09-20
49 · 🧪 🧭 📐 🎩 🔨 🔧 📣
2026-09-19
61 · 🧪 📐 🔨 🎤 🎩 🧭 ☕
2026-09-18
103 · 🧪 ☕ 🎩 📐 🧭 🔨
2026-09-17
71 · 🎩 🧪 🔨 📐 🧭 🎤 ☕
2026-09-16
52 · 🧪 🎤 🔨 🧭 🎩 📐 ☕

The interventions — why · fix · checklist

  1. 2026-10-03 · 🔨 builder · offPct 27 · structural

    feat(vna): C611j — the money shot redrawn in our verbs (vector SVG + 1600-px PNG, chips read from the C611h ledger)

    Why it left the lane: No region-narrative cache exists for sha 9254db7b1, so the only positional evidence available is a room/glob collision: the diff writes public/blog/2026-10-03-the-picture-is-the-spec/money-shot.svg and money-shot.png, and public/ sits inside 🔨 builder's owned-surface list verbatim ('public/'). The commit's own Relevant-Rooms trailer names only 📐 architect, 🧭 navigator, 💼 vault — 🔨 builder is not even on that list, yet it is the room the offPct=27 event fired against. The pull toward builder's lane is the bare path string 'public/...' matching builder's blanket glob, not anything in scripts/vna/money-shot.mjs's actual content (SVG art helpers, chipFor(), the ledger reader), which lives entirely outside every glob builder claims.

    Intent–reality gap: The commit claims the work belongs to architect/navigator/vault (redrawing an infographic in VNA house verbs); the receipt measured mass landing in 🔨 builder's lane purely because the rendered artifacts were written under public/, a path builder's config claims unconditionally regardless of who authored or why.

    • Narrow 🔨 builder's public/ glob in the room-surface config to exclude public/blog/** (the structural fix)
    • Wire tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, already asked 33×) to also flag when the attributed drift-room is absent from the commit's own Relevant-Rooms trailer — this event is exactly that case
    • Wire tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010, asked 39×) to check every room whose glob the diff touches is named in Relevant-Rooms, including blanket globs like public/
    • Document in docs/architecture/claude-rules/doors-and-surfaces.md that generated blog/VNA assets under public/blog/** are owned by their generator's room, never by builder's blanket public/ claim
    • Audit the room's other 81 out-of-lane events from the last 14 days for the same public/blog/** signature before concluding this fix alone resolves the 82-event backlog

    What we learned: A blanket top-level glob on a room's owned surface (builder's bare 'public/') causes ANY write under that path to inherit that room's lane — independent of which rooms the commit's own Relevant-Rooms trailer names and independent of whether the generating code touches any file builder actually maintains. The drift here is a glob-collision artifact of room-ownership granularity, not a semantic misclassification of the work itself.

    The missing guard (the deliverable): tests/pmu-simulator/originating-terminal-matches-surface.test.mjs

    Detector probe: signal attribution — gzip reef 75% · ballistic walk 25%. Saturated, not right-sized: both walksIntent and walksReality are 100% lit, so the walk can't distinguish 'fully explored and genuinely diverged' from 'ran out of budget before converging'. Concrete adjustment: equalize the walk budget on both sides (currently 117 vs 138 — a 21-step gap that itself biases any downstream offPct math) and re-run with a raised shared cap to see whether saturation persists or the walk starts leaving unlit cells, which would be the real signal. Experiments: Re-seed the reef for this sha using only scripts/vna/money-shot.mjs's text content (excluding the binary-adjacent money-shot.svg/.png paths) and measure whether prewalkOverlap rises above 3 — path strings to binary-ish generated assets may be diluting the NCD signal versus the code that actually does the work · Re-run room attribution for this commit with public/blog/** excluded from builder's reef corpus, across the room's last 14 days of 82 out-of-lane events, and measure whether mean offPct drops materially · Equalize walksIntent/walksReality to a fixed shared budget (e.g. 130 each) for the next 20 commits and measure whether offPct variance narrows now that both sides explore the same budget

    Measured outcome (deterministic, not self-graded): room mean offPct 25→42 over 6 commits since · dictionary ablation saved 762B

    This event, read against the room's 82 out-of-lane events in 14 days, inflates 🔨 builder's apparent loss-ratio with noise from unrelated content-generation commits whose only connection to builder is a shared output directory; premium is restored by narrowing the public/ glob so builder's lane only prices drift in work it actually authored.

    Open the signed attestation →
  2. 2026-10-03 · 🧪 laboratory · offPct 19

    test(incidents): C612f — guards for three unguarded incidents (rickroll, wrong MCP bin, bulk-script exports)

    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 →
  3. 2026-10-03 · 📐 architect · offPct 34

    docs(spec): declare C611g — migrate the four SimHash sites C611d measured with no perf reason

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 21→29 over 7 commits since

    Open the signed attestation →
  4. 2026-10-03 · 📐 architect · offPct 25

    spec(vna): tick C612g — the conscience re-reads on the run (a55624c932, 8/8)

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 21→21 over 20 commits since

    Open the signed attestation →
  5. 2026-10-03 · 📐 architect · offPct 57

    spec(vna): tick C629 (512e5c2ef4, 4/4) — the enforcer spares an admitted bench

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 19→57 over 6 commits since

    Open the signed attestation →
  6. 2026-10-03 · 🧪 laboratory · offPct 25

    feat(blog): C617c — the robot-tax notebook's two overshoots refused by name (S36 the public fight, S37 the Trojan horse) + field invariant mechanic 8

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 41→15 over 3 commits since

    Open the signed attestation →
  7. 2026-10-03 · 🎩 operator · offPct 52

    perf(vna): C612b2 — the note under two seconds: the tree's rows held in the --door-serve socket daemon, the panel's crate path lean, placements and PNG in the crate

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Open the signed attestation →
  8. 2026-10-03 · 📐 architect · offPct 16

    spec(vna): declare C620–C624 — the rest of the delta map: path-bind on the daemon, one door to the binary, IntentGuard recapture, ledger atomic append, the door keeps a paragraph whole

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 19→18 over 4 commits since

    Open the signed attestation →
  9. 2026-10-03 · 🧪 laboratory · offPct 34

    feat(vna): C612g — the conscience re-reads on the run: tracked diff, 500 ms quiet window, single-flight, one entered/left line per change in the round sidecar

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 31→57 over 4 commits since

    Open the signed attestation →
  10. 2026-10-03 · 📐 architect · offPct 47

    spec(vna): tick C631 (195921b28c, 4/4) — the ollama-callers ratchet green at debt 74

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 19→25 over 20 commits since

    Open the signed attestation →
  11. 2026-10-03 · 🧭 navigator · offPct 69 · mistagged

    feat(vna): C606a — the crate's boundary probe is one report struct; pmu-onchip prints it, the carve takes IntentGuard 93411e7

    Why it left the lane: The commit's own trailers are unambiguous: `Originating-Terminal: 🔨 Builder` and `Relevant-Rooms: Builder, Laboratory, Operator` — 🧭 navigator appears nowhere. Every changed path (`packages/intentguard/carve.json`, `packages/intentguard/own/{index.d.ts,index.js,napi/src/lib.rs,src/main.rs,tests/boundary_probe_napi.test.mjs}`, `packages/thetacog-mcp/intentguard/src/boundary_probe.rs`, `packages/thetacog-mcp/pmu-rust/src/main.rs`, `tests/pmu-simulator/axiom0-grounding.test.mjs`) sits inside crate-internal territory the trailers claim. None of it touches Navigator's owned glob (`scripts/open-room-session.sh`, `openclaw/src/thematic-scheduler.ts`, `openclaw/src/focus-gravity.ts`, `openclaw/data/thematic-schedule.json`, `openclaw/data/ollama-overnight/thematic-heartbeat.json`, `.workflow/cognitive-dashboard.html`) — zero lines, zero bytes. offPct=69 against Navigator is therefore mechanically guaranteed the instant this event got filed under Navigator at all: walksIntent=126/litIntent=126 and walksReality=142/litReality=142 are both fully saturated (100% lit), so the lattice placement itself is confident and stable — it is the ROOM the receipt was scored against that is foreign to the work, not the work that drifted into Navigator's coordinates.

    Intent–reality gap: The commit message and trailers correctly claim Builder/Laboratory/Operator territory for a self-contained crate change (one `boundary_probe::report` struct shared by the CLI and the napi addon); the receipt measured this same work against 🧭 navigator's lane, where it has literally zero file overlap, producing offPct=69 for a room the commit never claimed and never touched.

    • Ship tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs (ask-033, already asked 19×): assert a commit whose Relevant-Rooms/Originating-Terminal set excludes a room cannot raise that room's offPct or feed its 14-day mean.
    • Cross-run tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027) on this sha to confirm Builder genuinely matches packages/intentguard + packages/thetacog-mcp/{intentguard,pmu-rust} — establishes the trailer is trustworthy input before the mistag guard trusts it.
    • Cross-run tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010) on this sha to confirm Builder/Laboratory/Operator's owned globs actually cover every changed path — if they don't either, that's a second, independent defect layered under this one.
    • Backfill: recompute 🧭 navigator's last-14-days room-mean offPct excluding every event whose trailer set excludes Navigator, and compare against the recorded 3→34 / 3→34 / 28→26 trend from prior interventions — if the mean collapses, this IS the dominant cause of the room's 75 out-of-lane events.
    • Locate the actual code path that wrote 'room 🧭 navigator' onto aded46267's receipt (the room-binding step upstream of the facts-only intervention) and patch it to read commit.relevant_rooms/originating_terminal before tagging a room, rather than falling through to an unrelated one.

    What we learned: Navigator's chronic 75-events-in-14-days / flat-to-worsening offPct trend (3→34, 3→34, 28→26 across three prior facts-only passes) is not evidence that Navigator's own files are drifting — it is evidence that the room-attribution step is scoring Navigator against commits whose own trailers never name Navigator at all. No spec or code fix on Navigator's owned surface can ever lower a score that is driven entirely by foreign, correctly-scoped crate work being misfiled into its lane.

    The missing guard (the deliverable): tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs

    Detector probe: signal attribution — gzip reef 75% · ballistic walk 25%. Saturated, not under- or over-used: both sides hit 100% lit (126/126, 142/142), so the walk has no remaining resolution to distinguish 'barely off-lane' from 'entirely foreign room' — it reports binary membership only. Adjustment: add a saturation flag that fires when litX/walksX ≥0.98 on both sides and routes those events to a secondary, higher-resolution pass (or explicit UNMEASURED) instead of letting a maxed-out walk stand in for a confident severity score. Experiments: Recompute offPct for this sha scoring against Builder (the Originating-Terminal room) instead of Navigator; if offPct collapses toward 0, that is a direct, measurable confirmation of the mistag hypothesis. · Re-run the last 14 days of Navigator's 75 out-of-lane events with event_room re-derived as {originating_terminal} ∪ relevant_rooms instead of whatever currently assigns the room, and diff the room-mean offPct before/after. · Add an `event_room_in_trailer_set: bool` column to the receipt row and measure its correlation with offPct>threshold across all rooms for the last 14 days — a strong correlation prioritizes shipping ask-033 over any room-specific sensemaking.

    Measured outcome (deterministic, not self-graded): room mean offPct 12→14 over 8 commits since · dictionary ablation saved 900B

    Scoring a correctly-scoped Builder/Laboratory/Operator crate commit as a 69%-off-lane loss against Navigator's book is a phantom claim that inflates Navigator's premium on work it never touched; restoring the rate requires purging trailer-foreign events from Navigator's loss history before the next repricing pass.

    Open the signed attestation →
  12. 2026-10-03 · 🧪 laboratory · offPct 66 · structural

    perf(vna): C610n — the pre-run walk is fast: the slot reads the tree once instead of one git grep per term; every drift note carries its stage profile

    Why it left the lane: The commit's own trailers already resolve this to Builder territory — "Originating-Terminal: 🔧 Builder" and "Relevant-Rooms: Builder · Architect · Performer" — and the touched files (scripts/vna/code-slot.mjs, scripts/vna/drift-note.mjs, scripts/vna/steer-runner.mjs, tests/vna/c610n-*.test.mjs) match none of 🧪 laboratory's owned globs (.claude/, .mcp.json, scripts/claude-room, thetacoach-crm-mcp/, swarm-comms/, .thetacog/orchestrator/, punch-list*). lensIntent=C,A1 vs lensReality=B3,B2 (laneJump=6, laneHamming=32 of 144) is the walk measuring exactly that gap. This is not an isolated slip: 🧪 laboratory logged 226 out-of-lane events in 14 days, and the two open asks that would catch this (tests/rooms/relevant-rooms-covers-diff.test.mjs, asked 38×; tests/pmu-simulator/originating-terminal-matches-surface.test.mjs, asked 33×) are the most-asked tickets in the room — the architecture is routing commits to whatever room's session produced the receipt, not the room the commit's own trailers declare.

    The semantic pull: Nothing in the diff's vocabulary (profile.stages, stageClock, git ls-files, worktreeFiles, foldAscii, median ≤ 10 s / 21.4 s) pulled this toward laboratory's domain — the pull is entirely in the room-attribution layer, which ignored the trailer strings "Originating-Terminal: 🔧 Builder" and "Relevant-Rooms: Builder · Architect · Performer" sitting in plain text at the bottom of the same commit message it receipted.

    Intent–reality gap: The commit declares itself Builder/Architect/Performer work in its own trailers; the receipt measured and filed it under 🧪 laboratory, a room whose owned surface doesn't contain a single file this commit touched.

    • Run tests/rooms/relevant-rooms-covers-diff.test.mjs over the last 226 🧪 laboratory-tagged events to count how many are mistagged vs genuinely drifting
    • Add scripts/vna/**, tests/vna/** to Builder's (or Architect's) owned-surface manifest
    • Change the receipt's room-resolution order to: Relevant-Rooms trailer → Originating-Terminal trailer → surface-glob match → session room, in that priority
    • Re-run 🧪 laboratory's mean-offPct trend filtered to only commits whose own trailers name laboratory, to get its true baseline (it may be far below 66/15)
    • Backfill-retag the 226 recent laboratory events through the corrected resolver so their receipts move to their declared rooms
    • Land tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027) alongside ask-010 — they check the two directions of the same mismatch and neither alone is sufficient

    What we learned: 🧪 laboratory's offPct is substantially a ROUTING artifact, not a discipline signal: with 226 out-of-lane events in 14 days and the room's two most-asked open tickets (38× and 33×) both aimed at exactly this trailer/surface mismatch, every prior 'sensemaking unavailable' intervention here was almost certainly grading mistagged commits from other rooms, not laboratory's own work.

    The missing guard (the deliverable): tests/rooms/relevant-rooms-covers-diff.test.mjs

    Detector probe: signal attribution — gzip reef 30% · ballistic walk 70%. Right-sized, not shallow or saturated in the truncation sense (fill ratio is exactly 1.0 both sides) — but the spread it reaches (laneHamming=32) is large given how trivially this case resolves from text already in the commit. Concrete adjustment: seed the intent walk with the commit's own Relevant-Rooms/Originating-Terminal trailer text in addition to the spec row, so a commit that already names its room in plain text doesn't still walk to a distant lane. Experiments: Re-run this sha's reef seeding with the trailer lines concatenated into the intent text; measure whether prewalkOverlap rises and offPct falls deterministically on replay · Ablate: for the last N 🧪 laboratory-tagged events, classify each as trailer-mismatch vs genuine-drift, and report what fraction of the room's 226-event count is routing noise vs real · Add stage timing (the stageClock pattern this very commit shipped) to the room-resolution step itself, to confirm resolution time/vocabulary isn't itself biasing which room a profiling-heavy commit lands in

    Measured outcome (deterministic, not self-graded): room mean offPct 31→57 over 4 commits since · dictionary ablation saved 620B

    226 mislabeled events in 14 days means 🧪 laboratory's loss-ratio is currently measuring routing noise rather than lane discipline, which both overstates its premium and hides the true drift of whichever room (Builder/Architect/Performer) actually owns this work; premium is restored only after relevant-rooms-covers-diff filters the backlog and laboratory's offPct is re-scored on its own commits alone.

    Open the signed attestation →
  13. 2026-10-03 · 📐 architect · offPct 29

    feat(blog): C611a — notebook index takes --only <list>, and the 2026-10-03 index is committed over the catalogued snapshot (108 distinct)

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 21→29 over 7 commits since

    Open the signed attestation →
  14. 2026-10-03 · 🧪 laboratory · offPct 47 · mistagged

    test(vna): C615 — guard that the three live incident findings stay closed

    Why it left the lane: The diff's bulk is incident-closure plumbing (tests/incidents/_tree.mjs, static-shadow-page checks, the patent-link check) that justifies the Relevant-Rooms claim (🏗️ Builder, 🏛️ Vault, ⚙️ Operator). But two of the five test blocks assert against `public/mcp/setup-schema-v3.sql` and exercise `leads`/`card_notes` tables via PGlite against the exact schema `src/app/crm/setup/page.tsx` fetches — that is CRM/MCP domain content, and 🧪 laboratory is the room that owns `thetacoach-crm-mcp/` and `.mcp.json` in this room-surface list. The gzip-NCD reef and the walk both key on tokens like 'mcp', 'setup-schema', 'leads', 'card_notes' — vocabulary that sits in laboratory's reef seed — so a meaningful slice of the walk's 82 reality cells landed on laboratory's lattice coordinates even though the commit's own trailer never named that room.

    The semantic pull: Literal strings pulling toward laboratory: the path `public/mcp/setup-schema-v3.sql`, the comment 'src/app/crm/setup/page.tsx fetches it', and the PGlite test body ('CREATE TABLE', 'leads', 'card_notes', 'kept lead', 'kept note'). These are CRM/MCP nouns, and laboratory is the only room in the surface table whose glob (`thetacoach-crm-mcp/`, `.mcp.json`) names that domain — nothing in Builder/Vault/Operator's implied surface explains an SQL-schema re-run test.

    Intent–reality gap: The commit claims Relevant-Rooms Builder/Vault/Operator and a single Story ('the closure guard for the three C615 fixes') — it never claims laboratory. The receipt nonetheless measured 47% of this commit's reality mass landing in laboratory's lane, because the file bundles a fourth, CRM-domain incident (the setup-SQL re-runnability fix) that the trailer's room list doesn't cover.

    • Update the commit-trailer convention (COMMIT MESSAGE STRUCTURE in CLAUDE.md) to state: Relevant-Rooms must include every room whose owned-surface glob matches a changed or asserted-against path, not just the originating terminal's habitual collaborators.
    • Ship tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs (ask-033, already asked 21×) — the exact guard for this event class.
    • Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, already asked 35×) — would have flagged that 🏗️ Builder's Originating-Terminal doesn't cover the CRM/MCP surface touched here.
    • Add public/mcp/** and src/app/crm/** to 🧪 laboratory's owned-surface glob (wherever thetacoach-crm-mcp/'s sibling config lives) so future CRM-schema tests are recognized in-lane regardless of which file directory holds the test.
    • Split the two CRM-specific assertions out of tests/vna/c615-*.test.mjs into a laboratory-owned test file so a single consolidated closure guard never has to carry two rooms' lane claims at once.

    What we learned: A single 'close N incidents at once' guard test (the C612f consolidation pattern) structurally spans multiple rooms' owned surfaces by design, and the room/offPct pipeline has no defense against a commit under-declaring Relevant-Rooms for the smaller of those domains — this exact gap (ask-033) has been raised 21 times without shipping, making it the most-requested unshipped guard in the open-ask list for this room.

    The missing guard (the deliverable): tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs

    Detector probe: signal attribution — gzip reef 35% · ballistic walk 65%. Saturated, not sized to the diff's structure: both sides hit 100% fill, which for a file that bundles four unrelated incident domains means the walk isn't resolving sub-regions within the commit — it's painting the whole file one lane. Adjustment: for commits whose diff crosses a block-comment or test()-boundary into a second room's vocabulary (detectable via a cheap per-test-block reef pre-scan), run the walk per logical block instead of once per file, so CRM-domain blocks and web-shadow blocks can land in different lanes instead of being forced into one average. Experiments: Re-run the walk on this sha with the diff pre-split into its 5 test() blocks and measure whether aggregate offPct drops below 15 when each block seeds its own reef lane. · Strip generic test scaffolding tokens (import, assert.deepEqual, test(, readFile() from the gzip-NCD corpus used to compute prewalkOverlap, and re-measure whether prewalkOverlap rises above 5 once only domain vocabulary remains. · Seed laboratory's reef dictionary with 'setup-schema-v3.sql', 'card_notes', 'crm/setup' and re-run this commit's walk to measure whether offPct falls because the CRM-domain content is now recognized as in-lane rather than spillover.

    Measured outcome (deterministic, not self-graded): room mean offPct 41→15 over 3 commits since · dictionary ablation saved 873B

    A mistagged room claim that inflates offPct to 47% on a genuinely good guard commit erodes laboratory's loss-ratio with noise rather than signal, and premium is restored only once ask-027/ask-033 ship so a correctly-scoped commit like this one prices at its true near-zero lane risk.

    Open the signed attestation →
  15. 2026-10-03 · 🧪 laboratory · offPct 22

    feat(vna): C610g — the pre-run drift note: one Δ walk through the door, reds localised, snowball from the reds, CURRENT DRIFT into the brief only when admissible

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 31→57 over 4 commits since

    Open the signed attestation →
  16. 2026-10-03 · 🧪 laboratory · offPct 33

    feat(vna): C610a — the ensemble walk over the start-anchor slice, and the input-side check on C567g's 80 items

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 31→57 over 4 commits since

    Open the signed attestation →
  17. 2026-10-03 · 🔨 builder · offPct 28 · mistagged

    chore(chat): C611b — the Gemini scrape is off: every entry point exits 0 unless GEMINI_SCRAPE=on; both launchd jobs disabled

    Why it left the lane: The diff's lexicon is pure process-control: 'launchctl disable gui/<uid>/com.thetacog.gemini-pulse', 'GEMINI_SCRAPE=on', 'exit 0', repeated across ten scripts/chat/*.sh gates plus gemini-cdp-scrape.mjs's CLI-only guard. That reads as Ops.Grid×Tact.Signal mass — exactly the C,B3/C1,B3 coordinate the lens-router block shows red. 🔨builder's owned surface (src/app/, src/components/, src/lib/, public/, scripts/build-book-html.sh, scripts/voice-*-check.sh) has no entry anywhere under scripts/chat/** or tests/chat/**, so the walk has no builder-side lexicon to anchor against — which is why lensIntent=null while lensReality=C,B3. The mass isn't drifting FROM a builder lane, it's landing in a lane builder never had.

    The semantic pull: 'launchctl disable', 'GEMINI_SCRAPE=on', the repeated echo-and-exit-0 gate line, and the CLI-only process.argv guard in gemini-cdp-scrape.mjs are machine-state/toggle terms — Ops.Grid vocabulary. They pull placement into C1,B3/B3,A-C1 (the 🟥 band the panel shows at row B3 and column C1/C2), far from builder's src/app·src/components UI lexicon, because nothing in builder's owned glob shares that vocabulary at all.

    Intent–reality gap: The commit's own trailers declare Originating-Terminal 📐 architect and Relevant-Rooms 📐 architect/🧪 laboratory/🔒 vault — 🔨 builder appears nowhere in either. Yet this 28%-off event is filed under room 🔨 builder, whose owned-surface list shares zero files with the actual diff (12 scripts/chat/*.sh + gemini-cdp-scrape.mjs + tests/chat/gemini-scrape-off.test.mjs). The gap is not in the work, it's between the commit's own room claim and the room the pipeline charged.

    • Add scripts/chat/**, tests/chat/** to the owned-surface glob for 📐 architect (grep the room-surface source file first; don't invent a new config location blind)
    • Ship tests/ops/room-surface-coverage.test.js (ask-001) — every tracked path matches exactly one room glob, none fall through to a default
    • Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027) — the Originating-Terminal trailer's room must own the bulk of the diff's file surface
    • Ship tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs (ask-033) — an event whose diff has zero owned-surface overlap with the charged room is excluded from that room's offPct trend
    • Re-audit 🔨 builder's other 85 out-of-lane events from the last 14 days for this same zero-surface-overlap signature before treating the room's whole offPct trend as a code-quality signal
    • Check tests/ops/room-glob-overlap.test.mjs (ask-024) once scripts/chat/** is added, in case it now overlaps another room's existing glob

    What we learned: 🔨 builder's offPct trend is partly an artifact, not drift: a commit whose entire diff sits outside every room's owned-surface glob (scripts/chat/** has no owner at all) gets silently charged to whatever room the router defaults to, inflating that room's drift stats for work it never touched and never claimed in its trailers.

    The missing guard (the deliverable): tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Right-sized, not shallow: both sides hit 100% lit-to-walked ratio with walkTruncated=false, so the walk explored its full budget cleanly. The adjustment isn't depth, it's gating — when prewalkOverlap is this low (≤2) AND the charged room's owned-surface has zero path overlap with the diff, skip computing offPct against that room's lane entirely rather than letting a saturated walk report a confident-looking 28%. Experiments: Re-run prewalkOverlap for sha bf497c724 using the Relevant-Rooms trailer set (architect+laboratory+vault) as the seed lexicon instead of the file-path-routed room (builder); measure whether overlap rises materially above 2 · Ablation: recompute offPct for this sha with room forced to 📐 architect and compare against the threshold of 15 — if it drops below threshold, that's a direct confirmation the 28% is a routing artifact, not drift · Backfill-scan the last 14 days of 🔨 builder's 86 out-of-lane events for the zero-owned-surface-overlap signature (diff paths ∩ builder glob = ∅) and report what fraction of the room's offPct trend that signature actually explains

    Measured outcome (deterministic, not self-graded): room mean offPct 25→42 over 6 commits since · dictionary ablation saved 1355B

    This is attribution noise, not genuine risk: it inflates 🔨 builder's apparent loss-ratio for work the room's own trailers disclaim, and premium is restored not by builder writing tighter code but by closing the room-surface coverage gap so scripts/chat/** stops defaulting onto a room that never touched it.

    Open the signed attestation →
  18. 2026-10-03 · 🧪 laboratory · offPct 31

    feat(vna): C612l — the pair half: stampChatBrief, fenceCommit (one home), backfillChat, bothReadings WITH/WITHOUT backfill

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 41→15 over 3 commits since

    Open the signed attestation →
  19. 2026-10-03 · 🔨 builder · offPct 42

    content(blog): the 10-03 posts answer the three bounces — Rice yielded to, the counter moved out of the meter, the 14/62 scoped; today's receipts in

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 27→17 over 6 commits since

    Open the signed attestation →
  20. 2026-10-03 · 📐 architect · offPct 60

    spec(vna): tick C630 (935a0c3245, 3/3); declare C632 — the monologue tests read a scratch lock too

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 19→34 over 8 commits since

    Open the signed attestation →
  21. 2026-10-03 · 📐 architect · offPct 17

    spec(vna): C610m, C610n — a note that lights everything says nothing; the pre-run walk is fast

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 22→14 over 6 commits since

    Open the signed attestation →
  22. 2026-10-03 · 🔨 builder · offPct 53

    feat(vna): C611k — the money shot placed in four rooms: book ch8, /backup/how, Hersov deck draft, underwriter brief draft

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 25→42 over 6 commits since

    Open the signed attestation →
  23. 2026-10-03 · 📐 architect · offPct 16

    spec(vna): C612a–g — the conscience decomposed into seven guarded sub-rows; C613 — more meta vectors in and out

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 21→14 over 6 commits since

    Open the signed attestation →
  24. 2026-10-03 · 🔨 builder · offPct 21 · mistagged

    feat(vna): C616 — the money shot reads today's receipts: C612a/c/d/g wired into the C611h ledger by evidence

    Why it left the lane: The entire diff lives in scripts/vna/infographic-ledger.mjs, scripts/vna/money-shot.mjs, data/vna/infographic-ledger.json, data/vna/infographic-requirements.json, and tests/vna/c616-*.test.mjs — every byte of the commit is saturated with VNA/spec-tick vocabulary ('C612a','C612c','C612d','C612g','reading resolver','at the null','snowball chip','IR-B6','IR-C2','ERRATUM'). None of those path prefixes (scripts/vna/, data/vna/, tests/vna/) appear anywhere in Builder's owned-surface list (src/app/, src/components/, src/lib/, public/, book-build scripts, hooks/pre-commit, decentralizedtalk/, thetacoach-crm-mcp/, vercel.json). The commit trailer nonetheless stamps Originating-Terminal: 🔧 Builder. The receipt's own lens read (lensIntent=C,B2 vs lensReality=B3,B3, laneJump=6, laneHamming=28) is exactly this: the reef placed the work where its vocabulary actually sits (B3,B3 — the VNA/ledger cluster, which is why Relevant-Rooms already lists Laboratory) while the claimed lane (C,B2) is Builder's declared coordinate.

    The semantic pull: Strings dragging the reef toward B3,B3: 'C612a','C612c','C612g','reading','READING_BAR','at the null','IR-B6','ERRATUM','ledger.held','path-prediction.json' — all VNA-lexicon tokens with zero overlap against Builder-lexicon tokens (React/components/book-html/CRM). prewalkOverlap=6 against walksIntent=123 shows the gzip seed found almost no shared mass with the Builder lane before the walk even ran.

    Intent–reality gap: The commit message and trailers claim this is Builder's work (Originating-Terminal: 🔧 Builder), but the receipt measured 100% of the touched surface landing outside every glob Builder owns — the work is entirely VNA ledger/resolver code, correctly built, filed under the wrong terminal.

    • Correct this commit's Originating-Terminal trailer convention going forward (the committed sha itself can't be amended per NEVER-AMEND rule — note it, don't rewrite history)
    • Add scripts/vna/**, data/vna/**, tests/vna/** to the owned-surface glob for whichever room config backs tests/ops/room-surface-coverage.test.js (ask-001) — currently these three trees are claimed by none of the listed rooms, including Builder
    • Run tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027) against this sha to confirm it would have caught the Builder/vna mismatch
    • Run tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010) to confirm Relevant-Rooms (Builder, Laboratory, Architect) actually covers 100% of the 8 changed files once vna/ ownership is assigned
    • Audit the room's other 90 out-of-lane events from the last 14 days for the same vna/-under-Builder-trailer pattern before trusting the offPct trend as real drift vs. tagging noise
    • Wire tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs (ask-033) so a confirmed-mistagged commit is excluded from the room's rolling offPct mean

    What we learned: scripts/vna/, data/vna/, and tests/vna/ are an entire subsystem with no owning room in the owned-surface table at all — any terminal that happens to run a VNA commit (here Builder) will always drift, because there is no correct answer to 'which room owns this path' yet. Prior lessons for this room were facts-only (no sensemaking); this is the first pass to name the actual structural gap: the surface-coverage table, not the walk or the reef, is incomplete for this tree.

    The missing guard (the deliverable): tests/ops/room-surface-coverage.test.js (ask-001) must first assert every path under scripts/vna/, data/vna/, tests/vna/ is claimed by exactly one room (currently claimed by none); only once that coverage exists can tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027) correctly flag that 🔧 Builder's trailer doesn't match the touched surface. Both are already open asks (41× and 35× respectively) — this event is more evidence for the same two tickets, not a new construct.

    Detector probe: signal attribution — gzip reef 70% · ballistic walk 30%. Saturated, not under- or over-deep: litIntent/walksIntent and litReality/walksReality are both exactly 1.0 — every budgeted cell got lit on both sides with nothing left unexplored. That hides whether a smaller budget would still find the same B3,B3 landing or whether the full 144-cell reality fill is an artifact of hitting a round cap. Adjustment: rerun this sha with walksReality capped at e.g. 100 instead of the apparent ~144 ceiling and check whether litReality still saturates to the cap or naturally stops below it — that tells you if 144 is a real spread or a clipped one. Experiments: Re-run gzip-NCD placement for this sha with the commit body stripped to ONLY the changed file paths (no prose) vs. the full trailer+Story text, and compare resulting lensReality — isolates whether the B3,B3 pull comes from path tokens or from jargon like 'at the null'/'ERRATUM' · Seed the reef dictionary with a dedicated 'scripts/vna/ path-prefix' cluster and re-run ablation on the room's last 90 out-of-lane events to measure whether offPct separates mistagged-vna commits from genuine Builder drift · Pull all 90 out-of-lane Builder events from the last 14 days, grep each diff's file list against the Builder owned-surface glob, and measure what fraction touch zero Builder paths (a cheap filesystem check) before trusting any reef/walk signal as real drift

    Measured outcome (deterministic, not self-graded): room mean offPct 25→42 over 6 commits since · dictionary ablation saved 932B

    At 90 out-of-lane events in 14 days this lane's apparent loss-ratio reads far worse than its true risk if a meaningful share are vna/-under-Builder mistags rather than real drift; premium is restored by closing ask-001/ask-027 so offPct measures genuine lane divergence instead of an unowned-surface gap.

    Open the signed attestation →
  25. 2026-10-03 · 🧪 laboratory · offPct 36

    feat(vna): C626 — the no-river arm: variant N, IR-B2 reads the bench's rows, UNMEASURED at n 0

    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 →
  26. 2026-10-03 · 🔨 builder · offPct 40

    fix(vna): C615 — make the served CRM setup SQL non-destructive and re-runnable

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 25→42 over 6 commits since

    Open the signed attestation →
  27. 2026-10-03 · 🧪 laboratory · offPct 50

    feat(vna): C610c — the localisation bank: forecast zones → rows · files:spans · words, LLM-free

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 31→57 over 4 commits since

    Open the signed attestation →
  28. 2026-10-03 · 🧪 laboratory · offPct 32 · mistagged

    fix(vna): C610l — a refusal is not zero: readingFrom reads the door's refusal before coercing offPct

    Why it left the lane: The commit's own trailer cites three rooms — "Relevant-Rooms: Builder, Laboratory, Architect" — but the diff has exactly two files, scripts/vna/preference-read.mjs and tests/vna/c610l-a-refusal-is-not-zero.test.mjs, and neither sits inside Laboratory's declared owned-file-surface (the .claude/, .mcp.json, scripts/init-claude-flow-with-crm.sh, thetacoach-crm-mcp/, swarm-comms/, .thetacog/orchestrator/, .thetacog/punch-list* list). The receipt's lensIntent (B,A1 — Laboratory/Tactics) could not enclose lensReality (A1,A2 — where the VNA door/reef logic the walk actually lit up lives), which is exactly what laneJump=2 and laneHamming=36 register. The 32% offPct is the detector correctly reporting that a cited room's name and its actual file-ownership glob have drifted apart.

    The semantic pull: Strings that pulled the lit mass into A1,A2: `readingFrom`, `door.meta`, `m.refused`, `panel-door.mjs`'s `panel()` call, and `apertureTexts`/`lit-grid-trace.mjs` in the test — these are VNA sensor-core vocabulary (Architect/Builder territory), not any term found in Laboratory's CRM/orchestrator/swarm-comms surface. Nothing in the diff (`LIT-MASS FLOOR`, `offPct`, `ShortLex`-adjacent reader logic) has a Laboratory-side analog, so the walk had nowhere in B,A1 to land the mass.

    Intent–reality gap: The commit message claims Laboratory as one of three rooms whose owned-surface this work 'most touches,' but the receipt measured zero overlap between the changed paths and Laboratory's actual file-ownership list — the work is correct, the room citation on it is not.

    • Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010, already asked 36×) so a commit fails CI the moment a cited Relevant-Room has zero glob overlap with the changed paths
    • Audit the other 225 Laboratory out-of-lane events from the last 14 days for the same pattern — Laboratory cited, scripts/vna/or tests/vna/ touched, zero surface overlap — to confirm this one mechanism explains the bulk of the room's recurrence
    • Make an explicit yes/no decision: is VNA experimentation (scripts/vna/**, tests/vna/**) actually Laboratory's remit? If yes, extend Laboratory's owned-file-surface glob; if no, fix the commit-authoring guidance/examples so VNA commits stop habitually citing Laboratory
    • Re-score sha d905f473c's offPct with the corrected Relevant-Rooms trailer to confirm it drops under the 15 threshold
    • Grep the C610 commit family's history for "Relevant-Rooms:.*Laboratory" paired with scripts/vna diffs to see how far back the habit goes

    What we learned: This room's 226-events-in-14-days is not 226 independent misjudgments — it is one mechanism (VNA commits habitually citing Laboratory in Relevant-Rooms despite zero owned-surface overlap) firing repeatedly, and the fix for it (ask-010) has been asked 36 times without ever being shipped as a real test; the detector has been correctly flagging a gap the repo already named but never closed.

    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, not shallow or saturated — litIntent and litReality are within 4% of each other. One concrete adjustment: widen the prewalk reef dictionary to include each cited room's owned-surface path list so prewalkOverlap stops reporting near-zero before the walk even starts, rather than touching walk depth. Experiments: Re-seed the gzip-NCD reef for VNA-tagged commits using Laboratory's and Architect's owned-surface glob lists as competing dictionaries, and measure whether prewalkOverlap rises above 2 for this commit class · At pre-commit time, auto-recompute offPct with each Relevant-Room stripped one at a time and flag any room whose removal drops offPct by >10 points as the mistagged one · Track room-membership precision (cited-room-surface-overlap rate) across the last 14 days of Laboratory events specifically, to confirm it explains the bulk of the 226 flagged commits before investing in a broader reef rework

    Measured outcome (deterministic, not self-graded): room mean offPct 31→57 over 4 commits since · dictionary ablation saved 750B

    This event is noise, not a defect — it marks Laboratory's loss-ratio with another unforced positional false-positive rather than real cross-lane work, and the lane's premium only comes back down once ask-010 (asked 36× already) ships as an enforced guard instead of staying an advisory.

    Open the signed attestation →
  29. 2026-10-03 · 📐 architect · offPct 21

    spec(vna): C622 names the patch at its real path (packages/intentguard/patches/src/lens.rs.patch)

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 19→18 over 4 commits since

    Open the signed attestation →
  30. 2026-10-03 · 🧪 laboratory · offPct 27

    spec(vna): C610a–f — the promise held as a forecast: the walk ensemble before the work, scored after

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 31→57 over 4 commits since

    Open the signed attestation →
  31. 2026-10-03 · 📐 architect · offPct 34

    spec(vna): C618 — the predicts line reads the bits (C609a), not the admission gate

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 19→48 over 6 commits since

    Open the signed attestation →
  32. 2026-10-03 · 🔨 builder · offPct 52 · mistagged

    fix(pmu): C611q — no naked z on the meter: all_turns writes its null_sd; the schema takes the full reading for new roll-ups and keeps the pre-fix shape for history

    Why it left the lane: The diff's largest mass by far is public/schema/receipt.v1.json (1308 insertions) and public/schema/receipt.v1.html (2 lines) — both sit under the literal string "public/" in builder's owned-surface list. Builder's glob has no exclusion for public/schema/**, so the schema-contract publish drags the whole commit's lit-reality mass into builder's lane even though none of builder's actual code paths (src/app/, src/components/, src/lib/) were touched. The commit's own trailers (Originating-Terminal: 📐 architect; Relevant-Rooms: 📐 architect, 🧪 laboratory, 🔒 vault) never name 🔨 builder at all — the room assignment came from a bare path-glob match, not from the commit's self-declared scope.

    Intent–reality gap: The commit message and trailers claim architect/laboratory/vault work (a PN1 null_sd fix in scripts/pmu/grip-meter.mjs plus a receipt-schema amendment) and name zero builder-owned paths, but the receipt measured 52% of the lit reality cells outside the intent lane because builder's unscoped public/ glob matched the published schema files.

    • Narrow builder's public/ glob in the room-ownership config to exclude public/schema/** and public/commit/** (public/commit/** already named elsewhere as generated panel output, not builder UI).
    • Add public/schema/** explicitly to 📐architect/🔒vault's owned-surface list so the existing correct Relevant-Rooms trailer is glob-consistent going forward.
    • Land tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010) so a commit's Relevant-Rooms trailer is checked against every room whose glob the diff actually touches.
    • Land tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027) so a single dominant touched surface that contradicts the declared Originating-Terminal is flagged pre-receipt.
    • Re-run the 14-day offPct history for 🔨builder with the narrowed glob applied retroactively to measure how many of the room's 85 out-of-lane events were this same public/schema/** misattribution.

    What we learned: Builder's "public/" owned-surface glob is broad enough to swallow generated underwriting-contract artifacts (public/schema/*.json, public/schema/*.html) that the commit's own trailers correctly assign to a different room — the room-assignment pipeline trusts raw path-glob matching over the commit's self-declared Relevant-Rooms/Originating-Terminal, so one large schema-file diff can misfile an entire commit's lane even when zero builder code paths were touched. This is the first lesson in this room's history naming the actual mechanism (a glob-vs-trailer precedence conflict) rather than a bare outcome number.

    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, not saturated — litReality (128) is only 24% above litIntent (103), and walksReality tracks walksIntent closely, so the walk isn't over-exploring. The leak is upstream, at the seed. Adjustment: feed the walk a reef seed restricted to the room's narrowed glob (post spec_rewrite) so the seed itself can't start inside the schema-file neighborhood. Experiments: Re-run gzip-NCD seeding for this sha with public/schema/** excluded from builder's reef bucket and re-measure prewalkOverlap — expect it to rise above 4 if seed divergence was the schema-file leak. · Apply the narrowed public/ glob (excluding schema/commit) to the 85 stored out-of-lane events in this room over the last 14 days and recompute mean offPct — a measurable drop confirms this glob is the dominant contributor. · Weight the reef seed by the commit's Relevant-Rooms trailer (seed intent at the trailer's named rooms' coordinates, not just touched file paths) and re-measure laneHamming on this sha and the prior three builder events.

    Measured outcome (deterministic, not self-graded): room mean offPct 25→42 over 6 commits since · dictionary ablation saved 1009B

    A 52%-off-lane schema/meter commit misattributed to 🔨builder inflates this room's apparent loss-ratio without any real builder-surface risk, understating the true premium accuracy owed to the architect/vault lane that actually did the work; premium is restored by narrowing the public/ glob and landing the Relevant-Rooms-coverage guard so future schema-contract commits price against the room that earned them.

    Open the signed attestation →
  33. 2026-10-03 · 🧪 laboratory · offPct 25

    test(vna): C609 parent guard — the closed-loop sub-rows ticked with their guards on disk

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 58→4 over 3 commits since

    Open the signed attestation →
  34. 2026-10-03 · 📐 architect · offPct 51

    docs(vna): C612 impasses v6 (closing) + gains report — C612 ticked; the aperture ratchet unstarved and re-aimed

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 19→12 over 19 commits since

    Open the signed attestation →
  35. 2026-10-03 · 🔨 builder · offPct 32

    data(vna): C612b2 — port rows C612b2-rows, C612b2-place, C612b2-png, C612b2-slot-cache, C612b2-next declared

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 25→42 over 6 commits since

    Open the signed attestation →
  36. 2026-10-03 · 🔨 builder · offPct 27

    feat(vna): C611d — SimHash only with a measured perf reason: census, keep receipts, lattice-fill migrated to gzip-NCD

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 25→42 over 6 commits since

    Open the signed attestation →
  37. 2026-10-03 · 🧪 laboratory · offPct 26

    feat(vna): C612h — the conscience names fewer invariants; the grid rebuilt at 2c0d6a14db7b; flagged 29.3/note misses the pre-registered < 15

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 41→15 over 3 commits since

    Open the signed attestation →
  38. 2026-10-03 · 🔨 builder · offPct 41 · mistagged

    feat(vna): C611h — the infographic is the requirements ledger: 21 panel claims, statuses computed from receipts, floor 7, the hook card

    Why it left the lane: The diff's actual mass (data/vna/infographic-requirements.json 384 lines, data/vna/infographic-ledger.json 363 lines, scripts/vna/infographic-ledger.mjs 203 lines, tests/vna/c611h-....test.mjs 137 lines = 1087 of 1184 inserted lines, 92%) sits in scripts/vna/, data/vna/, tests/vna/ — none of which appear anywhere in 🔨 builder's owned surface (src/app/, src/components/, src/lib/, public/, the two named book-html scripts, hooks/pre-commit, voice-*-check.sh, decentralizedtalk/, thetacoach-crm-mcp/, vercel.json). Only the rendered requirements-ledger.svg (92 lines) lands under public/, which IS Builder's. The commit's own content is explicit ratchet-invariants vocabulary — 'crystal property / shape guard / reading', 'harness.rs', 'statusOf', 'PORT ROW … MAXIMISE RUST' — the house dialect of the formal-methods/VNA lane (Architect/Laboratory per the commit's own Relevant-Rooms trailer), not Builder's UI/book-build dialect. The pull is a vocabulary pull: 92% of the lit text is VNA-formal-methods prose wearing a Builder trailer.

    Intent–reality gap: The commit message and trailers claim Originating-Terminal 🔨 Builder for work that is, by its own text and by file path, a VNA/formal-methods ledger mechanism (scripts/vna, data/vna, tests/vna) — the receipt measured where the bytes actually sit, and 92% of them sit outside anything Builder owns.

    • Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, asked 33× already — this commit is a live instance of exactly what it was opened to catch)
    • Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010, asked 39×) so Relevant-Rooms itself is checked against the diff's real paths, not just Originating-Terminal
    • Add scripts/vna/**, data/vna/**, tests/vna/** explicitly to whichever room-surface manifest tests/ops/room-surface-coverage.test.js (ask-001) reads, so the VNA lane has a named owner instead of defaulting to whoever typed the trailer
    • Audit the rest of the C611 series (611e, 611k, 611p, this one) for the same Builder-trailer-on-VNA-content pattern — this looks systemic, not a one-off
    • Add a pre-commit WARN-only line (same register as WIP claims) printing the %-of-diff-lines inside the claimed room's owned surface, so the mistag is visible before commit, not just after the receipt lands

    What we learned: The C611 VNA-ledger series has been shipping under the Builder terminal for commits whose content and file paths never touch Builder's owned surface — this isn't a one-off cross-lane edit, it's a whole project (infographic requirements ledger, formal-methods ratchet work) running under the wrong room identity every time, which is why this room alone carries 82 out-of-lane events in 14 days while the content itself is coherent and correctly placed in scripts/vna/data/vna.

    The missing guard (the deliverable): tests/pmu-simulator/originating-terminal-matches-surface.test.mjs

    Detector probe: signal attribution — gzip reef 70% · ballistic walk 30%. Saturated rather than shallow — 100% of walked cells lit on both sides (125/125, 137/137) with no slack, which is right-sized for separating two genuinely different vocabularies but gives no headroom to tell saturation-by-content-density apart from saturation-by-cap. Concrete adjustment: check whether walksReality=137 is bumping the EYE cap noted in the iso-identity-test memory (capFor(spec-tree)); if so, raise the cap for one re-run on this sha and confirm litReality still equals walksReality — if it stops being 1:1, the 137 was cap-truncated and offPct is partly an artifact, not pure content spread. Experiments: Re-run the reef/walk on sha effbb7d18 after pre-registering scripts/vna/**, data/vna/**, tests/vna/** under Architect's reef corpus instead of Builder's, and confirm offPct drops from 41 toward/under the 15 threshold — this is the direct test of the mistagged hypothesis · Ablation: seed the Architect-room reef dictionary with the literal repeated C611-series tokens ('SUFFICIENT FOR:', 'PORT ROW', 'MAXIMISE RUST', 'statusOf') and re-measure Builder/Architect reef separation on the last 10 C611 commits — expect cross-room overlap to drop if these are genuinely a distinct house dialect · Re-run with walksReality cap raised one step above its current ceiling on this sha only, to rule out cap-truncation inflating the 137/litReality=walksReality saturation noted above

    Measured outcome (deterministic, not self-graded): room mean offPct 25→42 over 6 commits since · dictionary ablation saved 750B

    A room with 82 out-of-lane events in 14 days whose root cause is an entire unlabeled project rather than scattered mistakes reads to an underwriter as an unowned lane — not a defect rate but a coverage gap — and the premium is restored the moment scripts/vna/data/vna get a named owning room and the originating-terminal guard ships, not by this one trailer fix alone.

    Open the signed attestation →
  39. 2026-10-03 · 🧪 laboratory · offPct 24

    feat(vna): C612k — the structural precedent arm: online key (module, bound invariant, symbol size) from the ask, scored against the composition-matched null

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 41→15 over 3 commits since

    Open the signed attestation →
  40. 2026-10-03 · 📐 architect · offPct 24

    docs(vna): C612 impasses v7 (final) — today's deciders in the crate, measured; the honest remainder

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 19→8 over 3 commits since

    Open the signed attestation →
  41. 2026-10-03 · 🧪 laboratory · offPct 47

    feat(vna): C618 — the predicts line reads the bits (C609a), the C226 reading follows

    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 →
  42. 2026-10-03 · 🧪 laboratory · offPct 42 · mistagged

    feat(vna): C610m — a note that lights everything says nothing: coverage on the first line, DIFFUSE as one brief line, else the top 3 zones by red mass with ≤ 3 rows each

    Why it left the lane: The diff's entire vocabulary is VNA/lattice pipeline internals — `LATTICE_CELLS = 144`, `ZONES_TOTAL = 9`, `zoneOf`, `blockToShortLex`, the comment citing `forecast-localise.mjs blockOf` — none of which touches a single glob in Laboratory's owned surface (`.mcp.json`, `thetacoach-crm-mcp/`, `swarm-comms/`, `.thetacog/orchestrator/`, `.thetacog/punch-list*`). The commit's own `Relevant-Rooms: Builder · Architect · Laboratory` trailer is what pulled this event's reality walk into Laboratory's ledger at all; lensReality=C,B3 is pure pipeline-core territory, lensIntent=A1,A2 is wherever the trailer-declared lane sits, and laneHamming=34/laneJump=4 is the distance between 'a room was named in the trailer' and 'a room's files were touched.'

    The semantic pull: Trailer text ('Laboratory' listed as a relevant room) acted as the intent-lane seed even though zero file in the diff (`scripts/vna/drift-note.mjs`, `tests/vna/c610m-*.test.mjs`) matches Laboratory's owned globs; the lattice-math terms in the diff are what the reality walk actually lit on, at C,B3.

    Intent–reality gap: The commit claims Laboratory is a relevant room for this work (per its own trailer); the receipt measured 100% of the changed surface landing in VNA pipeline files that match none of Laboratory's owned globs — the work is correctly scoped to Builder/Architect, the room tag on it is simply wrong.

    • Correct future VNA commits (scripts/vna/**, tests/vna/**) to name Builder/Architect in Relevant-Rooms, never Laboratory, unless Laboratory's owned glob is extended first.
    • Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010) — 37 asks outstanding, this event is a textbook instance of the exact failure it checks for.
    • Add an explicit owning-room glob for scripts/vna/** and tests/vna/** in the room-surface config (currently absent from every room's listed owned surface in evidence) so attribution has a ground truth to check against.
    • Audit the other 224 out-of-lane events logged against Laboratory in the last 14 days for the same Relevant-Rooms-membership-without-glob-overlap pattern — if it recurs, Laboratory's whole offPct trend is partly an artifact of trailer text, not real drift.
    • Change the room-attribution step (whatever assigns 'room 🧪 laboratory' to an event) to weight by verified glob-intersection with the diff, not flat Relevant-Rooms membership.

    What we learned: The room/lane attribution for an event appears to trust the Relevant-Rooms commit trailer as ground truth for which room 'owns' the drift, rather than verifying glob-intersection against each named room's actual owned-surface files — so a VNA-internals commit that lists three rooms in its trailer gets charged in full against all three, including ones with zero file overlap. This is a structural gap in the attribution step itself, not in any individual commit's code.

    The missing guard (the deliverable): tests/rooms/relevant-rooms-covers-diff.test.mjs

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. litIntent/walksIntent and litReality/walksReality are both 100% (every step walked is lit) — full saturation, which means the walk isn't discriminating signal from background, it's filling its aperture completely on both sides. Concrete adjustment: tighten the walk's depth/aperture cap for this lane so lit/walked drops measurably below 100%, giving the sensor room to distinguish a real drift zone from a saturated default. Experiments: Re-run prewalkOverlap with Relevant-Rooms rooms weighted by verified owned-glob intersection (0 for Laboratory here) instead of flat membership; measure whether laneHamming drops for mistagged events. · Ablate Laboratory's rolling offPct mean by excluding commits where Laboratory has zero file-glob overlap with the diff; measure whether the 14-day 225-event count and mean offPct fall. · Sample the last 20 Laboratory events' lit/walked ratio; if consistently ~100% (saturated), test a tighter aperture cap and re-measure whether real localisation (zones_lit < 9) appears.

    Measured outcome (deterministic, not self-graded): room mean offPct 31→57 over 4 commits since · dictionary ablation saved 1479B

    Laboratory's lane is absorbing offPct loss from commits (this one and likely a slice of its 225 out-of-lane events in 14 days) that its owned surface never touched, inflating the lane's apparent loss-ratio; premium is restored by shipping ask-010 so attribution is charged only where a verified glob-overlap exists, which should retroactively exonerate a portion of Laboratory's drift history.

    Open the signed attestation →
  43. 2026-10-03 · 📐 architect · offPct 20

    spec(vna): C612p–r — today's declared port rows, built: the binding/vector, the retrievers/licence/RCT, the door's last node half

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 19→10 over 4 commits since

    Open the signed attestation →
  44. 2026-10-03 · 🔨 builder · offPct 37

    fix(vna): C612c --path-predict + C612b --door-serve dispatch in the root crate, held for the compile dependency

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 25→42 over 6 commits since

    Open the signed attestation →
  45. 2026-10-03 · 📐 architect · offPct 43 · mistagged

    spec(vna): tick C609, C609a, C609b — verified by steer.mjs verify

    Why it left the lane: The diff's only content is the row text itself: 'LET'S THINK IN CIRCLES AROUND HOW THE L1 AND NCD HERE CAN CREATE SELF PREDICTION STRUCTURALLY' plus sibling rows invoking 'gzip's LZ77 window', 'a compressor is a predictor', 'boundaryProbe', 'C(diff | brief)' — dense VNA-pipeline/engineering vocabulary. That vocabulary is exactly what pulls the lattice placement toward C2,A (the lens's own pull line reads 'C,B3 ──► C1,B3 Ops.Grid×Tact.Signal'), while the commit's claimed lane (Originating-Terminal: 📐 architect) sits at A1,B1 — architect's strategy/business docs coordinate. The content never touches docs/strategy/ or docs/01-business/strategy/ at all; docs/specs/vna/SPEC-VNA-COCKPIT.md isn't on architect's owned-surface list in the first place.

    Intent–reality gap: The commit message claims architect-room bookkeeping ('tick C609, C609a, C609b — verified by steer.mjs verify') but the receipt measured the actual content landing in the VNA pipeline/ops coordinate (C2,A) — a lane architect doesn't own and never claimed to touch via any Relevant-Rooms trailer.

    • Add 'docs/specs/vna/**' to 🔨 builder's owned-surface list in CLAUDE.md (currently absent from every room's list in the evidence shown)
    • Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027) — diff every commit's changed paths against Originating-Terminal's owned-surface glob; on mismatch, require/suggest a Relevant-Rooms trailer
    • Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010) — when Relevant-Rooms IS present, verify it actually covers the diffed paths rather than being decorative
    • Pipe the lens's own 'QC room' heuristic output into the drift-receipt row as a logged field (qcRoomGuess) so the two independent classifiers can be compared instead of only one feeding the receipt
    • Unify the three already-spec'd-but-unshipped room-drift-<room>-check.sh variants (architect/navigator/laboratory, per lesson ff09774e5) into one script before adding a fourth

    What we learned: The lens machinery sitting beside the drift detector ALREADY computes the correct room for this commit independently of the trailer ('QC room: 🔨 builder (from the intent, not this terminal)') — a working classifier exists one layer away from the detector and its output is discarded rather than feeding the receipt or the trailer, so the same classification work gets redone by hand (via the static Originating-Terminal string) and gets it wrong while the correct answer was computed and displayed in the same turn.

    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 and litReality==walksReality (both 100% lit-to-walked ratios) on a one-line docs checkbox diff — the walk is fully saturated, not exploring, which is disproportionate spend for a single-character diff. Adjustment: cap walk budget by diff byte size for docsOnly=true commits (e.g. walksReality ≤ 20 when the diff is under ~500 bytes) so a one-line tick doesn't get a 96-step walk. Experiments: Seed the reef dictionary with VNA-specific vocabulary (L1, NCD, boundaryProbe, closed loop, compressor-is-a-predictor) and measure whether prewalkOverlap rises above 0 across the next 10 VNA-spec commits — if it stays 0, the reef's lexicon is structurally missing this domain · Cap walksReality proportional to diff byte size for docsOnly commits and re-run this sha's receipt to confirm offPct drops toward threshold without losing detection on genuinely large docs rewrites · Log qcRoomGuess (the lens's own QC-room read) alongside Originating-Terminal in the receipt and measure the two classifiers' agreement rate over the next 50 commits to decide whether to automate the correction

    Measured outcome (deterministic, not self-graded): room mean offPct 22→27 over 4 commits since · dictionary ablation saved 1646B

    A mistagged-but-correct-content event like this cheapens the drift signal's reliability by inflating architect's apparent loss ratio with a false positive; premium is restored by shipping ask-027's trailer-vs-surface guard so the mismatch is caught at commit time instead of showing up as unexplained drift 93 events deep into this room's history.

    Open the signed attestation →
  46. 2026-10-03 · 📐 architect · offPct 58

    spec(vna): declare C633 — the effects page, every point recomputes

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→10 over 7 commits since

    Open the signed attestation →
  47. 2026-10-02 · 🔨 builder · offPct 18

    feat(vna): C565a — the signed-out visitor reads the public record, never a sign-in wall

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since

    Open the signed attestation →
  48. 2026-10-02 · 🎩 operator · offPct 21

    feat(vna): C570 — attest-demo names the node>=20 floor at start, below it

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Open the signed attestation →
  49. 2026-10-02 · 🧭 navigator · offPct 27

    feat(vna): C601 — the npx path finds the addon (installed intentguard fallback)

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 12→14 over 8 commits since

    Open the signed attestation →
  50. 2026-10-02 · 🧪 laboratory · offPct 43

    fix(vna): C557b retry (1/2) — move the init-to-first-receipt harness into scripts/ops so the guard can actually go red

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  51. 2026-10-02 · 🧪 laboratory · offPct 26

    test(vna): C589 — the claim fence for (1)-(3): a construct check, not a token ban

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  52. 2026-10-02 · 📐 architect · offPct 55

    spec(vna): C567g — the address, not the scalar: the preference read's last pre-named candidate

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 22→30 over 12 commits since

    Open the signed attestation →
  53. 2026-10-02 · 🔨 builder · offPct 26

    feat(vna): C565j — the recompute line we print runs

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 38→17 over 6 commits since

    Open the signed attestation →
  54. 2026-10-02 · 🔨 builder · offPct 28 · mistagged

    feat(vna): C546 — the tape names its gaps: CHRONOLOGICAL/SEQUENCE toggle, hatched "no rows · h · from → to" bands, cause read off the backup

    Why it left the lane: The commit message's Story trailer and code comments carry persona/insurability vocabulary — "An underwriter reading the ribbon should see a pause named" and "An underwriter or client looking at that timeline ribbon shouldn't have to wonder: 'Did their recording server crash for 4 days?'" — which the reef/walker reads as Strategy.Fund-coded language (lensIntent=A1,A3), while every actual token in the diff (axisOf, GapBand, Hatch, gapsOf, GAP_HOURS, xAt, useState, SVG <rect>/<pattern>) is pure Operations UI/data-plumbing vocabulary, placing reality at C,C2. prewalkOverlap=6 is low and walksIntent(120)≈walksReality(124) — the two corpora barely agreed before the walk even started, so the gap is a seeding mismatch, not a walk-depth problem.

    Intent–reality gap: The commit frames itself in underwriter/insurability narrative (Strategy.Fund/Law coordinates) but the entire diff is a React/SVG dashboard feature — an axis toggle and gap-detection UI — with zero pricing, coverage, or underwriting logic touched.

    • Audit the last 10 Builder Story trailers for persona-first openings (underwriter/client/buyer) and reorder them operation-first, per the spec_rewrite pattern
    • In the lens-assignment walker, treat the Relevant-Rooms trailer (already correctly lists 'Operator' here) as a floor on lensIntent, not just advisory text subordinate to free-text Story prose
    • Ship tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs (ask-033) using this commit (20d2645560) as its red fixture: diff 100% in Relevant-Rooms-owned paths, offPct inflated by prose-only lane pull
    • Extract persona-facing copy (AXIS_WHY strings, gap label text) in TapeSlider.tsx into a separate copy-only module so UI-logic tokens and underwriter-facing prose aren't interleaved in the same file the walker reads
    • Re-check ask-027 (originating-terminal-matches-surface) against this event — Originating-Terminal 🔨 Builder does match the file surface, so that guard would NOT have caught this; confirms ask-033 is the correct, distinct guard

    What we learned: The repo's own COMMUNICATION DESIGN RULE mandates persona-facing Story prose on every commit (six-needs framing), and that mandate is now measurably fighting the lane walker: any Builder commit whose Story paragraph leads with a business persona (underwriter/client/buyer) gets pulled toward Strategy coordinates regardless of diff content — this is a structural tension between two HARD RULES (comms design vs lane fidelity), not a one-off authoring mistake, and it explains a meaningful share of this room's 66 out-of-lane events in 14 days.

    The missing guard (the deliverable): tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs

    Detector probe: signal attribution — gzip reef 70% · ballistic walk 30%. Right-sized, not shallow or saturated — the near-equal lit counts show the walk covers both sides comparably. The fix is upstream: seed the intent-side reef from Relevant-Rooms + changed file paths with Story prose down-weighted, not from raw commit-message text. Experiments: Re-run gzip-NCD seeding for the last 20 out-of-lane Builder commits using diff file paths + Relevant-Rooms trailer only (Story prose stripped) and measure whether prewalkOverlap rises and offPct falls vs the current full-text seed · Half-weight the 'Story:' trailer paragraph specifically (not the rest of the commit message) in reef corpus construction and re-measure laneHamming on this commit and the 3 prior-lesson commits (fee338e4a, fe04377b1, fd99d088d) · A/B the compression dictionary with persona nouns (underwriter, client, buyer) stripped from the Builder-room intent corpus only, measuring offPct shift on the next 10 Builder commits

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since · dictionary ablation saved 1127B

    A mistagged lane on a correctly-built, correctly-guarded feature is a false loss signal, not a real one — it inflates this lane's apparent claims frequency without any actual coverage gap, so the restoring action is shipping ask-033 (already asked 14×) rather than treating this commit as a defect.

    Open the signed attestation →
  55. 2026-10-02 · 📐 architect · offPct 18 · structural

    fix(strategy): C584 — ladder rung 2 read live off token-savings.json, the receipt names the series that crosses

    Why it left the lane: The diff edits docs/strategy/2026-10-02-the-grounded-claim-leads.txt to add the disambiguation clause 'so it never collides with AXIOM 0's rung 2 (C585)'. To name the collision it must quote the colliding lane's own proper noun ('AXIOM 0', 'rung 2'). Against a gzip-NCD reef, quoting a term increases lexical overlap with that term's home corpus (axioms-and-method.md) rather than reducing it. lensIntent=A,A1 and lensReality=A1,A are the same two Strategy coordinates (A=Strategy, A1=Strategy.Law per this lane's own hat) with row/col order flipped — the content never actually left the Strategy neighborhood, but the disambiguation string perturbed which axis the walk assigned first, and laneHamming=38 counts that transposition as if it were a full cross-lane jump.

    Intent–reality gap: The commit claims a bounded, in-lane docs correction (fixing which series a cited number comes from) entirely inside 📐architect's owned docs/strategy/ surface. The receipt instead measured a coordinate transposition (A,A1→A1,A) large enough to trip offPct=18 against a 15 threshold, on a commit flagged docsOnly=true that should arguably never have been run through the full lattice at all.

    • Ship tests/pmu-simulator/docs-only-commit-skips-lattice.test.mjs exactly as already asked (ask-005, 17 prior asks, never shipped) — this is the room's own open ticket for this exact event class
    • Ship tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs (ask-033) as the secondary catch for near-symmetric lane swaps
    • Edit docs/strategy/2026-10-02-the-grounded-claim-leads.txt per spec_rewrite to cite axioms-and-method.md by path instead of restating 'AXIOM 0' inline
    • Add an axis-order normalization step before computing laneHamming: treat [X,Y] vs [Y,X] as zero-distance when both cells are present on both sides within one hop
    • Populate the empty region-narrative cache for this sha (currently '(no region narrative cached for this sha)') so future passes aren't diagnosing blind on docsOnly events

    What we learned: A gzip-NCD/lattice detector is adversarial to its own disambiguation text: naming a colliding term to distinguish FROM it increases measured similarity TO it. Every doc that says 'don't confuse this with X' is a drift vector toward X's lane — distinct from the prior lessons (terminal-tag mismatch, trailer-divergence rule gaps) because this is a property of the similarity measure itself, not of commit metadata.

    The missing guard (the deliverable): tests/pmu-simulator/docs-only-commit-skips-lattice.test.mjs

    Detector probe: signal attribution — gzip reef 70% · ballistic walk 30%. Saturated, not right-sized: litIntent/walksIntent=1.0 and litReality/walksReality=1.0 means every cell the walk touched got lit — there's no slack to distinguish signal from noise on a 16-line docs diff. Concrete adjustment: for low-mass docsOnly diffs, widen the walk's capFor() budget until the lit/walked ratio drops below ~0.9, or (preferably) skip the walk per the missing_guard above. Experiments: Re-run this sha's reef placement with the string 'AXIOM 0' stripped from the doc text vs retained; measure whether prewalkOverlap and the A,A1↔A1,A transposition disappear — directly tests the self-referential-quote-bleed hypothesis · Pull the last 50 docsOnly=true commits with offPct>15 and compute the fraction where litIntent==walksIntent and litReality==walksReality (full saturation); if >80%, that alone justifies shipping the docs-only lattice skip as the dominant fix · Add an axis-transposition null test: for commits where lensIntent/lensReality are permutations of the same coordinate set, recompute laneHamming as zero-distance and measure how many of 📐architect's 95 out-of-lane events in 14 days collapse under that normalization

    Measured outcome (deterministic, not self-graded): room mean offPct 22→7 over 8 commits since · dictionary ablation saved 913B

    A docsOnly, 16-line numeric correction tripping offPct=18 reads as a false positive against this lane's loss history, which cheapens every genuine out-of-lane signal in the room's 95-event/14-day count — the guard above is what restores the lane's premium by making the detector refuse to score mass it never measured.

    Open the signed attestation →
  56. 2026-10-02 · 🧪 laboratory · offPct 28

    feat(vna): C567b — the preference-read backtest: own row vs LCG-drawn rows on 60 past ticked commits, rank null per interleaved half

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  57. 2026-10-02 · 🧪 laboratory · offPct 24

    test(vna): C562 · C563 parent guards — one helper for every parent whose guard is its sub-rows

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  58. 2026-10-02 · 🧪 laboratory · offPct 23

    test(vna): C606 parent guard — every sub-row ticked with its guard on disk

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  59. 2026-10-02 · 🔨 builder · offPct 28

    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 21→37 over 6 commits since

    Open the signed attestation →
  60. 2026-10-02 · 🔨 builder · offPct 34

    spec(vna): C574 — the guard line names its own test, not C254's

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 28→22 over 6 commits since

    Open the signed attestation →
  61. 2026-10-02 · 🧪 laboratory · offPct 45

    feat(vna): C582 — the retro snowball moves to one home and onto the live refresh, switched by the bench's held-out record

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  62. 2026-10-02 · 📐 architect · offPct 25

    docs(strategy): what NotebookLM heard — v2, all 118 audios as a twelve-month series

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 22→7 over 9 commits since

    Open the signed attestation →
  63. 2026-10-02 · 🔨 builder · offPct 35

    feat(vna): C538a — the big selected panel and its movie, directly below the slider on /backup/adherence

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since

    Open the signed attestation →
  64. 2026-10-02 · 📐 architect · offPct 19

    spec(vna): C607, C608 — the first line reads the freshest iso receipt; rows carry their decision mass

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 22→33 over 3 commits since

    Open the signed attestation →
  65. 2026-10-02 · 🔨 builder · offPct 25 · structural

    feat(vna): C563d — /backup/adherence implies its own next steps: PROMISED · NOT PROMISED · NEXT, computed from the page's readings

    Why it left the lane: The diff's real mass sits in src/lib/backup/promise-ledger.mjs, and inside that file the pull comes from re-deriving judgement rules that belong to other spec rows rather than quoting the page's own existing readings: the literals MIN_ROWS_PER_ARM = 10 with the comment "C563a's own rule", SIGN_Z = 2, MIN_BILL_N = 10, the correctnessReading() block invoking "undecidable (Rice, 1953)", and wedgeOf()'s falsifier-status language duplicated from C563c. Those five independently-judged domains (placement/C500, spec-vs-CoT/C563a, token-bill/C519, correctness/C444, wedges/C563c) are what widened the lattice placement from the narrow B2 coordinate (lensIntent) the commit claimed — 'one section on the page... drawn from readings it already holds' — out to the broader B (lensReality), with laneHamming=38 showing how far the cell spread travelled.

    The semantic pull: Strings 'UNMEASURED', 'UNDERPOWERED', 'admissible', 'sign-test z', 'falsifier', 'Rice, 1953' recur across five separate reading functions (placementReading, cotReading, billReading, correctnessReading, wedgeReadings) in one new file — each one restates an admissibility rule owned elsewhere instead of importing it, dragging the commit's placement toward the generic judgement coordinate B rather than staying inside the page-specific B2 the commit message claimed.

    Intent–reality gap: The commit claims a narrow, render-only addition — 'One section on the page... a pure function of the readings the page already holds' — but the shipped module independently re-derives and judges five distinct admissibility domains (placement, CoT, token bill, correctness, wedges) with its own threshold constants, which is authoring judgement logic, not just drawing it.

    • Export MIN_ROWS_PER_ARM + its UNDERPOWERED verdict from scripts/vna/spec-vs-cot.mjs; import in promise-ledger.mjs
    • Export SIGN_Z/MIN_BILL_N + the bill verdict from scripts/vna/steer-ab-tokens.mjs; import in promise-ledger.mjs
    • Route wedgeOf()'s line-building through C563c's own wedge-falsifiers formatter
    • Add a 'Spans: C500,C563a,C519,C444,C563c' trailer convention for any single file citing ≥3 distinct C-rows as its readings
    • Narrow the commit message's claim from 'a pure function of the readings' to 'strictly renders the admissibility verdicts already computed by'
    • Add a guard distinguishing render-only lib files from recompute lib files in src/lib/backup/

    What we learned: A page that 'implies its own next steps' is structurally tempted to inline a local copy of every upstream spec row's admissibility rule (rows-per-arm, sign-z, bill-n) rather than import it — that inlining, not the UI work itself, is what pulls a narrowly-claimed single-page commit out to a broad lattice coordinate; prior facts-only lessons in this room never isolated the duplication pattern as the mechanism.

    The missing guard (the deliverable): tests/vna/single-file-single-spec-row.test.mjs — fails if one new lib file defines (rather than imports) an admissibility threshold constant that is already documented as owned by another C-numbered spec row's own module, or if a single file's reading functions cite ≥3 distinct C-numbered spec rows without a 'Spans:' commit trailer declaring each.

    Detector probe: signal attribution — gzip reef 75% · ballistic walk 25%. Saturated and non-discriminating here: identical walksIntent/walksReality and litIntent/litReality counts mean the walk hit the same cap on both sides and couldn't resolve the placement any finer. Concrete adjustment: when prewalkOverlap falls below ~5 (as here), deepen the walk asymmetrically on the reality side (raise its EYE cap) so symmetric saturation stops masking the true placement spread. Experiments: Re-run this commit's reef seed after moving MIN_ROWS_PER_ARM/SIGN_Z/MIN_BILL_N out of promise-ledger.mjs into their owning modules; measure whether prewalkOverlap rises above 3 and offPct drops below 15 on the same sha's content. · A/B gzip-NCD prewalk overlap across this room's last 70 out-of-lane events, split by 'file cites ≥3 distinct C-row numbers' vs 'cites ≤1', to test whether citation breadth predicts offPct. · Deepen the walk only on the reality side when prewalkOverlap < 5 and re-measure litReality vs litIntent to confirm the symmetric-saturation hypothesis above.

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since · dictionary ablation saved 1032B

    A single-file aggregation of five independently-judged admissibility domains raises this lane's loss ratio by making future offPct spikes from this file family likely; restoring premium requires the threshold constants to live singly in their owning modules and the Spans-trailer guard to catch the next multi-row file before it ships.

    Open the signed attestation →
  66. 2026-10-02 · 📐 architect · offPct 44

    spec(vna): C605 — get to the bottom: rerun the iso corpus with today's mass and the live grown read

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 21→30 over 10 commits since

    Open the signed attestation →
  67. 2026-10-02 · ☕ network · offPct 18

    fix(vna): C580a — the book-club rung-2 chart renders without a website ship

    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 →
  68. 2026-10-02 · 🔨 builder · offPct 59 · mistagged

    fix(site): C565f — the sign-in names the stranger's own record, not a product they never heard of

    Why it left the lane: The one-line swap in src/app/simple-login/page.tsx replaced the abstract product name ('Cognitive Amplification System') with three concrete nouns — 'backups, licences and reports' — in service of the commit's own stated goal (name the stranger's own record, not a product). Those three tokens are exactly the vocabulary the reef's gzip-NCD seed ties to the product/billing lane (B1) elsewhere in the corpus (licence grants, report pages, backup-delivery copy). lensIntent=C,C2 (onboarding/sign-in copy) vs lensReality=C2,B1 shows the walk held C2 but added B1; litIntent=123 vs litReality=117 is nearly symmetric, so the divergence isn't walk spread, it's seed placement — prewalkOverlap=5 (low) confirms the intent and reality corpora barely agreed before the walk even started.

    Intent–reality gap: The commit message and Story trailer frame this as a pure onboarding/sign-in UX fix (lane C,C2) — fixing a greeting string. The receipt shows 59% of the lit reality mass landed in B1 (product-naming/billing), because the fix's entire mechanism was to name product nouns by name.

    • Amend C565f's commit trailer / spec row to declare dual lane C,C2+B1 rather than C,C2 alone
    • File tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs (ask-033) against this exact sha as the seeding fixture
    • Audit the rest of /simple-login and /backup copy for other concrete-noun strings (licence, report, backup) that will register the same dual-lane pull, and pre-declare them
    • Add a short note to the voice/onboarding glossary: naming product capabilities in sign-in copy is expected to touch B1, this is not drift

    What we learned: The fix's own correctness (be concrete, name the real nouns) is structurally the same move the detector reads as lane-crossing — precision in copy and precision in lane-claim are in tension for onboarding strings that name product features by name.

    The missing guard (the deliverable): tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Right-sized, not shallow or saturated — the near-equal lit counts (123/117) on a one-line diff show the walk isn't over- or under-spreading. No depth adjustment needed; the lever is reef seed overlap, not walk depth. Experiments: Ablation: reseed the reef treating 'licences'/'backups'/'reports' as C2+B1 dual-lane tokens, recompute offPct on 5f45d87de, expect a measurable drop if the seed hypothesis holds · For diffs under 5 changed lines with no logic change, compute prewalkOverlap BEFORE the full walk and flag seed-weak (overlap<10) commits for a lighter-weight lane check instead of the full offPct penalty · Bucket builder-room offPct by diff size (1-5 lines vs >5) over the trailing 14 days to confirm small copy diffs systematically score higher offPct than code diffs

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since · dictionary ablation saved 949B

    A single-line copy fix registering 59% off-lane inflates this lane's apparent loss ratio on noise rather than signal; restoring it means landing the open mistagged-commit guard (ask-033) against this sha as its proving fixture, not adding new scope to the lane fence.

    Open the signed attestation →
  69. 2026-10-02 · 📐 architect · offPct 57

    spec(vna): C565p–r — hydrate clean, no dead header link, the weight counts the payload

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 23→20 over 8 commits since

    Open the signed attestation →
  70. 2026-10-02 · 🧪 laboratory · offPct 52

    feat(vna): C561 — the /goal watches /steer for the quiet stall too, and mutates the steer before it re-fires

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  71. 2026-10-02 · 🧪 laboratory · offPct 22

    feat(vna): C563b — rung 2 is named as the steering payload's footprint, and the bill vs PLAIN prints beside it

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  72. 2026-10-02 · ☕ network · offPct 26

    feat(vna): C553 — the counsel packet for the in-kind warranty (C543), a draft to Brian never sent by the machine

    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 →
  73. 2026-10-02 · 🧪 laboratory · offPct 52 · structural

    feat(vna): C559 — two chairs never brief the same row: the chat door records every dispatch and holds a row another session briefed

    Why it left the lane: The diff's only authored work (scripts/vna/chat-dispatch-ledger.mjs, the steer.mjs --take/HELD gate, the C559 test) is a narrow lock-ledger fix. But SPEC-VNA-COCKPIT.md is a checklist where each row is ONE giant markdown line (checkbox marker + ALL-CAPS title + a long 'chair note' essay). Flipping '- [ ]' to '- [x]' for six other rows — C544 ('SOMETHING JOICY LIKE A AUTOCOMPLETE SUGGESTION BOX'), C545 ('NESTED SUBSECTION (VIEWFINDER/PROJECTION)'), C548 ('HUMAN SPECIFICATION FAULT... MACHINE EXECUTION FAULT'), C549 ('SPEC INGESTION SEMANTIC LINTING ENGINE'), C550 ('ACTUARIAL RISK ENVELOPE'), C553 ('COUNSEL PACKET FOR... WARRANTY') — makes the diff hunk render as a full removal+re-add of each entire paragraph, even though only one character changed. The walk ingests those full lines as reality content, dragging in UI/insurance/legal vocabulary that has nothing to do with 'chat-dispatch ledger', pulling litReality to lensReality A1,A2 while the claimed work sits at lensIntent B3,C2 (laneJump=6, laneHamming=34).

    The semantic pull: Terms 'AUTOCOMPLETE SUGGESTION BOX', 'ACTUARIAL RISK ENVELOPE', 'COUNSEL PACKET', 'HUMAN SPECIFICATION FAULT / MACHINE EXECUTION FAULT', 'NESTED SUBSECTION (VIEWFINDER/PROJECTION)' appear in the diff purely as byproducts of checkbox toggles on C544/C545/C548/C549/C550/C553, not as this commit's intent; they are the real strings dragging placement from B3,C2 toward A1,A2.

    Intent–reality gap: The commit message claims a single bounded build (C559's chat-dispatch lock) with laboratory listed only as a relevant room; the receipt measured 52% of lit reality cells outside that lane because the same diff's checkbox toggles on six unrelated rows pulled their full paragraph text into the walk.

    • tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010): assert laboratory only appears in Relevant-Rooms when a diff path matches laboratory's owned globs — this commit's diff would fail that check today
    • Add a checkbox-toggle-only line classifier to the drift walk's diff ingestion so a hunk whose pre/post lines differ only in '[ ]'/'[x]' contributes zero lit mass to walksIntent/walksReality
    • Split SPEC-VNA-COCKPIT.md status into docs/specs/vna/SPEC-VNA-COCKPIT-STATUS.ndjson; update spec-check.mjs and steer.mjs readers to join it at render time
    • Add a commit-message convention check: the Story line must enumerate any checkbox toggles made to rows other than the one named in the subject
    • Seed the gzip reef dictionary with the repeated '· chair note (repo rules): ...' boilerplate (10d) so toggle-heavy spec commits are recognized as a known low-signal pattern before the walk spreads
    • Add a regression fixture replaying 85b17b286f's diff shape (one lock-file change + N unrelated checkbox flips) asserting offPct stays under threshold once the toggle-only filter ships

    What we learned: SPEC-VNA-COCKPIT.md's one-giant-line-per-row format means any single-character checkbox toggle diffs as a full-paragraph rewrite, so a bookkeeping commit that reconciles several rows' status inherits all of those rows' unrelated topic vocabulary into the reality-lane walk — a drift source distinct from the originating-terminal/relevant-rooms mismatches the prior three lessons for this room addressed.

    The missing guard (the deliverable): tests/pmu-simulator/checkbox-toggle-only-lines-excluded.test.mjs — asserts that a diff hunk differing from its prior line only in the markdown checkbox marker ('- [ ]' → '- [x]', remainder byte-identical) contributes zero (or near-zero) lit-cell mass to the reality-lane walk.

    Detector probe: signal attribution — gzip reef 30% · ballistic walk 70%. litIntent/walksIntent=128/128 and litReality/walksReality=134/134 — both walks are fully saturated (100% fill), meaning every visited cell lit up with no sparsity at all. That is a symptom of too much undifferentiated text being fed in (the six toggle-only paragraphs), not evidence the walk is well-calibrated. Adjustment: exclude checkbox-toggle-only lines from the corpus (per the code_rewrite) and re-measure — if fill drops below 100% on a re-run, the saturation was corpus-driven, not threshold-driven. Experiments: Filter checkbox-toggle-only diff lines out of the corpus fed to both walks, then re-run the detector on 85b17b286f's diff and record whether offPct drops below 15 · Seed the reef dictionary with the six C-row labels (C544, C545, C548, C549, C550, C553) as a known 'spec checklist reconciliation' pattern, then measure whether prewalkOverlap rises on a synthetic toggle-only commit · Build a synthetic fixture commit that ONLY toggles checkboxes on SPEC-VNA-COCKPIT.md (no other files) and confirm litReality/walksReality both drop toward near-zero once the filter ships

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since · dictionary ablation saved 1524B

    268 out-of-lane events in 14 days for a room (🧪laboratory) that owns none of this diff's paths reads as a systemic mistagging tax inflating this lane's loss ratio; premium is restored by shipping relevant-rooms-covers-diff (ask-010, already asked 31×) so laboratory is only charged for events touching its surface, and by excluding checkbox-toggle-only lines so spec-housekeeping commits stop registering as severe drift.

    Open the signed attestation →
  74. 2026-10-02 · 🔨 builder · offPct 24 · structural

    feat(vna): C565f — the onboarding walk read as a stranger; the report and onward emails always carry a way back

    Why it left the lane: The commit's claimed lane is the onboarding-walk feature (C2): a stranger's path through /backup, the emails, /risk/<pseudonym>, /backup/how. But the only semantic (non-test) files touched — email-report.mjs and onward-reading.mjs — each independently reimplement the same generic site-origin fallback ('https://thetadriven.com'), the same literal tag '@guard tests/site/c565f-onboarding-walk.test.mjs', and the test file itself builds a from-scratch Next.js route resolver (resolveIn/routeExists/dirsOf/PAGE_FILES) that walks route groups, catch-alls and [param] segments across the WHOLE src/app tree, not just the onboarding subtree. That generic, whole-tree resolver and the duplicated site-fallback logic are what the lattice lights as broad 'C' (general site-routing/plumbing) rather than the narrower 'C2' onboarding lane the commit claims — matching lensIntent=C,C2 vs lensReality=C,C and laneJump=8.

    The semantic pull: Strings 'resolveIn(APP, ...)', 'dirsOf', '[[?\.\.\..+\]\]?' (catch-all regex), and the duplicated 'https://thetadriven.com' / '@guard tests/site/c565f-onboarding-walk.test.mjs' literals in BOTH email-report.mjs and onward-reading.mjs are generic site-architecture tokens, not onboarding-specific ones; they pull the reality walk toward the broad 'C' coordinate instead of staying inside the claimed 'C2' onboarding-walk coordinate.

    Intent–reality gap: The commit claims scope 'the onboarding walk read as a stranger' (an onboarding-feature guard, C2), but the receipt shows the actual landed mass sitting in general site-routing/plumbing territory (C) — because validating an onboarding walk's links in Next.js structurally requires building a resolver for the entire app router, and the two production files it touched both reinvent the same site-wide origin-fallback helper instead of sharing one.

    • Extract tests/site/c565f-onboarding-walk.test.mjs's routeExists/resolveIn/dirsOf/PAGE_FILES into tests/lib/route-exists.mjs
    • Create src/lib/backup/site-origin.mjs and have email-report.mjs + onward-reading.mjs both import it instead of each defining their own fallback
    • Add the dual-lane scope sentence to this commit's spec row / follow-up note so future lattice reads don't treat whole-tree resolvers as mistagged
    • Dedup the '@guard tests/site/c565f-onboarding-walk.test.mjs' tag into a single shared constant or doc reference instead of pasting it in two files
    • Add tests/ops/no-duplicate-route-resolver.test.mjs (or similar) to catch the next from-scratch resolver before it ships
    • Register tests/lib/ as shared cross-room test infra in room ownership docs (ties to ask-003)

    What we learned: Any guard that validates link integrity against Next.js's app router structurally cannot stay inside a single feature's lane — building 'does this href lead somewhere real' forces modeling the whole src/app tree (route groups, catch-alls, params), so onboarding-scoped guards will keep reading as broad 'C' drift until the resolver itself is extracted into shared infra and the spec declares the dual-lane scope up front. This is new: the prior three facts-only interventions in this room (fee338e4a, fe04377b1, fd99d088d) never identified a reusable-resolver mechanism, and two of the three left offPct flat-or-worse (26→27, 21→22) while only fd99d088d improved (31→14) — suggesting the room needs mechanism-level extraction, not another facts-only note.

    The missing guard (the deliverable): tests/ops/no-duplicate-route-resolver.test.mjs: fails when more than one test file under tests/ defines its own recursive directory-walking route resolver (grep for a readdirSync-based recursive function matching the resolveIn/routeExists shape) instead of importing a shared one from tests/lib/ — this is a new spelling; none of the ten open asks cover duplicated generic test infra.

    Detector probe: signal attribution — gzip reef 25% · ballistic walk 75%. Right-sized, not under- or over-walked: litIntent==walksIntent (143/143) and litReality==walksReality (128/128) with walkTruncated=false, so the walk reached full resolution on both sides without truncation or saturation loss. The problem is input breadth, not walk depth — adjustment: exclude generic scaffolding code (the resolver's own body: resolveIn/dirsOf/routeExists) from the semantic diff fed to the walker via a path/pattern exclusion, so repeated boilerplate infra doesn't inflate reality's lit spread. Experiments: Replay this commit's diff with the resolveIn/routeExists/dirsOf block excluded from the walked content; measure whether offPct drops below the 15 threshold on the same sha. · Seed the 5 proposed compression_dictionary_adds into the gzip baseline dictionary and recompress the last 14 days of 🔨 builder commits; measure the change in mean prewalkOverlap for test-file-heavy commits (diff touches tests/site/**). · Track offPct specifically for the next 20 builder commits whose diff adds a new recursive filesystem/route-walker (grep readdirSync + self-recursion) vs commits without one, to confirm this is a recurring class beyond this single event.

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since · dictionary ablation saved 1572B

    A 24% off-lane event in a room already carrying 76 out-of-lane events in 14 days nudges this lane's loss ratio up another notch; it's restored by shipping the resolver extraction + the no-duplicate-resolver guard so the next whole-tree-validation commit lands inside its declared lane instead of spilling into general 'C'.

    Open the signed attestation →
  75. 2026-10-02 · 🧪 laboratory · offPct 56 · mistagged

    feat(vna): C563f — spec-vs-cot run command: bounded live pilot on held-out rows, never touches this repo

    Why it left the lane: The commit's only routing trailers are `Steer-Dispatch: muqjsx4s-934e578d` and `Originating-Terminal: 📐 VS Code Architect` — there is no `Relevant-Rooms:` trailer at all. Every path the diff touches (`scripts/vna/spec-vs-cot.mjs`, `tests/vna/c563f-spec-vs-cot-live-run.test.mjs`) is VNA-domain, and neither path appears anywhere in 🧪 laboratory's owned-surface list (.mcp.json, swarm-comms/, thetacoach-crm-mcp/, .thetacog/orchestrator/, punch-list*). With no explicit room declaration to read, the pipeline's room assignment fell back to 🧪 laboratory anyway, and the walk correctly found the mass sitting in B2 (where scripts/vna/ actually lives) instead of the A1 lane laboratory's glob would imply.

    The semantic pull: Identifiers like `scripts/vna/spec-vs-cot.mjs`, `tests/vna/`, `VNA_C563A_CEILING_USD`, `VNA_CLAUDE_BIN`, and the import of `./steer-follow-through.mjs` (a dispatch-owned module) are VNA/architect vocabulary with zero string overlap against laboratory's glob entries — there's nothing in the diff that could have landed in A1 even in principle.

    Intent–reality gap: The event is filed under room 🧪 laboratory (A1), but the commit's own Originating-Terminal trailer says 📐 VS Code Architect, and every touched file sits outside laboratory's owned surface entirely — the room tag on the receipt is wrong, not the work.

    • Add `Relevant-Rooms:` to future VNA commits per CLAUDE.md's commit structure (ask-010).
    • Wire ask-027 (tests/pmu-simulator/originating-terminal-matches-surface.test.mjs) so room must agree with the Originating-Terminal mapping.
    • Wire ask-033 (tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs) so a commit with zero owned-surface-glob overlap against its assigned room never scores as positional drift.
    • Add scripts/vna/** and tests/vna/** to the correct room's owned-surface glob — confirm via ask-001 (tests/ops/room-surface-coverage.test.js) which room should legitimately claim them.
    • Audit a sample of 🧪 laboratory's 254 out-of-lane events from the last 14 days for the same missing-trailer root cause before trusting the room's offPct trend at face value.
    • Check the Steer-Dispatch session→room mapping table for muqjsx4s-934e578d — that's the likely source of the 🧪 laboratory default.

    What we learned: A commit with no `Relevant-Rooms` trailer doesn't fail open to UNMEASURED — it silently falls back to a default room (here 🧪 laboratory) that may own none of the files actually touched, so well-bounded, correctly-scoped work gets scored as drift it never committed. The prior three lessons for this room were facts-only with no mechanism named; this is the first time the mechanism (missing-trailer → wrong default room) has been identified.

    The missing guard (the deliverable): tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs

    Detector probe: signal attribution — gzip reef 15% · ballistic walk 85%. litIntent==walksIntent (104/104) and litReality==walksReality (138/138) on both sides, walkTruncated=false — the walk is fully saturated, not under-filling. The extra 34 cells on the reality side are additional walk extent given a mistagged/zero-overlap room, not a misfire within a fixed budget. Adjustment: when a commit's assigned room has zero owned-surface-glob matches against the diff's touched files, short-circuit the walk to REFUSED/UNMEASURED rather than computing an offPct against a lane the room structurally cannot claim. Experiments: Across the room's 254 recent off-lane events, test whether (walksReality-walksIntent) ≈ laneHamming holds as a general identity — if confirmed, use the walk-spread delta as a cheap proxy for laneHamming without a full lattice pass. · For commits whose diff imports a dispatch-owned module into a measurement-owned file (as here: spec-vs-cot.mjs importing steer-follow-through.mjs), pre-seed the reef with that cross-import's lane tag before the walk runs and measure whether prewalkOverlap rises above today's 3. · Run an ablation that strips the missing-Relevant-Rooms detection: re-walk this commit as if Relevant-Rooms correctly named the architect room, and confirm offPct drops to 0 — isolating that the drift is 100% attributable to room mis-assignment, not content.

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since · dictionary ablation saved 748B

    254 out-of-lane events in 14 days for a room whose glob can't even claim the files landing there inflates 🧪 laboratory's apparent loss-ratio on drift it never caused; restoring the room-to-trailer mapping (shipping ask-010/ask-027/ask-033, not just re-asking them) is what brings the premium back to reflecting real content drift instead of routing noise.

    Open the signed attestation →
  76. 2026-10-02 · 📐 architect · offPct 76

    spec(vna): declare C563 a/b/c — the trace is the claim, rung 2 is not the bill

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 26→23 over 5 commits since

    Open the signed attestation →
  77. 2026-10-02 · 🧪 laboratory · offPct 18 · structural

    feat(vna): C567a — the preference read: place the candidate and the inaction against the declared rows, before the act

    Why it left the lane: The diff's identifying strings — "Rust port: this decides, so its home is the crate", `matchAperture`/`canonicalPanel`/`panel-door.mjs`, `data/vna/rust-punch-list.json` — are all Builder/Architect door-machinery vocabulary (lensIntent=B2,B2, matching where the work actually sits). None of it touches Laboratory's owned glob (.claude/, thetacoach-crm-mcp/, swarm-comms/, .thetacog/orchestrator/, .thetacog/punch-list*). The pull toward 'Laboratory' in the Relevant-Rooms trailer is lexical, not positional: the commit calls itself 'C567a: THE PREFERENCE READ, PROTOTYPE' and the Story trailer says 'lands the prototype read' — 'prototype' semantically rhymes with 'laboratory experiment', so the room name was chosen by word-association, not by the walk's own placement (which landed at A1/B1, laneHamming 26 away from any Laboratory-owned coordinate).

    The semantic pull: 'PROTOTYPE' + 'the prototype read' in the commit message/Story trailer → associative pull toward the room named 'Laboratory', despite zero file-path overlap with Laboratory's declared owned surface.

    Intent–reality gap: The commit claims Laboratory as one of 3 'Relevant-Rooms whose owned-surface the commit most touches', but 100% of the touched files (scripts/vna/preference-read.mjs, tests/vna/c567a-preference-read.test.mjs) sit outside every glob Laboratory legitimately claims — the reality walk found nothing there to own.

    • Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010) to mechanically fail a Relevant-Rooms entry with zero path overlap with that room's owned-surface glob.
    • Amend CLAUDE.md's Relevant-Rooms line to drop the forced cardinality of exactly 3 (see spec_rewrite).
    • Add a pre-commit hint (adjacent to hooks/pre-commit) that prints each candidate room's owned-surface hit-count for the staged diff before the trailer is typed.
    • Audit Laboratory's other 239 out-of-lane events for the same 'padded-third-room via thematic word' fingerprint before treating each as a distinct root cause.
    • Cross-reference ask-001 (tests/ops/room-surface-coverage.test.js) with ask-010 — they overlap (coverage vs relevant-rooms-claim) and may be the same unshipped fix asked under two spellings.

    What we learned: The commit-trailer convention's hard 'exactly 3 rooms' cardinality is itself a drift generator: when a diff genuinely touches only 2 owned surfaces, the author pads with a thematically-resonant but surface-empty room (here 'Laboratory', pulled in by the word 'prototype') — a structural incentive to overclaim, not an operator slip, and a plausible dominant mechanism behind Laboratory's 240 out-of-lane events in 14 days.

    The missing guard (the deliverable): tests/rooms/relevant-rooms-covers-diff.test.mjs

    Detector probe: signal attribution — gzip reef 35% · ballistic walk 65%. Right-sized, not shallow or saturated: walksIntent(135)==litIntent(135) with walkTruncated=false shows the intent side filled cleanly, and litReality(122) is only ~10% short of litIntent — a mild undershoot, not a stall. One concrete adjustment: track the litReality/litIntent ratio across Laboratory's 240 events; if it consistently sits near 0.90, sync the two walks' depth/stop conditions so the ratio centers on 1.0 rather than quietly under-filling the reality side every time. Experiments: Run prewalkOverlap + lensReality across Laboratory's 240 recent events; if a cluster shares lensReality=A1,B1 with prewalkOverlap<15, that confirms the 'padded-third-room' fingerprint — group and fix at the trailer-rule level rather than per-event. · Seed the reef's room-lexicon with each room's owned-surface path tokens as explicit anti-association weights, so a thematic word like 'prototype' can't out-pull an empty file-glob match toward a wrong room. · Ablation-test adding 'Rust port: this decides, so its home is the crate' to the gzip baseline dictionary and measure whether offPct tightens for Builder/Architect-authored VNA commits (should concentrate mass more cleanly at B2, reducing spurious lane-jump).

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since · dictionary ablation saved 1066B

    Another zero-overlap Relevant-Rooms claim against a room already carrying 240 out-of-lane events in 14 days further erodes trust in Laboratory's room-attribution signal, raising its effective loss-ratio; premium is restored once ask-010 ships and the room's false-claim rate on Relevant-Rooms drops to near zero.

    Open the signed attestation →
  78. 2026-10-02 · 🎩 operator · offPct 25

    fix(vna): C579 — the codex leg: Pillar 4 runs codex exec with the approval flag, reports exact exit/stderr

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Open the signed attestation →
  79. 2026-10-02 · 🔨 builder · offPct 16 · structural

    feat(vna): C565h — the public reader sees the structure of the tape, never its free text

    Why it left the lane: The receipt reads bytes, not semantics. public-rows.mjs's own header runs ~14 lines of plain-English rule prose ("THE RULE, per field: a value is kept only when it is STRUCTURE...", "SUFFICIENT FOR: what a public reader may see of a backup", "NOT SUFFICIENT FOR: what any row was about") and the new test file embeds realistic natural-language fixtures to prove the redaction works: NAME='Zelda Quarrington', EMAIL='zelda.quarrington@acme-brokerage.example', subject: S('feat: outreach to'), label: S('spec row text'), prompt: S('the turn prompt'), file path S('docs/prospects/zelda.md'). Those literal strings are prose-shaped — sentences, an @ address, a commit-subject phrase — exactly the shape the gzip-NCD reef reads as content-lane mass, dragging placement from the claimed B2,B2 builder lane toward C,B3.

    Intent–reality gap: The commit claims pure structural/privacy infrastructure work ('redacts the rows ONCE, before any component sees them') scoped to the builder lane, but 16% of the reality lattice mass the receipt lit landed in the content lane (C,B3) because the guard's own fixtures and doc comments are written as realistic prose.

    • Extract NAME/EMAIL/S()/commit() fixture builder from the test into tests/fixtures/sentinel-rows.mjs
    • Trim public-rows.mjs's header comment to ≤4 lines; move the full THE RULE / SUFFICIENT-FOR rationale to a docs/architecture note
    • Add a Fixture-Note: trailer convention for future C565-series commits that embed sentinel/test prose
    • Register tests/fixtures/ as a builder-owned surface so the extraction doesn't orphan ownership
    • Author the fixture-prose-mass guard proposed below
    • Run the two reef-tightening ablations before treating the mechanism as confirmed

    What we learned: A redaction/anti-leak guard's own proof is made of the exact material it's built to strip: to show 'no free text leaks,' the test and its doc comments must contain free text. That self-referential prose mass — not operator scope creep, not mistagging — is what pulls builder-lane privacy commits toward the content lane, and it will recur every time a new no-leak guard is written unless the fixture/doc prose is isolated and discounted.

    The missing guard (the deliverable): tests/pmu-simulator/fixture-prose-mass-excluded-from-reef.test.mjs — new: fails a commit when a test or lib file's string-literal byte mass (natural-language-shaped: contains spaces, '@', or sentence punctuation) exceeds a declared density threshold of the file's total bytes AND that mass is not externalized to a tests/fixtures/*.mjs module or declared via a Fixture-Note: trailer. None of the existing open asks (ask-010 relevant-rooms-covers-diff, ask-027 originating-terminal-matches-surface, ask-033 mistagged-commit-does-not-inflate-offpct) address prose-fixture mass specifically — this is a distinct mechanism from mistagging or surface mismatch.

    Detector probe: signal attribution — gzip reef 70% · ballistic walk 30%. Right-sized, not shallow or saturated — litReality/litIntent ≈ 97% fill parity. The only gap is the 4-cell shortfall on the reality side (138 vs 142); bump reality-side walk depth by one recursion level specifically when prewalkOverlap falls below ~10, to close that residual gap deterministically rather than broadly deepening every walk. Experiments: Recompute this commit's reef placement with the test file's sentinel string literals (NAME/EMAIL/S()-wrapped values) masked before NCD hashing; measure whether offPct drops below 15, isolating fixture prose as the cause. · Build a synthetic variant of c565h-public-reader-sees-no-free-text.test.mjs using non-natural-language placeholder tokens (e.g. TOKEN_1) in place of NAME/EMAIL/commit-subject fixtures and recompute offPct to confirm the mechanism via ablation. · Run split-file reef placement — public-rows.mjs alone vs the test file alone — to quantify how much of the C,B3 pull comes from the implementation's header prose versus the test's fixture corpus.

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since · dictionary ablation saved 762B

    A correctly-engineered privacy guard registering as a 16% off-lane event adds noise to this lane's already-elevated loss profile (73 events/14d) without representing real scope creep — the fix that restores premium here is isolating fixture/doc prose from the reef corpus, not adding review overhead to legitimate redaction work.

    Open the signed attestation →
  80. 2026-10-02 · 📐 architect · offPct 36

    spec(vna): declare C538a (panel movie under the slider) + append C562/C562a/C562b from the 2026-10-02 dictation

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 26→23 over 5 commits since

    Open the signed attestation →
  81. 2026-10-02 · 📐 architect · offPct 25

    spec(vna): declare C551 — efficiency headline above the fold, succinct adherence strip, scroll to rung 2

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 23→29 over 3 commits since

    Open the signed attestation →
  82. 2026-10-02 · 📐 architect · offPct 55 · mistagged

    docs(asks): market-landfall action steps — both migrations measured applied, 0 shares on record

    Why it left the lane: The commit's own trailers contradict each other: Originating-Terminal says architect, but Relevant-Rooms (operator, navigator, network) and the Story line ('the remaining steps are the operator's') both say the content belongs to operator. The detector classifies the intent lane from Originating-Terminal alone (per prior lesson ff09774e5), so it stamped the C,B2 (architect) lane while the actual text — an action-steps ledger about migrations, shares, and the operator's remaining steps — lands at A1,C, the operations/tracking coordinate. The pull isn't from exotic diff content (docsOnly=true, no semantic-file diff) — it's purely from the PATH 'docs/asks/2026-10-01-market-landfall-actions.txt', a directory not present anywhere in architect's owned-surface list (docs/strategy/, docs/03-product/, .workflow/rooms/*.html, .workflow/cognitive-dashboard.html, docs/01-business/strategy/, CLAUDE.md).

    Intent–reality gap: The commit message claims this is architect's strategic synthesis work ('market-landfall action steps'), but its own Relevant-Rooms trailer and Story line admit the content is operator's remaining work — and the receipt measures 55% of the lit mass landing at A1,C (operations), outside the C,B2 (architect) lane the Originating-Terminal tag claims.

    • Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027) — intent lane = Relevant-Rooms union, not Originating-Terminal alone
    • Ship tests/pmu-simulator/docs-only-commit-skips-lattice.test.mjs (ask-005) — docsOnly=true commits (like this one) should skip the lattice walk entirely instead of scoring a positional offPct
    • Ship tests/ops/room-surface-coverage.test.js (ask-001) — assert docs/asks/ and tests/pmu-simulator/*.test.mjs each have a declared owning room in CLAUDE.md's surface table
    • Add an explicit owned-surface entry for docs/asks/ (or relocate it under docs/strategy/asks/) in CLAUDE.md's 'THE ROOM'S OWNED FILE SURFACE' table
    • Name an explicit owning room for tests/pmu-simulator/*.test.mjs guard files themselves, so ask-027/ask-005 aren't orphaned work nobody's queue prioritizes
    • Update the drift-receipt generator's own spec doc to state the Relevant-Rooms-wins rule verbatim, so future sessions don't re-derive it a fourth time

    What we learned: The fix for this exact class has been spec'd identically by three separate rooms (architect, navigator, laboratory per ff09774e5) and still hasn't shipped — not because the fix is hard, but because the guard file itself (tests/pmu-simulator/*) has no owning room in the surface table, so no room's own commit queue ever treats shipping it as 'their lane.' The orphan-guard problem is now self-similar to the orphan-docs problem (docs/asks/) that triggered this very event: unowned paths produce unbounded drift because nothing in the architecture forces anyone to claim them.

    The missing guard (the deliverable): tests/pmu-simulator/originating-terminal-matches-surface.test.mjs

    Detector probe: signal attribution — gzip reef 70% · ballistic walk 30%. Right-sized, not shallow or truncated — litIntent/walksIntent and litReality/walksReality both sit at ~100% fill with walkTruncated=false. The waste is upstream: spending a full 125/119-node walk on a docsOnly=true, single-file, 28-line asset commit is disproportionate. Adjustment: for docsOnly=true commits, cap the walk budget to a small fixed ceiling (e.g. 20 nodes) and verify offPct doesn't move — if it doesn't, the full walk was pure overhead on this commit class. Experiments: Re-seed the reef for this commit using the Relevant-Rooms corpus (operator, navigator, network) instead of Originating-Terminal's corpus, and measure whether prewalkOverlap rises above 5 and offPct drops below the 15 threshold · For docsOnly=true commits, cap walksIntent/walksReality to 20 and measure whether offPct changes by more than 5 points versus the current 125/119 budget — null result confirms ask-005's premise · Seed the gzip dictionary with the literal path token 'docs/asks/' and re-run prewalkOverlap on the last 20 docsOnly commits to measure whether path-level tokens alone recover most of the missing overlap

    Measured outcome (deterministic, not self-graded): room mean offPct 26→23 over 5 commits since

    A docs-only, zero-code commit scoring offPct=55 on a mistagged (not actually misplaced) lane is a false loss event that inflates this room's measured drift rate without reflecting real risk; premium is restored by shipping ask-027 so the detector reads Relevant-Rooms instead of Originating-Terminal alone, which converts this specific event from a loss into a non-event.

    Open the signed attestation →
  83. 2026-10-02 · 📐 architect · offPct 30 · mistagged

    spec(vna): re-aim C563a — a randomised spec/snowball vs chain-of-thought A/B, tokens per verified outcome

    Why it left the lane: The diff is a single-line edit inside docs/specs/vna/SPEC-VNA-COCKPIT.md, rewriting the C563a row from a STEER-vs-PLAIN proof pair to a dense experimental-design spec: 'SPEC/SNOWBALL VS CHAIN-OF-THOUGHT — A RANDOMISED A/B', 'arm order randomised, ≥ 2 reruns per arm', 'tokens to green, median [min,max]', 'Jaccard of files touched', 'A label-shuffled permutation null (K ≥ 200)'. That vocabulary is lab-methodology density, not strategic re-aim prose, and it pulled the receipt's reality walk to lensReality=C,C while the commit's declared intent (Originating-Terminal 📐 Architect, the prior row's framing) sits at lensIntent=B,A1 — laneJump=1, laneHamming=28. Nothing in the diff itself is wrong; the pull is the mismatch between a thin docs-only edit (docsOnly=true) and a full lattice placement run against it.

    Intent–reality gap: The commit message correctly declares itself a strategic re-aim trailered to all three rooms that actually touch it (Relevant-Rooms: Architect · Laboratory · Vault), but the receipt computed offPct=30 as if the work belonged to Architect alone — the detector read Originating-Terminal and ignored the Relevant-Rooms trailer and the docsOnly flag it already carries in its own row.

    • Ship tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs (open ask-033, asked 16× — fixture: Relevant-Rooms covers the diff surface but Originating-Terminal differs; assert offPct stays under threshold)
    • Ship tests/pmu-simulator/docs-only-commit-skips-lattice.test.mjs (open ask-005, asked 16× — fixture: docsOnly=true; assert the full lattice walk is skipped or demoted)
    • Add docs/specs/vna/** to an explicit room-owned-surface glob (plausibly .workflow/rooms/laboratory.html, since Architect's own owned list already includes .workflow/rooms/*.html as the place room-config globs live)
    • Unify the three independently-spec'd room-drift-<room>-check.sh fixes named in ff09774e5 instead of letting a fourth room re-spec the same fix
    • Wire docsOnly (already computed, already present in every receipt row) into the offPct calc as a suppression signal before any further lattice-scoring change ships

    What we learned: The prior lesson (ff09774e5) diagnosed the Originating-Terminal-only classification and even improved offPct 20→14 for 8 commits, then the room's mean drifted back up twice (14→28, 17→26) — the diagnosis was correct but nothing was ever shipped as a guard, so the fix round-tripped as 'spec'd' without becoming 'done.' The new fact this event adds: the suppression signal the fix needs (docsOnly=true) is ALREADY computed and sitting in every receipt row, unused — this isn't a missing-detection problem, it's a missing-wiring problem, which makes the fix far cheaper than three separate rooms spec'ing new detection logic implies.

    The missing guard (the deliverable): tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs

    Detector probe: signal attribution — gzip reef 30% · ballistic walk 70%. Right-sized in raw count (79-103 lit cells on both sides) but mis-scoped for the input: a 1-line docs edit is forcing reality's walk to concentrate hard into C,C while intent's walk (built from the fuller commit message + trailers) spreads wider into B,A1. Adjustment: seed the intent-side walk from the Relevant-Rooms trailer text as well as the message body, so intent legitimately spreads toward Laboratory-adjacent vocabulary instead of the gap being closed only downstream by suppression. Experiments: Re-run the lane classifier against the last 97 architect out-of-lane events using Relevant-Rooms-union instead of Originating-Terminal alone; measure what fraction reclassify under the 15 threshold · For every docsOnly=true commit in the last 14 days, recompute offPct with lattice-scoring suppressed and compare the room's mean offPct trend before/after · Seed the gzip dictionary with the C563-row boilerplate strings below and measure whether prewalkOverlap on the next VNA spec-row edit rises meaningfully above 4

    Measured outcome (deterministic, not self-graded): room mean offPct 26→23 over 5 commits since · dictionary ablation saved 1426B

    A docs-only, correctly-trailered spec edit reading as 30%-out-of-lane inflates this lane's apparent loss-ratio with a false claim, and only wiring the already-measured Relevant-Rooms + docsOnly signals into the offPct calc — backed by the named guard — restores the premium to reflect real cross-lane risk rather than detector noise.

    Open the signed attestation →
  84. 2026-10-02 · 🧪 laboratory · offPct 23 · mistagged

    feat(vna): C563e — the door /steer dispatches through is chosen by measured cost per verified outcome

    Why it left the lane: The diff's actual vocabulary — 'door-metrics.mjs', 'steer-runner.mjs', 'verify-stamps.ndjson', 'claude --max-turns', 'dispatchBrief' — sits entirely inside the VNA/steer surface (scripts/vna/*, .claude/skills/steer/*, tests/vna/*), none of which appears anywhere in 🧪 laboratory's owned surface (thetacoach-crm-mcp/, swarm-comms/, .thetacog/orchestrator/, .claude/settings*.json, .mcp.json). The commit carries an Originating-Terminal of '📐 VS Code Architect' but NO Relevant-Rooms trailer at all — the one field that would have told the receipt pipeline which room's lane this belongs to is blank. With no explicit room claim to anchor the intent lane, the reef/lattice placement fell back to whatever default the pipeline uses for untagged commits, which lands in 🧪 laboratory (lensIntent=A1,C3), while the walk correctly found the content's real home at lensReality=C,C — the VNA/steer coordinates. 23% of the lit mass (litReality=133) sits there, outside the lane laboratory never claimed.

    The semantic pull: 'door-metrics.mjs' / 'steer-runner.mjs' / 'verify-stamps.ndjson' / '--max-turns' pulled reality toward C,C (VNA/steer); nothing in the commit pulls it toward A1,C3 (laboratory's CRM/orchestrator lane) except the blank Relevant-Rooms field defaulting there.

    Intent–reality gap: The commit message makes no room claim at all (no Relevant-Rooms trailer, Originating-Terminal names a different room than the one being scored) yet the receipt scored it against 🧪 laboratory's lane; the work itself — door-metrics.mjs, steer.mjs, steer-runner.mjs — is coherent, well-guarded VNA engineering that simply isn't laboratory's business.

    • Add the missing Relevant-Rooms trailer convention enforcement so a commit touching scripts/vna/** without naming its room is flagged (ask-010, tests/rooms/relevant-rooms-covers-diff.test.mjs)
    • Verify Originating-Terminal against actual touched-surface for this commit class (ask-027, tests/pmu-simulator/originating-terminal-matches-surface.test.mjs)
    • Identify and name the room that legitimately owns scripts/vna/*, .claude/skills/steer/*, tests/vna/* in the owned-surface registry
    • Audit the 253 laboratory out-of-lane events over the last 14 days for the same pattern: no Relevant-Rooms trailer + VNA/steer-shaped diff
    • Fix the room-assignment default so an untagged commit never silently attributes to laboratory
    • File a git notes add on a3aa30db59 naming the correct room retroactively, since --amend is forbidden

    What we learned: 🧪 laboratory's abnormally high event rate (253/14 days, far above what its small, stable owned surface — CRM/orchestrator/settings files — should generate) is itself evidence that laboratory is functioning as the receipt pipeline's silent default bucket for commits that omit a Relevant-Rooms trailer, not evidence that laboratory's own work is drifting; the room's offPct trend is contaminated by foreign commits it never claimed.

    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, not shallow or saturated: the ~94% intent/reality overlap in both walk count and lit count shows the recursion is stable and proportionate. No depth change needed; the fix is upstream of the walk, at seed/room assignment. Experiments: Re-score a3aa30db59 after backfilling a Relevant-Rooms trailer via git notes naming the correct VNA-owning room, and measure whether offPct drops toward threshold — isolates whether the trailer omission, not the code, drove the 23% · Bucket laboratory's 253 out-of-lane events by presence/absence of a Relevant-Rooms trailer; if trailer-less events carry significantly higher offPct, that's the ablation proof the default-routing bug is laboratory's dominant loss driver, not its own work quality · Compare prewalkOverlap distribution for laboratory's events against a low-offPct room's events to test whether laboratory's reef corpus needs scripts/vna/*-flavored terms excluded as foreign content rather than absorbed into its baseline

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since · dictionary ablation saved 607B

    Serving as the pipeline's silent default bucket inflates 🧪 laboratory's loss ratio with noise from work it never claimed; the premium is restored only by wiring the Relevant-Rooms guard (ask-010) so laboratory's offPct reflects commits that actually touch its owned surface.

    Open the signed attestation →
  85. 2026-10-02 · 🧪 laboratory · offPct 17 · structural

    data(vna): C567g — the address reading: half B z −0.49 (n 21, measured) below the null; half A UNMEASURED at 14 rows (PN3)

    Why it left the lane: The diff is a single raw data file (data/vna/preference-read-backtest-address.json, 2789 insertions, zero code) and the receipt's own docsOnly flag is already true — the ingest classifier correctly saw this as an asset-only commit. Yet walksIntent=110/walksReality=122 show the full semantic ballistic walk still ran against it, resolving the bare statistical key-vocabulary ('half A','half B','rate','null','sd','z','S_addr','cheb','COM') to B3,B2 while the commit message's framing (lensIntent) sits at B3,C2 — a laneJump of 3 / laneHamming of 20, past the 15% threshold.

    The semantic pull: Numeric/statistical JSON keys ('half A','half B','rate','null','sd','z','n','S_addr','cheb','COM') carry none of the interpretive lab-narrative framing the commit message supplies, so the reality-side walk nearest-matches a generic measurement lane (B3,B2) instead of the message-derived reading lane (B3,C2) — exactly the pull you'd expect from walking a flat data blob as if it were prose.

    Intent–reality gap: The commit message claims a specific interpretive placement (B3,C2 — a reasoned statistical finding, verdict UNMEASURED by PN3) but the receipt shows the walker actually scored the literal file content at B3,B2 — even though docsOnly=true already flags this as a data-only artifact that structurally should never have been scored against an interpretive lane at all.

    • Ship tests/pmu-simulator/docs-only-commit-skips-lattice.test.mjs (ask-005) using sha a410b93f3 as the reproducing fixture
    • Locate the receipt generator that computes docsOnly and wire it to short-circuit the walk call before it runs
    • Audit the room's 242 out-of-lane events for the same docsOnly=true-but-scored pattern to estimate the guard's blast radius
    • Re-measure 🧪 laboratory's offPct trend after the gate ships to confirm it falls
    • Add a C567-series spec note: 'data-only artifact, lattice-exempt' on C567/C567c/C567d/C567g rows

    What we learned: docsOnly is computed correctly by the ingest classifier but is NOT wired to anything downstream — it is measured-but-unused telemetry, sitting inert while the walk runs anyway. That's a new structural fact (a flag-computed/flag-consumed disconnect), distinct from the prior three facts-only lessons which carried no sensemaking at all.

    The missing guard (the deliverable): tests/pmu-simulator/docs-only-commit-skips-lattice.test.mjs (ask-005, asked 16×) — this event is a concrete reproducing case: docsOnly=true yet offPct=17 was still emitted.

    Detector probe: signal attribution — gzip reef 25% · ballistic walk 75%. Oversaturated for this input class: litIntent=110/litReality=122 on a flat key-value JSON with no prose means the walk is recursing full-depth over numeric tokens that carry no placement signal. Adjustment: cap walk depth/budget (or skip entirely per the missing_guard) for any path matching data/**/*.json. Experiments: Run the walker against all docsOnly=true commits in the last 14 days and measure what fraction scored offPct>15 — direct ablation evidence for the guard's value · Re-run a410b93f3 with the docsOnly gate simulated and confirm offPct reports null instead of 17 — a before/after unit test · Measure prewalkOverlap distribution for data/vna/*.json commits vs code commits to confirm bare-numeric files systematically produce near-zero overlap, then seed a dedicated reef corpus class for them

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since · dictionary ablation saved 504B

    A chronic 242-event/14-day false-positive rate in this lane dilutes the offPct signal's credibility for genuine drift; shipping the docsOnly gate (ask-005) strips the noise so remaining events are the ones actually worth pricing.

    Open the signed attestation →
  86. 2026-10-02 · 📐 architect · offPct 18

    spec(vna): C596 — /steerone grips one row and answers at walking pace

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 22→7 over 5 commits since

    Open the signed attestation →
  87. 2026-10-02 · 🔨 builder · offPct 32 · structural

    fix(vna): C538a — /backup/adherence opens paused on the latest row; Play is on demand

    Why it left the lane: The actual code fix is one token in TapeSlider.tsx (`autoPlay = true` → `autoPlay = false`), squarely in src/app/backup/adherence (A1). But test 6, appended to tests/vna/c538a-the-panel-movie-under-the-slider.test.mjs, carries a ~500-char verbatim operator-veto block as a code comment ("operator 2026-10-02, vetoing auto-play: \"Keep it paused on the latest row by default. On /backup/adherence, the page functions as an audit ledger...\"") plus five new assertions that re-read page.tsx (`readFileSync(resolve(REPO, 'src/app/backup/adherence/page.tsx'), 'utf8')`), re-derive `mod.movie.movieMode(...)`, and regex-probe the rendered `<TapeSlider/>` tag. That block is narrative/spec prose, not UI code — gzip-NCD reads it closer to documentation than to A1 component code, so most of walksReality's 125 lit cells land in coordinate A instead of the C538a-numbered coordinate (C) the commit message names.

    The semantic pull: The literal operator-quote string and the repeated `readFileSync(...'utf8')` / `assert.equal(mod.movie.movieMode(` re-derivation pattern are prose-dense and structurally resemble the spec-ledger corpus (long dictated quotes, C-number citations) rather than terse app code — that textual mass is what the reef read as off-lane.

    Intent–reality gap: The message claims a scoped one-line UI default flip closing spec row C538a; the receipt shows reality never lit coordinate C at all (lensReality=A,A1, no C) while lighting an A region the intent lane never declared.

    • Create data/vna/spec-rows/C538a.md with the operator's verbatim veto text, cross-referenced from the test comment
    • Add a `Spec-Row:` trailer convention to commit-message guidance for any commit closing a C-numbered row
    • Audit other c5xx*.test.mjs files for the same giant-verbatim-comment pattern (test 5 in this same file already does it) and extract uniformly
    • Add the missing_guard test below
    • Seed the compression dictionary with the recurring test-boilerplate strings named in pipeline_probe

    What we learned: A commit can be 100% correctly scoped to its owned surface (a single boolean in src/app/) and still blow offPct because its paired guard test embeds the spec row's decision record as inline prose rather than filing it at the row's own C-coordinate — the walker has nowhere to find C538a's close-out except a test comment, so the C lane never lights and the comment's narrative mass gets misread as an unrelated A region. This is a filing-location defect, not a code-placement defect.

    The missing guard (the deliverable): tests/vna/spec-row-decision-filed-not-inlined.test.mjs — fails if a tests/vna/*.test.mjs file contains a verbatim-quote comment block above ~200 chars tagged with a C-row id (e.g. "operator ..., vetoing..." beside a C\d+[a-z]? reference) unless a corresponding data/vna/spec-rows/<row>.md file exists.

    Detector probe: signal attribution — gzip reef 30% · ballistic walk 70%. Volume is matched on both sides (124 vs 125 lit cells, walksIntent≈walksReality) so the walk isn't saturated or starved in absolute terms — but it is over-broad RELATIVE to the diff's actual size (2 files, 20 lines). The walk is using the same depth/cap budget for a one-token prop flip as it would for a large feature commit. Adjustment: scale the walk's lit-cell cap to diff size (e.g. cap walksReality near 5x changed-lines for sub-25-line diffs) so small commits can't accumulate 125 lit cells in the first place. Experiments: Re-run this commit's walk with the operator-quote comment synthetically stripped from the test file; confirm offPct drops under 15 to isolate the prose block as the actual driver · Cap walksReality proportional to diff line-count for small commits and replay the last 67 builder out-of-lane events to measure how many fall under threshold · Seed the reef dictionary with the test-boilerplate strings in compression_dictionary_adds and re-measure prewalkOverlap on this commit plus the last 10 similar c5xx guard-test commits

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since · dictionary ablation saved 824B

    A structural filing gap (decision text stranded in a test comment instead of its spec-row record) that inflated this lane's loss-ratio without any actual scope violation; premium is restored by filing C538a's record at its own coordinate and gating future closes on that file existing.

    Open the signed attestation →
  88. 2026-10-02 · 🔨 builder · offPct 21

    feat(vna): C557a — one vocabulary on /backup/adherence: six terms, one definition each, read three ways (CRO · staff engineer · reinsurance underwriter)

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since

    Open the signed attestation →
  89. 2026-10-02 · 🧪 laboratory · offPct 34 · mistagged

    feat(vna): C563a — SPEC vs CoT harness: retroactive task bank (ticked rows from their parent commit), frozen CoT arm and held-out set

    Why it left the lane: The diff is 100% scripts/vna/spec-vs-cot.mjs, data/vna/c563a-frozen.json, tests/vna/c563a-spec-vs-cot.test.mjs — three files that never touch Laboratory's owned surface (.claude/, .mcp.json, scripts/claude-room, thetacoach-crm-mcp/, swarm-comms/, .thetacog/orchestrator/, .thetacog/punch-list*). The commit's own Relevant-Rooms trailer reads 'Builder, Laboratory, Architect' — the word 'Laboratory' sits in that line next to lab-flavored diff vocabulary ('harness', 'frozen', 'arm', 'randomised', 'label-shuffled null', 'A/B') that reads like an experiment write-up even though every file it names lives in scripts/vna, data/vna, tests/vna. prewalkOverlap=1 shows the reef seeds for intent and reality fully agreed BEFORE the ballistic walk ran, so the 34% offPct is not a reef-seed mismatch — it's the walk itself, which spread further on the reality side (litReality=132) than the intent side (litIntent=108), a 22% larger reach that pushed lit reality cells from the claimed B,A1 lane out to A1,A2 (laneJump=2, hamming 34).

    Intent–reality gap: The commit claims Laboratory as a relevant room for a SPEC-vs-CoT harness build; the receipt measured zero overlap between the diff and Laboratory's owned-file surface, with 34% of the lit reality mass sitting outside the lane the Relevant-Rooms trailer declared.

    • When authoring a Relevant-Rooms trailer, cross-check each named room's owned-file glob against `git diff --name-only` before listing it — if no file intersects, drop the room.
    • Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010, already asked 32×) — this exact event is the 32nd unaddressed instance of the gap it closes.
    • Audit the room's 252 out-of-lane events in the last 14 days for the same pattern: grep commit trailers for 'Relevant-Rooms:.*Laboratory' where the diff never touches .thetacog/orchestrator/, swarm-comms/, thetacoach-crm-mcp/, or the other owned globs, and report what fraction of the 252 is mistagging noise vs real drift.
    • Cap walksReality's budget to walksIntent's (or a shared per-commit ceiling) when diff size differs, so a larger diff doesn't inherit a larger ballistic-walk reach purely from file count.
    • Decouple reef/vocabulary proximity from final room-label confirmation: a candidate room is only confirmed if its owned glob intersects the diff; semantic/reef nearness only ranks among already-confirmed candidates, never promotes an unconfirmed one.

    What we learned: The room offPct metric is computed against whichever room NAME sits in the commit's own Relevant-Rooms trailer, not against the diff's actual owned-file surface — so a commit's free-text trailer can indict any room it mentions, and 32 prior unactioned asks for the covering guard mean a non-trivial share of this room's 252 out-of-lane events in 14 days is plausibly self-inflicted mistagging rather than real drift, which the prior facts-only interventions on this room never isolated.

    The missing guard (the deliverable): tests/rooms/relevant-rooms-covers-diff.test.mjs

    Detector probe: signal attribution — gzip reef 15% · ballistic walk 85%. Right-sized in depth (walkTruncated=false, both sides fully lit, no sign of shallow cutoff) but asymmetric in budget: reality's walk explored 132 cells against intent's 108, a 22% larger reach that is itself sufficient to cross two lane boundaries (laneJump=2). Concrete adjustment: normalize walksReality to the same ceiling as walksIntent (or a fixed shared per-commit budget) before computing offPct, so a bigger diff doesn't automatically buy a bigger reach that reads as drift. Experiments: Experiment: re-run the last 50 commits' room attribution using file-path-glob matching only (ignore Relevant-Rooms free text) and diff the resulting offPct distribution against the shipped one — measurable outcome: does mean offPct for Laboratory drop below its current trend floor. · Experiment: cap walksReality at walksIntent's count for the retroactive bank of commits with laneJump>=2 and recompute offPct — measurable outcome: what fraction of those events fall back under the 15% threshold once budgets are equalized. · Experiment: add a hard pre-finalization filter requiring a candidate room's owned glob to intersect the diff before reef/vocabulary proximity can rank it into Relevant-Rooms — measurable outcome: count of future commits where a listed room has zero file-glob overlap, tracked to zero.

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since · dictionary ablation saved 745B

    A mistagged Relevant-Rooms trailer manufactures a false loss event against Laboratory's lane, inflating its loss ratio on noise rather than real drift; premium on this lane is restored once tests/rooms/relevant-rooms-covers-diff.test.mjs ships and the 252-event backlog is re-audited to separate mistagging from genuine out-of-lane work.

    Open the signed attestation →
  90. 2026-10-02 · 🧪 laboratory · offPct 24

    test(vna): C560 parent guard — every sub-row ticked with its guard on disk

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  91. 2026-10-02 · 🧪 laboratory · offPct 43 · mistagged

    fix(backup): fleet tapes ride as the newest ROWS_CAP rows, so the --tapes archive fits the upload body again

    Why it left the lane: The diff's entire real surface is scripts/vna/backup.mjs and tests/vna/backup-tar-frozen-at-stat.test.mjs — strings like 'controller-tick.ndjson', 'ROWS_CAP', 'fleet tape', 'tails.files' are pure VNA/backup vocabulary. None of it touches 🧪 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's own trailers name Originating-Terminal: 🔨 Builder and Relevant-Rooms: Builder, Architect, Operator — laboratory is never claimed anywhere in the message. lensIntent=A1,A3 vs lensReality=B,B is a full category flip, consistent with an event that was never semantically laboratory's to begin with being forced onto laboratory's ledger.

    The semantic pull: No term in the diff pulls toward laboratory; the pull is administrative, not semantic — some upstream step attributed this sha's receipt to 🧪 laboratory despite the trailers and file paths pointing at Builder/Architect/Operator and scripts/vna/**.

    Intent–reality gap: The commit declares Originating-Terminal: 🔨 Builder and Relevant-Rooms: Builder, Architect, Operator and touches only scripts/vna/ and tests/vna/ — yet this event's offPct=43 is being charged against 🧪 laboratory, a room that owns none of the touched paths and is named nowhere in the commit.

    • Land tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs (ask-033, already asked 17×): an event whose diff touches none of room X's owned globs must not post offPct against room X.
    • Land tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, already asked 32×): assert the declared Originating-Terminal/Relevant-Rooms trailers are cross-checked against the diff's touched-path owners before an event ships.
    • Audit 🧪 laboratory's 245 out-of-lane events in the last 14 days for the same mistag signature (Relevant-Rooms naming other rooms, zero path overlap with laboratory's globs) to size the contamination.
    • Re-read the three prior laboratory interventions' measured outcomes (15→13, 15→18, 13→11) against that audit — a trend built partly on misrouted events is not evidence about laboratory's actual drift.
    • Document which upstream step chose 'laboratory' for this sha (default terminal? last-active session?) so the specific defaulting logic can be named and removed.

    What we learned: 🧪 laboratory's offPct ledger can be fed events whose own commit trailers explicitly name three other rooms and whose diff touches none of laboratory's owned globs — the room's drift history is not self-certifying; it can be contaminated by misattribution from domains (VNA/backup) it has no surface in, which the two already-open-32×/17× asks were written to catch but have never shipped.

    The missing guard (the deliverable): tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Right-sized, not shallow or saturated: walkTruncated=false and litIntent/litReality are nearly equal, so coverage volume matches on both lanes. The failure is categorical (which lens bucket), not volumetric. Adjustment: feed the walk's reef seed the diff's actual touched-path tokens (scripts/vna/backup.mjs, controller-tick.ndjson, ROWS_CAP) before it starts, since the current seed only reached prewalkOverlap=6. Experiments: Re-seed the reef for this sha using the diff's touched-path tokens instead of the room label 'laboratory', and measure whether prewalkOverlap rises above 6 and offPct drops below 15. · Recompute this sha's placement against the Builder room's reef instead of laboratory's and compare offPct — a drop to under 15 would directly confirm the room attribution, not the work, is the defect. · Ablation: strip the room-name token from the reef seed corpus entirely and re-run laneHamming (currently 38) across the last 20 laboratory events to see whether room-label bias is inflating lane distance generally.

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since · dictionary ablation saved 653B

    A mistagged event inflates 🧪 laboratory's apparent loss ratio with noise from a domain it doesn't own, which would misprice that lane's premium until ask-033/ask-027 ship and the room's recent offPct trend is re-read net of misattributed commits.

    Open the signed attestation →
  92. 2026-10-02 · 🔨 builder · offPct 32 · structural

    fix(vna): C560c — the carrier envelope routes keep answering across schema changes

    Why it left the lane: The commit's claimed lane is the two production try/catch fixes in route.ts (11 lines) and page.tsx (17 lines) — the C,B2 'landing-page-keeps-answering' story. But 290 of the diff's 315 lines are a brand-new, generic test-apparatus: a SQL-migration regex parser (applySql/splitTop/migrationsSchema), a hand-rolled PostgREST+storage HTTP double (rest()/storage()), a tar.gz archive builder (tar()/gzipSync), and an ed25519 signer (edKey()/signed()/generateKeyPairSync). That vocabulary — 'PGRST205','42703','schema cache','ed25519','gzipSync' — has nothing to do with 'carrier envelope' or 'landing page' and reads straight into the A,A1 apparatus/infra coordinate, dragging litReality (128, 100% saturated) away from the claimed C,B2 lane. laneHamming=38 and laneJump=4 are the lattice's way of saying: the lexicon of what got written is almost entirely disjoint from the lexicon of what was claimed.

    The semantic pull: Strings like 'migrationsSchema', 'applySql', 'PGRST205'/'42703'/'PGRST204', 'generateKeyPairSync'/'edSign', 'gzipSync'/tar-header byte-packing pull the walk toward A,A1 (apparatus/foundational). Nothing in the production diff (the two try/catch blocks, 'the record did not answer', 'UNMEASURED') shares that vocabulary — the production change stayed in C,B2 territory; the test file did not.

    Intent–reality gap: The message/Story claims a narrow production fix ('the two public reads... must not go dark'), but the receipt measured a commit whose actual lit mass is 92% a reusable schema-double/crypto/tar test-infrastructure module — a second, larger deliverable the commit message never names.

    • Extract the PostgREST+storage double (rest/storage/applySql/migrationsSchema) to tests/lib/postgrest-double.mjs
    • Extract the tar.gz archive builder to tests/lib/tar-fixtures.mjs
    • Extract the ed25519 key/signing helpers to tests/lib/notary-fixtures.mjs
    • Point c560c's test file at the three new imports; delete the inlined copies
    • Add tests/lib/** as a shared (non-single-room) owned-surface glob so future imports don't mis-attribute lane
    • Document the convention: new reusable test doubles live under tests/lib/, named as their own line in the commit Story, never buried inside one feature test file

    What we learned: The receipt counts TEST-FIXTURE vocabulary against the commit's claimed lane exactly like production code — a correctly-scoped two-file production fix can still blow offPct past threshold if its accompanying test inlines a large, semantically unrelated mock/crypto/parsing apparatus instead of importing one. Diff mass, not production-code proportion, is what the lattice walks.

    The missing guard (the deliverable): tests/ops/test-fixture-mass-proportional.test.mjs — for any commit tagged a narrow fix/feat, flag when a touched test file's added lines exceed ~3x the production files' added lines AND the test file's own vocabulary (crypto/tar/schema-parsing terms) does not appear in the production diff; the flag reads 'extract to tests/lib/', not a fail.

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Saturated, not right-sized: every cell the walk visited on both sides was lit (100% fill), which means the walk stopped at the first encircled ring instead of reaching unlit territory that would show gradient. Adjustment: for test-heavy commits (diff dominated by a *.test.mjs file), double the reality-side walk depth until at least one unlit cell is hit, or widen the aperture specifically for files matching tests/**. Experiments: Re-seed the reef for this sha with the production files and the test file as two SEPARATE corpora; measure whether offPct recomputed on the production-only seed drops below 15 (isolates whether the test fixture alone is the offender) · Add a decay weight on generic infra vocabulary (Postgres error codes, ed25519/tar API names) that recurs across unrelated commits, so it stops acting as a permanent magnet toward A,A1; measure laneHamming drop on a held-out set of 'adds a generic double' commits · Auto-flag SATURATED walks (litX==walksX) and re-run at 2x depth; measure the fraction of SATURATED commits before/after the aperture widening ships

    Measured outcome (deterministic, not self-graded): room mean offPct 38→17 over 6 commits since · dictionary ablation saved 1080B

    This single event is cheap — a one-off extraction debt, not a defect — but it's the Builder room's 78th out-of-lane event in 14 days, so the premium is restored only by shipping the fixture extraction plus the mass-proportionality guard so the next 'survives schema' test stops re-inflating offPct for the identical structural reason.

    Open the signed attestation →
  93. 2026-10-02 · 🔨 builder · offPct 26

    fix(site): C565f — /risk/<pseudonym> ends on the handbook, never a dead end

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since

    Open the signed attestation →
  94. 2026-10-02 · 🔨 builder · offPct 23 · mistagged

    fix(backup): a tape appended to mid-bundle no longer tears the archive — entries freeze at their header's size

    Why it left the lane: The diff's single heaviest file is scripts/vna/backup.mjs (26 of the ~107 changed lines), carrying `export function frozenSize(abs)`, raw `openSync/readSync/closeSync` byte-range reads, and the `tarHeader`/`pad` rewrite — low-level binary tar-format mechanics. Those strings never touch src/app or src/lib's reader/UI vocabulary (`cstr`, `Refused`, the checksum math in receive.mjs is a byte-level counterpart but at least lives under src/lib). The reality walk (litReality=139, fully lit, walkTruncated=false) landed mass at B,A — a coordinate scripts/vna/backup.mjs's binary-format work naturally pulls toward — 4 lane-jumps and Hamming-26 away from the declared A3,A.

    The semantic pull: The commit bundles two registers in one patch: the reader/page refusal register (receive.mjs, page.tsx — Builder-owned, matches A3,A) and the tar-writer binary-format register (backup.mjs — unowned by any surface in Builder's list, matches B,A). The second register, being the largest diff block, dragged the lit reality mass toward B,A even though the commit's Relevant-Rooms trailer correctly names three rooms.

    Intent–reality gap: The commit message claims one cohesive 'backup' fix and names three Relevant-Rooms, but it never declares which room owns scripts/vna/backup.mjs specifically — the file carrying the actual mechanism (frozenSize, tarEntries) and the largest diff. The receipt scored the commit against room Builder, whose owned surface (src/app, src/lib, public, specific scripts) does not include scripts/vna/backup.mjs at all, so 23% of lit reality mass landed on a file no declared owner claims.

    • Extract tarEntries/frozenSize/tarHeader/pad from scripts/vna/backup.mjs into src/lib/backup/bundle.mjs; scripts/vna/backup.mjs becomes a thin CLI wrapper.
    • Until the move lands, add scripts/vna/backup.mjs (or scripts/vna/**) to the owning room's owned-surface glob so the file has a declared owner.
    • Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, already asked 31x) — fail when the trailer's Originating-Terminal room doesn't own the heaviest-touched file's surface.
    • Ship tests/ops/room-surface-coverage.test.js (ask-001, already asked 11x) — fail when any touched file in a commit has no declared room owner.
    • Document scripts/vna/* ownership explicitly in the room-surface doc — it is currently absent from every surface list shown for this event.
    • Re-run the lane classification on this sha after the bundle.mjs move lands to confirm the reality lane recomputes closer to A3,A.

    What we learned: The backup pipeline's write-path (scripts/vna/backup.mjs) and read-path (src/lib/backup/receive.mjs) are split across two directory trees that no single room-owned-surface glob covers together — any commit that legitimately fixes both halves of one bug will straddle an unclaimed lane, independent of operator intent or code quality.

    The missing guard (the deliverable): tests/pmu-simulator/originating-terminal-matches-surface.test.mjs

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Right-sized, not shallow or saturated-wrong: both sides lit all 139 cells with no truncation. The lever isn't depth — it's that the walk has no prior on room-owned-surface globs, so two fully-lit walks can still land in different lanes purely on lexical content. Concrete adjustment: weight the walk's cell transitions by which room's owned-surface glob matches the file being read, not just its text. Experiments: After the bundle.mjs extraction lands, re-walk this sha's successor commit and measure whether prewalkOverlap rises above 5 for backup-pipeline commits. · Seed the gzip-NCD reef dictionary with the literal strings below and re-run lane classification on the last 10 backup-touching commits, measuring whether mean laneHamming narrows from the current 26. · Add owned-surface-glob membership as an explicit walk prior and measure whether offPct's room mean (currently trending 26→27, 21→22) drops below the 15 threshold more often on the next 10 Builder-attributed commits that also touch scripts/vna/*.

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since · dictionary ablation saved 1106B

    The underlying fix is sound and guarded (27/27 sibling tests green), so this event is a lane-attribution gap rather than a quality defect — it shouldn't move Builder's loss-ratio much on its own, but the room's 71 out-of-lane events in 14 days plus two high-frequency open-but-unshipped asks (originating-terminal-matches-surface at 31x, room-surface-coverage at 11x) mean the attribution mechanism itself is the uninsured variable; premium restores once scripts/vna/* gets an explicit owner and those two guards ship.

    Open the signed attestation →
  95. 2026-10-02 · 🔨 builder · offPct 17

    spec(vna): tick C573 — the Linux-fallback umbrella, verified by steer.mjs verify (3ddb74ea92, 13 pass)

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 24→11 over 6 commits since

    Open the signed attestation →
  96. 2026-10-02 · 🧪 laboratory · offPct 28

    feat(vna): C567f — the one retry: reality = the changed hunks at a pre-registered -U3, everything else held

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  97. 2026-10-02 · 🧪 laboratory · offPct 35

    feat(vna): C547 — the chat door's brief carries the same snowball the -p door masses

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  98. 2026-10-02 · 🔨 builder · offPct 22

    spec(vna): C597–C603 declared; C601 + C603 ticked; C597/C598/C599/C600/C602 PARKED as folded into C601/C603

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 24→11 over 6 commits since

    Open the signed attestation →
  99. 2026-10-02 · 🧪 laboratory · offPct 17

    fix(vna): C578 round 3 — tail -n1 the pack capture before $GITHUB_OUTPUT

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  100. 2026-10-02 · 🔨 builder · offPct 38 · structural

    feat(vna): C565l — the buyer who came in through /backup keeps the thread

    Why it left the lane: The commit message enumerates three distinct repairs under one 'keep the thread' narrative: (1)/(2) are comms-copy edits — 'formal receipt and proof of coverage' → 'licence receipt ... the record of what you licensed, nothing more', and 'What you bought covers each agent' → 'licenses each agent' — pure language/voice work. (3) is a new payment-plumbing component: `LicenceCheckout.tsx` posting `{quantity, email}` to `/api/iamfim/license-checkout` and following the returned Stripe URL, replacing a plain `<a href="https://thetadriven.com/iamfim#checkout">` link. Declaring the whole row as one intent (comms-continuity, lane A1,B2) pulled a genuine checkout-mechanics rebuild into the walk, and that rebuild's vocabulary ('fetch', 'POST', 'Stripe', 'route reads the price', 'form action') is what dragged the lit-reality mass to C,B3/Ops.Grid territory — 16 Hamming steps from the declared lane.

    The semantic pull: 'LicenceCheckout', 'POST .../license-checkout', 'window.location.href = data.url', 'the route reads the price' and the new `<form action=... method="post">` are infrastructure/transaction terms with no analogue in the comms-copy half of the diff; they anchor reality at C1,B3 (Ops.Grid×Tact.Signal) while the commit's own framing ('keeps the thread', 'the buyer who came in') and the email-copy edits anchor intent at A1,B2. Two real vocabularies, one declared coordinate.

    Intent–reality gap: The message claims one continuity fix for a stranger moving from /backup to a bought licence; the receipt measured a comms-copy patch PLUS an unrelated-in-kind checkout-UI rebuild, so 38% of the lit reality cells sit outside the lane the intent declared.

    • Split this diff's test file tests/site/c565l-buyer-keeps-the-thread.test.mjs test 3 (LicenceCheckout/pricing) into its own guard file, e.g. tests/site/c565l2-pricing-checkout-inline.test.mjs, so a future revert of the checkout UI doesn't also revert the backup-link assertions
    • Add a Lane-Spans trailer convention to the commit-message rules in CLAUDE.md's COMMIT MESSAGE STRUCTURE section for rows that knowingly cross comms-copy and UI/plumbing files
    • Route src/lib/license/purchase-email.ts and src/lib/notary/purchase-email.mjs copy changes through the outward-facing voice-and-pitch checklist (even though transactional, not blog/book) given they just dropped an insurance-adjacent claim ('proof of coverage')
    • File the open ask tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010) against this exact commit — Relevant-Rooms lists builder/operator/architect but the comms-copy rewrite plausibly also touches a comms/voice-owned surface
    • Note in docs/architecture/claude-rules/build-and-format.md that /iamfim's own go() fetch and LicenceCheckout's fetch are now two copies of the same POST call — the 'path not taken' the commit already named — so the next pass has a pointer instead of rediscovering it

    What we learned: A commit message that itself enumerates '1. 2. 3.' distinct repairs is a leading indicator of multi-lane drift that shows up BEFORE the receipt does — the numbered structure is a free, pre-walk signal that the row should have been split, independent of file paths or room ownership (all three items here are legitimately inside 🔨 builder's owned surface, so room-ownership checks alone would have missed this).

    The missing guard (the deliverable): tests/ops/commit-spans-multiple-lanes.test.mjs — parse the commit message for an enumerated list (1./2./3. or similar); if present, diff the file globs touched by each enumerated item and fail (or require an explicit 'Lane-Spans: <lane>,<lane>' trailer) when more than one item's files cross a declared lane boundary (e.g. src/lib/**/purchase-email.* vs src/components/**/*.tsx + src/app/api/**). This is a new construct, not a reshuffle of an existing open ask.

    Detector probe: signal attribution — gzip reef 18% · ballistic walk 82%. Right-sized in volume (128 vs 130 lit cells, no truncation, no saturation) but mis-aimed: the walk is treating one commit as one centroid when the diff actually contains two separable vocabulary clusters (comms-copy vs checkout-plumbing). Concrete adjustment: run the walk per enumerated commit-message item (split on '1.'/'2.'/'3.' when present) and report per-item lensReality instead of one aggregate centroid — this would likely show item 3 alone landing near C,B3 while items 1–2 land near the declared A1,B2. Experiments: Re-run post-drift-history.sh against a synthetic split of this commit (purchase-email.* files only vs LicenceCheckout.tsx+pricing/page.tsx only) and compare each half's offPct to the combined 38% — measurable outcome: if both halves independently land under threshold 15, bundling alone explains the full drift. · Across this room's 77 out-of-lane events in 14 days, correlate prewalkOverlap=1 (full reef overlap) with offPct>30 to test whether 'clean reef, dirty walk' is a recurring signature specifically of multi-item commit messages — measurable outcome: a correlation coefficient computed from the existing ndjson history. · Add an itemIndex field to the walk's output schema and re-walk the last 10 numbered-list commits in this room's history with per-item splitting, then diff per-item offPct against the aggregate — measurable outcome: per-item offPct distribution vs the single aggregate offPct distribution.

    Measured outcome (deterministic, not self-graded): room mean offPct 38→17 over 6 commits since · dictionary ablation saved 951B

    This event costs the builder lane's loss-ratio one more over-threshold mark in a 14-day window that already has 77 — the repair is cheap (split-row convention + the enumerated-list guard above) but recurrence at this room's current rate is what keeps the lane's premium elevated, not any single commit's severity.

    Open the signed attestation →
  101. 2026-10-02 · 🧪 laboratory · offPct 27

    test(vna): C565 — the landing touchdown is complete when every sub-row is ticked with its guard on disk

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  102. 2026-10-02 · 🎩 operator · offPct 55

    fix(vna): C569 — the demo reads the shipped binary's own header before exec, never from the OS

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Open the signed attestation →
  103. 2026-10-02 · 🧪 laboratory · offPct 21 · mistagged

    test(vna): C103d regressed — the fixture hands the backups count in as a value; C501's viz is a named face door

    Why it left the lane: The commit's only touched paths are tests/vna/_c101b-states.mjs and tests/vna/c103d-day-one-is-one-card.test.mjs — both pure VNA test-fixture work owned by 🔨 Builder/🏛️ Architect. Neither path matches any glob in 🧪 Laboratory's declared owned-surface (.claude/.../memory/, .claude/settings*.json, .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 still names 🧪 Laboratory in Relevant-Rooms, so the receipt's intent lane includes a room the diff never touches — every lit-reality cell the walk places correctly in Builder/Architect territory reads as 'outside' the union lane the trailer claimed, inflating offPct to 21.

    The semantic pull: The commit subject's type prefix 'test(vna):' and body vocabulary — 'fixture', 'regressed', 'Guard: tests/vna/c103d-day-one-is-one-card.test.mjs', '5/7 on the parent → 7/7' — are exactly the words that pull a room-name-matcher toward 🧪 Laboratory by word-association (laboratory = where tests run), even though Laboratory's actual owned glob is unrelated MCP/swarm-comms/orchestrator infrastructure. The diff itself contains zero strings that touch Laboratory's real surface.

    Intent–reality gap: The commit's Relevant-Rooms trailer claims 🔨 Builder, 🏛️ Architect, 🧪 Laboratory as relevant; the receipt measured 21% of lit reality outside the intent lane, which lines up exactly with Laboratory owning none of the two changed files — the work is correctly placed, the room claim on the commit is not.

    • Wire room-surface-coverage checking into the trailer-composition step itself, not just a post-commit test (prevention, not detection).
    • Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010) exactly as spelled — it already names this gap, 35 asks in.
    • Backfill-audit Laboratory's 234 out-of-lane events over 14 days for the same pattern: a 'test(...)'-prefixed commit naming Laboratory with zero owned-path overlap — confirms systemic vs one-off.
    • Add a lint check that forbids deriving Relevant-Rooms from the commit-message TYPE PREFIX or generic words ('test', 'fixture', 'guard', 'lab') — path-glob intersection only.
    • Spot-check 🏛️ Architect's and 🔨 Builder's owned-surface globs actually do cover tests/vna/_c101b-states.mjs and tests/vna/c103d-day-one-is-one-card.test.mjs, so the corrected trailer (Builder, Architect only) is itself in-lane.

    What we learned: This room's chronic high offPct is not random drift accumulating from unrelated commits — it is a specific, repeatable word-association failure where the Relevant-Rooms trailer is populated by matching the commit's TYPE PREFIX/vocabulary against a room's NAME ('test' → 'Laboratory') instead of matching changed paths against that room's actual owned-surface glob, which for Laboratory is MCP/swarm-comms/orchestrator infrastructure wholly unrelated to testing.

    The missing guard (the deliverable): tests/rooms/relevant-rooms-covers-diff.test.mjs

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. litIntent/walksIntent and litReality/walksReality are both 100% — every walked node registers as lit, meaning the walk is saturated rather than under-filled. A 100% lit-rate at this volume suggests the admissibility threshold is too loose, which mechanically inflates offPct by maximizing how many cells can fall outside any given lane. Adjustment: tighten the lit/admissibility threshold (or extend walk depth modestly) until lit-rate drops meaningfully below 100%, then re-measure whether offPct=21 on this sha survives — isolates threshold noise from the real mistag. Experiments: Re-run this sha's reef seed with 🧪 Laboratory excluded from the intent lane and confirm offPct drops toward 0 — a direct test of the mistagged diagnosis. · Bucket Laboratory's 234 out-of-lane events by commit-type-prefix (test/feat/fix/chore/spec) and measure correlation between prefix='test' and Laboratory appearing in Relevant-Rooms with zero owned-path overlap — confirms the semantic_pull mechanism at scale rather than per-event. · Raise the gzip-NCD reef's seed depth and re-check whether prewalkOverlap (currently 9, low relative to litIntent=139) narrows laneHamming (currently null/unmeasured) for this commit class.

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since · dictionary ablation saved 1005B

    Chronic mistagging inflates 🧪 Laboratory's apparent loss-ratio with borrowed Builder/Architect test-commit noise rather than real drift risk in Laboratory's own surface; premium is restored by wiring ask-010's path-glob coverage check into trailer composition so Laboratory's offPct reflects only genuine Laboratory-surface events going forward.

    Open the signed attestation →
  104. 2026-10-02 · 🧪 laboratory · offPct 39 · mistagged

    fix(vna): C563e guard reads the brief through briefFor, never the CLI's live hold

    Why it left the lane: The commit's own diff is four lines, all inside tests/vna/c563e-door-by-measured-cost.test.mjs — a file the C563e spec row (lensIntent=C2,C3) narrowly fences. But the fix works by swapping an execFileSync call to steer.mjs for a direct import of briefFor from scripts/vna/steer-follow-through.mjs. That import is the pull: briefFor/steer-follow-through.mjs is a shared library consumed by many callers outside C563e, and the recursive ballistic walk follows that real reference outward, landing the lit mass at A1,B — 29 lanes of Hamming distance from C2,C3 (laneJump=10). Separately, the commit's Relevant-Rooms trailer lists 🧭 laboratory, but laboratory's declared owned surface (MCP/CRM/swarm-comms/.thetacog/orchestrator/punch-list*) has zero glob overlap with tests/vna/** or scripts/vna/** — so part of the 39% is the room claim itself being unanchored to any touched path, not a real content drift.

    The semantic pull: Literal strings from the diff doing the pulling: `briefFor` (the imported symbol), `scripts/vna/steer-follow-through.mjs` (the import path, a shared cross-cutting library), and the added comment text `a live hold on` / `the row every run`. None of these strings exist anywhere in laboratory's owned-surface list (.mcp.json, thetacoach-crm-mcp/, swarm-comms/, .thetacog/orchestrator/, .thetacog/punch-list*), which is why the walk cannot find lit mass inside laboratory's lane at all and instead concentrates at A1,B, the coordinate steer-follow-through.mjs's own surface occupies.

    Intent–reality gap: The commit claims a narrow, correct test-only repair scoped to the C563e guard (C2,C3) and tags Relevant-Rooms as navigator/laboratory/builder; the receipt measured the lit mass concentrated at A1,B — the shared steer-follow-through.mjs surface — and laboratory's owned-file list touches none of the changed paths, so the room/lane claim, not the work, is what's wrong.

    • Drop 🧪 laboratory from this commit's Relevant-Rooms trailer convention going forward for any diff confined to tests/vna/** or scripts/vna/**
    • Add a one-line note to the C563e row in docs/specs/vna/SPEC-VNA-COCKPIT.md naming scripts/vna/steer-follow-through.mjs as the guard's shared-library dependency
    • Run tests/rooms/relevant-rooms-covers-diff.test.mjs against sha ef5f55c94a's trailer to confirm it reproduces the mismatch red, establishing this as a seen-to-fail case for the open ask
    • Audit the room's 253 out-of-lane events in the last 14 days for how many share this exact pattern: a Relevant-Rooms entry with zero file-surface glob overlap with the diff
    • Check whether 🧭 navigator or 🧰 builder's owned-surface list actually includes scripts/vna/steer-follow-through.mjs, so the trailer names the room that truly owns the touched shared library

    What we learned: Relevant-Rooms trailers are being used as a broadcast/notification list (ping every room that might care) rather than a lane declaration (only rooms whose owned surface the diff actually touches) — and the offPct math treats that broadcast habit as positional drift, inflating the number for commits whose actual code change is small and correct.

    The missing guard (the deliverable): tests/rooms/relevant-rooms-covers-diff.test.mjs

    Detector probe: signal attribution — gzip reef 25% · ballistic walk 75%. walksIntent (132) equals litIntent (132) exactly, and walksReality (115) equals litReality (115) exactly — every cell the walk visited lit up on both sides, which is a saturation signature: the lit-threshold isn't filtering anything, so the walk can't distinguish 'touched in passing' from 'actually load-bearing.' Concrete adjustment: tighten the lit-threshold (or add a second gzip-NCD pass) so walksX consistently exceeds litX, restoring the walk's ability to discard incidental touches like a single shared-import reference. Experiments: Replay sha ef5f55c94a with briefFor and steer-follow-through.mjs added to the C563e reef seed corpus; measure whether prewalkOverlap rises above 8 and offPct drops below 15 on the same commit · A/B the gzip-NCD dictionary with vs without the room-owned-surface globs (laboratory's .mcp.json/swarm-comms/ list) seeded in, over the last 20 commits carrying a Relevant-Rooms trailer; measure whether laneHamming between claimed room and reality drops · Add the room-ownership glob list itself as a reef seed and re-run this sha's walk; measure whether litReality mass shifts away from A1,B toward wherever the owning room (navigator/builder) actually sits, confirming the drift was room-mistag rather than content-mistag

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since · dictionary ablation saved 810B

    A correct four-line fix read as a 39%-off-lane event purely from a trailer padded with a non-owning room — if this lane's premium prices on raw offPct without separating room-mistag from content-mistag, it overcharges exactly the commits that are safest (small, scoped, already-correct), which is the loss-ratio restored by shipping ask-010 rather than by changing how anyone writes code.

    Open the signed attestation →
  105. 2026-10-02 · 🔨 builder · offPct 37

    feat(vna): C541 — three desks, one sentence each, inside the underwriting terminal

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since

    Open the signed attestation →
  106. 2026-10-02 · 🧪 laboratory · offPct 45

    feat(vna): C603 — the recorded container run (npm pack, installed addon, linux/amd64)

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  107. 2026-10-02 · 📐 architect · offPct 27

    spec(vna): declare C563d — /backup/adherence implies its own next steps (promised · not promised · next)

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 26→23 over 5 commits since

    Open the signed attestation →
  108. 2026-10-02 · 🧪 laboratory · offPct 54

    fix(vna): C563g — the spec-vs-CoT reading reaches /backup/adherence through one projection

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  109. 2026-10-02 · 🧭 navigator · offPct 25

    feat(vna): C571 — name the per-agent flags, split install/run, lead with the VSX zero-agent path

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 12→14 over 8 commits since

    Open the signed attestation →
  110. 2026-10-02 · 📐 architect · offPct 31

    spec(vna): C560e — a failed notary read is not charged

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 24→15 over 4 commits since

    Open the signed attestation →
  111. 2026-10-02 · 🧪 laboratory · offPct 22

    test(vna): C593 — the live leg never skips: resolve the addon through addon.mjs candidates, else assert the UNMEASURED refusal

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  112. 2026-10-01 · 📐 architect · offPct 38

    docs(asks): 2026-10-01 asks ledger — the post-deploy steps, the share-default assumption, two corrections

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 22→63 over 11 commits since

    Open the signed attestation →
  113. 2026-10-01 · 🔨 builder · offPct 17

    feat(vna): C499 — /backup/how documents the third-party backup for the reader who was not in the room

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since

    Open the signed attestation →
  114. 2026-10-01 · 📐 architect · offPct 16 · mistagged

    docs(spec): tick C489 · C499 · C501 (verify re-ran each guard) and C106h (7496ff1328)

    Why it left the lane: The diff is four checkbox-state flips inside docs/specs/vna/SPEC-VNA-COCKPIT.md — `- [ ] C489 …` → `- [x] C489 …`, same for C499, C501, and a superseded-note rewrite on C106h. Every one of those lines carries VNA/ops/site vocabulary (`backup`, `third-party`, `witness`, `notary`, `/backup/how`, `3rd party viz`, `the vsx`) that the walk reads as substantive content, not as a boolean toggle, so litReality spreads across the VNA/ops coordinate (lensReality=A,A1) while the commit's Originating-Terminal claims the architect lane (lensIntent=B,A). laneHamming=20 despite walksIntent(120)≈walksReality(124) shows the divergence is in WHICH cells lit, not how many — i.e. the content words, not the volume, pulled the placement.

    Intent–reality gap: The commit message claims a narrow bookkeeping act — '/steer's verify re-ran each guard, tick the boxes' — explicitly docsOnly (the receipt's own docsOnly=true flag agrees), but the receipt still measured it as if it substantively authored VNA/ops/site-domain content (offPct=16, laneHamming=20), because docsOnly is computed and stored yet not used to discount the lattice placement.

    • Wire the already-computed `docsOnly` flag into the offPct/laneHamming calculation per ask-005 (tests/pmu-simulator/docs-only-commit-skips-lattice.test.mjs) so a pure checkbox-toggle commit is exempted or walked at reduced weight.
    • Union Originating-Terminal with the Relevant-Rooms trailer when assigning the intent lane, per ask-027 (tests/pmu-simulator/originating-terminal-matches-surface.test.mjs) — this commit declared architect+laboratory+builder and CLAUDE.md sanctions that divergence as normal.
    • Bound the docsOnly exemption with ask-033 (tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs) so a genuinely substantive prose edit dressed as a checkbox tick can't hide real drift.
    • Re-run this sha plus the room's other 95 out-of-lane events through the corrected classifier and compare offPct distributions before/after (the ablation the pipeline already runs for dictionary changes).
    • Finally ship the `room-drift-<room>-check.sh` that three rooms (architect, navigator, laboratory) independently spec'd after lesson ff09774e5 and never unified — this event is that same unshipped fix recurring a second time.

    What we learned: The receipt already computes a `docsOnly` field specifically meant to flag low-signal commits like pure spec-checkbox ticks, but nothing downstream reads it before running the full lattice walk — the pipeline is carrying a self-diagnostic it never consults, which is a stronger and more specific instance of lesson ff09774e5's finding (Originating-Terminal-only lane assignment): it isn't just that the intent-lane signal is incomplete, it's that a correctly-computed exemption signal is being silently discarded.

    The missing guard (the deliverable): tests/pmu-simulator/docs-only-commit-skips-lattice.test.mjs

    Detector probe: signal attribution — gzip reef 25% · ballistic walk 75%. Right-sized in spread (litIntent 120 ≈ litReality 124) but mis-scoped in input: it is walking checkbox-toggle lines as if they were authored prose. Concrete adjustment: pre-filter diff hunks to strip lines matching the checkbox-toggle regex before handing the hunk to the walk for docsOnly commits, so the walk's existing depth/budget is spent only on real text. Experiments: Ablate: strip `^[-+]\s*-\s\[[ x]\]` toggle-only hunks from the walk input for the last 30 docsOnly=true commits and re-measure offPct; expect most to drop under the 15 threshold while content-bearing docsOnly commits stay unchanged. · Ablate: recompute this sha's and the room's prior 95 out-of-lane events' lane assignment using Originating-Terminal ∪ Relevant-Rooms instead of Originating-Terminal alone, and count how many cross the 15 threshold back under it. · Measure: instrument the classifier to log docsOnly alongside the final offPct for the next 50 commits repo-wide, to confirm (or refute) that docsOnly is currently fully decoupled from offPct outcome before committing to the fix's expected effect size.

    Measured outcome (deterministic, not self-graded): room mean offPct 22→20 over 5 commits since · dictionary ablation saved 944B

    A docsOnly checkbox-tick commit mis-scored as cross-lane drift inflates this room's apparent loss-ratio with false-positive severity, eroding trust in the offPct signal itself; premium is restored by wiring the already-computed docsOnly flag and the Relevant-Rooms trailer into lane classification (ask-005 + ask-027), both already open and simply unshipped.

    Open the signed attestation →
  115. 2026-10-01 · 🧪 laboratory · offPct 52

    feat(vna): C513 — the /steergoal goal watches /steer and re-prompts it up a ladder; ask only what cannot be solved

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  116. 2026-10-01 · 🧪 laboratory · offPct 19

    fix(vna): C501a — the tick's at-HEAD copy keeps the guard's own extension, so a CommonJS guard can earn its tick

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  117. 2026-10-01 · 🔨 builder · offPct 33 · structural

    feat(vna): C539 — an Actuarial Balance Sheet directly under the spend metrics, our side measured, their side typed

    Why it left the lane: The diff's library file and component headers carry doctrine-grade sentences — "SUFFICIENT FOR"/"NOT SUFFICIENT FOR", "no insurability or accounting-asset claim is made", "whether any action was good (Rice)" — lifted straight out of AXIOM 1's sufficiency-corollary language and re-authored inline inside src/lib/backup/actuarial-balance.mjs and ActuarialBalanceSheet.tsx. That vocabulary is Strategy-coordinate mass (row A / doctrine-declaration content), not the Tact×Tact UI-assembly mass the commit message describes ("a two-column card... mounted inside the tapes card"). lensIntent=B2,B2 (Tact×Tact, matches the stated 'place a card under the metrics' claim) vs lensReality=B3,A1 (Tact×Strategy) — laneHamming=36 is high even though laneJump is only 4, meaning the walk found the same row-family but a materially different column-family: the doctrine text, not the JSX/arithmetic, is what the reality walk actually lit.

    The semantic pull: Strings 'SUFFICIENT FOR' / 'NOT SUFFICIENT FOR' / 'insurability' / 'accounting-asset' / '(Rice)' in actuarial-balance.mjs's header comment and the component's closing <p> pulled the reality walk from B2,B2 toward B3,A1; offPct=33 with litReality=140 > litIntent=132 shows the reality lane lighting up 8 more cells than the intent lane claimed room for — the overflow is the doctrine paragraph, not the card markup.

    Intent–reality gap: The commit message claims a UI placement task (card mounted under spend metrics, arithmetic isolated in one lib file) — pure Tact work. The receipt measured the reality lane spilling into Strategy coordinates because the repo's own AXIOM 1 sufficiency rule requires every money-surface to carry its own inline 'sufficient for / not sufficient for' doctrine declaration, and this commit satisfied that rule by writing fresh doctrine prose rather than referencing a shared one.

    • Create src/lib/doctrine/sufficiency-notice.mjs with a sufficiencyNotice({for,notFor}) exporter; seed it with the exact sentence currently duplicated in actuarial-balance.mjs and ActuarialBalanceSheet.tsx
    • Rewire ActuarialBalanceSheet.tsx's closing <p> and actuarial-balance.mjs's header comment to call the shared helper instead of inlining the sentence
    • Audit src/lib/backup/adherence-share.mjs and any other backup/pricing module for the same hand-rolled 'sufficient for/not sufficient for' pattern and migrate them too
    • Add Relevant-Rooms/Story language to the C539-class commit template noting the doctrine content explicitly, so the message's claimed lane matches what the diff actually carries
    • Write tests/vna/doctrine-disclaimer-shared-module.test.mjs asserting no new src/lib/backup/*.mjs or src/app/backup/**/*.tsx file defines a fresh 'sufficient for' / 'not sufficient for' string literal outside src/lib/doctrine/

    What we learned: Builder-room money/pricing surfaces structurally straddle two lanes every time: AXIOM 1's sufficiency-corollary rule forces Strategy-grade doctrine prose into the same file as Tact-grade UI/arithmetic, so any future actuarial or pricing UI commit will offPct similarly unless the doctrine sentence is factored into a shared, dictionary-recognized module rather than re-authored per surface — this is a new structural fact, not a repeat of the prior facts-only lessons for this room.

    The missing guard (the deliverable): tests/vna/doctrine-disclaimer-shared-module.test.mjs — fails if a new src/lib/backup/*.mjs or src/app/backup/**/*.tsx file contains a freshly-authored 'sufficient for'/'not sufficient for' sentence that doesn't import it from src/lib/doctrine/sufficiency-notice.mjs.

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Right-sized for coverage (100% lit-to-walked both sides, no truncation) but under-sized for disambiguation: with laneHamming=36 despite laneJump=4, the walk isn't resolving adjacent row-family boundaries (Tact vs Strategy) cleanly. Adjustment: when prewalkOverlap falls below ~5, widen the walk depth specifically for this commit before locking the lensReality coordinate. Experiments: Reseed the gzip-NCD dictionary with the compression_dictionary_adds strings below, recompress the last 20 Builder-room commits, and measure whether prewalkOverlap for actuarial/pricing-vocabulary commits rises above 3 · Re-run the walk on this same diff with 'insurability'/'accounting-asset'/'sufficient for' tokens masked out, and measure the laneHamming delta attributable to that vocabulary alone · A/B offPct on the next 5 Builder-room money-surface commits with vs without the shared sufficiency-notice.mjs import, tracked against this room's existing offPct trend (26→27, 21→22, 31→14 in prior interventions)

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since · dictionary ablation saved 629B

    This event nudges the Builder lane's loss-ratio up (61 out-of-lane events/14 days already elevated) but the drift is benign — correct code, mis-stated lane, not a defect — so premium is restored by shipping the sufficiency-notice extraction plus the lane-honest spec rewrite rather than any correctness fix to the arithmetic itself.

    Open the signed attestation →
  118. 2026-10-01 · 📐 architect · offPct 31

    spec(vna): declare C548–C550 — break attribution spec-side vs runtime-side, ingest readings, carrier risk envelope

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 23→34 over 3 commits since

    Open the signed attestation →
  119. 2026-10-01 · 📐 architect · offPct 40 · mistagged

    docs(spec): declare C501b — the viz button is seen between the + and 💳, read off the rendered rects

    Why it left the lane: The diff's only added line is the C501b spec bullet, and its text is saturated with builder/laboratory-surface vocabulary — 'pillBox', 'leadDoor slot', 'c-attest face', 'Chromium at 420 px', 'playwright', the literal path 'packages/thetacog-mcp-vscode/tests/c501b-viz-button-is-seen-between-plus-and-fund.test.js', and the pixel coordinates '+ x=51 · 💳 x=84 · 3rd party viz x=1163'. None of that vocabulary exists anywhere in the architect's owned surface (docs/strategy/, docs/03-product/, .workflow/rooms/*.html, .workflow/cognitive-dashboard.html, docs/01-business/strategy/, CLAUDE.md); it is the extension/webview implementation dialect. That vocabulary pulled the reality lane from the declared A2,C to A1,B3 (laneJump=6, laneHamming=32) even though litIntent=79 and litReality=99 show the walk fully saturated on both sides (walkTruncated=false) — the content itself, not a shallow walk, is what carried the mass across.

    Intent–reality gap: The commit claims it is architect doing spec-ledger work (docs(spec): declare C501b, Originating-Terminal: 📐 architect) and correctly lists Relevant-Rooms as 📐 architect, 🔨 builder, 🧪 laboratory per CLAUDE.md's own trailer protocol — but the detector scored offPct against the Originating-Terminal lane alone, reading a sanctioned cross-room declaration as a 40%-off-lane violation.

    • Add a '[lane: <room>]' tag to each new SPEC-VNA-COCKPIT.md bullet going forward, starting with C501b.
    • Add a line to CLAUDE.md (architect's own owned surface) declaring docs/specs/vna/*.md a SHARED spec-ledger surface scored against each bullet's own lane tag / Relevant-Rooms trailer, never Originating-Terminal alone.
    • Ship tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs (ask-033, already asked 13×) using this event as its fixture.
    • Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, asked 30× — the most-asked open guard in the queue) scoped to exempt Relevant-Rooms-sanctioned divergence.
    • Ship tests/pmu-simulator/shared-state-files-have-room-owner.test.mjs (ask-003) so docs/specs/vna/ stops being an orphaned surface claimed by no room's glob.
    • Re-run the last 95 architect out-of-lane events through the Relevant-Rooms-aware scorer as a before/after ablation.

    What we learned: ff09774e5 already diagnosed this exact mechanism and three rooms independently spec'd the fix, yet it recurred here at offPct=40 (worse than before) because the shared ledger file the fix must touch — docs/specs/vna/SPEC-VNA-COCKPIT.md — is not in ANY room's owned-surface glob, including architect's own list. A correctly diagnosed, correctly ticketed guard (ask-027 asked 30×, ask-033 asked 13×) can sit open indefinitely when no room has standing to claim and ship the file it needs to patch — the orphaned-surface problem blocks its own remediation.

    The missing guard (the deliverable): tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs

    Detector probe: signal attribution — gzip reef 30% · ballistic walk 70%. Right-sized in depth (no truncation either side) but asymmetric in spread: the reality walk explored 99 cells against the intent walk's 79 (a ~25% wider fan-out) for a single dense technical sentence. Adjustment: down-weight lane-off cells when litReality/litIntent exceeds ~1.2 on a docsOnly commit, since dense implementation vocabulary in a short spec bullet will always out-spread a sparser intent context. Experiments: Seed the reef dictionary with the recurring spec-bullet template '(guard: `packages/thetacog-mcp-vscode/tests/' as its own token class and re-measure prewalkOverlap on the last 20 docsOnly architect commits. · Re-score the room's last 95 out-of-lane events using Relevant-Rooms-union instead of Originating-Terminal-only and measure how many drop under the offPct=15 threshold. · For docsOnly=true commits touching a shared multi-room ledger file, trial offPct against the union of Originating-Terminal + Relevant-Rooms surfaces for one week and compare room mean offPct before/after.

    Measured outcome (deterministic, not self-graded): room mean offPct 22→20 over 5 commits since · dictionary ablation saved 918B

    A 40%-off-lane mistag on a correctly-trailered, CLAUDE.md-sanctioned commit is a false claim against this lane's loss ratio, not a real loss — premium is restored by shipping ask-033/ask-027/ask-003 so sanctioned cross-room declarations stop being billed as drift.

    Open the signed attestation →
  120. 2026-10-01 · 🧭 navigator · offPct 51

    feat(vna): C528 — the three ladder charts sit under 📈 Optimisation Targets and repaint when a tick lands

    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 →
  121. 2026-10-01 · 🧪 laboratory · offPct 60

    docs(spec): declare C508–C511 + C513 — the deployer's insurer dropdown, the pseudonymous carrier view, /steer-vs-plain tokens by complexity, the formal-methods aim audit; /steer runs it, /goal reminds it

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  122. 2026-10-01 · 🧭 navigator · offPct 48 · mistagged

    fix(vna): C513 — the watch ladder's rungs are bullets, not numbered lines that read as extra goal units

    Why it left the lane: The diff is a 2-line, 2-file bullet-vs-number formatting fix in scripts/vna/goal.mjs and scripts/vna/steergoal.mjs. Neither file appears anywhere on Navigator's declared owned-surface (scripts/open-room-session.sh, .thetacog/cache/room-runners/*.sh, openclaw/*, .workflow/cognitive-dashboard.html). prewalkOverlap=6 against walksIntent=138/walksReality=137 shows the gzip-NCD reef found almost no textual kinship between the Navigator-flavored intent text and the actual goal/steer-ladder reality text before the walk even ran — the walk itself then spread symmetrically (138 vs 137 lit cells) into A1,B1 instead of the claimed B2,C.

    The semantic pull: Terms in the diff and message — 'goal-run-row.test.mjs', 'C68', 'WATCH_LADDER', 'execution order', 'units' — are VNA goal/steer-pipeline vocabulary, not Navigator-session vocabulary (which is all 'room-runners', 'thematic-scheduler', 'cognitive-dashboard'). The reef read the content and placed it where that vocabulary actually lives (A1,B1), while the trailer asserted Navigator's B2,C.

    Intent–reality gap: The commit claims a trivial, correctly-scoped formatting fix and tags itself Originating-Terminal Navigator; the receipt measures 48% of the lit reality mass sitting outside Navigator's declared lane (laneJump=4, laneHamming=38/144) for a 2-line diff — the work is fine, the room label on it is not.

    • Add scripts/vna/goal.mjs + scripts/vna/steergoal.mjs to the owned-surface glob of whichever room's spec actually covers /steer /steergoal (not Navigator) — or mark them explicitly shared
    • Build ask-001 tests/ops/room-surface-coverage.test.js so every file touched in a commit must match at least one room's glob before the commit's room tag is trusted
    • Build ask-003 tests/pmu-simulator/shared-state-files-have-room-owner.test.mjs so scripts/vna/*.mjs can't ship without a declared owner
    • Build ask-033 tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs so offPct is computed against the file-owning room, not the self-declared trailer
    • Audit the room's other 87 out-of-lane events from the last 14 days for the same scripts/vna/*.mjs-vs-Navigator-glob mismatch — likely the dominant cause of the room mean offPct trend
    • Update the room glossary/CLAUDE.md note that scripts/vna/*.mjs is cross-room shared infra until an owner is assigned

    What we learned: The three prior facts-only passes on this room (offPct 3→34, 3→34, 28→26) never improved because they treated rising offPct as a behavior problem to correct in the work, when the room's owned-surface declaration itself never covered the files being edited under its name — no amount of 'do better work' fixes a lane whose boundary was drawn around the wrong files from the start.

    The missing guard (the deliverable): tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs

    Detector probe: signal attribution — gzip reef 75% · ballistic walk 25%. Right-sized, not the bottleneck — litIntent/litReality (138/137) and walksIntent/walksReality (138/137) are nearly equal, so the walk is neither saturating nor truncating. No depth/breadth change needed; the next experiment should hold the walk fixed and vary only the reef's seed text (inject the changed file paths, not just the commit message) to see if that recovers the claimed lane. Experiments: Re-run reef placement for sha 3b8ab3afd6 with the diff's file paths (scripts/vna/goal.mjs, scripts/vna/steergoal.mjs) added to the seed text alongside the commit message; measure whether prewalkOverlap rises above 6 and laneHamming falls below 38 · For the 87 out-of-lane events in this room over 14 days, compute what fraction touch files outside Navigator's six-item owned-surface glob; if it's a majority, the room's offPct trend is explained by missing glob coverage rather than real work drift · Recompute offPct for the last 20 Navigator-tagged commits using 'actual file-owning room' instead of 'trailer-claimed room' and compare the resulting distribution against the 15 threshold — a collapse toward threshold confirms mistagging as the dominant driver

    Measured outcome (deterministic, not self-graded): room mean offPct —→12 over 21 commits since · dictionary ablation saved 504B

    A 48%-off-lane event on a 2-line correct fix is a mistagging loss, not a drift loss — it should be excluded from this lane's loss ratio once ask-033/ask-001 ship, restoring premium to reflect the room's real (unmeasured-by-this-event) risk.

    Open the signed attestation →
  123. 2026-10-01 · 📐 architect · offPct 40 · structural

    docs(steergoal): next pair — C524 then C523, four walk-order riders demoted

    Why it left the lane: The two touched files are docs/specs/vna/goals/2026-10-01-land-the-two-asks-still-open-{goal,steer}.txt — the steergoal skill's fixed, cross-room output path. The content is pure spec-coordinate bookkeeping ('C524 then C523', 'four walk-order riders demoted', 'the 11-unit goal closed (MAY STOP)', 'hat lines name each row's invariant') — dispatch-queue vocabulary, not strategy prose. That vocabulary and the shared docs/specs/vna/ directory itself (used by every room's /steergoal run, not just architect's) pulled the walk's placement to lensReality=B,A1 (tactics/ops) away from the claimed lensIntent=A2,B3 (architect's strategy lane).

    The semantic pull: 'C524 then C523', 'walk-order riders demoted', 'the chair declared today' and the path segment 'docs/specs/vna/goals/' are VNA spec-machinery terms, not docs/strategy/-style business-strategy prose — they read as Tactics (B) content regardless of which terminal's Originating-Terminal trailer signed the commit.

    Intent–reality gap: The commit claims architect-owned strategic sequencing work (Originating-Terminal: 📐 Architect, filed as if it belongs to docs/strategy/'s lane), but the receipt measured 40% of lit mass landing in a directory (docs/specs/vna/goals/) that is shared infrastructure written by whichever room runs /steergoal — it was never architect-exclusive content.

    • Add docs/specs/vna/goals/ (and sibling docs/specs/vna/* output dirs) to a SHARED_SURFACES allowlist consumed by the lane detector
    • Audit docs/specs/vna/ for other skill-written shared dirs (e.g. /steer's own spec writes) and bulk-declare them shared in the same pass
    • Ship tests/pmu-simulator/shared-state-files-have-room-owner.test.mjs (ask-003) asserting docs/specs/vna/** resolves to an explicit owner or 'shared', never silently inherits whichever room ran it
    • Backfill: re-run offPct over architect's last-14-days commit history after the exemption lands and measure what fraction of the 102 events share this exact path prefix
    • Cross-reference ask-005 (docs-only-commit-skips-lattice) — decide whether the shared-surface check subsumes it or the two compose (docsOnly AND shared vs docsOnly XOR shared)
    • Note in the commit-trailer protocol that steergoal-authored commits should carry a Relevant-Rooms marker reflecting 'shared', not just the terminal's Originating-Terminal

    What we learned: Centralized skill output (steergoal's two txt files always land at docs/specs/vna/goals/, written from whichever room's terminal happens to run /steergoal) has no representation in the room-lane model, which assumes every committed path resolves to exactly one room's owned glob — so any cross-room skill with a single shared output directory will drift-flag in proportion to how often each room invokes it, and architect runs /steergoal most (it's the mandated first action after every /clear), which is why this room alone logged 102 out-of-lane events in 14 days.

    The missing guard (the deliverable): tests/pmu-simulator/shared-state-files-have-room-owner.test.mjs

    Detector probe: signal attribution — gzip reef 30% · ballistic walk 70%. Right-sized in volume (116 vs 123 lit, walksIntent/walksReality close) — not shallow, not saturated. The fix isn't depth; it's a pre-walk gate so shared-surface commits never enter lane-assignment scoring at all. Experiments: Re-run this sha's walk after adding docs/specs/vna/goals/ to a shared-surface mask; confirm the recomputed receipt reports UNMEASURED-by-design instead of offPct=40 · Grep the last 14 days of 📐 architect commits for path prefix docs/specs/vna/ and compute what share of the 102 out-of-lane events carry this exact path — a single grouped count against decisions-ledger.ndjson · Track prewalkOverlap aggregated by directory (not per-commit) across ALL rooms for docs/specs/vna/goals/ specifically, to confirm it structurally sits at low overlap everywhere (reef gap) rather than being a one-off low-overlap walk

    Measured outcome (deterministic, not self-graded): room mean offPct 32→27 over 12 commits since

    Replicated 102 times in 14 days, this is pure detector false-positive loss for the architect lane rather than operator misconduct, so premium is restored by shipping the shared-surface exemption (ask-003), not by changing how the operator commits.

    Open the signed attestation →
  124. 2026-10-01 · 🔨 builder · offPct 18

    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 —→38 over 4 commits since

    Open the signed attestation →
  125. 2026-10-01 · 📐 architect · offPct 30 · structural

    spec(vna): declare C544–C547 — combobox intake, call outline on the parent panel, tape gaps, snowball in chat briefs; C543 footer publish held

    Why it left the lane: The commit's message claims a plain spec-declaration act (architect room filing /steer dictation), but the diff body it adds is saturated with literal product/engineering/legal vocabulary: 'INSTITUTIONAL RISK TRANSFER & UNDERWRITING TERMINAL', 'combobox', 'src/app/backup/adherence (page.tsx · TapeSlider.tsx · src/lib/backup/*)', 'POST /api/notary/query', 'counterparties.json', and 'docs/legal/drafts/'. None of that is docs/strategy or docs/03-product vocabulary (architect's declared lane, lensIntent=C,C) — it is the exact terminology of the UI/API surface and the legal surface, which is what pulls lit cells toward lensReality=B,C3.

    The semantic pull: The repeated chair-note boilerplate ('surface = src/app/backup/adherence...', 'never deterministic...', 'the verbs are DETECTED · PLACED · PRICED · DISPATCHED') appears near-verbatim across C544-C547 and the C543 amendment, each occurrence re-anchoring the walk to the same off-lane coordinates instead of to strategy prose.

    Intent–reality gap: The message frames this as architect filing a spec row ('folded into rows before any clear'); the receipt measured 30% of lit reality outside the declared lane because the spec ROW TEXT ITSELF is the detailed engineering/legal content for other rooms' surfaces, not an abstraction of it.

    • Add docs/specs/vna/** to 📐architect's owned-surface glob in .workflow/rooms/architect.html — it is currently touched every fold but absent from the declared surface list shown above.
    • Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010) so a commit's Relevant-Rooms trailer is checked against literal path prefixes named inside the diff body, not just the files changed.
    • Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027) so offPct is computed against the UNION of Relevant-Rooms lenses, not Originating-Terminal alone.
    • Extract the repeated 'chair note (repo rules)' paragraph (src/app/backup/adherence paths + the banned-words list + the four verbs) into docs/specs/vna/_chair-note-repo-rules.md and reference it per row instead of re-pasting it 4-7 times per fold.
    • Pre-commit WARN when a chair note inside SPEC-VNA-COCKPIT.md names a docs/legal/ path but Relevant-Rooms omits the legal-owning room.

    What we learned: Unlike the prior Originating-Terminal-classification lesson, this event shows the SAME file (SPEC-VNA-COCKPIT.md) acting as a universal /steer dictation sink: every fold concatenates fresh operator dictation with a near-verbatim repeated boilerplate paragraph, so a chunk of each commit's measured drift is template repetition inflating the lit-reality set rather than new semantic content — the detector is partly measuring copy-paste, not drift.

    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 right-sized: a 100% lit/walked ratio on both intent and reality means the walk stops discriminating the instant it starts — it cannot distinguish 'drifted' cells from 'merely visited' cells. Concrete adjustment: for docsOnly commits, raise the walk's depth/cap so saturation doesn't happen at the first ring, giving admissible (lit<walked) headroom to actually localize the 30% offPct instead of reporting it as a flat spread. Experiments: Pull prewalkOverlap and litRatio (lit/walked) for the last 50 architect commits; if prewalkOverlap clusters near 0-5 while litRatio stays ~100% as here, that confirms seed placement (not walk depth) is the dominant driver — run the correlation and report it. · Add docs/specs/vna/ as its own seeded lane in the reef dictionary (distinct from docs/strategy/) so dictation-fold commits land on a dedicated coordinate instead of bleeding toward whichever domain's vocabulary happens to dominate that fold; measure architect room's offPct trend over the next 10 commits. · Strip near-identical repeated spans (the chair-note boilerplate) from the diff before it is fed to the walk, and re-run this sha's receipt offline to see whether offPct drops — isolates template-repetition artifact from genuine content drift.

    Measured outcome (deterministic, not self-graded): room mean offPct 23→31 over 3 commits since · dictionary ablation saved 2584B

    Architect's lane loss-ratio keeps climbing (14→28, 17→26, now 30) on a defect three rooms have independently named the identical fix for 30+ times without shipping; premium only comes back down once ask-010/ask-027 actually land instead of being rediscovered a fourth time.

    Open the signed attestation →
  126. 2026-10-01 · 🧪 laboratory · offPct 58

    fix(deploy): re-include steer-ab-rules + cog-percentile; ship refuses a tree Vercel cannot compile

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  127. 2026-10-01 · 📐 architect · offPct 58

    docs(spec): declare C525 — native vs /steer token drain audit, four drivers (the -p hooks get their own line), subagents/ read

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 22→20 over 5 commits since

    Open the signed attestation →
  128. 2026-10-01 · 📐 architect · offPct 26

    docs(goal): pair updated — wave 1 closed (C509a C511 C516 C517), C520 a unit, the rest on claude -p within the operator's $5

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 22→20 over 5 commits since

    Open the signed attestation →
  129. 2026-10-01 · 📐 architect · offPct 20 · structural

    spec(vna): tick C521

    Why it left the lane: The entire diff is one flipped character: "- [ ] C521 (guard: `tests/vna/c521-the-wrapper-token-ladder-is-a-health-measure.test.mjs`)" to "- [x] C521 ..." inside docs/specs/vna/SPEC-VNA-COCKPIT.md. That checkbox line sits inside a multi-thousand-word C521 paragraph thick with reality-side vocabulary — "wrapper", "token ladder", "panel", "backup manifest", "insurance", "warranty" — content that was authored in earlier commits, not this one. lensIntent=B3,C (architect strategy) vs lensReality=A,A1 (product/engineering) are disjoint top-level buckets, and prewalkOverlap=3 against walksIntent=116/walksReality=111 shows the reef seed itself landed in a different region before the walk even ran. The walker is clearly scoring the surrounding paragraph's historical content, not the one-character diff hunk.

    The semantic pull: "wrapper", "token ladder", "panel", "insurance"/"warranty", "backup manifest" inside the C521 bullet body pull the reality lattice toward A/A1 (engineering/product coords), while the commit's own claimed lane — Originating-Terminal 📐 Architect, docs/specs/vna path, "tick C521", "Verified by the chair" — sits at B3,C (strategy/governance coords). docsOnly=true confirms no code moved; the pull is entirely residual prose the walk re-measures every time this file is touched at all.

    Intent–reality gap: The commit claims only a chair-verification act — flipping one checkbox to record that a guard went green — but the receipt measured offPct=20 as if 20% of the reality mass newly authored by this commit landed outside the architect's lane, when that mass is actually inherited, pre-existing prose from a prior session's authorship.

    • Ship tests/pmu-simulator/docs-only-commit-skips-lattice.test.mjs (ask-005, 14 asks) — gate the receipt on the docsOnly flag it already computes but currently ignores
    • Ship tests/pmu-simulator/shared-state-files-have-room-owner.test.mjs (ask-003, 4 asks) — declare docs/specs/vna/SPEC-VNA-COCKPIT.md as a multi-room shared ledger (builder+laboratory+architect) rather than single-lane-owned
    • Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, 31 asks) — this room's 103 events in 14 days make it the highest-leverage unshipped guard in the queue
    • Extract C521's long narrative/amendment prose out of the checkbox-line context (see file_movements) so future chair-verification ticks diff only the status line
    • Add docs/specs/vna/** to the architect's owned-surface glob as a shared/joint-owned exception in the room-surface config, not a sole claim
    • Backfill: re-run the receipt over the last 103 architect out-of-lane events and tag how many are docsOnly checkbox-only diffs vs real cross-lane authorship, to size the actual defect

    What we learned: The lattice walk's reality-side measurement window is scoped to the file/section a line sits in, not to the diff hunk itself — so a trivially small edit (one character, docsOnly=true) to a large shared ledger inherits the lane-coordinates of all the surrounding prose, most of which this commit never wrote. docsOnly is already computed and carried on the receipt row but is not consulted by the offPct gate, meaning the pipeline has the signal to prevent this class and simply doesn't read it yet.

    The missing guard (the deliverable): tests/pmu-simulator/docs-only-commit-skips-lattice.test.mjs

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. litReality=111 cells lit for a 1-line, docsOnly, bracket-only diff is disproportionate — the walk is over-walking relative to the actual changed bytes, effectively measuring the whole C521 paragraph instead of the hunk. Adjustment: cap the reality-side walk radius to the diff hunk ±N lines when diffStat is trivial, rather than letting it expand to section/file scope. Experiments: Re-seed this exact sha using ONLY the changed hunk (the two checkbox lines) instead of full-file context, and measure whether prewalkOverlap rises and offPct drops to near zero · Collect the last 103 architect out-of-lane events, bucket by diffStat size (≤5 lines vs larger), and measure what fraction of the 103 are checkbox-only ticks on shared ledgers vs real authorship — sizes the actual defect before shipping the gate · Run the lane classifier with Relevant-Rooms-weighted intent (not Originating-Terminal alone) over the same 103-event sample and compare offPct distribution, directly re-testing ff09774e5's unshipped hypothesis at scale

    Measured outcome (deterministic, not self-graded): room mean offPct 32→26 over 11 commits since · dictionary ablation saved 1047B

    A docs-only, single-character checkbox tick flagged at offPct=20 is a false-positive loss event on this lane's book — shipping the docsOnly gate (ask-005) plus shared-ledger ownership (ask-003) restores the room's loss ratio by removing noise so the remaining signal is genuine cross-lane authorship, not chair bookkeeping.

    Open the signed attestation →
  130. 2026-10-01 · 🔨 builder · offPct 70

    feat(backup): C508 — the deployer picks who to ask: CODING/DEPLOYED tabs + a "who should see this" dropdown, starting with us

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since

    Open the signed attestation →
  131. 2026-10-01 · 🧪 laboratory · offPct 34 · mistagged

    feat(vna): C515 — the LLM receipt places against the row's own slice, not the whole spec

    Why it left the lane: The diff's actual mass is VNA spec-engine plumbing — `rowSlice(md, label)`, `openSpec`, `spec_sha256`/`slice_sha256`, two full top-to-bottom scans of a 1.4 MB markdown file's `lines` array — none of which appears anywhere in 🧪 laboratory's owned surface (`.mcp.json`, `scripts/init-claude-flow-with-crm.sh`, `thetacoach-crm-mcp/`, `swarm-comms/`, `.thetacog/orchestrator/`, `.thetacog/punch-list*`). The commit's own `Originating-Terminal: 📐 VS Code Architect` trailer never says laboratory either. lensIntent=C,C2 (a narrowly-scoped sub-lane — 'this row's own slice') vs lensReality=C,C (the same broad parent lane, duplicated, with no C2 qualifier) shows reality generalized up a level: building a 'narrow slice' feature required reading and indexing the whole spec file, so the walk's lit cells (132) overran the declared cells (100) by the same 32% the walksIntent/walksReality pair shows. laneJump=8 and laneHamming=18 are the room-routing mismatch made numeric.

    The semantic pull: Strings 'rowSlice', 'openSpec', 'specPath', 'spec_sha256' and the backward/forward line scans over `lines.length` are VNA-engine vocabulary, not laboratory vocabulary — they pulled the reality walk into the broad C lane while the commit's own Steer-Dispatch/Originating-Terminal metadata never claimed the laboratory room at all.

    Intent–reality gap: The commit message claims a correctly-scoped VNA engineering change (C515: place against the row's own slice) and the code delivers exactly that; the drift receipt instead measures this event against 🧪 laboratory, a room whose owned-surface glob never touches `scripts/vna/**` or `tests/vna/**` and whose room identity contradicts the commit's own `Originating-Terminal: 📐 VS Code Architect` trailer — the lane claim on the EVENT is wrong, not the work.

    • Add the missing `Relevant-Rooms:` trailer to this commit's follow-on (or a correction commit) naming the room(s) that actually own scripts/vna/** and tests/vna/**
    • Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010, already asked 29×) so a commit touching scripts/vna/**/tests/vna/** without a matching Relevant-Rooms trailer fails before it lands
    • Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, already asked 30×) so a commit whose Originating-Terminal (📐 VS Code Architect) disagrees with the event's attributed room (🧪 laboratory) is caught at commit time
    • Audit the room-ownership config that produced 🧪 laboratory's owned-surface list above and confirm it has no VNA glob — if dispatch metadata (Steer-Dispatch id) is what assigns the room instead of the trailer, fix the assignment source
    • Backfill-check: of the room's 273 out-of-lane events in 14 days, how many share this same Originating-Terminal≠attributed-room signature — if most do, the room's offPct trend is dominated by mis-routing, not genuine semantic drift

    What we learned: 🧪 laboratory's offPct is not purely a semantic-drift signal — it is at least partly a room-ROUTING signal: a commit whose Originating-Terminal and file surface both point elsewhere can still be scored against laboratory's lane, and with two guards for exactly this (ask-010 at 29 asks, ask-027 at 30 asks) still unshipped, the room's drift metric has been absorbing mis-attributed noise it cannot structurally separate from real drift — which plausibly explains why prior facts-only interventions on this room oscillated (15→13, 15→18, 13→11) instead of trending down.

    The missing guard (the deliverable): tests/pmu-simulator/originating-terminal-matches-surface.test.mjs

    Detector probe: signal attribution — gzip reef 60% · ballistic walk 40%. litIntent==walksIntent (100/100) and litReality==walksReality (132/132) — both sides are at 100% fill, meaning every cell the walk visited was lit. That is saturation, not organic convergence: the walk likely hit a fixed step budget on each side rather than halting because it ran out of connected territory. Adjustment: raise the walk's step cap for this commit class and re-measure whether litReality keeps climbing past 132 — if it does, 132 was an artificial ceiling, not the true spread. Experiments: Re-run prewalkOverlap restricted to only files inside the attributed room's owned-surface glob (vs. the full diff) and check whether genuine-laboratory commits show overlap >6 while VNA-path commits like this one consistently show ≤6 — if so, prewalkOverlap alone is a cheap pre-walk mistag detector · Add an Originating-Terminal vs touched-file-glob cross-check as a pre-walk filter that short-circuits straight to a 'mistagged' verdict (skipping full offPct computation) and measure whether 🧪 laboratory's 273-event/14-day count drops while true drift events are undisturbed · Raise the walk step budget for this commit class only and re-measure whether litReality continues past 132 (saturation test) or genuinely halts near there

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since · dictionary ablation saved 670B

    A mistagged room-attribution event inflates 🧪 laboratory's loss-ratio with noise that isn't the room's own work, so the premium signal there is unreliable until the Relevant-Rooms/Originating-Terminal guards (ask-010, ask-027) ship and the room's trend is re-measured on genuinely-owned commits only.

    Open the signed attestation →
  132. 2026-10-01 · 🧪 laboratory · offPct 65

    feat(vna): C522 — /steer runs first, the /goal after it; the /goal is a condition written for its judge

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  133. 2026-10-01 · 🔨 builder · offPct 33 · mistagged

    feat(vna): C535 — make the DEPLOYED portal page demo-video ready

    Why it left the lane: The diff is a legitimate builder-surface edit (src/app/backup/adherence/page.tsx) but it is saturated with VNA/underwriting vocabulary that never appears in ordinary frontend commits: `data/underwriting/counterparties.json`, `LogoSlots`, `WhoShouldSee`, `insurer or warrantor`, `manifest`, and a companion test filed at `tests/vna/c535-...test.mjs` rather than anywhere under `tests/site/` or `tests/ops/`. That lexicon plus that test path pulls the reality walk toward the VNA/underwriting coordinate (lensReality includes A2) while the commit message only claims the UI/demo lane (lensIntent A1,A3) and carries zero Relevant-Rooms trailer to say a second room's vocabulary is riding along.

    The semantic pull: Strings 'counterparties', 'underwriting', 'insurer or warrantor', 'manifest', 'npx thetacog-mcp verify' and the import `data/underwriting/counterparties.json` inside the new test file are the exact tokens dragging reality toward A2; laneHamming=22 and prewalkOverlap=3 (very low seed agreement before the walk even ran) show the lexical mismatch was present at the reef-seed stage, not invented by the walk.

    Intent–reality gap: The message claims scoped UI polish ('make the DEPLOYED portal page demo-video ready') with Originating-Terminal 🎩 Kitty Operator and no Relevant-Rooms trailer at all; the receipt measured a third of the lit reality mass landing outside the declared lane because the commit never declared that it was also touching VNA-owned test territory (tests/vna/) and underwriting domain data.

    • Wire tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010, already asked 29×) to actually fail a commit whose diff spans two room-owned globs (src/app/** and tests/vna/**) with no Relevant-Rooms trailer — this is the open ask this event instantiates.
    • Check tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027) against this sha: Kitty Operator claimed as originating terminal while the surface touched (src/app/, builder-owned) maps to a different terminal in the room-naming index — confirm whether this is the same root cause or a second, independent mismatch.
    • Add a one-line convention to the C5xx spec template (wherever C534/C535-style tickets are authored) requiring the ticket to name every room whose owned-glob the implementation will touch, before the commit is made, not after.
    • Seed the gzip-NCD reef dictionary with the underwriting/VNA terms from this diff (see compression_dictionary_adds) and re-run prewalkOverlap on this sha to see if the seed-stage mismatch (currently 3) narrows.
    • Audit the room's other 57 out-of-lane events in the last 14 days for the same signature (tests/vna/*.test.mjs or data/underwriting/* touched from a builder-owned page) to see if this is a recurring class, not a one-off.

    What we learned: VNA spec tickets (C5xx) are routinely implemented as ordinary edits inside builder's own src/app/ pages with a tests/vna/ companion test — that pairing is architecturally normal, but the commit-message format has no required field that names the second room, so every one of these commits is silently under-declared and reads as builder drift until Relevant-Rooms is made mandatory for cross-glob diffs.

    The missing guard (the deliverable): tests/rooms/relevant-rooms-covers-diff.test.mjs

    Detector probe: signal attribution — gzip reef 60% · ballistic walk 40%. litIntent==walksIntent and litReality==walksReality on both sides (fully lit, not truncated) — the walk completed cleanly and isn't saturated or starved. It's right-sized for completion; the problem is upstream input, not walk depth. Adjustment: none needed to walk depth itself; instead feed the intent-side seed a richer sample (the C535 spec text plus the underwriting data file it references) so the intent lexicon isn't artificially narrower than what the commit actually built. Experiments: Re-run prewalkOverlap for sha b95d55b32 after adding the underwriting/VNA terms to the reef dictionary and confirm it rises materially above 3. · Pull the last 58 out-of-lane 🔨 builder events and compare offPct for those whose diff includes a tests/vna/* path against those that don't, holding room constant — isolates whether the path itself (not the content) is a fixed lane-pull weight. · A/B the Relevant-Rooms trailer directly: backfill a synthetic Relevant-Rooms line onto this commit's receipt inputs and re-run the lattice placement to measure whether declaring the second room changes offPct, confirming the mistagged hypothesis is actually load-bearing for this detector and not just a plausible story.

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since · dictionary ablation saved 1030B

    An undeclared cross-room commit reads as a full-weight lane violation and inflates this room's loss-ratio on paper even though the underlying work was sound; restoring the premium requires the Relevant-Rooms trailer to become load-bearing so genuinely cross-room VNA-in-builder commits stop being scored as pure builder drift.

    Open the signed attestation →
  134. 2026-10-01 · 🧪 laboratory · offPct 23

    fix(vna): C535 — read counterparties.json, never a static import, so the parent-tree witness classifies it RED

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  135. 2026-10-01 · 🧭 navigator · offPct 19

    fix(vscode): bound the steer-ui repaint duty cycle — a 28 s render no longer runs back to back

    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 →
  136. 2026-10-01 · 📐 architect · offPct 51 · structural

    spec(vna): declare C538–C543 — filmstrip + tape views, spend contrast, underwriting terminal, desk payloads, deployer/insurer tabs, warranty terms draft

    Why it left the lane: This commit is docsOnly:true (one file, 6 insertions, docs/specs/vna/SPEC-VNA-COCKPIT.md) yet the receipt still ran it through the 144-lattice walk as if it were code, and it lit 117 reality cells against only 89 intent cells with just 2 prewalk reef-seed overlaps. The six new rows (C538-C543) are nominally strategy-lane dictation (lensIntent=B3,A1 — a Goal/Law hat), but each one ends in an identical, verbatim-repeated 'chair note' block naming literal build-surface tokens: 'src/app/backup/adherence (page.tsx · TapeSlider.tsx · src/lib/backup/*)', 'POST /api/notary/query', 'POST /api/backup/underwriting-request', 'data/underwriting/counterparties.json', 'twoTapes / panels.json / tick record', and the guard paths themselves (tests/vna/c538-...test.mjs through c543-...). Those are exactly the tokens that will appear in the eventual code diff when C538-C543 ship, so the gzip/walk machinery reads this prose as reality-lane (A,A1) content rather than strategy-lane (B3,A1) content — the spec document is pre-seeded with its own future implementation surface.

    The semantic pull: Literal strings dragging placement toward A,A1: 'page.tsx · TapeSlider.tsx · src/lib/backup/*', 'POST /api/notary/query', 'POST /api/backup/underwriting-request', 'data/underwriting/counterparties.json', 'twoTapes / panels.json / tick record', and six repeated guard-path strings 'tests/vna/c53[8-9]/c54[0-3]-...test.mjs' — all concrete build/API/test identifiers embedded in what the commit message and lensIntent claim is a B3,A1 strategy declaration.

    Intent–reality gap: The commit claims pure strategy dictation ('declared before dispatch so every worker brief carries the constraints', lensIntent B3,A1) but the receipt measured 51% of lit reality mass outside that lane because the dictation format itself inlines literal build-surface vocabulary (file paths, API routes, guard paths) six times verbatim.

    • Extract the 6x-repeated chair-note constraint block from docs/specs/vna/SPEC-VNA-COCKPIT.md into a new docs/specs/vna/WORKER-BRIEF-adherence-portal.md, replacing each C538-C543 occurrence with a one-line anchor reference.
    • Add docs/specs/vna/** to the room-surface registry as co-owned by architect (dictation) and navigator (build) — this file currently sits outside architect's listed owned surface entirely (ask-001).
    • Ship tests/pmu-simulator/docs-only-commit-skips-lattice.test.mjs (ask-005) so docsOnly=true commits are exempted from offPct lane-breach pricing while still recording positional telemetry.
    • Re-run the gzip-NCD prewalk on this lineage after extraction and confirm prewalkOverlap rises above 2.
    • Audit C533-C537 (same series, prior ticks in the same file) for the identical inline chair-note pattern and backfill the same extraction if present.
    • Update the /steer dictation template that generates these chair notes to emit the WORKER-BRIEF anchor reference by default going forward, never the full inline block.

    What we learned: Spec-declaration commits under /steer dictation are themselves a drift source independent of Originating-Terminal/Relevant-Rooms semantics (the prior lessons' axis): when a strategy-lane doc inlines its own future build-surface vocabulary (file paths, API routes, guard paths) verbatim and repeatedly, the walk correctly reads it as reality-lane content — the detector already flags docsOnly=true on the receipt row but does not yet act on that flag to suppress lane-breach pricing.

    The missing guard (the deliverable): tests/pmu-simulator/docs-only-commit-skips-lattice.test.mjs

    Detector probe: signal attribution — gzip reef 55% · ballistic walk 45%. Right-sized, not saturated or shallow: every walked step lit exactly one cell on both sides (89/89, 117/117), so there's no wasted spread or starvation. The asymmetry is a seeding problem, not a walk-depth problem. Adjustment: densify the B3,A1 intent-lane reef with the recurring dictation-template boilerplate itself, so litIntent rises toward litReality's 117 for commits of this shape. Experiments: Re-seed the B3/Strategy reef dictionary with the 'surface = src/app/backup/adherence...' boilerplate and replay this commit; measure whether prewalkOverlap rises above 2. · Replay C538-C543 with the chair-note blocks regex-stripped vs unstripped and measure the offPct delta to quantify how much of the 51% is attributable to that one repeated block alone. · After the WORKER-BRIEF extraction lands, replay this sha's lineage end-to-end and confirm offPct drops below the 15 threshold on the extracted version.

    Measured outcome (deterministic, not self-graded): room mean offPct 22→30 over 3 commits since · dictionary ablation saved 2650B

    A pure-prose /steer dictation commit getting priced as a 51%-off-lane build-lane breach inflates this lane's apparent loss ratio with zero actual code risk; premium is restored by shipping the open docsOnly-skip guard (ask-005) and by stopping spec rows from inlining their own future build-surface vocabulary six times over.

    Open the signed attestation →
  137. 2026-10-01 · 📐 architect · offPct 27

    docs(spec): declare C523 (the seq-1921 restart cut, revealed once C514 sealed 2679) and C524 (1,060 commits the drift walk never ran on — never-walked is not not-yet)

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 32→26 over 11 commits since

    Open the signed attestation →
  138. 2026-10-01 · 🔨 builder · offPct 34 · intentional

    feat(vna): C503 — /backup/adherence draws both workloads as tapes, with a slider through the panels and where the money went

    Why it left the lane: All four touched paths (TapeSlider.tsx, page.tsx, deployed-tapes.mjs, the test) sit squarely inside builder's owned src/app/ and src/lib/ — file ownership is correct. The 34% off-lane mass is semantic: the diff is saturated with operator/financial-attestation vocabulary layered onto a UI feature — `job.model`, `cost_usd`, `cost_source`, `NO_QUERY_KEY`/'notary query key', `HOLDER_TAPE_LABEL` = "your own tape, not witnessed", the `Spend` component's priced/unpriced accounting, and the title's own "where the money went". That content reads to the lattice walk as B1 (the lens shift from intent A1,A2 to reality A1,B2→B1), dragging litReality's 123 cells partly outside the declared A2 lane even though litIntent/litReality are close in count (138 vs 123).

    The semantic pull: Strings doing the pulling: `cost_usd`, `cost_source`, `model` on the LLM job object (C504); `NO_QUERY_KEY`/'with no notary query key' and the label "your own tape, not witnessed" (C506's witnessed-vs-holder distinction); the `Spend` component's `s.usd`, `s.priced`, `s.unpriced`, `s.byLane`; and the commit body's own framing "see where the drift and the money went" / "insurability". None of these are UI-rendering vocabulary — they are ledger/attestation vocabulary riding inside a builder-tagged client component and page.

    Intent–reality gap: The commit claims a 🔨 builder UI deliverable (two tapes + a slider + a panel strip), and the code genuinely is that — but the operator's own quoted ask that drove it ("you know where your money went") explicitly commissioned fused UI+financial-attestation content, so 34% of the lit reality mass lands in a lane (B1) the pipeline still scores as drift rather than sanctioned fusion.

    • CLAUDE.md: add the `Cross-Lane:` optional trailer to COMMIT MESSAGE STRUCTURE
    • src/lib/backup/deployed-tapes.mjs → extract spend/witness logic into new src/lib/backup/spend-ledger.mjs
    • src/app/backup/adherence/page.tsx: have Spend() import totals from spend-ledger.mjs rather than reading tapes.spend inline
    • tests/pmu-simulator/: add declared-cross-lane-offset.test.mjs per missing_guard below
    • room-surface config: jointly tag src/lib/backup/spend-ledger.mjs as 🔨 builder + 🎛️ operator owned (see tests/ops/room-glob-overlap.test.mjs for the glob schema)
    • scripts/ compression dictionary: ablate cost_usd/UNMEASURED/witnessed tokens per the reef_tightening experiment below

    What we learned: The room/file-ownership model has no mechanism to mark a commit's off-lane semantic content as sanctioned-by-design — when the operator explicitly commissions a fused UI+financial-attestation feature (as here, verbatim-quoted in the diff's own comments), the correct file lands in the correct room but still reads as drift, because sanctioning lives only in the operator's chat utterance, never in a structured trailer the detector can read.

    The missing guard (the deliverable): tests/pmu-simulator/declared-cross-lane-offset.test.mjs — asserts that when a commit carries a `Cross-Lane:` trailer naming a room, and the reality lens's off-lane lane matches that room's owned semantic territory, offPct is reported net of (or clearly annotated with) the declared/covered fraction instead of being counted as raw, unsanctioned drift.

    Detector probe: signal attribution — gzip reef 60% · ballistic walk 40%. Right-sized but mildly truncated on the reality side: litReality (123) sits ~11% below litIntent (138), and laneHamming=24 is sizeable relative to that gap. Concrete adjustment: widen the reality-side walk budget by roughly the laneHamming delta (~24 cells) on commits whose diff carries both UI and ledger/attestation vocabulary, so B-lane content gets fully lit rather than truncated before off-lane classification. Experiments: Re-run the gzip-NCD prewalk seeding for this sha with cost_usd/notary/witnessed/spend added to the B-lane reef dictionary; measure whether prewalkOverlap rises above 4 and laneHamming falls below 24 on replay. · A/B walk depth for commits whose Relevant-Rooms lists more than one room: run at current depth vs +2, and measure whether |litIntent-litReality| narrows toward 0. · Ablate cost_usd/witnessed/notary/UNMEASURED from the corpus dictionary and re-measure offPct on this sha plus the room's last 10 events, to quantify what fraction of the 34% is attributable to these specific tokens vs other diff content.

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since · dictionary ablation saved 818B

    A 34% off-lane event in a room already carrying 59 out-of-lane events in 14 days reads as unmanaged, recurring drift and presses this lane's loss-ratio upward; declaring the fusion explicitly (Cross-Lane trailer + extracted spend-ledger.mjs + the declared-cross-lane guard) converts it from 'unexplained drift' into 'priced, bounded, sanctioned cross-lane coverage,' which is what restores the premium.

    Open the signed attestation →
  139. 2026-10-01 · 🎩 operator · offPct 27

    chore(vsx): repackage 0.3.62 from current source (C510c onward) — Desktop copy + VS Code/Cursor install

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Open the signed attestation →
  140. 2026-10-01 · 🔨 builder · offPct 24

    feat(vna): C542 — DEPLOYER and INSURER tabs on /backup/adherence carry the landings, quoted and linked

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since

    Open the signed attestation →
  141. 2026-10-01 · 🔨 builder · offPct 25

    feat(vna): C534 — every break below 99 % on rungs 2/3 is counted and its cause ranked by frequency

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since

    Open the signed attestation →
  142. 2026-10-01 · 🔨 builder · offPct 26

    feat(vna): C540 — the "who should see this" card becomes the Institutional Risk Transfer & Underwriting Terminal

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since

    Open the signed attestation →
  143. 2026-10-01 · 🔨 builder · offPct 31

    feat(vna): C538 — filmstrip of every commit's published panel, prev/next + arrow-key flipping, denser tapes

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since

    Open the signed attestation →
  144. 2026-10-01 · 🔨 builder · offPct 68 · structural

    feat(backup): C509 — the carrier's view: /risk/<pseudonym>, no email anywhere, panels copied into the store at share time

    Why it left the lane: The diff introduces a brand-new public-facing 'projection surface' (src/app/risk/[pseudonym]/page.tsx, src/lib/backup/risk-view.mjs) that doesn't just route/store data — it hand-authors AXIOM 1's sufficiency-disclosure doctrine as literal runtime fields: the RICE constant ('whether any of this work was good — undecidable (Rice, 1953)'), the per-field {status, value, why, notFor} shape rendered as 'Not sufficient for: {f.notFor}', and the verbatim-restated CANONICAL object (k_E='0.003', half_life='231 boundary crossings'). Those are the exact vocabulary items CLAUDE.md's AXIOM 1 section is built from ('THE DESIGN RULE: every projection surface declares (a) the question it IS sufficient for, (b) the question it is explicitly NOT', 'Rice sits BESIDE this axiom'). litReality=138 vs litIntent=100 (a 38% larger reality footprint) and laneHamming=30 show the walk spreading far past a plain feature-routing shape into that lexicon cluster — that's the pull toward C3,A1 while the spec row only declared the generic C,C.

    Intent–reality gap: The commit message claims scoped carrier-view plumbing (a pseudonymous page + panel copy, declared at the generic C,C lane); the receipt shows the actual mass concentrated at C3,A1 because the feature's done-when (CLAUDE.md's mandatory per-field sufficiency text) forces axiom-doctrine code into what was declared as ordinary builder work.

    • Create src/lib/axiom1/sufficiency-projection.mjs exporting CANONICAL, RICE, and a fieldWithSufficiency() helper
    • Update src/lib/backup/risk-view.mjs to import from it instead of defining CANONICAL/RICE inline
    • Grep src/app/backup/adherence (C503/C508 pages) for duplicated 'Not sufficient for'/Rice/CANONICAL strings and migrate them to the same module in a follow-up commit
    • Add the dual-lane note to the C509 spec row text as shown in spec_rewrite
    • Document the convention: any new spec row whose done-when quotes AXIOM 1's sufficiency language must name A1 in its lane declaration
    • Ship the missing_guard below in the same commit as the extraction

    What we learned: AXIOM 1's sufficiency-disclosure rule is architecture-wide ('every projection surface') but has no shared implementation — each new public-facing feature currently hand-re-authors the Rice/CANONICAL/notFor boilerplate inline, so any feature touching a 'projection surface' structurally imports axiom-coordinate mass into its diff regardless of how narrowly its spec row is scoped, making the builder room's generic C,C declaration systematically wrong for this entire future class of commits.

    The missing guard (the deliverable): tests/ops/axiom-pattern-is-shared-not-inlined.test.mjs — greps changed files under src/ for a locally-defined RICE-shaped string ('undecidable (Rice, 1953)') or a CANONICAL-shaped object (k_E/half_life literals) or a notFor-field object literal that is NOT imported from src/lib/axiom1/sufficiency-projection.mjs; fails on any local redefinition outside that module.

    Detector probe: signal attribution — gzip reef 20% · ballistic walk 80%. litReality=138 is well under any known cap (EYE≈800 per prior iso-identity work), so the walk isn't saturated — it's right-sized for a 425-line, 4-new-file commit. The actual problem is that offPct is read as a flat threshold (15) with no normalization for diff volume/file-count, so a large legitimately multi-concern commit reads as a huge violation by construction. Adjustment: normalize offPct by files-touched/lines-changed before comparing to the 15% threshold. Experiments: Re-run the reef seed for this sha with a corpus that includes C503/C508's existing sufficiency-pattern code and check whether prewalkOverlap rises above 3 — confirms or refutes the axiom-lexicon-pull hypothesis · After shipping the sufficiency-projection.mjs extraction, re-walk this exact historical diff (swap inline RICE/CANONICAL for the import) and measure whether offPct drops meaningfully below 68 — a direct ablation of the fix · Across the builder room's 64 out-of-lane events in 14 days, correlate laneHamming against lines-changed/files-touched; if strongly correlated, add a volume-normalization term to the detector rather than treating every large commit as equally 'drifted'

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since · dictionary ablation saved 1277B

    Paired with 64 other out-of-lane builder-room events in 14 days, this reads as a chronic, currently-unpriced tail risk — large feature commits that must embed AXIOM 1's sufficiency doctrine will keep reading as high-offPct drift until the pattern is centralized and declared dual-lane; premium is restored once the extraction + duplication guard ship and the next ablation run shows offPct dropping on this commit class.

    Open the signed attestation →
  145. 2026-09-30 · 🧭 navigator · offPct 69

    fix(intentguard): C490 — the limits a dependent relies on, probed by making pmu-onchip one

    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 →
  146. 2026-09-30 · 📐 architect · offPct 45

    spec(vna): C489 the ideal backed-up tape, one command six legs green; C488 carries the operator's span

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct 22→36 over 4 commits since

    Open the signed attestation →
  147. 2026-09-30 · 🧪 laboratory · offPct 29

    feat(track): /iamfim draws the dot bands — one band per timezone and per country, a dot per view

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  148. 2026-09-30 · 🧪 laboratory · offPct 41

    fix(vna): C483a — the flight tape's seq never restarts; the four missing days recovered byte for byte from the stashes that took them

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→58 over 3 commits since

    Open the signed attestation →
  149. 2026-09-30 · 🔨 builder · offPct 45

    feat(vna): C503 — the backup carries the deployed tapes; one untar hands back both

    Why it left the lane: (sensemaking unavailable — facts-only intervention)

    Measured outcome (deterministic, not self-graded): room mean offPct —→38 over 4 commits since

    Open the signed attestation →
  150. 2026-09-30 · 🧭 navigator · offPct 24

    feat(vna): C484 — the engine buttons carry the big Claude models by exact id and eight free web chats as handoffs (copy + open), never a runner

    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 →
gemsedu.com #1 ▼5.7%moonshotscapital.com #2 ▼1.8%leadedgecapital.com #3 ▲0.6%differential.vc #4 ▲11%dometic.com #5 ▼6.2%thecignagroup.com #6 ▲5.8%sigma.se #7 ▼9.2%karlsborg.se #8 ▼4.8%teneo.com #9 ▲0.2%ltu.se #10 ▼4.8%emiratesnbd.com #11 ▲1%apcoworldwide.com #12 ▼0.8%rytmus.se #13 ▲5.1%championacaustin.com #14 ▼1.9%amseliplaw.com #15 ▼8.1%clarionschool.com #16 ▼6.2%svenskakyrkan.se #17 ▼5.8%reed.com #18 ▼12.9%scania.com #19 ▼14.4%anthonypllc.com #20 ▲1.7%sigeducation.com #21 ▼7.6%state.gov #22 ▲3.2%scor.com #23 ▼6.3%easystem.se #24 ▲0.1%brodit.se #25 ▼13.5%ericsson.com #26 ▼6.4%khda.gov.ae #27 ▲3.6%parkcity.org #28 ▲52.4%pernod-ricard-china.com #29 ▼16%innoventureseducation.com #30 ▼4%dubaiholding.com #31 ▼0.8%wsp.com #32 ▼6.2%addition.com #33 ▲7.2%bdtmsd.com #34 ▲1.9%expediagroup.com #35 ▼8.7%crslimited.com #36 ▲16.1%baylor.edu #37 ▼4.5%americancenteruae.com #38 ▼5.2%lfg.com #39 ▼5.1%atriumhealth.org #40 ▼4.6%eosvc.com #41 ▲2.3%upandrunningdubai.com #42 ▼2.1%its.jnj.com #43 ▼2.5%cablevision.com #44 ▼2.3%mit.edu #45 ▲0.6%rackspace.com #46 ▼14.6%winningtemp.se #47 ▲1.2%siemens.com #48 ▼4%sunstarstrategic.com #49 ▼16%gunnebo.com #50 ▼8.8%newyorklife.com #51 ▼1.8%volvo.com #52 ▼6.8%oryxworld.com #53 ▼20.9%statefarm.com #54 ▼1.4%jcdecaux.ae #55 ▲10.5%neweratech.com #56 ▼8.9%munichre.com #57 ▼2.7%sc.com #58 ▲6.4%inspiralia.com #59 ▼4.1%linkedin.com #60 ▼5.6%insureai.co #61 ▼20.9%louisville.edu #62 ▲22.1%marsh.com #63 ▼2%bakerbotts.com #64 ▲78.9%ecoclean-group.net #65 ▲153.8%bermanauditadvisorycpa.com #66 ▲8.5%aresmgmt.com #67 ▲16.6%se.abb.com #68 ▼11.2%jkj.com #69 ▲12.3%nsigroup.org #70 ▼1.9%tyrolit.com #71 ▲299.9%jcdecaux.com #72 ▼9.5%fox.com #73 ▲19.2%emerson.com #74 ▲13.6%luxcapital.com #75 ▼6%conning.com #76 ▼8.1%artvillagenursery.com #77 ▼20.9%pacemetals.com #78 ▲12.3%bancamediolanum.it #79 ▲106.1%schmuhlbrothers.com #80 ▲82.4%peraco.com.au #81 ▲199.2%students.rcsj.edu #82 ▲61.6%scnsoft.com #83 ▲64.6%jsx.com #84 ▲209.9%bartec.com #85 ▲141.2%lbl.gov #86 ▼20.9%muskegoncc.edu #87 ▲149.1%rakbank.ae #88 ▼2.3%mindshareworld.com #89 ▲185.9%aig.com #90 ▼5.5%camarda.com #91 ▲25.7%xprize.org #92 ▼5.4%stoughtontrailers.com #93 ▲400%tetrapak.com #94 ▼1.9%dubailand.gov.ae #95 ▲42.7%hsph.harvard.edu #96 ▼20.9%krausanderson.com #97 ▲171.8%nyu.edu #98 ▼11%trenchlaw.com #99 ▼20.9%mckoolsmith.com #100 ▼20.9%gemsedu.com #1 ▼5.7%moonshotscapital.com #2 ▼1.8%leadedgecapital.com #3 ▲0.6%differential.vc #4 ▲11%dometic.com #5 ▼6.2%thecignagroup.com #6 ▲5.8%sigma.se #7 ▼9.2%karlsborg.se #8 ▼4.8%teneo.com #9 ▲0.2%ltu.se #10 ▼4.8%emiratesnbd.com #11 ▲1%apcoworldwide.com #12 ▼0.8%rytmus.se #13 ▲5.1%championacaustin.com #14 ▼1.9%amseliplaw.com #15 ▼8.1%clarionschool.com #16 ▼6.2%svenskakyrkan.se #17 ▼5.8%reed.com #18 ▼12.9%scania.com #19 ▼14.4%anthonypllc.com #20 ▲1.7%sigeducation.com #21 ▼7.6%state.gov #22 ▲3.2%scor.com #23 ▼6.3%easystem.se #24 ▲0.1%brodit.se #25 ▼13.5%ericsson.com #26 ▼6.4%khda.gov.ae #27 ▲3.6%parkcity.org #28 ▲52.4%pernod-ricard-china.com #29 ▼16%innoventureseducation.com #30 ▼4%dubaiholding.com #31 ▼0.8%wsp.com #32 ▼6.2%addition.com #33 ▲7.2%bdtmsd.com #34 ▲1.9%expediagroup.com #35 ▼8.7%crslimited.com #36 ▲16.1%baylor.edu #37 ▼4.5%americancenteruae.com #38 ▼5.2%lfg.com #39 ▼5.1%atriumhealth.org #40 ▼4.6%eosvc.com #41 ▲2.3%upandrunningdubai.com #42 ▼2.1%its.jnj.com #43 ▼2.5%cablevision.com #44 ▼2.3%mit.edu #45 ▲0.6%rackspace.com #46 ▼14.6%winningtemp.se #47 ▲1.2%siemens.com #48 ▼4%sunstarstrategic.com #49 ▼16%gunnebo.com #50 ▼8.8%newyorklife.com #51 ▼1.8%volvo.com #52 ▼6.8%oryxworld.com #53 ▼20.9%statefarm.com #54 ▼1.4%jcdecaux.ae #55 ▲10.5%neweratech.com #56 ▼8.9%munichre.com #57 ▼2.7%sc.com #58 ▲6.4%inspiralia.com #59 ▼4.1%linkedin.com #60 ▼5.6%insureai.co #61 ▼20.9%louisville.edu #62 ▲22.1%marsh.com #63 ▼2%bakerbotts.com #64 ▲78.9%ecoclean-group.net #65 ▲153.8%bermanauditadvisorycpa.com #66 ▲8.5%aresmgmt.com #67 ▲16.6%se.abb.com #68 ▼11.2%jkj.com #69 ▲12.3%nsigroup.org #70 ▼1.9%tyrolit.com #71 ▲299.9%jcdecaux.com #72 ▼9.5%fox.com #73 ▲19.2%emerson.com #74 ▲13.6%luxcapital.com #75 ▼6%conning.com #76 ▼8.1%artvillagenursery.com #77 ▼20.9%pacemetals.com #78 ▲12.3%bancamediolanum.it #79 ▲106.1%schmuhlbrothers.com #80 ▲82.4%peraco.com.au #81 ▲199.2%students.rcsj.edu #82 ▲61.6%scnsoft.com #83 ▲64.6%jsx.com #84 ▲209.9%bartec.com #85 ▲141.2%lbl.gov #86 ▼20.9%muskegoncc.edu #87 ▲149.1%rakbank.ae #88 ▼2.3%mindshareworld.com #89 ▲185.9%aig.com #90 ▼5.5%camarda.com #91 ▲25.7%xprize.org #92 ▼5.4%stoughtontrailers.com #93 ▲400%tetrapak.com #94 ▼1.9%dubailand.gov.ae #95 ▲42.7%hsph.harvard.edu #96 ▼20.9%krausanderson.com #97 ▲171.8%nyu.edu #98 ▼11%trenchlaw.com #99 ▼20.9%mckoolsmith.com #100 ▼20.9%