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-07-14
38 · 🔒 📐 🎩 🎤 🧪 🛰️ 🔨
2026-07-13
47 · 🎩 📐 🔒 🔨 🎤
2026-07-12
18 · 🔨 🎭 🔒 🧪 🎩
2026-07-11
8 · 🎩

The interventions — why · fix · checklist

  1. 2026-07-14 · 🛰️ unattributed · offPct 94

    chore(commit-page): publish 78326ddb6

    encircled drift panel for 0515fc995

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

    Open the signed attestation →
  2. 2026-07-14 · 🎤 voice · offPct 36

    docs(bookclub): fix the contradictory arm-parity comment (even=morning was stale)

    encircled drift panel for 0bfa7c166

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

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

    Open the signed attestation →
  3. 2026-07-14 · 📐 architect · offPct 35

    docs(marsh): the thread changes the strategy — Mary asked US to book it

    encircled drift panel for 103656281

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

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

    Open the signed attestation →
  4. 2026-07-14 · 📐 architect · offPct 18

    chore(marsh): Wednesday is the encircle day — 4 blocks, and the promise I hadn't scheduled

    encircled drift panel for 166e5fd34

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

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

    Open the signed attestation →
  5. 2026-07-14 · 🧪 Cursor Laboratory · offPct 96

    chore(commit-page): publish 166e5fd34

    encircled drift panel for 1e2b4160a

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

    Open the signed attestation →
  6. 2026-07-14 · 📐 architect · offPct 43

    docs(marsh): v4 — Carlos identified, and it reframes the room; connect decision REVERSED

    encircled drift panel for 21a4c7794

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

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

    Open the signed attestation →
  7. 2026-07-14 · 📐 architect · offPct 40

    feat(crm): the Marsh telemetry strawman — a schema built to be attacked

    encircled drift panel for 21c25b05f

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

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

    Open the signed attestation →
  8. 2026-07-14 · 🧪 Cursor Laboratory · offPct 96

    chore(commit-page): publish 74bb607db

    encircled drift panel for 21dd164fd

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

    Open the signed attestation →
  9. 2026-07-14 · 📐 architect · offPct 22 · structural

    fix(legal): delete the investment-contract mechanics from the license — it was arguably a security

    encircled drift panel for 2220900ea

    Why it left the lane: Every touched file in this diff — docs/legal/agent-year-license-terms.md, docs/legal/counsel-redline-memo-2026-07-14.md, src/app/agent-year/page.tsx, src/app/iamfim-landing/page.tsx, src/app/pricing/page.tsx, tests/legal/no-investment-contract-language.test.js — sits outside every glob architect actually owns (docs/strategy/, docs/03-product/, .workflow/rooms/*.html, .workflow/cognitive-dashboard.html, docs/01-business/strategy/, CLAUDE.md). The diff's own vocabulary is a legal/securities cluster ('Howey', 'investment contract', 'RL-1' through 'RL-8', 'securities counsel', 'resale spread', 'Distribution and Registry (Founding)', 'CATO certification', 'counsel-redline-memo') that the reef seeds toward a legal-compliance coordinate, not an architect-strategy coordinate. offPct=22 is not noise in the walk, it is the correct measurement of a real mismatch between the claimed lane and the touched-file set.

    The semantic pull: Legal/securities terms concentrated in docs/legal/agent-year-license-terms.md ('Howey', 'investment contract', 'the holder sets the resale price', 'Distribution and Registry (Founding)', 'CATO certification', 'insurable events') and the new counsel-redline-memo.md pull reef mass toward vault's legal-patent coordinate; the parallel edits to src/app/pricing/page.tsx and src/app/agent-year/page.tsx (stripping the same marketing language from live commercial copy) pull mass toward operator's commercial-terms coordinate. Neither coordinate overlaps architect's declared surface, so the walk correctly lights up out-of-lane cells — the content itself is not confused, the lane claim is.

    Intent–reality gap: The commit message and trailers correctly self-report as cross-room ('Relevant-Rooms: vault, operator, architect', with an explicit Story explaining why each room is relevant) and CLAUDE.md's own COMMIT MESSAGE STRUCTURE section says Originating-Terminal/Relevant-Rooms divergence is 'fine and worth recording' — yet the receipt pipeline scores offPct against Originating-Terminal's owned-surface alone, so a commit that followed the convention exactly as designed still reads as a lane violation.

    • Add docs/legal/** to vault's 'Owned file/dir surface' list in .workflow/rooms/vault-*.html — it's absent today despite vault explicitly owning 'the legal/patent surface' per this commit's own Story line.
    • Add src/app/pricing/**, src/app/agent-year/**, src/app/iamfim-landing/** to operator's owned-surface list in .workflow/rooms/*operator*.html — commercial-terms pages are operator's stated territory but aren't enumerated.
    • Patch the lane-scoring step (wherever offPct is computed from Originating-Terminal/Relevant-Rooms) to union all Relevant-Rooms globs before comparing against lit-reality cells.
    • Add tests/pmu-simulator/lane-uses-relevant-rooms-union.test.js asserting a synthetic multi-room-trailer commit scores in-lane when touched files fall under any Relevant-Room's glob, not just Originating-Terminal's.
    • Codify the union-lane rule as a new line in CLAUDE.md COMMIT MESSAGE STRUCTURE (the spec_rewrite text above).
    • Re-check the room's other 4 out-of-lane events in the last 14 days for the same multi-room-trailer signature before writing them off as unrelated.

    What we learned: The prior fix (39fecfee9: cross-check tagging against owned-surface globs) and its partial relapse (62290139a: glob lists are static and under-enumerate a growing repo) both assumed a SINGLE correct room per commit. This event shows a deeper case: CLAUDE.md's own commit-trailer design explicitly allows and expects Originating-Terminal to diverge from file relevance for legitimate multi-room work, but the receipt pipeline still measures lane-fit as if Originating-Terminal were the sole intent boundary — so even a commit that self-declares its cross-room nature correctly, with a Story explaining exactly why, still reads as a violation. A perfect glob list would not fix this; the fix is teaching the scorer to read Relevant-Rooms as a set, not a decoration.

    The missing guard (the deliverable): tests/pmu-simulator/lane-uses-relevant-rooms-union.test.js — fails if any commit whose touched files are fully covered by the union of its Relevant-Rooms owned-surface globs still scores offPct above the lane threshold when measured against Originating-Terminal alone.

    Detector probe: signal attribution — gzip reef 70% · ballistic walk 30%. 100% lit-to-walked on both intent and reality sides indicates the walk is saturating rather than discriminating — every cell it reaches gets lit, so it can't distinguish 'reached but marginal' from 'reached and central'. Concrete adjustment: lower --max-depth by one ply for this reef cluster and check whether litIntent/litReality drop below walksIntent/walksReality (i.e. the walk starts leaving some reached-but-weak cells unlit), which would restore discriminative power. Experiments: Seed a dedicated legal/securities vocabulary cluster (Howey, investment contract, resale spread, Distribution tier, CATO certification) as its own reef coordinate distinct from generic architect/strategy vocabulary, rerun this commit, and measure whether offPct concentrates into that coordinate instead of diffusing across strategy-adjacent cells. · Recompute offPct for this commit and the room's other 4 recent out-of-lane events using union(Relevant-Rooms globs) instead of Originating-Terminal alone, and measure how many flip from out-of-lane to in-lane. · Lower the NCD similarity threshold specifically for the legal-compliance reef cluster and check whether prewalkOverlap rises above 4 without inflating false-positive lane hits on unrelated architect commits.

    Measured outcome (deterministic, not self-graded): room mean offPct 1621 over 8 commits since · dictionary ablation saved 952B

    A correctly-scoped, well-guarded legal fix reading as a lane violation inflates architect's apparent loss-ratio on exactly the cross-room commits CLAUDE.md's own trailer convention was built to permit; premium is restored by scoring lane-fit against the union of Relevant-Rooms (plus filling the vault/operator glob gaps) rather than Originating-Terminal alone.

    Open the signed attestation →
  10. 2026-07-14 · 📐 architect · offPct 26

    docs(marsh): agenda HTML+PDF — and HOLD the numbers until the tuned run

    encircled drift panel for 2b7d155b8

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

    Measured outcome (deterministic, not self-graded): room mean offPct 2713 over 16 commits since

    Open the signed attestation →
  11. 2026-07-14 · 📐 architect · offPct 28

    docs(outreach): the Marsh account — and the ledger kills a flattering story

    encircled drift panel for 33173acb0

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

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

    Open the signed attestation →
  12. 2026-07-14 · 🔒 vault · offPct 31

    fix(hive/track): converge on the canonical isHumanClick gate (not a Chrome-only machete)

    encircled drift panel for 352265fd4

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

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

    Open the signed attestation →
  13. 2026-07-14 · 📐 architect · offPct 34

    fix(pmu): the demo claimed byte-identical while its own output drifted 9.5 → 9.6

    encircled drift panel for 3fe7640cd

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

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

    Open the signed attestation →
  14. 2026-07-14 · 🔒 vault · offPct 24

    fix(outreach): truncated-UA scanners can no longer pass the human gate (the Marsh burst) + regression fixtures

    encircled drift panel for 4450c85f8

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

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

    Open the signed attestation →
  15. 2026-07-14 · 📐 architect · offPct 53

    feat(analytics): scanner detector on every outbound-linked page + the learnings

    encircled drift panel for 49d0a8f5c

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

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

    Open the signed attestation →
  16. 2026-07-14 · 🧪 Cursor Laboratory · offPct 96

    chore(commit-page): publish b32650044

    encircled drift panel for 49ecbe929

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

    Open the signed attestation →
  17. 2026-07-14 · 🎩 operator · offPct 28 · mistagged

    docs(marsh): close the loop on the tuned held-out + abstention runs — the null that removes an argument

    encircled drift panel for 4c9a5dfa9

    Why it left the lane: The reality mass concentrated in docs/outreach/accounts/marsh-numbers-HELD.md (GTM/underwriter-facing copy — the tuned-vs-generic table row and the new 'abstention rate' section), the brand-new scripts/pmu/abstention-rate-probe.mjs (111 lines, a standalone research probe), tests/pmu/heldout-tuned-spec-narrower.test.mjs (67 lines, a fresh guard), and data/pmu/study/2026-07-14-*.json (three new study-run files) plus data/room-bifurcations.json (402 new lines recording bf-1426). None of these paths fall under 🎩 operator's declared surface (data/trust-debt/, data/pmu/pipeline/, data/pmu/claudbridge/, docs/01-business/*, public/pmu-demo|dashboard*) — they sit in docs/outreach/, scripts/pmu/ (a sibling of, not inside, data/pmu/pipeline/), tests/pmu/, and data/pmu/study/ (a sibling of, not a child of, the two data/pmu/* dirs operator owns. No region-coordinate narrative was cached for this sha, so this reads off the diffstat/glob mismatch rather than the lattice coords directly.

    Intent–reality gap: The commit's own Relevant-Rooms trailer names 🧪 laboratory, ☕ network, 📐 architect — deliberately excluding 🎩 operator — so the author already flagged this work as outside operator's lane; but Originating-Terminal: 🎩 operator is what the receipt's intent lane was built from, so the receipt still scores a 28% miss against a lane the commit message itself disclaimed.

    • Read .workflow/rooms/messages-network.html's owned-surface glob list and add docs/outreach/accounts/** if missing (network already claims outreach dispatch content per CLAUDE.md 'per-archetype dispatches → publish to /dispatches/<slug>')
    • Read .workflow/rooms/cursor-laboratory.html's owned-surface glob list and add scripts/pmu/*-probe.mjs, tests/pmu/**, data/pmu/study/** if missing — laboratory is where net-new PMU experiment code already lives per prior room-mesh routing
    • Wire the intent-lane computation (wherever the drift receipt derives 'claimed lane' per commit) to prefer the Relevant-Rooms trailer's union-of-globs over Originating-Terminal alone when the two sets are disjoint
    • Verify bf-1426 in data/room-bifurcations.json actually routed the strike-price-chain fix to laboratory via bifurcate rather than getting silently absorbed into this operator commit's lane
    • Add the new guard (tests/rooms/relevant-rooms-covers-diff.test.mjs) to the pre-commit gate so a mis-declared or missing Relevant-Rooms trailer fails before the receipt ever fires

    What we learned: The Relevant-Rooms trailer is currently pure prose: the receipt pipeline computes the intent lane from Originating-Terminal room ownership alone and never reads the trailer the operator already wrote to flag the cross-domain divergence — so a commit can correctly self-report as out-of-lane and still be scored as a lane violation with zero remediation credit. Unlike d80f77cc2 (wrong rooms named in the trailer), here the trailer was right and inert.

    The missing guard (the deliverable): tests/rooms/relevant-rooms-covers-diff.test.mjs — asserts every file path in a commit's diff is claimed by at least one glob owned by a room named in Relevant-Rooms ∪ Originating-Terminal, and fails the commit if Relevant-Rooms excludes Originating-Terminal AND no room in Relevant-Rooms actually covers the touched paths (catches both a missing glob and a trailer nobody consumes).

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Both sides are fully saturated (litIntent/walksIntent = 136/136 = 100%; litReality/walksReality = 143/143 = 100%) — the walk is hitting a ceiling where every cell it reaches lights, which means it has lost resolving power to distinguish 'weakly connected' from 'strongly connected' cells. Adjustment: reduce --max-depth by one ply (or apply ply-decay weighting to the lit-cell count) so saturation stops masking the actual concentration of mass, and re-measure whether offPct on this same commit moves. Experiments: Seed the reef dictionary with path-prefix tokens for docs/outreach/ and scripts/pmu/ so cross-domain operator commits get distinguishable reef placement instead of near-zero prewalkOverlap; measure prewalkOverlap on the next operator-authored outreach commit. · Re-run this commit's ingest using Relevant-Rooms-derived intent text (laboratory+network+architect owned globs) instead of Originating-Terminal(operator)-derived intent text; measure whether offPct drops below the 15 threshold — this directly tests whether trailer-driven intent lane closes today's gap. · Re-run walksIntent/walksReality at --max-depth reduced by one ply across the room's last 17 out-of-lane commits and check whether the resulting lit-cell counts stop saturating at 100% and start separating known in-lane from known out-of-lane commits.

    A correctly self-diagnosed but unconsumed Relevant-Rooms trailer reads as a lane violation anyway, inflating 🎩 operator's out-of-lane rate (17 events/14 days) without any underlying quality defect — the lane's premium is being priced against pipeline noise, not risk; restoring it means making the receipt trust the trailer the operator already wrote, not adding more scrutiny to the operator.

    Open the signed attestation →
  18. 2026-07-14 · 🎩 operator · offPct 26 · structural

    docs(marsh): nudge event found the thread had moved on — drafted the real reply instead

    encircled drift panel for 51383b235

    Why it left the lane: The diff's only touched files (data/self-prompts.json, docs/outreach/accounts/marsh-pack/2-mary-email.md) and its literal terms ('Gmail draft', 'GCal fire', 'cc Carls/Dias', 'bf-1405') sit entirely inside outreach/CRM territory, not under any of 🎩 operator's declared globs (data/trust-debt/, data/pmu/pipeline/, docs/01-business/pipeline/, public/dashboard*). offPct=26 with litReality=113 and prewalkOverlap only 8 means the receipt's intent lane was built from Originating-Terminal's owned-surface, while 100% of the actual work landed in a completely different, correctly-declared lane (Relevant-Rooms: network/architect/navigator).

    Intent–reality gap: The commit message and trailers correctly self-identify the content as network/architect/navigator territory (Relevant-Rooms line), but the receipt's lane math appears keyed to Originating-Terminal (🎩 operator) alone — so a commit that is honestly and correctly tagged per CLAUDE.md's own documented convention ('originating terminal and file-relevance can diverge — that's fine') still trips the out-of-lane gate every time.

    • Add Relevant-Rooms trailer parsing to the room/lane resolver feeding the drift receipt
    • Re-score the last 16 operator out-of-lane events against Relevant-Rooms-union surface to see how many were this same divergence vs genuine cross-lane drift
    • Add a regression test asserting Originating-Terminal ≠ scoring source when Relevant-Rooms is present
    • Cross-link the room glob parser so both the receipt pipeline and any human trailer-writer read the same `.workflow/rooms/*.html` source (avoid two divergent copies of 'what operator owns')
    • Document in CLAUDE.md's COMMIT MESSAGE STRUCTURE section which trailer field is authoritative for automated lane scoring

    What we learned: Unlike the prior operator-room lessons (facts-only, or a hand-typed trailer naming the WRONG rooms), this event has a trailer that is fully correct and honest per the repo's own documented convention — yet the receipt still fires out-of-lane, because the pipeline's lane math reads Originating-Terminal (physical presence) where it should read Relevant-Rooms (content claim). The repo already tells authors these two can and should diverge; the tooling hasn't caught up to that same allowance.

    The missing guard (the deliverable): tests/pmu-simulator/lane-scoring-uses-relevant-rooms.test.mjs — asserts that for a synthetic commit with Originating-Terminal=roomA and Relevant-Rooms=roomB,roomC (roomA excluded), the computed intent-lane glob set equals ownedSurface(roomB) ∪ ownedSurface(roomC), not ownedSurface(roomA); fails today if the resolver ignores the trailer.

    Detector probe: signal attribution — gzip reef 15% · ballistic walk 85%. litIntent 124 and litReality 113 are both very high relative to the 144-cell lattice (fill well over half) for a docsOnly, 2-file, 25-line commit — the walk is running too broad/deep for the diff's actual size, which dilutes lane precision and manufactures spurious out-of-lane spread. Adjustment: cap max-depth/ply-count tighter specifically when docsOnly=true so lit-cell counts scale with diff size rather than saturating near full lattice fill. Experiments: Re-run sha 51383b235 at --max-depth 1 vs current depth; compare offPct — if it drops while prewalkOverlap-derived signal is preserved, set a shallower default ply for docsOnly commits. · Re-score the room's last 16 out-of-lane events with a Relevant-Rooms-aware resolver; measure what fraction were this same originating-terminal/content divergence vs genuine cross-lane drift. · For docsOnly=true commits, ablate to seed-only (prewalkOverlap) scoring and compare its offPct against the current full-walk offPct across the last 14 days; if correlated, it's a cheaper, tighter proxy for narrative-only commits.

    Measured outcome (deterministic, not self-graded): room mean offPct 014 over 3 commits since · dictionary ablation saved 676B

    A structural false-positive in the operator lane's loss-ratio signal — this event should be re-classed as in-lane once the resolver honors Relevant-Rooms, restoring the room's premium to reflect its actual (low) true-drift rate rather than a scoring artifact.

    Open the signed attestation →
  19. 2026-07-14 · 📐 architect · offPct 29

    feat(outreach): founder-personal template v3 + ranked tracker + disposition loop

    encircled drift panel for 52618aeac

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

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

    Open the signed attestation →
  20. 2026-07-14 · 📐 architect · offPct 27

    fix(comms): receipt emails shipped panels from TWO different renders — 'the wrong panels are in that email'

    encircled drift panel for 6654832dd

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

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

    Open the signed attestation →
  21. 2026-07-14 · 🔨 builder · offPct 18 · mistagged

    fix(marsh): §2 carries the real measured set — including the tuning null that killed our best excuse

    encircled drift panel for 6f1bb3898

    Why it left the lane: No region narrative is cached for this sha, so the positional pull has to be read off the diff-stat itself: every substantive file changed — docs/outreach/accounts/marsh-pack/1-agenda.md, 2-mary-email.md, marsh-agenda.html/.pdf, data/pmu/measure-history*.ndjson, data/pmu/pipeline/state.json, data/pmu/reef/dictionary-seeds.ndjson — sits outside 🔨 builder's owned-surface globs (src/app/, src/components/, src/lib/, public/, scripts/build-book-html.sh, scripts/convert-chapters-to-html.mjs, hooks/pre-commit, decentralizedtalk/, thetacoach-crm-mcp/, vercel.json). Zero bytes of the 1719 insertions land inside builder's glob. The mass instead concentrated on the outreach-copy surface (☕ network's territory) and the PMU reef/pipeline surface (🧪 laboratory's territory) — which the commit's own trailer already names: 'Relevant-Rooms: 🔨 builder, ☕ network, 🧪 laboratory'. The pull toward the out-of-lane coords is the content itself: 'the tuning null', 'AUC 0.496/0.415/0.406', '4.48σ', 'Mary.Quinn@marsh.com', 'Gmail DRAFT created' — none of it is UI/component/build-tooling work.

    The semantic pull: The strings doing the dragging are the outreach-artifact vocabulary ('agenda', 'reply IN-THREAD', 'marsh-agenda.pdf', 'Gmail draft id r8802317798315626088') and the PMU-telemetry vocabulary ('measure-history', 'pipeline/state.json', 'reef/dictionary-seeds') — both are lexically and structurally distant from builder's UI/build-script glob, so the walk lit almost entirely in network+laboratory territory while the receipt's intent lane was still anchored to builder via Originating-Terminal.

    Intent–reality gap: The commit correctly executed exactly what it claims (rewrite §2 of the Marsh agenda, correct the abstention line, reply to Mary) — reality matches the message. The gap is the ROOM claim: the receipt's intent lane traces to 'Originating-Terminal: 🔨 builder' even though the commit's own 'Relevant-Rooms' trailer already declares ☕ network and 🧪 laboratory as the true owners, and the diff confirms it.

    • Grep the receipt/pipeline code for where offPct's intent lane is assigned and confirm it currently keys off Originating-Terminal rather than glob-match.
    • Patch that assignment to use the Relevant-Rooms glob-match routine (already exists — it's what generates the commit trailer).
    • Add a fixture: Originating-Terminal=builder + 100%-outreach/pmu diff must compute offPct against network/laboratory lane, not builder.
    • Land the CLAUDE.md clarifying clause above in the same commit as the fix.
    • Backfill-audit the room's 39 out-of-lane events in the last 14 days for the same terminal-vs-glob mismatch pattern; bulk-reclassify if confirmed so the trend line isn't poisoned by mistagging.
    • Add an explicit note to .workflow/rooms/iterm2-builder.html's owned-surface section that data/pmu/** and docs/outreach/** are NOT builder surface regardless of which terminal committed them.

    What we learned: CLAUDE.md already documents that Originating-Terminal and file-relevance are allowed to diverge ('that's fine and worth recording') — but the receipt pipeline doesn't yet honor that policy; it still penalizes the exact divergence its own governing doc calls legitimate. A single fixed physical terminal (iTerm2/builder) is apparently the operator's general-purpose commit seat for cross-domain work, so this isn't a one-off — it's the room's steady-state mode, and 39 events in 14 days is that steady state, not noise.

    The missing guard (the deliverable): tests/pmu-simulator/room-attribution-uses-glob-match.test.mjs: for a synthetic commit with Originating-Terminal=X and a diff whose files match zero of X's owned globs but ≥1 of room Y's globs, assert the receipt's computed intent lane is Y (or the glob-match set), never X.

    Detector probe: signal attribution — gzip reef 70% · ballistic walk 30%. Saturated, not right-sized: both litIntent/walksIntent and litReality/walksReality ratios are 1.0, meaning every reachable cell within the time/depth budget got lit on both sides — there's no headroom left to distinguish 'strongly in-lane' from 'barely reached.' Concrete adjustment: lower --max-depth (or add ply-decay) specifically for docsOnly=true commits like this one, so the walk stops before full saturation and offPct starts reflecting actual positional concentration instead of a maxed-out flood. Experiments: Re-seed the reef for this commit using Relevant-Rooms glob-match instead of Originating-Terminal, re-run the receipt, and measure whether prewalkOverlap rises materially above 10. · For docsOnly=true commits, cap max-depth one tier lower and measure whether litIntent/walksIntent and litReality/walksReality drop below 1.0 (i.e., stop saturating) while offPct's directional signal remains stable. · Track builder-room offPct mean for the next 20 commits after the glob-match fix ships, and compare against the current 39-events/14-days baseline to confirm the mistagging class actually clears.

    Taken alone this event is a false positive against the builder lane's loss ratio — correctly-placed outreach and pipeline work misattributed to the wrong room — so it inflates builder's apparent drift without representing real risk; premium is restored by fixing intent-lane attribution to glob-match, not by changing where the operator sits to commit.

    Open the signed attestation →
  22. 2026-07-14 · 🎤 Terminal Voice · offPct 96 · structural

    chore(commit-page): publish e5c2ecb1f

    encircled drift panel for 70324751e

    Why it left the lane: The diff is 100% self-generated commit-page artifacts (public/commit/e5c2ecb1f/index.html, og.png, trip-encircled-*.png) — docsOnly=true, no real source changed. Those generated HTML pages themselves narrate the lattice using the lattice's own vocabulary (grid, route topology, power flow, leverage, capital, governance) — the exact terms that anchor the B3/A/C2/A1/A2/C axes cited in the 8 encircled regions. The walk ingested its own descriptive output as if it were new semantic content, so it re-lit almost every lane that vocabulary touches (litReality=115/144).

    The semantic pull: No code strings exist in this diff to ground the walk (docsOnly=true, 'no semantic-file diff'). prewalkOverlap=0 confirms the gzip-NCD reef seed found zero grounding before the walk even ran — meaning the 115 lit reality cells came almost entirely from the ballistic walk expanding against the commit-page HTML's self-referential lattice-glossary text (grid/route/topology/power-flow language matching B3,A▸C2,C and B3,A1▸C2,A3; capital/floor/dollar language matching A,A2▸C,B1 and A1,A2▸A3,B1; governance/law language matching C,A▸A2,C), not against any real work.

    Intent–reality gap: The commit message claims a bare publish chore ('chore(commit-page): publish e5c2ecb1f', no ask, no lane declared) but the receipt measured that publish landing across 115/144 lattice cells spanning grid topology, capital budgeting, and governance law — domains the publish action never touched.

    • Locate the exact ingest call that reads diff content into the reef seed (scripts/pmu/pipeline.mjs) and add an exclusion for public/commit/**/*.{html,png}
    • Verify docsOnly is currently telemetry-only (this event proves it did NOT suppress ingestion) — wire it to actually gate walk-seeding, not just annotate the receipt row
    • Add tests/pmu-simulator regression test asserting docsOnly commits keep litReality within a small multiple of litIntent (e.g. <=5x), failing on the 115x-style saturation seen here
    • Audit .thetacog/pipeline-gate-trips.ndjson for other docsOnly commit-page publishes with offPct>90 to size how many past events share this exact mechanism
    • Add public/commit/**/* to the owned-surface glob of whichever room actually runs the commit-page publish pipeline (not Terminal Voice's book/blog globs) in .workflow/rooms/*.html, so future publish events attribute correctly instead of surfacing under an unrelated room

    What we learned: docsOnly is already computed as a receipt field but is not wired to any ingest-time behavior — a self-generated commit-page publish can walk-saturate against its own descriptive lattice vocabulary even though the pipeline already knows (docsOnly=true) that there's no real content to seed from. The flag exists; the guard using it does not.

    The missing guard (the deliverable): A test asserting: for any commit where 100% of changed paths are under public/commit/**/ (self-generated publish artifacts) and docsOnly=true, litReality must not exceed litIntent by more than a small bounded ratio (e.g. 5x) — fails loudly if a publish-only commit saturates the walk the way this one did (115 vs 1).

    Detector probe: signal attribution — gzip reef 15% · ballistic walk 85%. Saturated — 115/144 lit cells (80% lattice coverage) from a single asset-only publish is far beyond right-sized breadth for that action; the walk needs an intent-fenced early stop: halt expansion once walksReality exceeds walksIntent by a fixed multiple (e.g. 10x) rather than continuing to full spread. Experiments: Re-run this exact commit's ingest with public/commit/**/*.html excluded from the seed corpus; measure whether litReality drops from 115 toward single digits · Add the walksReality/walksIntent ratio cap (10x) and re-run the last 14 days of docsOnly commit-page publishes; measure how many of their encircled regions survive the cap vs today's 8 · Strip PMU/lattice-glossary words (grid, route, topology, leverage, power flow, governance) from the gzip baseline dictionary specifically for docsOnly-flagged commits and measure whether their offPct drops below the 15 threshold

    Left unfixed, every routine docsOnly commit-page publish keeps registering as a 96%-off-lane breach, inflating this lane's measured loss-ratio with false-positive noise rather than real drift; premium is restored by excluding self-generated commit-page HTML from walk ingestion so the gate only trips on genuine intent-vs-reality divergence.

    Open the signed attestation →
  23. 2026-07-14 · 📐 architect · offPct 26

    feat(pmu): pin the numbers we say out loud — and gate them

    encircled drift panel for 74449cc69

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

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

    Open the signed attestation →
  24. 2026-07-14 · 📐 architect · offPct 32

    fix(outreach): the identity fence — I sent the enterprise pitch to carriers and brokers

    encircled drift panel for 7951b443b

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

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

    Open the signed attestation →
  25. 2026-07-14 · 📐 architect · offPct 36 · mistagged

    docs(marsh): the 30-minute agenda — and the one line that would unravel the room

    encircled drift panel for 7e9b52121

    Why it left the lane: The diff is entirely a new file, docs/outreach/accounts/marsh-agenda.md, built from client-facing meeting-logistics language: 'Attendees: Paul Denny... Mike Carls... Carlos Dias', 'What this call is... What it is not: a pitch', 'There is nothing to buy in this meeting and no price will be discussed', 'hand the demo to anyone on your team'. That vocabulary is comms/outreach semantics (audience, agenda, objection-handling, scheduling) with zero overlap to architect's owned semantics (book/design-doc/strategy). docs/outreach/ is explicitly listed as messages-network.html's owned surface, not vscode-architect.html's — so the walk's reality mass landed squarely in network's declared territory while the commit's Originating-Terminal trailer staked the architect claim.

    The semantic pull: Every load-bearing noun in the file ('Attendees', 'agenda', 'call', 'demo', 'meeting') is outreach-room vocabulary; there is no strategy-doc or book-manuscript vocabulary anywhere in the 84 added lines. The pull isn't ambiguous or borderline — it's a single-file commit whose entire content-class sits in one room's owned glob (network's docs/outreach/) while being trailer-tagged to a different room (architect) that owns none of it.

    Intent–reality gap: The commit trailers claim 'Originating-Terminal: 📐 architect' but list 'Relevant-Rooms: ☕ network, 🎩 operator, 🔒 vault' — architect isn't even named as relevant by the commit's own metadata. The receipt is scoring this event against architect's owned-surface lane, but the only file touched (docs/outreach/accounts/marsh-agenda.md) is owned by network. The gap is self-declared in the commit message itself, not something the receipt had to infer.

    • Patch the receipt/lane-resolution step (wherever room-for-offPct is computed) to prefer file-glob-owned-room over the Originating-Terminal trailer
    • Add the CLAUDE.md clarifying sentence distinguishing Originating-Terminal (physical) from lane-scoring room (file-ownership)
    • Backfill-check the architect room's other 17 out-of-lane events in the last 14 days for the same Originating-Terminal-vs-file-ownership mismatch pattern before treating the room's offPct trend (12→33) as genuine scope creep
    • Add a pre-commit or post-commit warn (non-blocking) when Originating-Terminal's owned globs match zero changed files but another room's globs match all of them
    • Cross-check vscode-architect.html's owned-surface list stays exactly book/design-doc/strategy with no accidental docs/outreach overlap

    What we learned: The room attached to a drift event is currently the self-reported Originating-Terminal trailer, not a computed fact from file ownership — and operators write content from whatever terminal they're physically in, not whatever room owns the content. This decouples 'where the operator sat' from 'whose lane the work landed in', and the receipt has been conflating the two. Prior lessons for this room were facts-only with no mechanism; this is the first pass that identifies WHY architect's offPct trend may be inflated: self-reported terminal location, not actual scope drift.

    The missing guard (the deliverable): A guard that fails (or warns) when a commit's Originating-Terminal room's owned-surface globs match none of the changed files while a different room named in Relevant-Rooms matches all of them — this is exactly the self-contradiction present in this commit's own trailers and should be catchable before the receipt renders.

    Detector probe: signal attribution — gzip reef 70% · ballistic walk 30%. litIntent=125 and litReality=123 out of a 144-cell lattice is ~87% lit on both sides — the walk is close to saturating the lattice rather than staying selective, which compresses the discriminating signal (everything looks lit, so the 36% off-lane share is riding on a nearly-full map). Concrete adjustment: lower --max-depth/ply budget for single-new-file docs-only commits like this one so the walk stops before near-total saturation and the lane signal stays legible. Experiments: Re-run this sha's receipt with docs/outreach/**/*.md added as an explicit reef seed corpus tag distinct from docs/strategy/**/*.md, and measure whether prewalkOverlap rises when outreach vocabulary is matched against an outreach-tagged intent lane instead of architect's strategy-tagged one · Compare prewalkOverlap across the room's last 18 out-of-lane events, split by whether Originating-Terminal's owned globs match the changed files or not — test whether the mistagged subset accounts for most of the offPct inflation · Lower --max-depth specifically for docsOnly=true, single-new-file commits and re-measure litIntent/litReality to see if the walk stays under ~60% saturation instead of ~87%

    Measured outcome (deterministic, not self-graded): room mean offPct 2528 over 8 commits since · dictionary ablation saved 928B

    This event nudges architect's loss-ratio up on paper (18 out-of-lane events/14 days, trend 12→33), but if the mechanism here is lane-attribution rather than genuine scope drift, the premium is restored by fixing room-resolution to file-ownership — which should retroactively clear a meaningful share of the room's flagged history rather than requiring the operator to change how or where they write outreach content.

    Open the signed attestation →
  26. 2026-07-14 · 🔒 vault · offPct 27

    feat(hive/track): alert emails only for real Chrome traffic; log everything

    encircled drift panel for 84926f100

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

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

    Open the signed attestation →
  27. 2026-07-14 · 📐 architect · offPct 23

    docs(outreach): spec + burndown, emailed

    encircled drift panel for 90aa32607

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

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

    Open the signed attestation →
  28. 2026-07-14 · 📐 architect · offPct 42

    docs(marsh): 'infinite resolution' — the instinct is right, the wording would kill him

    encircled drift panel for 9761596f1

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

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

    Open the signed attestation →
  29. 2026-07-14 · 📐 architect · offPct 25

    feat(outreach): the on-accept template — show the receipt for our own machine work

    encircled drift panel for 9788c7a2a

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

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

    Open the signed attestation →
  30. 2026-07-14 · 📐 architect · offPct 30

    docs(marsh): the OUTLET, not the corner — restore the five facts, add the forwardable paragraph

    encircled drift panel for a4f846067

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

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

    Open the signed attestation →
  31. 2026-07-14 · 📐 architect · offPct 17 · mistagged

    docs(marsh): the committee dossier — and the honest answer to the 30% question

    encircled drift panel for acfdb660b

    Why it left the lane: 100% of the diff (97 insertions) lands in docs/outreach/accounts/marsh.md — a path explicitly owned by the network room ('docs/outreach/, scripts/outreach/ — outreach scripts and tribe-blast campaigns', .workflow/rooms/messages-network.html:547), not by architect. The vocabulary itself ('Marsh', 'FINPRO', 'Denny', 'placed premium', 'committee dossier', 'underwriter') is sales/outreach-domain language with near-zero overlap to architect's owned strategy/product globs, which is why prewalkOverlap is only 9 of 132 lit-intent cells (~7%) — the reef seed itself barely grounds this text to architect before the walk even runs.

    The semantic pull: Terms like 'FINPRO US', 'placed premium', 'broker', 'underwriter', 'committee dossier' and the file path docs/outreach/accounts/marsh.md pull the reality mass toward the network/operator outreach coords; nothing in the diff touches docs/strategy/, docs/03-product/, or docs/01-business/strategy/ — architect's actual owned surface never appears as content.

    Intent–reality gap: The commit's Originating-Terminal trailer claims architect as the room, but the commit's own Relevant-Rooms trailer already names network first (☕ network, 🎩 operator, 🧪 laboratory) — the operator's own bookkeeping shows they knew this wasn't architect work. The drift receipt's offPct is scored against architect anyway because it keys off Originating-Terminal, not the file-glob-verified home room.

    • Patch the drift-receipt lane-assignment step (wherever it selects which room's owned-surface glob to diff offPct against) to compute file-glob membership across all 9 .workflow/rooms/*.html 'Owned file/dir surface' lists first, and only fall back to Originating-Terminal when no glob matches any changed file.
    • Re-run the receipt for acfdb660b against network's owned surface (docs/outreach/) instead of architect's and confirm offPct drops under 15 — this is the cheap falsification test for the whole hypothesis.
    • Add a regression test asserting: any commit whose changed files are 100% inside one room's owned glob is never scored against a different room's offPct threshold, even when Originating-Terminal differs.
    • Audit the other 15 out-of-lane events logged for architect in the last 14 days for the same terminal-vs-glob mismatch before assuming they're genuine architect-scope drift.

    What we learned: CLAUDE.md already documents and PERMITS Originating-Terminal/Relevant-Rooms divergence as normal operator behavior (sit in one terminal, do another room's work) — but the drift-receipt pipeline apparently still gates offPct/lane threshold off Originating-Terminal alone, so a documented-benign divergence is being scored as drift. This is a receipt-calibration bug, not an operator-discipline bug — distinct from the prior three facts-only interventions for this room, none of which identified that the lane assignment itself, not the work, might be wrong.

    The missing guard (the deliverable): tests/pmu-simulator/lane-uses-glob-not-terminal.test.js — asserts that for any commit, the room used as the offPct/lane-threshold denominator is determined by matching changed files against every room's 'Owned file/dir surface' glob (i.e. Relevant-Rooms), and fails if Originating-Terminal alone is used as the sole lane when a different room's glob matches 100% of the changed files.

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Right-sized: litIntent 132 vs litReality 128 is a tight, symmetric spread with no sign of shallow cutoff or runaway saturation. No depth adjustment needed here — the signal to chase is the low prewalkOverlap, i.e. reef seed grounding, not walk parameters. Experiments: Recompute the acfdb660b receipt with network (not architect) as the intent lane and confirm offPct falls below 15 — validates that lane-selection, not content, was the defect. · Run reef-enrich to strengthen the outreach-account-dossier vocabulary cluster (Marsh/FINPRO/underwriter/placed-premium/committee) under network's reef slice, then re-measure prewalkOverlap on the next docs/outreach/accounts/*.md commit to see if it rises. · Ablation-test excluding docs/outreach/** entirely from any non-network room's offPct denominator across the last 14 days of architect events, and measure how many of the 16 logged out-of-lane events disappear.

    Measured outcome (deterministic, not self-graded): room mean offPct 2527 over 8 commits since · dictionary ablation saved 598B

    This event is a false claim against architect's loss ratio, not a real one — its lane's premium should be restored the moment the receipt is recomputed against network's owned docs/outreach/ surface instead of Originating-Terminal, with no change needed to the underlying work.

    Open the signed attestation →
  32. 2026-07-14 · 📐 architect · offPct 49

    chore(self-prompt): sp-070 — send securities-counsel red-line memo tomorrow 09:00 ET (GCal 52l6ru3i)

    encircled drift panel for bd97add08

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

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

    Open the signed attestation →
  33. 2026-07-14 · 📐 architect · offPct 60

    feat(outreach): reception is IN — 5 clicked, and a measured law about addresses

    encircled drift panel for cc85255d2

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

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

    Open the signed attestation →
  34. 2026-07-14 · 🎤 voice · offPct 35

    feat(bookclub): immortal hold — a forgotten pause can no longer kill the cadence

    encircled drift panel for dc21bda10

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

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

    Open the signed attestation →
  35. 2026-07-14 · 🧪 Cursor Laboratory · offPct 96

    chore(commit-page): publish 103656281

    encircled drift panel for dce89ff75

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

    Open the signed attestation →
  36. 2026-07-14 · 🎤 voice · offPct 36

    fix(bookclub): sink runs must NOT write the live idempotency ledger

    encircled drift panel for e5c2ecb1f

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

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

    Open the signed attestation →
  37. 2026-07-14 · 🔒 vault · offPct 18 · structural

    feat(outreach): Chrome-only alert bar — only a complete Chrome-family UA pages the operator (ledger still reads everything)

    encircled drift panel for e6c2aa4ce

    Why it left the lane: The commit's own trailers name the true content lane in plain text: `feat(outreach)`, the Story line's 'Marsh scanner burst,' and the diff's `isAlertWorthyClick`/`browserSense`/click-sense.ts work are exactly the keywords builder owns ('implement','build') and network owns ('marsh','outreach','travelers') per .workflow/rooms/*.html. Vault's owned keywords are 'thetacog-mcp','patent','proof' — none of which appear anywhere in this diff. The receipt fired under room vault only because Originating-Terminal recorded the physical WezTerm terminal, not because any lit cell semantically belongs there.

    The semantic pull: 'Marsh scanner burst' and 'outreach' pull directly into network's owned coordinate; 'Applied to both alert surfaces,' 'isAlertWorthyClick,' and the click-sense.ts/route.ts edits pull into builder's 'implement/build' coordinate — both outside vault's patent/proof/thetacog-mcp lane, which is why the walk lit 111 reality cells against a 105-cell intent set that never claimed this content.

    Intent–reality gap: The commit message and its own Relevant-Rooms trailer (☕ network, 🔨 builder, 🧭 navigator) already declare this is outreach/click-notification engineering — vault is not even listed as relevant. Yet the receipt scored offPct against room vault because that's where Originating-Terminal points, so the drift measured a lane the commit itself never claimed.

    • Patch the receipt-attribution script to prefer Relevant-Rooms over Originating-Terminal for lane/offPct scoring
    • Add a guard test asserting lane attribution equals the top Relevant-Rooms entry when Relevant-Rooms is populated and disjoint from Originating-Terminal
    • Audit vault's other 5 out-of-lane events in the last 14 days for the same Originating-Terminal-vs-Relevant-Rooms mismatch pattern before assuming code-level causes
    • Make builder's and network's owned-surface globs explicit in .workflow/rooms/iterm2-builder.html and messages-network.html so sync-vectors.mjs scores src/lib/notify/** and src/app/api/outreach/** correctly regardless of terminal
    • Document in CLAUDE.md's COMMIT MESSAGE STRUCTURE section that Originating-Terminal ≠ drift lane

    What we learned: The fix data for this drift class already exists in every commit — the Relevant-Rooms trailer is computed and written at commit time — but the receipt pipeline isn't reading it; it's reading Originating-Terminal instead, so the same operator working from the vault terminal on non-vault content will keep re-triggering this exact class until the attribution step is repointed, independent of code quality.

    The missing guard (the deliverable): tests/pmu-simulator/lane-attribution-prefers-relevant-rooms.test.mjs — asserts the drift receipt's room-for-scoring equals the top Relevant-Rooms entry (not Originating-Terminal) whenever Relevant-Rooms is present and disjoint from Originating-Terminal's owned-surface keywords.

    Detector probe: signal attribution — gzip reef 30% · ballistic walk 70%. Saturated, not right-sized: 100% of walked cells lit on both intent and reality sides means the ballistic walk isn't decaying/pruning weak branches at all for this room, so it fully explores into loosely-connected coordinates (like vault's patent/proof lane touching outreach content) instead of concentrating on the true owned lane. Adjustment: increase decay-rate or cap ply-depth specifically when a room's keyword-overlap with the diff is near-zero, so the walk stops short of full saturation instead of lighting every reachable cell. Experiments: Re-run this commit's ingest using Relevant-Rooms (network) as the seed room instead of vault (Originating-Terminal) and measure whether offPct drops below 15 · Seed 'marsh' and 'outreach' explicitly into network's keyword set via sync-vectors.mjs and re-run on this commit's diff, measuring whether network's prewalkOverlap exceeds vault's on identical content · Pull litIntent/walksIntent ratios across vault's 6 recent out-of-lane events — if all show the same 100%-saturation pattern, decay-rate tightening is warranted repo-wide, not just for this event

    The code itself is sound and fully tested (29 green fixtures), so this event carries no real loss — it inflates vault's apparent loss-ratio purely through misattributed lane-scoring, and premium is restored the moment the receipt pipeline reads Relevant-Rooms instead of Originating-Terminal for lane assignment.

    Open the signed attestation →
  38. 2026-07-14 · 📐 architect · offPct 37

    docs(marsh): FINAL pack — hostile ghost-read cut three of my own lines; Hooper removed; no-exit rejected

    encircled drift panel for f52a248a6

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

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

    Open the signed attestation →
  39. 2026-07-13 · 📐 VS Code Architect · offPct 98

    chore(commit-page): publish f4436f43b

    encircled drift panel for 0e8596040

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

    Open the signed attestation →
  40. 2026-07-13 · 🔨 builder · offPct 36

    spec(journey): pass 2 — brand-voice gate criterion, iamfim=checkout-only, champagne-paradox naming

    encircled drift panel for 0ea67d891

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

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

    Open the signed attestation →
  41. 2026-07-13 · 🔨 builder · offPct 66

    test(reorg): THE REGISTER GATE — the process fix; the safety-marquee class can never ship quietly again

    encircled drift panel for 141c70902

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

    Measured outcome (deterministic, not self-graded): room mean offPct 2312 over 13 commits since

    Open the signed attestation →
  42. 2026-07-13 · 🔨 builder · offPct 25

    content(spine): the convergence copy — Black-Scholes moment unmissable, capital unblocked, the reveal

    encircled drift panel for 19bed53c3

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

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

    Open the signed attestation →
  43. 2026-07-13 · 🔒 vault · offPct 26 · mistagged

    feat(bookclub): individual send is THE mode for both arms — the A/B settled, transport decoupled from timing

    encircled drift panel for 23fb61582

    Why it left the lane: The diff never touches vault's owned surface (docs/01-business/patents/, docs/legal/, data-room*/, docs/incidents/) at all — it's entirely scripts/bookclub/send-daily.mjs and tests/ops/bookclub-send-throttle.test.js. The commit's own vocabulary ('the A/B', 'settled', 'arm', 'experiment vs control', 'default mode') reads as a negotiation/decision-settlement pattern, which the walk spreads toward B2.Tactics.Deal (5/26 of the out-of-lane mass) rather than anywhere near legal/patent/incident territory — there is no vault-adjacent content for the walk to anchor on, so it saturates broadly across unrelated coords instead.

    The semantic pull: Strings 'the A/B ... is settled', 'arm alternation', 'BOOKCLUB_SEND_MODE=bcc override', 'default mode individual' — decision-settlement and toggle/override language — pulled placement toward B2.Tactics.Deal and away from the C,B3 git-discipline anchor the receipt is actually scored against; none of it has any lexical gravity toward patents/legal/incidents.

    Intent–reality gap: The commit claims a narrow, correctly-scoped bookclub send-mode decision + guard (and its own Relevant-Rooms trailer already names ☕ network, 🎤 voice, 🔨 builder — never 🔒 vault). The receipt measures drift against the ORIGINATING-TERMINAL room (vault, where the operator physically sat), not the room the trailer already says the work belongs to — so the 26% offPct is measuring a terminal/content mismatch the commit message itself disclosed, not a quality problem.

    How it was fixed: Re-key the lane-threshold check to the Relevant-Rooms trailer (or best-fit owned-surface glob match) instead of Originating-Terminal whenever they diverge; Originating-Terminal stays informational (which physical room the operator worked from) but should not drive offPct scoring against a room whose owned-surface glob the diff never touches.

    • Add explicit negative-owned-surface entries to .workflow/rooms/vault.html: !scripts/bookclub/**, !tests/ops/bookclub-*.test.js
    • Add scripts/bookclub/**, tests/ops/bookclub-*.test.js, data/bookclub/** to builder's or network's owned-surface glob in .workflow/rooms/*.html
    • Patch the receipt/offPct computation to prefer the Relevant-Rooms trailer (fallback to Originating-Terminal only when trailer absent or empty)
    • Add a commit-trailer lint that flags zero-overlap between Originating-Terminal's owned globs and the changed files as 'terminal-pass-through' so it doesn't accrue against that room's rolling offPct streak
    • Document in CLAUDE.md under the room list that vault is a WezTerm physical terminal, not exclusively a legal/patent content lane — cross-domain work committed from vault is expected and should route lane-scoring by Relevant-Rooms

    What we learned: The receipt scores offPct against the room the operator was PHYSICALLY sitting in (Originating-Terminal), not the room the diff's own Relevant-Rooms trailer already names correctly — the correct routing signal exists in every commit message and is simply unused by the lane-threshold check. This is a wiring gap in room attribution, not a walk-accuracy or reef-quality problem.

    The missing guard (the deliverable): tests/pmu-simulator/room-lane-uses-relevant-rooms-not-terminal.test.mjs — asserts that for any commit where the Relevant-Rooms trailer excludes Originating-Terminal, the lane-threshold offPct check evaluates against Relevant-Rooms (or glob-best-match), not Originating-Terminal.

    Detector probe: signal attribution — gzip reef 35% · ballistic walk 65%. Right-sized, not shallow or wasted — walksIntent==litIntent and walksReality==litReality means every walked cell lit (full saturation, no idle plies). The lever isn't walk depth, it's reef seeding quality: with only 7/139 pre-walk overlap the walk had almost nothing on-lane to lock onto before spreading. Adjustment: strengthen the initial reef anchor for bookclub/ops vocabulary rather than increasing max-depth. Experiments: Create a dedicated bookclub/ops reef cluster keyed on scripts/bookclub/** + data/bookclub/** and re-run this sha's receipt to measure whether prewalkOverlap rises above 7 and offPct drops below 15 · Re-seed using Relevant-Rooms trailer terms (network/voice/builder) instead of Originating-Terminal (vault) for the last 20 vault-terminal commits and compare mean offPct before/after · Ablate 'the A/B', 'settled', 'arm' from the B2.Tactics.Deal reef cluster and re-score this commit to test whether that specific vocabulary is the actual pull toward Deal, or whether it's a generic decision-language artifact

    Measured outcome (deterministic, not self-graded): room mean offPct 301 over 4 commits since · dictionary ablation saved 467B

    This event is a false debit against vault's loss-ratio — it inflates 🔒 vault's out-of-lane count for content it never owned, so premium is restored not by changing the code but by re-routing lane scoring to the trailer room the commit already disclosed correctly.

    Open the signed attestation →
  44. 2026-07-13 · 📐 VS Code Architect · offPct 84 · structural

    chore(commit-page): publish 34a7f698b

    encircled drift panel for 2470dce92

    Why it left the lane: The diff is asset-only (index.html + og.png + trip-encircled png, all under public/commit/34a7f698b/) — there is zero semantic code diff for the walk to place. With no real content signal, the gzip-NCD reef seed and the recursive walk both fall back to matching against the boilerplate structure of the commit-page template itself (headings/labels like 'target', 'position', 'goal', 'tactics', 'leverage' that the commit-triptych HTML template emits on every publish), which happen to be the literal vocabulary of the A1/B/A3-family strategy-and-tactics lattice cells. The walk isn't reading 'this commit does strategy work' — it's reading 'this HTML contains the words strategy/tactics/target use.'

    The semantic pull: litReality=31 vs litIntent=1 and walksReality=15 vs walksIntent=1 — the reality side has 15x-31x more surface to grip than the thin intent (a 7-word commit subject), so once the reef seeds anywhere near A/A1/B, the walk's ply1 definer chain (B,B1→B,B2→B,B3→B,C1→B,C2→B,C3→C,C1...) cascades across the entire Tactics/Strategy quadrant just from structural adjacency, not from anything the diff actually says.

    Intent–reality gap: The commit claims a narrow, mechanical act ('chore(commit-page): publish 34a7f698b') but the receipt measured mass spread across 6 red + 1 amber region spanning strategy-goal-tactics-leverage-infrastructure coordinates — a docsOnly=true, code-free publish artifact is being scored as if it made a strategic claim.

    • Add a docsOnly-commit early-exit in the lane-threshold detector (scripts/pmu/pipeline.mjs or wherever offPct is computed) that classifies public/commit/**/* -only diffs as a fixed 'artifact-publish' lane, bypassing gzip/walk placement entirely.
    • Update the commit-page publish script's commit-message template to include a docs-only/template-only marker so future publishes carry an explicit fence.
    • Strip or de-weight the commit-triptych HTML template's own strategy/tactics vocabulary (target, position, goal, leverage, tactics) from the reef's gzip-NCD dictionary so template boilerplate stops seeding lattice placement.
    • Add a regression test (tests/pmu-simulator or tests/pmu) asserting that a synthetic docsOnly=true, zero-code-diff commit produces offPct=0 / lane='artifact-publish', not a real lattice placement.
    • Cross-reference this against the room's PRIOR LESSON (5748b0c51: Originating-Terminal vs content-lane conflation) — this event is a SEPARATE mechanism (docsOnly template-vocabulary bleed, not room/lane conflation) and should be tracked as its own class in the anti-rules ledger.

    What we learned: docsOnly asset-publish commits (index.html + png artifacts, zero source diff) are being run through the SAME full gzip+walk lattice placement as substantive code commits — the detector has no docsOnly early-exit, so the commit-triptych template's own boilerplate vocabulary (which literally contains lattice-cell terminology like 'target', 'goal', 'leverage', 'tactics') becomes the walk's only seed material and drags placement across the whole Strategy/Tactics quadrant. This is distinct from the prior 5748b0c51 lesson (room/lane conflation on Originating-Terminal) — that was a room-attribution bug; this is a content-classification bug where docsOnly commits get scored as if they carry semantic intent.

    The missing guard (the deliverable): tests/pmu-simulator/docs-only-commit-skips-lattice.test.mjs — asserts that any commit whose diff stat matches ONLY public/commit/**/{index.html,og.png,trip-*.png} (docsOnly=true in the receipt row) is classified into a fixed low-drift 'artifact-publish' lane with offPct=0, never routed through gzip-NCD reef seeding or the ballistic walk.

    Detector probe: signal attribution — gzip reef 70% · ballistic walk 30%. litReality=31 against a 144-cell lattice with only 15 walksReality steps means the walk is spreading efficiently (roughly 2 lit cells per walk-step) but has nothing to anchor against (litIntent=1, walksIntent=1) — this reads as UNDER-CONSTRAINED, not saturated: the walk is right-sized for a real commit but starved of an intent seed here, so its normal spread behavior looks like runaway drift purely because the denominator (intent) collapsed to a single point. Adjustment: gate the walk from running its full reality-side pass when litIntent<=1 and docsOnly=true — fall back to a fixed classification instead of letting an unconstrained walk run. Experiments: Recompress the last 30 days of docsOnly=true commits with and without the commit-triptych HTML template's boilerplate strings stripped from the gzip dictionary; measure whether offPct drops toward 0 for that cohort (ablation test). · Add a synthetic docsOnly fixture commit (index.html + 2 pngs, no code) to the reef test corpus and assert its offPct stays under threshold=15 after the early-exit lands. · Measure prewalkOverlap distribution specifically for docsOnly=true commits over the last 90 days — if it clusters near 0 the way this event did, that's confirmation the reef seed step itself should special-case this commit shape rather than relying on the walk to compensate.

    This event is a false-positive breach, not a real lane excursion — left unguarded it inflates this room's loss-ratio with noise (mean offPct now 91 after 3 such events) and erodes trust in the detector itself; the docsOnly early-exit restores premium accuracy by removing structurally-guaranteed false breaches from the room's trip history.

    Open the signed attestation →
  45. 2026-07-13 · 🔨 builder · offPct 47

    feat(reorg): gate the coaching-app surfaces — the voice IS the gate criterion

    encircled drift panel for 256483803

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

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

    Open the signed attestation →
  46. 2026-07-13 · 🔨 iTerm Builder · offPct 97 · structural

    chore(commit-page): publish dc0369906

    encircled drift panel for 26bb9f022

    Why it left the lane: scripts/pmu/publish-commit-page.mjs:141 emits the literal string 'chore(commit-page): publish ' + shaShort as the ENTIRE commit message — no summary of what public/commit/dc0369906/index.html actually contains. That 227-line index.html is itself a rendered drift-receipt report, so its prose necessarily recites lattice vocabulary ('governance', 'tactics', 'maneuver', 'feedback loop', 'binding rule') as its subject matter. The intent walk (litIntent=1, walksIntent=1) seeds from the boilerplate string alone and barely moves off the chore/publish cell, while the reality walk (litReality=128, walksReality=128 — fully saturated) reads the actual page content and lights every domain the receipt narrates, including C,A2 / C,C3 / C3,C / A2,C3 / C,B1.

    The semantic pull: The diff has zero semantic-file changes (docsOnly:true, asset-only commit) — the pull isn't from new code, it's from the STATIC ARTIFACT being published. The published index.html is a rendered copy of the receipt narrative (this very pipeline's region stories: 'maneuver choices', 'binding mandate', 'governance rule of law', 'feedback loop', 'hypothesis test cycle') which is exactly the vocabulary anchoring the 8 encircled coords (C,A2 · C,C3 · C3,C · C1,C1 · A3,C1 · C,B1 · C1,A3 · C,A). The commit message carries none of it, so the intent walk never reaches those cells while the reality walk (reading the actual file) does.

    Intent–reality gap: The commit claims a single mechanical chore ('publish dc0369906') with no content description, but the receipt measured a fully-saturated reality walk (128/128 lit) spanning governance, tactics, and feedback-loop lattice cells — because the thing being published is itself an analytical report, not a inert asset.

    • scripts/pmu/publish-commit-page.mjs:141 — add Content-Regions trailer to the git commit message (see spec_rewrite)
    • tests/pmu-simulator/ — add a guard asserting every chore(commit-page) commit message contains a Content-Regions (or equivalent) trailer, not the bare boilerplate string
    • docs/architecture/anti-rules-ledger.md — consider adding an AR entry: 'self-referential publish commits must not use single-token commit messages' if this recurs after the fix
    • scripts/pmu/publish-commit-page.mjs — confirm the region-summary computation reuses the SAME tolerance-panel data already rendered for the page (no second LLM-free recompute needed, avoid drift between what's on the page and what's in the trailer)

    What we learned: This room's offPct-97 events are not code drifting into the wrong lane — they are a SELF-REFERENTIAL PUBLISHING PATTERN: the artifact this pipeline publishes IS a rendering of its own lattice vocabulary, so any commit-message template that doesn't echo that content will structurally read as saturated-out-of-lane on every single publish, forever, independent of what commit dc0369906 (or any other) actually contained.

    The missing guard (the deliverable): tests/pmu-simulator/commit-page-message-not-boilerplate.test.mjs — assert that every 'chore(commit-page): publish <sha>' commit message in git log contains more than the bare template (e.g. a Content-Regions trailer or equivalent non-empty second line); fail if publish-commit-page.mjs regresses to the single-line literal.

    Detector probe: signal attribution — gzip reef 25% · ballistic walk 75%. Reality is saturated (litReality=walksReality=128, hit its ceiling) while intent is starved (litIntent=walksIntent=1, never left its seed) — this is not 'the walk mis-sized', it's an input-starvation problem: the walk is working correctly on both sides, but intent was handed almost nothing to walk from. Adjustment: don't change ply-depth or cap; fix the intent SEED (the commit message) per spec_rewrite so the intent walk has multiple anchor terms to fan out from, which should let litIntent grow past 1 and narrow the litReality/litIntent gap organically. Experiments: Re-run this exact sha's receipt after landing the Content-Regions trailer fix, on a synthetic re-commit, and confirm litIntent rises above 1 and offPct drops measurably — this isolates the fix's effect from unrelated commit noise. · Sample the last 20 'chore(commit-page): publish <sha>' commits and compute mean offPct for that exact message pattern in isolation (not room-wide) to confirm this IS a message-template-caused class, not commit-specific noise. · Ablate: temporarily seed the intent walk with the published index.html's own <title>/<h1> text (already available at render time) instead of the git commit message, and compare offPct — if it drops sharply, that confirms message-thinness (not lattice/walk misconfiguration) is the root cause.

    A structural, class-wide offPct=97 on every self-referential commit-page publish degrades this lane's loss-ratio signal by making 'out-of-lane' noisy and non-diagnostic (real drift can't be distinguished from this template artifact) — premium is restored by shipping the Content-Regions trailer fix + guard so future publish commits carry real intent vocabulary and the offPct metric regains discriminating power for this lane.

    Open the signed attestation →
  47. 2026-07-13 · 🔨 builder · offPct 25

    spec(journey): pass 9 — qwen cold-read graded, three register failures fixed in the same pass

    encircled drift panel for 285cf5140

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

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

    Open the signed attestation →
  48. 2026-07-13 · 🔨 builder · offPct 30

    content(spine): the marquee leads with the primitive lineage — safety demoted to a couched fact, in sight

    encircled drift panel for 29129bfb2

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

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

    Open the signed attestation →
  49. 2026-07-13 · 📐 architect · offPct 45

    feat(ghost-read): per-prompt QC delegation — route the reader by placement

    encircled drift panel for 34a7f698b

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

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

    Open the signed attestation →
  50. 2026-07-13 · 📐 architect · offPct 39 · mistagged

    content(standard): define drift-gate signal + physical trust telemetry on first use

    encircled drift panel for 39fecfee9

    Why it left the lane: The commit is a two-line copy edit inside src/app/standard/page.tsx (a live Next.js page component) but was tagged Originating-Terminal 📐architect. Architect's owned surface is docs/strategy/, docs/03-product/, .workflow/rooms/*.html, docs/01-business/strategy/, CLAUDE.md — no src/app/** glob exists in that lane at all, so 100% of the reality mass in this diff lands outside architect's claimed coordinates.

    The semantic pull: The inserted strings are page-copy glosses, not strategy prose: 'a signed receipt of whether an AI agent stayed in the lane it was given, that anyone can recompute' and 'a recomputable receipt of whether an AI agent stayed in its lane' — both are OpenGraph/hero marketing text edits in a src/app page file. That's build/content-surface language, not docs/strategy language, which is what pulls the reality walk toward non-architect coords (walksReality 107 vs walksIntent 86, litReality 117 vs litIntent 96 — reality consistently spread ~20% wider than the architect-scoped intent).

    Intent–reality gap: The commit message frames this as a legitimate de-jargon fix on /standard (Persona-Intent: broker should grasp the signal on first screen) — the WORK is sound. But the receipt doesn't grade the work's quality, it grades WHERE it landed: a page-component edit tagged under a docs-only room's trailer. The claim ('architect did this') and the measurement (100% of the diff sits outside architect's owned glob) contradict.

    How it was fixed: Re-tag Originating-Terminal to whichever room actually owns src/app/**/page.tsx (builder or navigator per the existing Relevant-Rooms list) and keep 📐architect only in Relevant-Rooms if the strategic rationale (broker comprehension) genuinely informed the edit. Do not widen architect's owned-surface glob to include live pages unless this pattern recurs and is a deliberate exception.

    • Confirm which room's .workflow/rooms/<room>.html actually claims src/app/**/page.tsx today (likely builder or navigator) and add it explicitly if missing.
    • Add an explicit EXCLUDE note to .workflow/rooms/architect.html's Owned file/dir surface: 'docs/strategy + docs/03-product only — NOT src/app/**' so future tagging doesn't default here by habit.
    • Update the commit-trailer guidance in CLAUDE.md's COMMIT MESSAGE STRUCTURE section: content(<page>): commits touching src/app/** should set Originating-Terminal to the page-owning room, not the room that reasoned about the copy.
    • If architect legitimately does recurring first-use-glossary work across live pages, document that as a named exception (with its own glob) rather than let it silently inflate offPct each time.

    What we learned: The Originating-Terminal/Relevant-Rooms trailer is currently chosen by who reasoned about the change (architect thought about broker comprehension), not by whose owned-surface glob the changed files fall under — the tagging step has no cross-check against .workflow/rooms/*.html globs, so any commit whose THINKING originates in one room but whose FILES live in another room's surface will show high offPct by construction, independent of code quality.

    The missing guard (the deliverable): A pre-commit (warn-only) check that computes glob-overlap between the commit's changed files and the Originating-Terminal room's 'Owned file/dir surface' in .workflow/rooms/<room>.html, and prints a mismatch warning (with a suggested correct room) when overlap is 0%.

    Detector probe: signal attribution — gzip reef 25% · ballistic walk 75%. Not saturated (fill 1.85% is far below the 70% ceiling) and not too shallow (2 plies propagated fine on both sides) — it's right-sized but UNBALANCED: the reality-side walk was allowed to explore ~20% more territory than the intent-side walk for the same commit, which mechanically inflates offPct whenever intent is narrowly scoped (architect's docs-only lane) and reality is a src/app file with wider connectivity. Adjustment: normalize walksReality to walksIntent's budget (or vice versa) before computing offPct, so lane mismatch isn't conflated with walk-budget asymmetry. Experiments: Re-run sha 39fecfee9 with the reef seed weighted by changed-file-path-to-room-glob match (not just commit-message term overlap) and measure whether offPct drops toward the correct room. · Cap walksReality at walksIntent's budget (86) for this commit and re-measure offPct in isolation, to quantify how much of the 39% is walk-budget asymmetry vs. genuine lane mismatch. · Add owned-surface-glob match as an explicit reef seed feature and re-check whether prewalkOverlap becomes more discriminating than its current ceiling value of 1.

    Measured outcome (deterministic, not self-graded): room mean offPct 7 over 4 commits since · dictionary ablation saved 711B

    One mistagged content commit in 14 days is noise, not a pattern — this lane's premium is unaffected as a one-off, but if the room-tagging habit (thinker's room, not file-owner's room) repeats, offPct breaches will compound and the lane's loss-ratio signal degrades; the fix (owned-surface cross-check guard) restores it before a second event.

    Open the signed attestation →
  51. 2026-07-13 · 🔨 builder · offPct 19

    content(receipt): region reads are LABELS, not LLM-looking prose

    encircled drift panel for 430705d14

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

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

    Open the signed attestation →
  52. 2026-07-13 · 🔨 builder · offPct 28

    content(spine+spec): maximise the financial — AI risk named, the exceeded read, every beat closes on a number

    encircled drift panel for 440734633

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

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

    Open the signed attestation →
  53. 2026-07-13 · 🎤 voice · offPct 21

    fix(outreach): gate the click thank-you on the scanner sensor — stop burning emails on prefetch

    encircled drift panel for 4ea39ccba

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

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

    Open the signed attestation →
  54. 2026-07-13 · 📐 VS Code Architect · offPct 29 · mistagged

    fix(broker-read): one holistic read, not per-paragraph fan-out (speed)

    encircled drift panel for 5748b0c51

    Why it left the lane: The diff is entirely inside scripts/blog/broker-read.mjs, changing extractProse()'s join strategy and the temp-file write path — every load-bearing string ('per-paragraph fan-out', 'one holistic read', 'qwen calls', 'ETIMEDOUT', 'cap ~4.5k', 'single call') is operations/pipeline vocabulary, not strategy-doc vocabulary. None of it touches docs/strategy/, docs/03-product/, .workflow/rooms/*.html, .workflow/cognitive-dashboard.html, docs/01-business/strategy/, or CLAUDE.md — the room's actual owned surface. The commit's own directive lens (this turn) shows the same pull pattern: in-lane mass sits at C,* and A1,A2/A1,A3 combos while the reef seeds only 2 prewalk overlap tokens against the Architect corpus, so the walk propagates from an almost-empty seed straight into Operations-grid coordinates (C1.Grid/C2.Loop/C3.Flow), which is exactly where a timeout/loop/fan-out fix belongs.

    The semantic pull: 'per-paragraph fan-out' → loop-structure vocabulary (C2.Loop); 'one holistic read' / 'single ... call' → pipeline consolidation vocabulary (C1.Grid); 'ETIMEDOUT' / 'cap ~4.5k' / 'timeout to ~70s' → runtime/perf vocabulary (C3.Flow). None of these terms co-occur with the Architect lane's own vocabulary (strategy, product spec, cognitive-dashboard, CLAUDE.md rule prose), so the reef seed starts thin (prewalkOverlap=2) and the walk fills 134/144 reality cells while intent only lit 98 — the extra 36 cells are exactly the Operations-grid spread this diff's vocabulary predicts.

    Intent–reality gap: The commit message claims a scoped speed fix to a blog-content helper script — true and narrow. The receipt measured that scoped, correct fix as 29% out of the ARCHITECT lane, because the commit was room-tagged by Originating-Terminal (which terminal the operator was physically sitting in) rather than by which room's owned-surface glob actually contains scripts/blog/broker-read.mjs. The work is not wrong; the lane it was scored against is wrong.

    How it was fixed: Re-tag: score this commit's lane-threshold against a Relevant-Rooms glob match (scripts/blog/** → the blog-content/builder-type room) instead of against Originating-Terminal (Architect). Either add scripts/blog/** to Architect's owned-surface glob (if Architect legitimately maintains broker/monologue infra) or move the lane check to key off Relevant-Rooms, which CLAUDE.md already documents as the intended distinct field.

    • Add `scripts/blog/**` and `.thetacog/funnel-monologue/**` to the owned-surface glob of the room that actually maintains the broker/monologue pipeline (not Architect's docs/strategy glob) in `.workflow/rooms/*.html`.
    • Point the drift-receipt lane-threshold computation at Relevant-Rooms (file-glob match) rather than Originating-Terminal for offPct scoring.
    • Backfill a Relevant-Rooms trailer convention check so future scripts/blog/*.mjs commits from any terminal declare the correct owning room explicitly.
    • Audit other Architect-terminal commits touching scripts/blog/** or scripts/ for the same terminal-vs-glob mismatch pattern.
    • Document in CLAUDE.md's COMMIT MESSAGE STRUCTURE section that lane enforcement reads Relevant-Rooms, not Originating-Terminal, to close the ambiguity this event exposed.

    What we learned: Originating-Terminal and content-lane ownership are two independent axes by design (CLAUDE.md already says so), but the lane-threshold detector currently scores offPct against Originating-Terminal room ownership — so any legitimate commit made 'from' one room while touching another room's owned files will trip the detector even with zero real boundary violation. This is the first recorded event for this room and it reveals a detector-level room/lane conflation, not a content-quality problem.

    The missing guard (the deliverable): tests/pmu-simulator/room-lane-uses-relevant-rooms-not-terminal.test.mjs — asserts offPct/lane-threshold is computed from the commit's Relevant-Rooms glob match, not from Originating-Terminal, so a correctly-scoped commit made from an unrelated terminal never trips the drift gate.

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. litReality=134/144 (93%) is near saturation for a 7-line single-file diff — too broad for the actual change size, consistent with the known 'walk saturates by ply 8' finding. Adjustment: scale max-depth/plies to diff size (changed-line count) so a tiny infra tweak like this one doesn't spread to near-full lattice fill, which would sharpen the offPct signal instead of diluting it in a near-saturated reality map. Experiments: Re-run this commit's reef seed with scripts/blog/** temporarily added to the Architect corpus and re-measure prewalkOverlap/offPct — confirms whether the drift is pure glob-ownership mismatch vs real semantic drift. · Recompute offPct for the last 20 flagged events using Relevant-Rooms instead of Originating-Terminal as the scoring room, and diff the flagged sets — measures what fraction of 'drift events' are terminal/lane mismatches like this one. · Cap max-depth for diffs under ~20 changed lines and re-measure litReality/litIntent fill — check whether fill drops meaningfully below the current 93% saturation for small infra commits.

    Measured outcome (deterministic, not self-graded): room mean offPct 91 over 3 commits since · dictionary ablation saved 666B

    This is a false-positive-shaped loss for the Architect lane — correct, narrowly-scoped work mis-scored against the wrong room — so it shouldn't move Architect's loss-ratio once the detector is repointed to Relevant-Rooms; until fixed, this lane's measured premium is inflated by terminal-tag noise rather than a real boundary violation.

    Open the signed attestation →
  55. 2026-07-13 · 🔨 builder · offPct 17

    fix(pmu-email): EXACTLY-ONCE receipt sends — the doubles are dead; hard guard locks the selection context

    encircled drift panel for 597b630be

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

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

    Open the signed attestation →
  56. 2026-07-13 · 📐 architect · offPct 33 · structural

    feat(bookclub): two-stage Signal — magnet floor feeds the LLM re-rank prompt

    encircled drift panel for 62290139a

    Why it left the lane: The commit's Originating-Terminal claims 📐 architect, whose entire owned surface is doc/strategy prose (docs/strategy/, docs/03-product/, .workflow/rooms/*.html, docs/01-business/strategy/, CLAUDE.md) — zero executable code. But 100% of the diff (32+19 lines) lands in scripts/bookclub/signal-magnet.mjs and tests/bookclub/signal-magnet.test.mjs. Neither path appears in ANY room's static 'Owned file/dir surface' list — grepping all nine .workflow/rooms/*.html files, scripts/bookclub/ only surfaces inside messages-network.html's own auto-generated dashboard JSON ('focus_areas': '2026-07-13 — scripts/bookclub (19c, outreach-anchored) · outreach / same-vector / receipt'), never in a formal <li> ownership entry. The commit message's vocabulary — 'Design settled', 'maximise pressure to forward', 'a general curator can't produce', prompt-engineering-as-product-decision — reads structurally like docs/strategy/ prose, which is exactly what pulled the trailer-tagging step toward 📐 architect even though the actual bytes are an operational outreach script that ☕ network already implicitly claims.

    The semantic pull: Strategic/product-decision language in the commit body ('Operator: include it in the prompt, then grade/sort by it', 'Design settled: 3 stories', 'Maximise pressure to forward') mirrors the prose register of docs/strategy/ and docs/03-product/ — architect's actual owned surface — even though those files were never touched. The real diff strings (buildSignalPrompt, magnetScore, poolFloor, the 4 new test assertions) are pure scripts/bookclub implementation, which has no formal room claim anywhere in .workflow/rooms/*.html and only shows up as network's own dashboard-detected focus area.

    Intent–reality gap: The commit claims architectural/strategy origination (📐 architect) for work that is entirely inside an unclaimed operational-code directory (scripts/bookclub/, tests/bookclub/) that no room's static owned-surface glob covers — so the receipt correctly measured the mass landing outside the claimed lane, because the claimed lane (architect's doc/strategy surface) was never where the bytes went.

    • Add `<li><code>scripts/bookclub/</code>, <code>tests/bookclub/</code> — Signal curation: magnet floor + LLM re-rank pipeline</li>` to messages-network.html's Owned file/dir surface list
    • Add a matching Forbidden-surface line to vscode-architect.html: `<li><code>scripts/bookclub/</code>, <code>tests/bookclub/</code> — owned by ☕ Network</li>` (mirrors the existing .thetacog/outreach-reports exclusion already there)
    • Amend CLAUDE.md's COMMIT MESSAGE STRUCTURE section to state explicitly: Originating-Terminal is chosen by file-glob match against .workflow/rooms/*.html owned-surface, not by who reasoned about the change — closing the ambiguity lesson 39fecfee9 already named but never enforced
    • Build scripts/rooms/verify-trailer.mjs: reads the commit's changed files, matches each against every room's owned-surface glob, computes the best-match room, and warns (non-blocking, per CLAUDE.md convention) when it differs from the Originating-Terminal trailer
    • Audit .workflow/rooms/*.html for other directories that exist in the repo but appear in zero room's owned-surface list (scripts/bookclub/ is very unlikely to be the only orphan) and backfill them in one pass

    What we learned: Prior lesson 39fecfee9 diagnosed the tagging mechanism generically ('no cross-check against the globs') and its measured fix only partially held (offPct null→7 over 4 commits) before relapsing to 33 here — because the gap isn't just a missing cross-check, it's that the owned-surface glob lists are STATIC and hand-maintained while the repo's actual directory surface keeps growing (scripts/bookclub/ didn't exist, or wasn't claimed, when any prior fix landed). A finite enumerated ownership list against an unbounded, growing codebase guarantees recurring ownership vacuums — the tagging heuristic falls back to 'who reasoned about it' exactly in the gap left by every unclaimed new directory, and that fallback is what keeps mis-tagging content whose vocabulary happens to sound strategic.

    The missing guard (the deliverable): A pre-commit or post-commit warn-only check (scripts/rooms/verify-trailer.mjs) that glob-matches the commit's changed files against every room's 'Owned file/dir surface' <li> entries in .workflow/rooms/*.html, computes the best-match room, and flags (non-blocking) when Originating-Terminal disagrees with that computed match — this is the literal cross-check lesson 39fecfee9 named as absent but that was never actually built.

    Detector probe: signal attribution — gzip reef 35% · ballistic walk 65%. litIntent 134 / litReality 127 out of a 144-cell lattice (~93%/~88% fill) indicates the walk is SATURATED, not shallow — consistent with the project memory note that the walk saturates the 144-map by ply 8. At this fill level, additional depth won't change offPct; the adjustment that matters is reef seed coverage for new-directory vocabulary, not walk-depth tuning. Experiments: Seed the reef lexicon with bookclub-domain terms (buildSignalPrompt, magnetScore, forwardability, demand-fit, poolFloor) and re-run this sha's ingest to measure whether prewalkOverlap rises above 3 · After registering scripts/bookclub/ under network's owned-surface glob, re-run the same sha through the pipeline as a controlled ablation and measure whether offPct drops toward the 15 threshold · Track prewalkOverlap across every scripts/bookclub/ commit over the next 2 weeks; a sustained low overlap (<5) independently confirms the reef under-represents this domain, separate from the room-tag fix

    Measured outcome (deterministic, not self-graded): room mean offPct 1511 over 4 commits since · dictionary ablation saved 644B

    A structural ownership vacuum (an operational directory with zero room claiming it) reads as unbounded lane-drift risk to an underwriter until the glob is registered and the trailer cross-check exists; premium for this lane restores the moment scripts/bookclub/ has an explicit owner and a mechanical (not narrative) tag-vs-glob check is wired in.

    Open the signed attestation →
  57. 2026-07-13 · 🎩 operator · offPct 28

    fix(outreach): gate click alert on ALL human criteria — stop scanner false-positives

    encircled drift panel for 652d6a1db

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

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

    Open the signed attestation →
  58. 2026-07-13 · 🔨 builder · offPct 32

    content(blog+book): the doorman story complete — Malandrino named, the Aston, sort→transpose as the hand-run walk

    encircled drift panel for 6c7b58fef

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

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

    Open the signed attestation →
  59. 2026-07-13 · 🔨 builder · offPct 24

    content(spine): the health frame — compass never club; register manifest grows to 4 surfaces

    encircled drift panel for 6facf3ccd

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

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

    Open the signed attestation →
  60. 2026-07-13 · 🔨 builder · offPct 17

    feat(reorg): ApexSpine — the public below-fold, in the plated register

    encircled drift panel for 826e32d06

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

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

    Open the signed attestation →
  61. 2026-07-13 · 🔨 builder · offPct 23

    content(intervene): the orange goes entirely — plated to house gold; the loss-ratio stance in copy

    encircled drift panel for 851f35480

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

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

    Open the signed attestation →
  62. 2026-07-13 · 🎤 voice · offPct 33

    content(book): 'The Door' — the legitimacy plate (five dated receipts, no diploma)

    encircled drift panel for 88021b06e

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

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

    Open the signed attestation →
  63. 2026-07-13 · 🔨 builder · offPct 24

    spec(site-reorg): finalize apex below-fold journey — status-lead, 5 panels, single CTA, all-persona monologues

    encircled drift panel for 89ad701ee

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

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

    Open the signed attestation →
  64. 2026-07-13 · 🔨 builder · offPct 51

    feat(spine): unbury the lead — the Semantic Black-Scholes as the fourth trust primitive

    encircled drift panel for 8a0a9da7c

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

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

    Open the signed attestation →
  65. 2026-07-13 · 🎤 voice · offPct 31

    content(book): 'The Door' — foreground the definer walk (sort→transpose = the by-hand definer-of-definer walk) for the 5pm book club

    encircled drift panel for a22ccb8dd

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

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

    Open the signed attestation →
  66. 2026-07-13 · 🔨 builder · offPct 43

    content(scratchpad): the stance — 35 interpretations of the intent vs what the drift did

    encircled drift panel for a2efa3b10

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

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

    Open the signed attestation →
  67. 2026-07-13 · 🎤 voice · offPct 19

    fix(book): About-the-Author public (free-after-login) so the book-club link resolves

    encircled drift panel for a563f3033

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

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

    Open the signed attestation →
  68. 2026-07-13 · 🔨 builder · offPct 18

    feat(receipt-email): the forwardable wrapper — monologue-first lead-up, in the ONE canonical render

    encircled drift panel for a75cbcadb

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

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

    Open the signed attestation →
  69. 2026-07-13 · 🔨 builder · offPct 16

    content(spine): weld the money-nouns onto the thermodynamic language — the congruence loop's two findings

    encircled drift panel for aceb055a1

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

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

    Open the signed attestation →
  70. 2026-07-13 · 🔨 builder · offPct 26

    content(receipt): the underwriter's translation rides every emailed receipt — copy-only, panels proven untouched

    encircled drift panel for bdbf139ba

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

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

    Open the signed attestation →
  71. 2026-07-13 · 🔨 builder · offPct 66

    feat(spine): the velvet rope leads — designated-broker resale headlines; ledger replaces SaaS cards

    encircled drift panel for bf323b8ca

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

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

    Open the signed attestation →
  72. 2026-07-13 · 🔨 builder · offPct 43

    plan(site-reorg): apex framing design spec + logged-out journey HTML reference

    encircled drift panel for c3209eb9d

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

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

    Open the signed attestation →
  73. 2026-07-13 · 🎩 operator · offPct 42

    content(outreach): Timothy Zeilman (HSB/Munich Re) researched — Reinhart warm-path corrected TTL-exhausted

    encircled drift panel for c4f733750

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

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

    Open the signed attestation →
  74. 2026-07-13 · 🎩 operator · offPct 19

    test(dinner): fix stale date guard — page locked forward to July 20, not July 16/15

    encircled drift panel for c7a4c6a2a

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

    Measured outcome (deterministic, not self-graded): room mean offPct 916 over 13 commits since

    Open the signed attestation →
  75. 2026-07-13 · 🔨 builder · offPct 26

    content(spine): the leaf walk explained on the instrument — define the definer, grounding on the front page

    encircled drift panel for c821f4d9e

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

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

    Open the signed attestation →
  76. 2026-07-13 · 🎩 operator · offPct 17

    docs(marsh): formalize Authorized-Enforcer/first-dollar-buyer framing; close Reagan/Srail TTL gap

    encircled drift panel for ca056b823

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

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

    Open the signed attestation →
  77. 2026-07-13 · 🔨 builder · offPct 40

    feat(reorg): public / swaps the below-fold for the ApexSpine — hero frozen, deep cut at /v0

    encircled drift panel for ce9ad5136

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

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

    Open the signed attestation →
  78. 2026-07-13 · 🎤 voice · offPct 31

    content(blog): The Doorman — hero + four-arm reveal, ghost-read hardened, publish

    encircled drift panel for d001e8275

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

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

    Open the signed attestation →
  79. 2026-07-13 · 📐 architect · offPct 28

    feat(bookclub): the demand magnet — curate news by fit to OUR demand, not general AI

    encircled drift panel for d3bb84639

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

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

    Open the signed attestation →
  80. 2026-07-13 · 🎩 operator · offPct 16 · mistagged

    content(blog): Borrowed Floor pass-3 — clear the named residual soft spots

    encircled drift panel for d80f77cc2

    Why it left the lane: The diff is pure blog prose editing in src/content/blog/2026-07-12-the-borrowed-floor.mdx (5 ins/5 del, one file). Terms dragging the walk's reality mass include actuarial/pricing vocabulary — 'an actuary can build a rate on', 'countable exposure and a track record', 'run the meter the premium is priced on' — plus legal/product phrasing ('the T.J. Hooper', 'patent US 19/637,714'). None of this vocabulary or the file path touches operator's owned surface (data/trust-debt/, docs/01-business/pipeline|accounting/, data/pmu/pipeline|claudbridge/, public/pmu-demo/, docs/ops/dashboard*, public/dashboard*) — operator has zero content/blog glob, so any commit scored against operator's lane from this file is structurally doomed to read diffuse/off-lane regardless of the edit's quality.

    The semantic pull: 'actuary can build a rate on', 'countable exposure and a track record', 'run the meter the premium is priced on' pull toward accounting/pricing-flavored coordinates (echoing operator's real docs/01-business/accounting territory) even though the physical file lives entirely outside any operator glob — a split between content vocabulary and content location that the walk can't reconcile into one lane.

    Intent–reality gap: The commit message claims a narrow, successful content-polish pass (Alexandra rose 74->81, five named residuals fixed) and its own Relevant-Rooms trailer names operator/navigator/vault — but every one of 8 room HTML files (.workflow/rooms/*.html) and the working /book-edit tooling (scripts/book-edit.sh:174, 'Originating-Terminal: 🎤 Terminal Voice') unanimously document src/content/blog/*.mdx as owned by 🎤 Voice. The commit's own trailers contradict the repo's canonical, cross-referenced ownership ledger — the receipt fired against a room (operator) that structurally can never legitimately own this file.

    How it was fixed: Re-tag: this commit's Originating-Terminal/Relevant-Rooms should have been 🎤 Terminal Voice (matching every existing room doc and the book-edit.sh template), not operator/navigator/vault. Going forward, blog-content commits authored from the operator/kitty terminal should still carry Voice in Relevant-Rooms since ownership is glob-based, not terminal-based.

    • Audit recent commits to src/content/blog/*.mdx for Relevant-Rooms trailers that omit 🎤 Voice; this is at least the 2nd instance (compare against scripts/book-edit.sh:174 as the correct template).
    • Add a check to whatever computes the Relevant-Rooms trailer (no dedicated script found — likely hand-authored per CLAUDE.md's '3 highest-scoring matches against owned-surface globs' instruction) that literal-glob-matches src/content/blog/*.mdx against .workflow/rooms/terminal-voice.html first, before any semantic/keyword scoring.
    • Add a pre-commit warn (not block, per CLAUDE.md trailer convention) in hooks/pre-commit: if changed files match src/content/blog/*.mdx and Relevant-Rooms trailer doesn't include Voice, print a warning citing the 8-file cross-reference.
    • Cross-check data/rooms.json vector_keywords for 'operator'/'navigator' to see if actuarial/pricing terms ('premium','rate','exposure') are over-weighted there, since that's plausibly why this commit's Story-writer reached for operator/navigator instead of Voice.

    What we learned: The repo has an EXPLICIT, unanimous, 8-times-cross-referenced ownership ledger for src/content/blog/*.mdx (Voice) and a working reference implementation (scripts/book-edit.sh) that stamps it correctly — yet a hand-authored commit trailer still named three wrong rooms. This differs from the prior lessons (a2e189e51: a subsystem with NO declared territory; a7aead25c/836f355aa: facts-only, no diagnosis): here the territory IS declared, unambiguously, in multiple places, and was simply not consulted when the trailer was written by hand. The gap isn't missing config — it's that trailer authorship is manual/narrative rather than a glob lookup against the very docs that already encode the answer.

    The missing guard (the deliverable): A pre-commit warn-only check: for any commit touching src/content/blog/*.mdx or books/tesseract/chapters/*.md, verify the Relevant-Rooms trailer contains 🎤 Voice (or 🎤 Terminal Voice); flag (don't block) if absent, citing the canonical owner from .workflow/rooms/terminal-voice.html.

    Detector probe: signal attribution — gzip reef 30% · ballistic walk 70%. litIntent(141) and litReality(130) both sit close to the 144-cell lattice ceiling — this looks saturated, not shallow. At saturation, small true lane-vs-off-lane distinctions get compressed into a narrow non-full band, making offPct noisier per commit. Adjustment: for content/blog commits specifically, consider a lower --max-depth (fewer plies) so the walk stops before near-total lattice coverage, preserving more separation between in-lane and off-lane mass. Experiments: Re-run this exact commit's receipt scoring against Voice's owned-surface globs instead of operator's, and measure whether offPct drops below the 15 threshold — confirms the mistag (not semantic drift) is the actual driver. · Seed the reef dictionary with the phrase cluster 'countable exposure', 'track record', 'the meter the premium is priced on' and re-measure prewalkOverlap on this commit and 5 similar Borrowed Floor pass commits — expect overlap to rise without changing final lit counts, since these terms recur across the whole post's editing history. · Backtest: pull the last 10 commits touching src/content/blog/*.mdx, recompute Relevant-Rooms via strict glob-match against .workflow/rooms/*.html, and measure what fraction disagree with the trailer actually committed — quantifies how common this mistag class is.

    Measured outcome (deterministic, not self-graded): room mean offPct 11 over 14 commits since · dictionary ablation saved 800B

    Blog-content commits scored against operator's pipeline/accounting lane will keep tripping this lane's offPct (11 events in 14 days already) purely from a trailer mismatch rather than real drift, inflating operator's apparent loss-ratio; premium restores once Relevant-Rooms correctly names 🎤 Voice for src/content/blog/*.mdx, per the ownership ledger every other room file already agrees on.

    Open the signed attestation →
  81. 2026-07-13 · 🔨 builder · offPct 34

    feat(intervention): receipt reverts to LLM-free · the intervention becomes the two-sided self-improvement pass · always-fires

    encircled drift panel for dc0369906

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

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

    Open the signed attestation →
  82. 2026-07-13 · 🔨 builder · offPct 37

    spec(journey): the two monologues — the ideal champagne reception vs the honest as-is read; the delta is the work

    encircled drift panel for e37570100

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

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

    Open the signed attestation →
  83. 2026-07-13 · 🔨 builder · offPct 25

    spec(journey): pass 1 — blow-by-blow monologue contract, 9 beats × 3 personas (broker·carrier·deployer)

    encircled drift panel for ea5a45c05

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

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

    Open the signed attestation →
  84. 2026-07-13 · 🎩 operator · offPct 34

    fix(thetacog-mcp): redpill demo self-audit ledger crashes with a raw stack trace outside a git repo

    encircled drift panel for eef9a2def

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

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

    Open the signed attestation →
  85. 2026-07-13 · 🔨 builder · offPct 22

    feat(reorg): /v0 preserves the deep early cut behind login — renamed, not deleted

    encircled drift panel for f6b4a390a

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

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

    Open the signed attestation →
  86. 2026-07-12 · 🔨 builder · offPct 38

    feat(bookclub): the served ledger — a perimeter fetch is receipt, not a false positive

    encircled drift panel for 0bae5c0b5

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

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

    Open the signed attestation →
  87. 2026-07-12 · 🔨 builder · offPct 42

    feat(pmu): intervene delegates out-of-lane QC to 🧪 laboratory (obvious) + gap analysis

    encircled drift panel for 1c3cfefef

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

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

    Open the signed attestation →
  88. 2026-07-12 · 🔨 builder · offPct 39 · intentional

    feat(funnel): double-opt-in nomination shield + terminal receipt + authorized brokers

    encircled drift panel for 1e8b5168a

    Why it left the lane: The commit bundles two structurally distinct concerns under one 🔨 builder tag: UI/app work the room owns (src/app/nominate, src/app/brokers, src/components/book/BookClubSignup.tsx — 469 of 576 changed lines) and outreach-automation/legal-notice work it does not own (scripts/bookclub/terminal-receipt.mjs, scripts/bookclub/audience.mjs, scripts/outreach/outreach-engine-cron.sh — 107 lines, but carrying nearly all the load-bearing vocabulary: 'NOTICE_RECEIPT', 'liability theirs', 'window_closed_at', 'reseller_chain', 'double_opt_in_nomination', 'COMMS_DISPATCH_LIVE'). That vocabulary is exactly the domain the commit's own Relevant-Rooms trailer names (🎩 operator, 🌐 network, ⚖️ vault) — the walk is dragging mass toward the outreach/consent/legal-notice region because that's genuinely where a third of the diff's semantic weight sits, not because of a placement error.

    The semantic pull: Strings pulling reality mass off the builder lane: 'terminal-receipt.mjs' + 'TERMINAL_NOTICE_RECEIPT' + 'liability theirs, in the we-tried register not a threat' (legal/notice coord), 'reseller ref chain' + 'ref, reseller_chain' (attribution/vault coord), 'COMMS_DISPATCH_LIVE=1' + 'outreach-engine-cron.sh' (outreach-pipeline coord). No region narrative was cached for this sha, so this is inferred from room-ownership deltas rather than literal ShortLex coords — that gap itself is worth closing (see missing_guard).

    Intent–reality gap: The commit message narrates one seamless feature ('the /book page becomes the drop-anywhere link... kills the hostile-vendor/spam defense while keeping the viral loop') and self-declares its cross-room reach in the Relevant-Rooms trailer — but the receipt evaluates lane membership only against Originating-Terminal's (builder) owned-surface glob, so a commit that HONESTLY admits it spans three rooms still measures as a single-lane 39%-off event.

    How it was fixed: Two complementary moves: (1) going forward, split the double-opt-in feature per ITERATION DISCIPLINE — UI/API-surface work stays in the builder commit, and scripts/bookclub/terminal-receipt.mjs + outreach-engine-cron.sh wiring lands as its own commit tagged to the room that owns outreach automation (bifurcated via rooms JSON, never a branch); (2) structurally, teach the receipt to treat a commit's Relevant-Rooms trailer as a set of ADDITIONAL allowed lanes, not just decoration, so genuinely multi-room feature commits aren't penalized for saying so honestly.

    • Split any future nomination/terminal-receipt-style commit: UI (src/app/, src/components/) → builder; scripts/bookclub/*, scripts/outreach/* → the room that owns outreach automation
    • Audit .workflow/rooms/*.html for which room currently claims scripts/bookclub/** and scripts/outreach/** as owned surface — none of the 9 room files currently list them explicitly; assign one
    • Add scripts/bookclub/terminal-receipt.mjs + outreach-engine-cron.sh to ⚖️ vault's owned-surface glob (liability/notice-record domain matches the vault emoji)
    • Add src/app/api/book-club/nominate + confirm routes to 🌐 network's owned-surface glob (the send/click-consent delivery mechanics)
    • Patch the receipt's lane-resolution step to union(Originating-Terminal glob, Relevant-Rooms globs) before computing offPct, instead of Originating-Terminal alone
    • Add a commit-trailer convention check: if Relevant-Rooms is non-empty, log both single-lane and union-lane offPct so the delta itself becomes visible telemetry

    What we learned: A commit's own Relevant-Rooms trailer can be a CORRECT, self-declared admission of multi-room scope — and the receipt currently throws that admission away, scoring solely against Originating-Terminal. This is distinct from prior lesson 20be6630e (terminal vs glob disjoint = unnoticed attribution defect): here the operator already told the receipt the truth in the trailer, and the pipeline still measured it as a single-lane violation. The fix isn't better attribution detection, it's making the receipt LISTEN to the trailer it already has.

    The missing guard (the deliverable): A test asserting that when a commit's Relevant-Rooms trailer lists rooms R1..Rn, the offPct computation is evaluated against union(ownedSurface(OriginatingTerminal), ownedSurface(R1)...ownedSurface(Rn)) rather than ownedSurface(OriginatingTerminal) alone — and that this union-offPct, not the single-lane offPct, is what's compared to the 15% threshold for trend/lesson purposes.

    Detector probe: signal attribution — gzip reef 30% · ballistic walk 70%. litReality=143/144 and litIntent=111/144 are both near-saturation of the 144-cell lattice — this commit is close to the ceiling the walk can express, which is the saturation regime the room's earlier project memory already flagged (walk saturates by ply 8). At this fill level positional discrimination degrades because nearly everything is lit; concrete adjustment: reduce --max-depth by 1 ply specifically when litIntent+litReality together exceed ~200/288 combined, to keep the walk in its discriminative (breadth>depth) regime rather than pushing past saturation. Experiments: Recompute this sha's receipt with the reef seeded from src/app/+src/components/ only (drop scripts/bookclub/*, scripts/outreach/*) and confirm offPct drops under 15 — validates the scripts/* dilution hypothesis directly · Recompute offPct twice — once against Originating-Terminal's glob alone, once against union(Originating-Terminal, Relevant-Rooms globs) — and diff the two; if union-offPct clears 15 it confirms the trailer-as-lane fix is sufficient on its own · For commits where litIntent+litReality both exceed ~90% of 144, rerun with --max-depth reduced by 1 ply and compare offPct stability — tests whether saturation is inflating this room's specific 39% reading

    Measured outcome (deterministic, not self-graded): room mean offPct 4151 over 4 commits since · dictionary ablation saved 763B

    This is the room's 4th out-of-lane event in 14 days, which reads as a rising loss-ratio trend even though the underlying work was a legitimate, self-declared multi-room feature build; premium is restored not by tightening builder's scope but by making the receipt honor the commit's own Relevant-Rooms trailer, which should retroactively clear this class of event without penalizing honest cross-room commits.

    Open the signed attestation →
  89. 2026-07-12 · 🔨 builder · offPct 97 · mistagged

    fix(outreach): engage subject = bare address · one dossier per person per day · sink runs don't consume TTL

    encircled drift panel for 20be6630e

    Why it left the lane: The entire diff lives in scripts/outreach/daily-engage.mjs, which is not on builder's owned surface (src/app, src/components, src/lib, public, book scripts, hooks/pre-commit, decentralizedtalk/, thetacoach-crm-mcp/, vercel.json) at all — there is zero glob overlap, which is exactly what prewalkOverlap=0 already shows before the walk even runs. Strings like 'TTL_PATH', 'reported_at', 'dayPassed', 'sinceReport', and the LIVE-gated ledger write are outreach-pipeline vocabulary that the reef places under Strategy/rules territory (pull toward A1.Strategy.Law, 8/32 out-of-lane cells), not under builder's UI/app-code lane — so 133 reality cells lit up almost entirely outside the one intent cell builder actually owns.

    The semantic pull: Terms like 'TTL floor', 'sink runs', '24h', 'LIVE run consumes TTL ledger' read as policy/rule-constraint language (Strategy.Law), while builder's lane anchors on component/app/lib code — the diff has none of that vocabulary, so the walk had nothing in-lane to grip and spread wide instead.

    Intent–reality gap: The commit message correctly and narrowly describes an outreach-pipeline fix (subject naming, TTL floor, sink-vs-live gating) — it never claims to be builder-lane work. The receipt attributes the commit to room 🔨 builder purely because that's where the operator physically typed the commit (Originating-Terminal), even though the commit's own Relevant-Rooms trailer already names 🎩 operator, 🌐 network, 🧭 navigator and pointedly omits builder. The gap is the attribution mechanism, not the work.

    How it was fixed: Room-of-record for the receipt should be computed by matching changed-file globs against Relevant-Rooms trailer candidates first, falling back to Originating-Terminal only when no trailer room's owned surface matches any changed file. For this sha specifically, no code change is needed — the fix is re-scoring under operator/network/navigator lanes where scripts/outreach/** already belongs.

    • Add scripts/outreach/** as an explicit owned-surface glob on whichever of 🎩 operator / 🌐 network / 🧭 navigator is the outreach pipeline's true home room (check the 3 .workflow/rooms/*.html files for existing outreach globs first — don't duplicate)
    • Patch the receipt's room-resolution step to prefer a Relevant-Rooms trailer match over Originating-Terminal when the two disagree on file-glob ownership
    • Add a pre-commit warn (not block) when Originating-Terminal's owned surface has zero overlap with the changed files AND Relevant-Rooms lists different rooms — surfaces the mismatch at commit time instead of only in the drift receipt
    • Backfill this sha's receipt (or the next room-health rollup) tagged under operator/network/navigator rather than builder so the 14-day out-of-lane count for builder isn't polluted by a room the commit never claimed to belong to

    What we learned: Originating-Terminal and Relevant-Rooms can point at completely disjoint rooms with ZERO glob overlap (not just partial divergence) — the terminal-detection heuristic (which physical app the operator typed in) and the file-glob-ownership heuristic (which room's surface the diff actually touches) are independent signals, and the receipt currently trusts only the former. When they fully diverge, the receipt manufactures a 97% offPct that is a room-attribution defect, not a drift event.

    The missing guard (the deliverable): tests/pmu-simulator/room-attribution-agrees-with-trailer.test.mjs — asserts that when a commit's Relevant-Rooms trailer names rooms whose owned-surface globs match the changed files, the receipt's room-of-record uses that match instead of Originating-Terminal; fails loudly on any commit where the two heuristics disagree by more than N owned-glob-matches.

    Detector probe: signal attribution — gzip reef 70% · ballistic walk 30%. Asymmetric and mis-sized: intent stayed pinned to a single lit cell (litIntent=1) while reality saturated 133 cells — the walk itself is behaving correctly (reality genuinely has nothing in builder's lane to anchor to, so it spreads), but the INTENT side is under-seeded for a room whose owned surface spans 9+ distinct globs. Adjustment: seed intent lit-cells from all of a room's owned globs, not a single representative anchor, so a legitimately narrow diff can still test true positive/negative against the full lane rather than one point. Experiments: Re-run this sha's gzip-NCD prewalk with the commit attributed to 🎩 operator (or whichever room's globs include scripts/outreach/**) and confirm prewalkOverlap moves off 0 — validates the mistagged-room hypothesis directly · Ablation: recompute offPct for this sha under each of the 3 Relevant-Rooms trailer candidates (operator, network, navigator) and record which shows offPct <= 15 — that room is the true lane · Add a standing test that greps all scripts/outreach/*.mjs commits over the last 90 days and checks whether Originating-Terminal ever equals a room whose owned-surface glob list actually contains scripts/outreach/** — if never, that confirms builder was never a plausible lane for this directory and the terminal-detection default should exclude it

    Measured outcome (deterministic, not self-graded): room mean offPct 1011 over 4 commits since · dictionary ablation saved 904B

    A 97% offPct against a room that never actually owns the touched files is a false-positive loss event, not a real lane breach — left uncorrected it inflates builder's loss-ratio on paper and masks the real signal (a room-attribution bug), so premium is restored by fixing the resolution order, not by builder changing behavior.

    Open the signed attestation →
  90. 2026-07-12 · 🎭 performer · offPct 45

    chore(outreach): close Travelers / Olivo TTL — no 4th same-vector send

    encircled drift panel for 25ffb7541

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

    Open the signed attestation →
  91. 2026-07-12 · 🧪 laboratory · offPct 38

    feat(pmu): close the intervention/detection gap — persist the spec↔rule↔location interlink

    encircled drift panel for 3f697713d

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

    Open the signed attestation →
  92. 2026-07-12 · 🔨 builder · offPct 17

    feat(bookclub): aggressive enrollment with the two-free-briefings rule

    encircled drift panel for 430035acc

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

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

    Open the signed attestation →
  93. 2026-07-12 · 🎭 performer · offPct 28 · structural

    chore(outreach): verify Cigna / Andresen touch-2 — hold, no 5th same-vector send

    encircled drift panel for 45c21596c

    Why it left the lane: The diff is data-only (data/self-prompts.json, 2 lines) so the reef has no performer-owned code/doc content to anchor on — placement is driven entirely by the commit message's lexicon: 'Cigna / Andresen touch-2', 'click-ledger email', 'gateway-sweep signature', 'Microsoft Azure datacenter IP', 'Jai Verma', 'bf-895', 'Hartford/Chhabra', 'Munich Re/Reinhart', 'Allianz/Maxwell'. That vocabulary is outreach/network-lane terminology (verification, cadence, cold-send tracking), not performer's owned surface (docs/strategy/deck/, event-*, decentralizedtalk/, fundraising, munich-re-*, over-exposure-*, demo-*) — even though 'Munich Re' is name-dropped, it appears as a verification-log reference, not the munich-re-* strategy content itself, so it doesn't land in-lane either.

    The semantic pull: prewalkOverlap=4 against litIntent=111/litReality=121 means the gzip-NCD seed found almost no direct performer-glob overlap (~3.6%); the recursive walk then had to fill 111-121 cells from that thin seed using message text alone, and outreach-domain terms dominate that text, dragging the bulk of lit mass toward A1.Strategy.Law / outreach coords instead of performer's fundraising/event/deck coords.

    Intent–reality gap: The commit message frames this as a careful, room-appropriate hold decision (Originating-Terminal: performer) about an outreach cadence risk — but the receipt measures WHERE the content's lexical mass actually sits, and that mass is 100% outreach/network vocabulary with zero performer-owned-surface content, because the only touched file (data/self-prompts.json) is unowned by any room glob.

    How it was fixed: Don't re-litigate content quality (the hold decision itself is sound and already correctly reasoned) — fix the ownership model: either (a) retag this commit class as originating from ☕ network (already listed in Relevant-Rooms) rather than 🎭 performer, or (b) formally exempt shared bookkeeping files (data/self-prompts.json, data/room-bifurcations.json) from single-room offPct scoring so no terminal gets penalized for touching them.

    • Add an explicit shared-state exemption list (e.g. data/shared-state-globs.json or a <shared> block in .workflow/rooms/*.html) covering data/self-prompts.json and data/room-bifurcations.json
    • Wire that exemption into whatever computes offPct so these two files never contribute lit-reality mass to a single room's lane score
    • Audit scripts/room.sh terminal-detection: outreach-verification chore commits (message pattern 'verify .* touch-\d.*hold') should default-tag Originating-Terminal as ☕ network when the diff is self-prompts.json-only, regardless of which physical terminal fired the commit
    • Check git log on .workflow/rooms/*.html since f08ec5875 to confirm whether the previously-proposed exemption actually shipped — if not, this is the second silent miss, not a new discovery
    • Add a reef-health check that flags any commit where 100% of the diff is a cross-room orchestration file, so future events like this route straight to 'exemption gap' diagnosis instead of a full semantic-pull investigation

    What we learned: The f08ec5875 lesson diagnosed this exact gap (data/self-prompts.json has no owning glob) but its outcome was 'not yet measured' — this event is the SECOND occurrence of the identical mechanism against the identical file inside the same 14-day window. That means naming a structural gap in a lesson note does not close the loop by itself; a lesson needs a tracked fix-status, not just a diagnosis, or the same file will keep re-triggering the same intervention indefinitely.

    The missing guard (the deliverable): A test asserting that data/self-prompts.json and data/room-bifurcations.json are either (a) present in an explicit shared/no-room exemption list consumed by the offPct calculator, or (b) matched by an any-room wildcard glob — failing loudly if a new cross-room orchestration file is added without a matching exemption entry.

    Detector probe: signal attribution — gzip reef 20% · ballistic walk 80%. litIntent=111/144 (77%) and litReality=121/144 (84%) are both close to full-lattice saturation for a 2-line data-only commit — that's over-broad, not under-used; a thin, message-only diff shouldn't fill 3 in 4 lattice cells. Adjustment: gate walk max-depth/breadth by diff richness (docsOnly=true + tiny diff-stat should trigger a shallower ply budget) so thin commits produce a narrow, honest receipt instead of near-saturated coverage that swings offPct on message-text alone. Experiments: Re-run this sha's walk at --max-depth 2 (vs whatever default produced 111/121) and check whether offPct drops below 15 while genuine outreach-domain commits in ☕ network stay correctly in-lane — isolates whether saturation itself is inflating offPct · Add the exemption from checklist item 1 and re-run the last 14 days of 🎭 performer commits to confirm both flagged out-of-lane events (this one + the prior f08ec5875 one) disappear once data/self-prompts.json is excluded · Bucket recent commits by docsOnly=true vs false and compare mean litIntent+litReality fill% — test the hypothesis that message-only ingest systematically saturates the lattice faster than code/doc-anchored ingest, which would justify a permanent breadth cap for docsOnly commits

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

    This is a repeat trip of an already-diagnosed structural gap, not new risky behavior from the room — it shouldn't raise 🎭 performer's loss-ratio on its own, but the room's premium stays inflated until the shared-file exemption from f08ec5875 actually ships; a second unshipped-fix occurrence is itself the signal underwriting should price, not the outreach content.

    Open the signed attestation →
  94. 2026-07-12 · 🔨 builder · offPct 97 · mistagged

    feat(funnel): /book liability-alert hero + broker cross-links + unified UUID contacts view

    encircled drift panel for 46c72dd94

    Why it left the lane: The diff's dominant vocabulary — 'Authorized Enforcer', 'broker', 'compensation for enforcing the standard of care', '90/10', 'consent_at', 'consent_method', 'served_status', 'in_auto_feed', 'double-opt-in', 'UUID-anchored', 'auth.users' — is insurance/legal/consent-ledger language, not frontend-builder language. The biggest single diff chunk (82 lines, the largest of the 5 files) is supabase/migrations/20260712_unified_contacts.sql, a schema/consent file that has no legitimate reason to sit inside 🔨 builder's lane at all. Compounding this: the commit's own Relevant-Rooms trailer already names 🎩 operator, 🌐 network, ⚖️ vault, 📐 architect as the touched surfaces — and conspicuously omits 🔨 builder, the very room the receipt is scored against.

    The semantic pull: 'Authorized Enforcer Channel · 90/10' and 'enforcing the standard of care' (agent-year/page.tsx, pricing/page.tsx) read as underwriting/legal-compensation language → pulls toward ⚖️ vault's lane. 'served_status', 'consent_at/consent_method', 'in_auto_feed', 'double-opt-in' (notice-ledger.mjs, unified_contacts.sql) read as compliance/consent-ledger vocabulary → also vault-adjacent. 'nomination form', 'CC\'d', 'reseller ref' (book/page.tsx) read as outreach/contact-routing → 🌐 network. None of this is builder's declared surface (src/app, src/components, src/lib, public, book-build scripts).

    Intent–reality gap: The commit message narrates itself as builder work (a page hero, cross-links, a view) landed via 🔨 builder, but its own Relevant-Rooms trailer already lists the four rooms that actually own this content — none of which is builder. The receipt is measuring exactly the mismatch the commit author already flagged in the trailer and the pipeline ignored.

    How it was fixed: Re-route attribution off Originating-Terminal-only onto the Relevant-Rooms trailer: split offPct proportionally across the rooms the commit itself names as relevant, and stop scoring 100% of the drift against the physical-terminal room when the trailer explicitly excludes it. Move supabase/migrations/** out of any implicit builder claim into vault's owned surface.

    • Add 'supabase/migrations/**/*.sql' to ⚖️ vault's (or 📐 architect's) owned-surface globs in .workflow/rooms/*.html — currently unclaimed, defaulting to whichever room committed
    • Update the receipt attribution step to read the Relevant-Rooms trailer and split/reweight offPct across those rooms instead of pinning 100% to Originating-Terminal when the two diverge
    • Add a 'Primary-Lane' or 'Content-Room' trailer field distinct from Originating-Terminal, so terminal (where typed) and lane (what it's about) are never conflated into one attribution signal
    • Document explicitly in builder's owned-surface file that SQL migrations, consent-ledger columns, and broker/underwriting copy are out-of-lane for builder even when authored from the iTerm2 terminal
    • Consolidate the duplicated 'Authorized Enforcer Channel · 90/10' block (agent-year/page.tsx + pricing/page.tsx, near-verbatim) into one shared component to remove the drift-inflating duplication itself

    What we learned: The commit message ALREADY contains the correction the receipt needs and the pipeline doesn't read it: the Relevant-Rooms trailer named four rooms and pointedly excluded the Originating-Terminal room, i.e. the operator (or the co-authoring model) self-diagnosed the cross-lane nature of the work at commit time — but the attribution logic only consults Originating-Terminal, discarding a machine-readable disambiguation signal that was sitting right there in the trailer. Prior lessons (20be6630e, 76c2908e6) established that terminal-vs-glob and terminal-vs-vocabulary can diverge; this event shows the fix doesn't require new inference — the trailer format already carries the answer, it's just unread.

    The missing guard (the deliverable): A guard that fails when a commit's Relevant-Rooms trailer excludes its own Originating-Terminal room and the receipt still attributes 100% of offPct to that terminal room — i.e. assert attribution is split/reweighted toward the trailer-listed rooms whenever they diverge from the terminal, rather than trusting the terminal exclusively.

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Mis-sized in an asymmetric way: intent never spread past its single seed cell (litIntent=1) while reality fully saturated (litReality=132/132) — comparing a 1-cell intent lane against a 132-cell reality lane produces an inflated offPct almost by construction, independent of true drift magnitude. Adjustment: increase intent-side ply/depth so intent gets a chance to spread from its seed before the ratio is computed, or normalize offPct by litReality/litIntent spread ratio rather than raw cell counts. Experiments: Re-run this commit's reef placement seeding intent from ALL Relevant-Rooms trailer rooms (not just builder) and measure whether litIntent grows past 1 — directly testable, deterministic, no LLM needed · Seed vault's reef vocabulary with the unified_contacts.sql column names (consent_at, consent_method, served_status, in_auto_feed) and re-measure prewalkOverlap for this commit before/after — should move from 0 toward a nonzero vault-side overlap · Run an ablation with intent-side walk ply increased by 1-2 steps only (reality ply unchanged) and record whether litIntent rises without litReality changing — isolates a depth artifact from a genuine vocabulary mismatch

    Measured outcome (deterministic, not self-graded): room mean offPct 4216 over 5 commits since · dictionary ablation saved 1270B

    This is a false-positive out-of-lane event inflating builder's apparent loss-ratio for content that the commit's own trailer already assigns elsewhere; premium is restored not by builder changing behavior but by re-attributing this commit's drift to ⚖️ vault / 🌐 network / 🎩 operator per the Relevant-Rooms trailer, which the pipeline should have honored at receipt time.

    Open the signed attestation →
  95. 2026-07-12 · 🔨 builder · offPct 29

    feat(cat-bond): broadcast page — 12 hypothetical buyer monologues + define-of-definer walk panels

    encircled drift panel for 5db53b400

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

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

    Open the signed attestation →
  96. 2026-07-12 · 🔨 builder · offPct 41

    policy(outreach): canonical enrollment-tier rule + strategic-decisions ledger + send-hold gate

    encircled drift panel for 66a85c22d

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

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

    Open the signed attestation →
  97. 2026-07-12 · 🔨 builder · offPct 20

    feat(pmu): spec-build.mjs — build the candidate spec FROM the lens (Mode B, the 4-pass experiment)

    encircled drift panel for 6780b393a

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

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

    Open the signed attestation →
  98. 2026-07-12 · 🎩 operator · offPct 20

    content(pixel): relace two smug wink-lines → structural/inevitable

    encircled drift panel for 6dc67a87f

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

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

    Open the signed attestation →
  99. 2026-07-12 · 🔒 vault · offPct 34

    content(funnel): close the countable-scope translation gap on /iamfim + /iamfim checkout

    encircled drift panel for 70c4b5541

    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 →
  100. 2026-07-12 · 🔨 builder · offPct 51 · structural

    feat(og): the latest PMU encircled panel is the site-wide default share image

    encircled drift panel for 76c2908e6

    Why it left the lane: No region-coord narrative is cached for this sha, so the pull can only be traced through vocabulary, not lattice coords. The diff's load-bearing terms — 'unfurls in WhatsApp/iMessage/Slack' and 'link preview' (network/comms vocabulary), 'regenerates every commit', 'every deploy', 'self-updating' (operator/deploy vocabulary), and 'branded', 'hero receipt', 'signed proof' (performer/visual-presentation vocabulary) — all live inside a 3-file diff that sits 100% inside builder's own owned-surface globs (src/app/, src/lib/). The reef/walk placement is driven by that semantic vocabulary, not by which room's file globs were touched, so the walk cascaded 51% of its lit mass into coords the vocabulary points at (network/operator/performer) even though there is zero file-attribution ambiguity.

    The semantic pull: 'unfurls', 'link preview', 'WhatsApp/iMessage/Slack' → network-lane vocabulary; 'regenerates every commit', 'every deploy', 'self-updating' → operator-lane vocabulary; 'branded', 'hero receipt', 'signed proof' → performer-lane vocabulary — all present verbatim in the commit Story trailer and code comments, none present in builder's own vector_keywords.

    Intent–reality gap: The commit message claims a single builder-lane feature ('wired as the root-layout default... reusable anywhere'), and the operator already self-declared the true scope in Relevant-Rooms (operator, network, performer) — but the receipt's offPct is computed only against Originating-Terminal's glob surface, so it measured a 51% violation the commit itself had already disclosed as multi-lane, and glob ownership was never actually in question (all 3 files are unambiguously builder's).

    How it was fixed: Two independent fixes are needed, not one: (1) make offPct scoring consult Relevant-Rooms and union the declared rooms' surfaces before penalizing (the still-unbuilt fix from lesson 1e8b5168a) — but because glob ownership here is already 100% builder, that alone will NOT close this case; (2) separately, tag root-layout/site-wide-default files (src/app/layout.tsx, any file exporting the app-wide generateMetadata) as a distinct 'global' pseudo-lane exempt from single-room offPct penalties, since by construction they cascade to every page and therefore every room's surface.

    • Add a 'global' pseudo-room entry (or a `siteWideDefault: true` flag) for src/app/layout.tsx and src/app/*/layout.tsx in the room-ownership config so drift scoring exempts or re-weights root-layout diffs
    • Wire the drift-receipt scorer to read the commit's Relevant-Rooms trailer and union those rooms' owned-surface globs into the lane check before computing offPct (still open from prior lesson 1e8b5168a)
    • Extract the duplicated generateMetadata/openGraph-merge block in src/app/layout.tsx and src/app/book/layout.tsx into a shared src/lib/og-metadata.ts helper (removes the literal duplication the diff shows)
    • Add 'OG image', 'unfurl', 'share image', 'self-updating', 'link preview' to builder's reef domain vocabulary so future OG/share-image commits seed correctly without spreading into other rooms' coords
    • Add a diagnostic field to the receipt row: file_glob_match_pct alongside offPct, so a 100%-glob-match + high-offPct commit (this case) is visibly flagged as content-semantic drift, not attribution error

    What we learned: File-glob ownership can be completely unambiguous (all 3 changed files sit fully inside 🔨 builder's declared surface) while the receipt still fires a 51% out-of-lane event — because the ballistic walk's lane placement is driven by the commit's SEMANTIC vocabulary against the reef, not by which room's file globs were touched. The two prior lessons for this room (20be6630e, 1e8b5168a) both diagnosed attribution-heuristic mismatches (terminal-vs-glob, trailer-vs-glob); this event proves attribution can be perfectly correct and the drift signal still fires, because glob-ownership and reef/vocabulary-placement are two entirely orthogonal attribution mechanisms that the receipt conflates into one offPct number.

    The missing guard (the deliverable): A gate that computes file_glob_match_pct (share of changed files inside Originating-Terminal's owned surface) alongside offPct on every out-of-lane trip, and routes the event down a different remediation path depending on the split: file_glob_match_pct < 100% → attribution-fix path (trailer/glob wiring); file_glob_match_pct == 100% and offPct still over threshold → reef-vocabulary-tuning path (this event), never treated as the same defect class.

    Detector probe: signal attribution — gzip reef 25% · ballistic walk 75%. litReality (121) exceeds litIntent (95) by ~27% on an 89-line, 3-file diff — a fairly generous spread for a small commit. Not saturated against the 144 cap, but wider than the diff size argues for. Adjustment: for commits under ~100 changed lines, cap ply-depth or down-weight the reality-side walk so it doesn't outpace the intent-side walk by more than ~10-15%. Experiments: Re-run this commit's placement with 'OG image'/'unfurl'/'share image'/'deploy'/'branded' vocabulary stripped from the reef corpus and measure whether offPct drops toward 0 — isolates whether generic share/deploy vocabulary (not builder-specific content) is the actual driver · Compute file_glob_match_pct for the last 10 builder out-of-lane trips; if most cluster at 100% glob-match like this one, that confirms semantic-drift (not misattribution) is the dominant driver for this room and reef-vocabulary tuning should be prioritized over trailer-wiring work · Seed 'OG image', 'unfurl', 'self-updating', 'link preview' into builder's reef domain lexicon and re-score this commit plus the 4 other builder out-of-lane events from the last 14 days; measure the offPct delta as the ablation result

    Measured outcome (deterministic, not self-graded): room mean offPct 4097 over 4 commits since · dictionary ablation saved 922B

    A 51% out-of-lane trip with 100% file-glob ownership inside builder reads as high loss-ratio noise under the current single-lane model, but it's a receipt-calibration gap, not a real domain-adherence breach — the premium here is protected by shipping the file_glob_match_pct split so genuine cross-lane violations aren't diluted by false positives like this one.

    Open the signed attestation →
  101. 2026-07-12 · 🔨 iTerm Builder · offPct 50

    feat(outreach): 10am engage engine + book-club self-improvement loop + click forensics + alert threading

    encircled drift panel for 7760d9101

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

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

    Open the signed attestation →
  102. 2026-07-12 · 🔨 builder · offPct 22

    feat(accumulation): ship /accumulation — the correlated-tail evidence base

    encircled drift panel for bd14076ad

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

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

    Open the signed attestation →
  103. 2026-07-12 · 🎭 performer · offPct 38 · mistagged

    chore(outreach): close Hartford / Chhabra TTL — no 4th same-vector send

    encircled drift panel for f08ec5875

    Why it left the lane: No region narrative is cached for this sha, so the pull can't be pinned to specific encircled coords by term. What's provable from the diffstat + trailers: the commit touches only data/room-bifurcations.json (adds a bifurcate-to-network-room entry, per the commit's own text 'bifurcates ... to the network room (bf-1023)') and data/self-prompts.json (marks sp-013 ttl-exhausted, schedules sp-033). Neither path matches any glob in performer's owned surface (docs/strategy/deck/, event-*, decentralizedtalk/, fundraising, munich-re-*, over-exposure-*, docs/ops/demo-*). The commit's own Relevant-Rooms trailer lists network/vault/operator — never performer — which is the operator-authored admission that this content isn't performer's.

    The semantic pull: 'bifurcates the vector-rotation follow-up ... to the network room (bf-1023)' and 'schedules a cooled-off recheck ... (sp-033)' are TTL/self-prompt scheduling vocabulary, not deck/event/fundraising vocabulary — that lexical gap is what the gzip-NCD reef seed has to bridge, and with only prewalkOverlap=4 against litIntent=104, the seed starts far from performer's lane before the walk even runs.

    Intent–reality gap: The commit message claims routine outreach TTL bookkeeping (a clean, in-domain closure). The receipt measures WHERE the lit mass landed relative to the Originating-Terminal tag (performer) — and 38% of it landed outside performer's lane, which the commit's own Relevant-Rooms trailer already predicted (network/vault/operator, not performer). The work is correctly placed in the outreach/TTL domain; the room TAG is what's wrong, not the work.

    How it was fixed: Don't re-tag Originating-Terminal after the fact (it correctly records the physical terminal the operator was in). Instead, stop scoring lane-fit against a single room's owned-surface glob for files that are structurally cross-room state: data/room-bifurcations.json (vault's signed-mesh surface) and data/self-prompts.json (operator's TTL-scheduling surface). Split ownership across the two rooms the commit's own trailers already name.

    • Add 'data/room-bifurcations.json' to vault's (.workflow/rooms/wezterm-vault.html) owned-surface glob — it's the bifurcate/mesh-ledger write target
    • Add 'data/self-prompts.json' to operator's (.workflow/rooms/kitty-operator.html) owned-surface glob — it's the TTL/self-prompt scheduling write target
    • Add a CLAUDE.md line under the rooms section noting these two files are cross-room orchestration state with no single owning room, and that offPct scoring should treat them as shared
    • Backfill this lesson into performer's PRIOR LESSONS file so a future docsOnly commit touching only these two files from the performer terminal doesn't re-trip the same gate
    • Add the missing-guard test below in the same commit as the glob change (CODE DEFINITION-OF-DONE ratchet)

    What we learned: Cross-room orchestration state files (data/room-bifurcations.json, data/self-prompts.json) have NO owning room glob at all in .workflow/rooms/*.html — so any room's terminal that touches them, regardless of content quality, will score high offPct purely from the ownership-model gap. The lane model assumes every file belongs to exactly one room; shared bookkeeping state is structurally ownerless and needs an explicit exemption or multi-room claim, not a per-commit fix.

    The missing guard (the deliverable): tests/pmu-simulator/shared-state-files-have-room-owner.test.mjs — fails if any file under data/*.json that is written by ≥2 distinct room-tagged commits in git history (room-bifurcations.json, self-prompts.json, etc.) is absent from every .workflow/rooms/*.html owned-surface glob; forces explicit multi-room or shared-bucket ownership before the file can be silently orphaned again.

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. litReality (132) outgrowing litIntent (104) on a docsOnly, single-domain data commit suggests the walk is over-spreading relative to a thin intent side rather than under-filling — concrete adjustment: for docsOnly commits with no code diff, cap reality-side ply depth to track intent-side lit count (an intent-anchored early stop) instead of letting reality run its own independent max-ply. Experiments: Re-run the gzip-NCD seed for this sha with data/room-bifurcations.json + data/self-prompts.json excluded from performer's reality corpus and check whether offPct drops below 15 — confirms these two files are pure noise for performer's lane specifically · Pull every past commit whose diff is ONLY these two files (docsOnly=true, no other paths) across all 9 rooms and check whether offPct is systematically >15 regardless of which room committed — if so it proves structural ownerlessness, not per-commit drift · After adding the vault/operator glob entries, recompute offPct for this same sha (f08ec5875) under vault and operator lanes and confirm it drops under 15 for at least one of them, validating the split-ownership fix

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

    A mistagged-lane event this cheap (docsOnly, zero code touched, work itself correctly routed per its own trailers) shouldn't cost performer's loss ratio anything once the shared-state files are given explicit vault/operator ownership — the fix restores the premium by removing a structural false-positive, not by changing operator behavior.

    Open the signed attestation →
  104. 2026-07-11 · 🎩 operator · offPct 54

    feat(bookclub): individual-send A/B (morning arm) + click attribution fixed end-to-end + geo/human-vs-security report

    encircled drift panel for 38db35536

    Why it left the lane: The commit's message and lane claim 'operator' room execution work, but the diff is dominated by a brand-new geo/security click-attribution report (click-geo-report.mjs, 131 lines) plus middleware and API tracking changes — that's analytics/reporting surface bleeding into a lane scoped to send-mechanics, so the reef's row/column walk sees three unrelated concerns (send logic, tracking infra, reporting) fused into one commit and can't converge on a single pixel.

    How it was fixed: Split the click-geo-report.mjs analytics addition into its own commit/lane (or explicitly declare it under a reporting/analytics room) so send-daily.mjs + render-email.mjs (the actual A/B send work) stand alone and re-converge under 15% offPct; keep middleware.ts and click-log/route.ts paired with whichever commit owns the tracking-infra half.

    • Split click-geo-report.mjs out into its own commit with its own message describing it as a reporting/analytics deliverable, not an A/B-send deliverable
    • Add or update the reef lexicon entry mapping 'click attribution' / 'geo report' terms to a reporting pixel distinct from send-mechanics
    • Update CLAUDE.md bookclub section (if one exists) to declare click-geo-report.mjs's owned surface separately from send-daily.mjs's
    • Add a guard test asserting bookclub send-mechanics commits don't co-mingle new top-level report scripts >100 lines without a scope split
    • Cross-link src/middleware.ts and src/app/api/track/click-log/route.ts changes to the tracking-infra lane in the rooms owned-surface globs

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

    Open the signed attestation →
  105. 2026-07-11 · 🎩 operator · offPct 25

    feat(commits): the OVERVIEW EFFECT — encircled-panel grid on /commits, existence-gated panels on /intervene

    encircled drift panel for 5820f9347

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

    Measured outcome (deterministic, not self-graded): room mean offPct 2230 over 13 commits since

    Open the signed attestation →
  106. 2026-07-11 · 🎩 operator · offPct 36

    feat(bookclub): the reply-beg at the climax — "if you ever reply to emails like this one, reply to this one"

    encircled drift panel for 5cc52af24

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

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

    Open the signed attestation →
  107. 2026-07-11 · 🎩 operator · offPct 23 · intentional

    feat(interventions): context-maximized sensemaking + measured closed loop — the fire ships prevention, probes the detector, and gets graded by the pipeline

    encircled drift panel for 604f4b72e

    Why it left the lane: Of the 7 changed paths, only build-intervention-prompt.mjs, intervention-fire.sh and probe-verify.mjs (the detector-probing/telemetry logic — measureRow, definerChains, pipeline_probe) are genuinely operator-flavored. src/app/intervene/page.tsx is not just undeclared for operator, it is EXPLICITLY listed in this room's own "Forbidden surface" section of .workflow/rooms/kitty-operator.html: "src/app/, src/components/ dashboard component code — owned by 🔨 Builder". tests/ops/intervention-fire.test.js and data/interventions/*.ndjson/json are also absent from operator's declared owned-surface list (data/trust-debt/, pipeline/, accounting/, pmu/pipeline, pmu/claudbridge, pmu-demo, dashboard*). So 4 of 7 changed items sit outside or against operator's declared lane — the walk had no home anchor for most of the diff and spread to near-saturation (litReality 133/144) looking for one.

    The semantic pull: The literal string 'src/app/intervene/page.tsx' in the diff-stat is a direct hit against the exact forbidden-surface line '<code>src/app/</code>... owned by 🔨 Builder' in kitty-operator.html. Separately, prose-template terms in build-intervention-prompt.mjs's buildHtml ('We were out of lane. This is why:', 'What we learned:', 'Detector probe', subject/checklist/lesson wording) are the same reader-facing-copy-inside-an-infra-script pattern flagged in the prior lesson (720da3a7b), now recurring in a new file.

    Intent–reality gap: The commit message frames this as one coherent operator deliverable ('the fire ships prevention, probes the detector, and gets graded by the pipeline'), and its own Relevant-Rooms trailer already names 🔨 builder — the author was aware this crosses into builder's forbidden surface — but the DELEGATE-TO-SUBTASKS hard rule (bifurcate the non-primary domain to its room before committing) wasn't invoked; the src/app/intervene/page.tsx UI edit rode along in the single operator-tagged commit instead of being routed to builder.

    How it was fixed: Split going forward: pipeline/prompt/probe logic (build-intervention-prompt.mjs, intervention-fire.sh, probe-verify.mjs) stays declared under operator; src/app/intervene/page.tsx changes get bifurcated to 🔨 builder via the rooms JSON + signed mesh push (never a branch, per the DELEGATION hard rule) even when one session is fastest to write all three files itself.

    • Add scripts/interventions/, data/interventions/, and tests/ops/intervention-fire.test.js to operator's Owned file/dir surface list in .workflow/rooms/kitty-operator.html — this subsystem is genuinely operator's detector-probing domain and has never been declared.
    • Leave src/app/ on operator's Forbidden surface list as-is (it is correctly Builder's) and do not edit page.tsx under an operator-tagged commit again without a bifurcate step.
    • On the next multi-domain interventions change, TaskCreate the builder-facing UI delta as its own subtask and route it via scripts/bifurcate.mjs to the builder room BEFORE committing the operator-tagged parts.
    • Re-run measure/probe-verify against this sha once the operator glob is extended, to isolate how much of the 23% off-lane share is explained by undeclared-but-legitimate paths vs. the one genuinely-forbidden page.tsx file.

    What we learned: Escalate past 720da3a7b (a prose-voice swap measured no improvement, offPct 19→21): this room's off-lane events are not primarily a copy/framing problem. This event is the interventions subsystem — built specifically to detect cross-lane drift — itself committing across its own room's declared forbidden-surface boundary (src/app/, explicitly owned by Builder) in the same commit as legitimate operator work, which is exactly the failure mode the repo's own DELEGATE-TO-SUBTASKS hard rule exists to prevent. The detector has a blind spot for its own construction.

    The missing guard (the deliverable): A pre-commit check that fails (or at minimum flags) when a commit's Originating-Terminal room's changed files intersect any OTHER room's declared 'Forbidden surface' list in .workflow/rooms/*.html — would have caught src/app/intervene/page.tsx landing under 🎩 operator before it shipped, independent of any voice/prose signal.

    Detector probe: signal attribution — gzip reef 10% · ballistic walk 90%. Saturated: litReality 133/144 and litIntent 143/144 means the walk covered 92-99% of the entire 144-cell lattice by its stopping ply — well past useful discrimination (project note: the walk saturates the 144-map by ply 8, breadth>depth for this lens). At this saturation, offPct mostly measures 'was there ANY declared glob to anchor to' rather than genuine cross-domain semantic pull. Adjust: cap maxDepth/budget for room-tagged commits with zero owned-surface glob matches (mirror definerChains' budget:40/maxDepth:3) instead of letting the walk run unrestricted to full-lattice saturation. Experiments: Add scripts/interventions/, data/interventions/, tests/ops/intervention-fire.test.js to operator's glob (leaving src/app/ forbidden) and re-run this sha's walk — measure whether offPct drops toward 15% with page.tsx correctly still counted as the residual cross-lane item. · Build the forbidden-surface cross-check guard and backtest it against the last 90 days of commits to count how many prior off-lane events it would have flagged before they shipped. · Cap walk maxDepth/budget for tightly-scoped script diffs to definerChains' bounds (budget:40, maxDepth:3) and compare offPct on the last 15 operator commits, to separate the saturation effect from the domain-boundary effect.

    Measured outcome (deterministic, not self-graded): room mean offPct 2026 over 6 commits since · dictionary ablation saved 1391B

    Once the interventions subsystem's genuinely-operator files are declared, the residual off-lane share collapses to one named, already-self-flagged line item (src/app/intervene/page.tsx, Relevant-Rooms already lists builder) — converting an ambiguous 23%-off-lane loss event into a fully attributable, insurable single-file cross-lane exception that a bifurcate-before-commit habit would eliminate entirely.

    Open the signed attestation →
  108. 2026-07-11 · 🎩 operator · offPct 32

    fix(bookclub): dual-license sidenote reframed — the ghost-read heard "sneaky move", the fix is the neutral-ruler rationale

    encircled drift panel for 720da3a7b

    Why it left the lane: The commit's ROOM tag is 🎩 operator (infra/orchestration lane) but the actual diff is a prose-voice rewrite of reader-facing email copy — swapping a 'sneaky move' framing for a 'neutral-ruler' rationale inside render-email.mjs's template string. A copy/voice edit landing under an infra-script path pulls the receipt's semantic mass toward blog-content/comms lanes instead of operator's, producing the 32% off-lane spread.

    How it was fixed: Re-tag the commit's Relevant-Rooms trailer to include the comms/blog-content lane (not operator alone) so the receipt's claimed lane matches the prose-level change it actually made, and route this copy edit through the same ghost-read gate blog/comms prose already uses.

    • Add a Persona-Intent trailer to bookclub copy commits per CLAUDE.md's content-commit format, naming the ideal reader (a ghost-read participant) and the intended takeaway
    • Extract the dual-license sidenote string out of scripts/bookclub/render-email.mjs into a content/template file under a comms-owned path, separating prose from render logic
    • Wire bookclub email copy through the qwen-monologue -> Claude-grade >=95 gate already required for reader-facing sends, not just the render script's own tests
    • Update .workflow/rooms/kitty-operator.html's owned-surface globs (or the comms room's) to explicitly claim scripts/bookclub/render-email.mjs so future receipts land it in the right lane

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

    Open the signed attestation →
  109. 2026-07-11 · 🎩 operator · offPct 30

    edit(blog): walk-convicted post — ghost-read revision pass (five clarity fixes, graded 87→ re-aimed at 95)

    encircled drift panel for 836f355aa

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

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

    Open the signed attestation →
  110. 2026-07-11 · 🎩 operator · offPct 41 · structural

    feat(interventions): the three rungs fused — shadow-recompute falsifiable gate, autonomic dictionary promotion, walk-autotune aggregate

    encircled drift panel for a2e189e51

    Why it left the lane: Every changed file in this commit — scripts/interventions/build-intervention-prompt.mjs, scripts/interventions/intervention-fire.sh, scripts/interventions/probe-verify.mjs, scripts/interventions/shadow-recompute.mjs (new), tests/ops/intervention-fire.test.js, and the data/interventions/* ledgers — lives under scripts/interventions/ and data/interventions/. I checked .workflow/rooms/kitty-operator.html directly: its 'Owned file/dir surface' list (lines 599-606) enumerates data/trust-debt/, docs/03-product/MVP/ORTHOGONAL_HEATMAP_MVP_SPEC.md, docs/01-business/pipeline/, docs/01-business/accounting/, data/pmu/pipeline/, data/pmu/claudbridge/, public/pmu-demo/, docs/ops/dashboard*, public/dashboard* — and its 'Forbidden surface' list names Network/Vault/Voice/Builder/Performer paths. Neither list mentions scripts/interventions/ or data/interventions/ at all. The reef has literally no lane declared for this vocabulary ('git worktree add --detach', 'shadow-recompute', 'dictionary-seeds.ndjson', 'autotuneAggregate', 'reef_signal_pct'), so it can't converge on operator's declared coordinates and instead saturates the whole lattice — litReality=144/144 (full), litIntent=128/144, prewalkOverlap=only 3.

    The semantic pull: The diff's dominant vocabulary is generic infra/testing idiom that resembles many domains equally: 'worktree add --detach' (sandbox/CI terms), 'tolerance floor / never zero' (measurement-QA terms), 'promote-only-if-it-measures' and 'reef-enrich gate' (data-pipeline terms), 'autotune / recommendation, never silent auto-apply' (ops-config terms). None of this string-matches the operator lane's owned nouns (pipeline, accounting, dashboard, trust-debt, PMU). With no glob to anchor it, the walk has nowhere concentrated to land and spreads across the full 144-cell lattice instead of converging on a handful of operator coords — this is diffuse-everywhere drift, not a pull toward one specific wrong lane.

    Intent–reality gap: The commit message claims coherent, in-lane operator-orchestration work ('the three rungs fused' — shadow-recompute, dictionary promotion, walk autotune, guarded by 16 green invariants). The receipt does not dispute the work's soundness; it reports offPct=41 with the reality side fully saturated (144/144 lit) because the entire interventions/ subsystem this commit extends has never been added to any room's owned-surface declaration — the gap is architectural bookkeeping, not a defect in the code.

    How it was fixed: Add scripts/interventions/** and data/interventions/** (plus the paired test path) to the operator room's owned-surface list in .workflow/rooms/kitty-operator.html, since operator is the room that has authored this entire subsystem across at least two commits now (604f4b72e and this one). If the subsystem keeps growing at this rate, consider promoting it to its own explicit sub-lane note rather than an implicit appendage.

    • Add <code>scripts/interventions/**</code> to the Owned file/dir surface list in .workflow/rooms/kitty-operator.html
    • Add <code>data/interventions/**</code> to the same list (events.ndjson, pipeline-probes.ndjson, stories/*.json)
    • Add <code>tests/ops/intervention-*.test.js</code> to the owned surface so its own guard tests are covered too
    • Confirm data/pmu/reef/dictionary-seeds.ndjson (written by rung 2's promoteDictWinners) falls under the already-owned data/pmu/pipeline/ glob or add an explicit data/pmu/reef/** entry if not
    • Add a one-line cross-reference in docs/01-business/pipeline/ pointing at scripts/interventions/ as the automated half of the pipeline, so the reef's docs-side ingest also carries the vocabulary
    • Write the room-surface-coverage guard described in missing_guard so this stops silently recurring

    What we learned: The prior lesson (604f4b72e) diagnosed 'the detector has a blind spot for its own construction' when the interventions subsystem committed into Builder's src/app/ — but the actual fix that diagnosis implied (declare scripts/interventions/ and data/interventions/ into SOME room's owned surface) was never applied. Two commits later, the exact same subsystem trips again, this time not by crossing into another room's territory but by having NO territory at all. The durable fact: a subsystem doesn't earn a lane by being built and tested — it must be explicitly DECLARED into an owned-surface glob, or every future commit to it is structurally doomed to read as diffuse/off-lane regardless of code quality, and 'escalate past the last lesson' only works if the lesson's implied remediation is actually landed as a doc/config edit, not just narrated.

    The missing guard (the deliverable): tests/ops/room-surface-coverage.test.js — walk every path touched by commits tagged room:operator (or scoped to scripts/interventions/**, data/interventions/**) and assert at least one .workflow/rooms/*.html Owned-surface glob claims it; fail loudly listing the unclaimed paths, so a subsystem can never grow for N commits without a declared home.

    Detector probe: signal attribution — gzip reef 55% · ballistic walk 45%. litReality hitting 144/144 (every cell lit) while litIntent sits at 128/144 means the walk is not under-utilized — it's over-saturated, spending its full ply budget without ever converging because the seed gave it no strong local cluster to settle into. Adding depth here would only diffuse further. Concrete adjustment: cap effective ply for commits scoped entirely to scripts/interventions/**+data/interventions/** at ply<=2 until the reef has a seeded lane for this subsystem, so saturation is diagnosed as 'no lane' rather than burned as wasted walk budget. Experiments: Seed data/pmu/reef/dictionary-seeds.ndjson with interventions-subsystem terms ('shadow-recompute', 'falsifiable gate', 'autonomic dictionary promotion', 'walk autotune') and re-run this same commit's pipeline to measure whether prewalkOverlap rises above 3 and offPct drops below 41 · Run rung 1 (shadow-recompute.mjs) on THIS commit itself with a hypothetical configuration_updates entry adding scripts/interventions/** to kitty-operator's owned surface, and record the lane-claim + placement A/B verdict as a live self-test of the fix · Track prewalkOverlap across the interventions subsystem's own commit series (604f4b72e:4 -> a2e189e51:3) for 5 more commits after the glob fix lands; if overlap keeps declining even with a declared lane, that signals the dictionary (not just the glob) needs the literal terms below seeded

    Measured outcome (deterministic, not self-graded): room mean offPct 2027 over 9 commits since · dictionary ablation saved 820B

    An operator-lane commit landing at offPct=41 with full lattice saturation reads, to an underwriter, as an unbounded/undeclared surface rather than a bounded domain-adherence breach — it inflates this lane's apparent loss ratio for a reason that has nothing to do with code correctness; premium is restored the moment the owned-surface glob is patched to declare scripts/interventions/** and data/interventions/**, converting future commits to this subsystem from diffuse-everywhere drift back into a measurable in-lane signal.

    Open the signed attestation →
  111. 2026-07-11 · 🎩 operator · offPct 28

    feat(blog+bookclub+interventions): The Walk Convicted While the Model Slept — the incident post, the paradox-voice CTA, and llm_error on the ledger

    encircled drift panel for a7aead25c

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

    Measured outcome (deterministic, not self-graded): room mean offPct 2130 over 13 commits since

    Open the signed attestation →