💳 Fund Autonomy Ledgernot signed in🔑 Sign in

Interventions · countable events

When a commit leaves its lane, extra work triggers — automatically

Every commit here gets a deterministic, LLM-free drift receipt (the mechanism). When a receipt lands out of lane (off-lane share above the 15% threshold), that is one countable event — and it triggers an intervention: a sensemaking pass explains the drift, the fixes get checklisted, and the story is published here. Countable events are what make a lane priceable; this page is the count. Each entry is a structural alert, not a scolding — a diagnosis, not a verdict — and the ledger you are reading is a loss ratio, published by the house that carries it. Stated exceptions are what surplus looks like in print.

Out-of-lane receipts per day

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

The interventions — why · fix · checklist

  1. 2026-10-08 · 🎤 voice · offPct 32

    content(book): ch9 — muscle memory across chips is re-runnable routing

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

    Open the signed attestation →
  2. 2026-10-08 · 🔨 builder · offPct 22

    feat(iamfim): C685 — send this to your engineer: the install door the buyer can hand on (part of C635)

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

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

    Open the signed attestation →
  3. 2026-10-08 · 📐 architect · offPct 44

    docs(strategy): C678 — K4 meeting prep + the book for capital allocators, landed with its guard

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

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

    Open the signed attestation →
  4. 2026-10-08 · 📐 architect · offPct 30

    spec(vna): C699 — a cap hit never reverts a commit whose guard is green; C692b owns the missing null

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

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

    Open the signed attestation →
  5. 2026-10-08 · 🧪 laboratory · offPct 48

    ci(pmu): run the receipt lifecycle unattended from a fixture move to a verified receipt

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

    Open the signed attestation →
  6. 2026-10-08 · 🎩 operator · offPct 39

    fix(pmu): the meaning tests counted placements the walk refused — re-scored on admissible placements only, every one is UNMEASURED

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

    Open the signed attestation →
  7. 2026-10-08 · 🔨 builder · offPct 24

    feat(site): C697 — what we did, said first: 'We functionally solved the symbol grounding problem', the test that would break it beside it

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

    Open the signed attestation →
  8. 2026-10-08 · 📐 architect · offPct 25

    fix(voice): the zero-drift rung stops firing on a reading — 'no drift detected' reports, 'zero drift' promises

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

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

    Open the signed attestation →
  9. 2026-10-08 · 🎤 voice · offPct 49

    content(book): ch8 — the counter stops being unfoolable: a prompt cannot argue with a count, and the register stays apparatus

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

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

    feat(pmu): C676.3 — the replay's nonsense falsifier grows 12 → 100 lines, LLM-free: the twelve hand-written lines stay first, 88 more drawn from a fixed word bank by a seeded LCG; the frozen corpus file carries the same list

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

    Open the signed attestation →
  11. 2026-10-08 · 🔨 builder · offPct 17

    feat(home): the patent line states its status in full, and the breakthrough carries a high-school polynomial check

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

    Open the signed attestation →
  12. 2026-10-08 · 🔨 builder · offPct 28

    fix(site): C694 — no served surface claims an infinity of the lattice

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

    Open the signed attestation →
  13. 2026-10-08 · 🧪 laboratory · offPct 41

    test(vna): C671 is the umbrella — the LinkedIn guard moves to its real row C672

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

    Open the signed attestation →
  14. 2026-10-08 · 🧭 navigator · offPct 17

    fix(vsx): C118 — emoji only on controls: 🎯 and 🌐 leave prose, the status bar counts as a control, "3rd" is a word

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

    Open the signed attestation →
  15. 2026-10-08 · ☕ network · offPct 18

    draft(comms): RI respondent speech v1 (3½ min, straight after Nikolay) + C692e, the paraphrase test the meaning half needs

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

    Open the signed attestation →
  16. 2026-10-08 · ☕ network · offPct 19

    feat(bookclub): the intro foreshadows the physical piece and the checks further down

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

    Open the signed attestation →
  17. 2026-10-08 · ☕ network · offPct 62

    docs(comms): RPM readout exhibit — the format to lock, its defects named

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

    Open the signed attestation →
  18. 2026-10-08 · 🎩 operator · offPct 35

    feat(pmu): history anchor — a rewritten timeline is caught by recomputation, not trust

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

    Open the signed attestation →
  19. 2026-10-08 · 🔨 builder · offPct 20

    chore(book): rebuild HTML (detached pre-push auto-heal)

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

    Open the signed attestation →
  20. 2026-10-08 · 🔨 builder · offPct 23

    chore(book): rebuild HTML (detached pre-push auto-heal)

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

    Open the signed attestation →
  21. 2026-10-08 · 🧪 laboratory · offPct 24

    feat(elicit): countersign — a verifier that did not author the move signs a verdict over it

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

    Open the signed attestation →
  22. 2026-10-08 · 🧪 laboratory · offPct 33

    test(voice): C671 guard + the NotebookLM overclaim ladder as one scanner

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

    Open the signed attestation →
  23. 2026-10-08 · ☕ network · offPct 16

    fix(bookclub): send-now.sh adds the metavector instead of only gating on it — presend-pass.sh --metavector-only is the one home

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

    Open the signed attestation →
  24. 2026-10-08 · 🎤 voice · offPct 37

    content(blog): conservation-of-address — the lanes are clocks, a fixed floor turns counts into a rate, and the fourth thing it does not do

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

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

    Open the signed attestation →
  25. 2026-10-08 · 🎤 voice · offPct 27

    chore(book): ch8 — the Zero Remainder metavector, regenerated by the door's attach step after the readability splices (1d3750248c)

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

    Open the signed attestation →
  26. 2026-10-08 · 🧪 laboratory · offPct 29

    feat(vna): C693 — commit-chain dwell and lumpability receipt

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

    Open the signed attestation →
  27. 2026-10-08 · 🔨 builder · offPct 33

    feat(site): C698 — every buy door says what the licence buys, from one source

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

    Open the signed attestation →
  28. 2026-10-08 · 🔨 builder · offPct 33

    chore(blog): drift panel for conservation-of-address d611678ef6 (the time round)

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

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

    Open the signed attestation →
  29. 2026-10-07 · ☕ network · offPct 23

    fix(bookclub): C669 — the email names the identity "conservation of address", as ch8 now does

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

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

    Open the signed attestation →
  30. 2026-10-07 · 🔨 builder · offPct 21

    chore(book): rebuild HTML (detached pre-push auto-heal)

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

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

    Open the signed attestation →
  31. 2026-10-07 · ☕ network · offPct 22

    feat(bookclub): the multinomial formula rides in "If you wonder whether the math is real"

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

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

    Open the signed attestation →
  32. 2026-10-07 · 🎤 voice · offPct 22

    content(book): C669 — ch8 says what the expansion does, in plain words

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

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

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

    fix(vna): C670 — a commit's intent rows come from its subject, never a body citation, so /steer's INTENT panel stops refusing on rows it only cited

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

    Open the signed attestation →
  34. 2026-10-07 · 🎤 voice · offPct 26

    content(book): ch8 Geometric Actuation carries both final forms and leaves the failure domain

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

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

    Open the signed attestation →
  35. 2026-10-07 · 🎤 voice · offPct 19

    content(book): C669 — the ladder qualifier, shortened, names the 144×144 grid

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

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

    Open the signed attestation →
  36. 2026-10-07 · ☕ network · offPct 37

    feat(bookclub): C669 — the email's ladder line, shortened, on the 144×144 grid

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

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

    Open the signed attestation →
  37. 2026-10-07 · 🎤 voice · offPct 18

    content(blog): Conservation of Address — the expansion proof, walked through

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

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

    Open the signed attestation →
  38. 2026-10-05 · 📐 architect · offPct 27 · mistagged

    feat(vna): C649c — the unit is an action; each act drains ceil(its cost ÷ the cheapest act's cost), proposed not armed

    Why it left the lane: The diff's mass sits almost entirely in computation/infra vocabulary — execFileSync, gzipSync, partUsd(), drainsFrom(), actsFrom(), readDrain(), CARD_REL, SIBLINGS — 260 new lines in scripts/vna/panel-price.mjs plus a 303-line data/vna/action-drain.json plus a 141-line tests/vna/c649c-actions-drain-by-cost.test.mjs plus 27 lines in src/app/pricing/page.tsx. That's 704 of 811 inserted lines (87%). The declared intent surface — docs/strategy/2026-10-05-action-drain-draft.txt — is 83 lines (10%). lensReality (A1,C1) carries an A1 coordinate absent from lensIntent (C1,C); the walk is reading the engine/test/UI code as the dominant mass and placing it off the architect's declared C1,C lane.

    The semantic pull: Function and constant names that compute dollars from CPU/byte receipts (partUsd, drainsFrom, actsFrom, SHARED_CPU, MB/GB-denominated arithmetic) and the Stripe/gateway integration language (COUNTERSIG_RULE, gateway.mjs references) are engineering-surface tokens, not strategy-surface tokens — they pull the walk toward A1,C1 even though the commit's Originating-Terminal and Story frame the whole unit as an architect act ('this lands the derived rate card').

    Intent–reality gap: The commit claims architect authorship for 'landing the derived rate card and the proposed display' but the actual work is 87% engine/test/UI code in scripts/vna, data/vna, tests/vna and src/app/pricing — none on architect's owned-surface list (docs/strategy/, docs/03-product/, .workflow/rooms/*.html, .workflow/cognitive-dashboard.html, docs/01-business/strategy/, CLAUDE.md). Only the draft txt is genuinely architect's.

    • Edit CLAUDE.md:181's Originating-Terminal clause per spec_rewrite above (architect owns CLAUDE.md, so this IS the graduation DELEGATE-TO-SUBTASKS already requires).
    • Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, asked 35x, never shipped) using a diff-line-weighted room-surface ownership check.
    • Confirm scripts/vna/, data/vna/, tests/vna/, src/app/pricing/ are each assigned an explicit owning room in whatever manifest the new guard reads, so it has ground truth.
    • For future C64x-series commits where the strategy draft's numbers depend on a new script, split into two commits: one Originating-Terminal: builder/operator for the engine+tests+UI, one Originating-Terminal: architect for the draft txt — this also satisfies ITERATION DISCIPLINE.
    • Have the next architect-room draft (the successor to 2026-10-05-action-drain-draft.txt) cite panel-price.mjs as an existing builder-owned instrument rather than re-landing it in the same commit.

    What we learned: CLAUDE.md already has a HARD RULE for exactly this shape — DELEGATE-TO-SUBTASKS: 'A dispatched agent whose coordinate owns no code surface must GRADUATE that rule into CLAUDE.md rather than report prose' — but C649c, an architect-originated commit, shipped 704 lines of code into builder/operator surfaces with zero CLAUDE.md graduation. The open-ask ledger shows WHY the fix never lands even though it's spec'd correctly: ask-027 has been asked 35 times and ask-010 49 times without shipping — asking repeatedly is not itself an escalation mechanism, so a correct diagnosis can recur indefinitely with no forcing function to actually ship the guard.

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

    Detector probe: signal attribution — gzip reef 30% · ballistic walk 70%. litIntent/walksIntent and litReality/walksReality both equal 1.0 — the walk is saturated, not shallow: every cell it touched lit. That saturation makes it impossible to tell marginal/near-boundary touches from clearly-in-lane ones. Adjustment: tighten the lit-threshold (or add one more recursion depth) specifically on commits whose Relevant-Rooms lists 3+ rooms, so borderline cells stop universally lighting and the boundary between architect's C1,C and the code rooms' A1,C1 becomes discriminable rather than binary. Experiments: Precompute a cheap diff-line-weighted room-ownership score per commit (no walk) and correlate it against this room's last 112 offPct readings; if correlation is high, use it as a pre-filter that flags a commit before the expensive walk runs. · Re-run sha 01a2e5f787 with the lit-threshold tightened one notch and measure whether offPct moves off 27 — tests whether today's saturation (100% lit both sides) is an aperture-too-loose artifact rather than a real wide spread. · Add panel-price.mjs's new identifiers (partUsd, drainsFrom, actsFrom) to the lexicon and measure whether prewalkOverlap rises above 5 for this and similar pricing-engine commits, ablation-style.

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

    A mistagged architect commit that is 87% code doesn't change what shipped, but it corrupts the room-lane loss record this lane's premium is priced from — restoring it means shipping ask-027 so Originating-Terminal is checked against the diff rather than trusted on its word.

    Open the signed attestation →
  39. 2026-10-05 · 🔨 builder · offPct 19

    feat(vna): C647n — the thetacog.panels.home setting: backup (default) · repo (only when a visibility check says public) · off

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

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

    Open the signed attestation →
  40. 2026-10-05 · 📐 architect · offPct 27

    spec(vna): C668e — a halted attempt's rollback never reverts the retry that ticked

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

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

    Open the signed attestation →
  41. 2026-10-05 · 🧪 laboratory · offPct 33

    feat(vna): C648 — the anatomy rides with the tape; a panel hash is not a recompute (the code)

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

    Open the signed attestation →
  42. 2026-10-05 · 🔨 builder · offPct 34 · mistagged

    feat(vna): C647j — what the backup costs and what it holds, one graph on /backup/cost

    Why it left the lane: The diff's 300-line scripts/vna/backup-cost.mjs carries dense axiom/doctrine and forensic-ledger vocabulary — "STORE_RATE", "rateHasSource"/"costFigure" (a cost figure refuses without a pinned source URL), "sufficiencyPair"/"SUFFICIENT FOR"/"NOT SUFFICIENT FOR", "AXIOM 1, W4/W5", "Rice, 1953", and "THE CHAIN DIAGNOSIS" naming seq 1921/seq 2679, C523, C514, C483a — none of which is UI code. That vocabulary is what pulls lensReality to A1,B. The only file inside Builder's declared surface (src/app/) is the 108-line page.tsx; the other 212 new lines (script + data + test) carry the axiom-and-forensics content that drags placement away from C3,A.

    The semantic pull: "sufficiencyPair"/"SUFFICIENT FOR"/"NOT SUFFICIENT FOR", "AXIOM 1, W4/W5", "Rice, 1953", "rateHasSource"/"costFigure" refusal logic, and "chain_verified"/"THE CHAIN DIAGNOSIS" (seq 1921 C523, seq 2679 C514, C483a withTapeLock) in scripts/vna/backup-cost.mjs are the strings; A1,B is where that doctrine-and-forensics content naturally lands, pulling the receipt off C3,A where src/app/backup/cost/page.tsx (the actual Builder-owned file) sits.

    Intent–reality gap: The commit tags Originating-Terminal: Builder for "one graph on /backup/cost" as if it were a UI feature, and its own Relevant-Rooms trailer already names Operator and Architect — but the receipt's lane-placement keys off Originating-Terminal alone, so 212 of 300+ new lines of axiom-doctrine and tape-forensics code (scripts/vna/backup-cost.mjs, data/vna/measures.json) get measured against Builder's src/app/-shaped lane and read as 34% off, even though the work itself is correctly-placed VNA code.

    • Add scripts/vna/** and data/vna/** to the Architect (or Operator) owned-surface glob in the room-surface config (.workflow/rooms/*.html) — currently neither is claimed by any room's list.
    • File a shared-state-owner entry for data/vna/measures.json per the open shared-state-files-have-room-owner ask (ask-003).
    • Land tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027) so a Builder-tagged commit whose diff majority sits outside src/app/src/components/src/lib/public/ fails loudly instead of inflating offPct silently.
    • Audit the room's other 105 out-of-lane events in the last 14 days for the same pattern (a UI page's companion scripts/vna/* reader tagged to the page's room) before assuming each is a distinct drift class.
    • When a future commit legitimately spans two rooms' surfaces (a UI page + its VNA reader), either split it into two commits per room or tag Originating-Terminal to the plurality-owning room and let Relevant-Rooms carry the rest.

    What we learned: A commit's Relevant-Rooms trailer can already correctly disclose every room a diff touches (here: Operator, Architect) while Originating-Terminal — the one field the lane-placement actually keys off — still names only the room that hosts the page; correct multi-room disclosure in the trailer does nothing to prevent an off-lane receipt because the detector doesn't read Relevant-Rooms for placement, only for room-surface-coverage accounting after the fact.

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

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Saturated, not under- or over-deep: litIntent/walksIntent=133/133 and litReality/walksReality=137/137 are both 100% fill, so every cell the walk visits gets marked lit with no discrimination between in-lane and out-of-lane content. Concrete adjustment: add a minimum relevance score before a visited cell counts as lit (so lit < walks becomes possible), which would let the walk itself register the out-of-lane pull instead of passing 100% of it to offPct. Experiments: Re-seed the reef for this sha with scripts/vna/**'s own anchor terms (STORE_RATE, chain_verified, sufficiencyPair, AXIOM) pre-registered under the Architect/Operator corpus and re-measure prewalkOverlap — predict it rises materially above 7. · Backfill the room-surface config with scripts/vna/** → Architect/Operator, then recompute this sha's receipt with no other change, isolating whether offPct drops under 15 from the surface-mapping fix alone (vs needing a reef re-seed too). · Ablate the gzip baseline dictionary with the 'SUFFICIENT FOR' / 'NOT SUFFICIENT FOR' doctrine phrase (present in every VNA script per C611o) and measure whether lensReality for this and prior VNA-script commits shifts off A1,B.

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

    As a mistagged event rather than genuine cross-lane risk-taking, this inflates Builder's apparent loss-ratio on paper without the underlying VNA-reasoning work being unsound; premium is restored by fixing room-surface ownership (ask-027) so future scripts/vna/* commits attribute to the room that actually carries their content instead of the room that merely hosts the page.

    Open the signed attestation →
  43. 2026-10-05 · 🔨 builder · offPct 27 · structural

    feat(vna): C661 — the actuarial dataset: download the 44 + 598 tasks and reproduce p yourself

    Why it left the lane: The diff's heaviest semantic mass sits in scripts/vna/actuarial-dataset.mjs (114 lines) and tests/vna/c661-the-actuarial-dataset-reproduces-the-p.test.mjs (197 lines), both importing from src/lib/backup/token-tail.mjs and scripts/vna/steer-ab-tokens.mjs and carrying dense actuarial-math prose — the LCG rule string ('s ← (multiplier × s + increment) mod 2^32…'), the STATISTICS.p/worst5_share/null_band definitions, 'decile', 'redraws', 'tailReading'. That vocabulary cluster is VNA-analytics-coordinate language, not Builder's page/public vocabulary, and it drags the walk into the dense B1,C1/B1,C2/B3-row/C1,C2-col region shown in the encircled map (19 lit, 0 in-lane) while the intent lane sits at B,C1 (the page.tsx + public/ export, which IS on Builder's surface).

    Intent–reality gap: The commit message and Relevant-Rooms trailer claim this is Builder work (page.tsx link + public/ exports — both genuinely on Builder's owned surface), but the receipt measured 27% of lit reality cells outside that lane because the actual engine (scripts/vna/*.mjs, tests/vna/*.test.mjs) lives on a path Builder's declared owned-file-surface list does not include at all, even though the room has 113 such events in 14 days — this is not a one-off misclaim, it's every VNA-exporter commit from this terminal registering as drift by construction.

    • Locate the generator for the printed owned-file-surface list (grep -r 'scripts/build-book-html.sh' data/ .workflow/ scripts/ to find it) and add scripts/vna/** + tests/vna/** to Builder's entry
    • Run tests/ops/room-surface-coverage.test.js (ask-001) against this commit's file list before and after the config change to confirm offPct-relevant coverage closes
    • Run tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027) against the last 10 Builder commits touching scripts/vna/ to quantify how many were flagged under the stale config
    • Bucket the room's 113 out-of-lane events (14d) by path prefix (scripts/vna/ vs tests/vna/ vs other) to confirm this is the dominant recurring driver before closing the lesson
    • Add a CLAUDE.md or rooms-config note naming scripts/vna/ and tests/vna/ as Builder-owned so future commits don't re-trip this

    What we learned: All three prior interventions for this room were facts-only (no sensemaking payload existed yet) and the room's offPct trend under them was flat-to-worse (26→27, 21→22) except one sharp drop (31→14) — this pass is the first to locate an actual structural cause: the owned-surface CONFIG, not operator behavior, is stale against a whole category of Builder's real recurring work (VNA exporter+test pairs), so every commit in that category is drift by definition until the config is extended.

    The missing guard (the deliverable): tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, asked 35×) — had this guard been enforced against the CURRENT owned-surface config, it would have caught that Builder's Originating-Terminal claim does not match scripts/vna/+tests/vna/ under the declared globs, surfacing the config gap on the first VNA-exporter commit rather than the 113th out-of-lane event.

    Detector probe: signal attribution — gzip reef 35% · ballistic walk 65%. litReality (142) exceeding litIntent (120) by ~18% with walkTruncated=false suggests the reality walk is NOT shallow or saturated — it is fully exploring and finding real mass. The risk is the opposite: large generated data files (994-line JSON, 655-line CSV) may inflate litReality purely by byte volume rather than semantic spread. Adjustment: cap or down-weight the walk's per-file byte contribution for files under public/backup/*.{json,csv} (git-tracked derived data exports) so volume alone doesn't drive extra lit cells. Experiments: Re-run the gzip-NCD reef seeding for this commit with public/backup/*.{json,csv} excluded from the corpus and measure whether prewalkOverlap rises above 5 for this commit class · Classify the LCG/STATISTICS prose blocks as a distinct 'math-definition' reef category and measure whether commits carrying such blocks show lower laneHamming when seeded against that category specifically · Bucket the room's 113 out-of-lane events by whether they touch public/backup/*.{json,csv} vs scripts/ vs src/app/, and compare mean offPct per bucket to confirm the data-export class is the dominant driver

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

    A structural owned-surface gap that mislabels 113 legitimate commits/14d as lane breach inflates this lane's apparent loss-ratio without any real defect; closing the config gap (not the code) restores the premium signal to measuring actual drift again.

    Open the signed attestation →
  44. 2026-10-05 · 🧭 navigator · offPct 26 · mistagged

    fix(vna): C647f regression — register the pill sparkline so every graph on /backup and the sidebar has its row

    Why it left the lane: The commit's Originating-Terminal is "🧭 steer" — a skill name, not a room — but it shares the compass glyph with the Rio Navigator room. The receipt's room-attribution step appears to key off that glyph rather than the commit's own Relevant-Rooms trailer, which already names the correct rooms: "Builder, Laboratory, Architect". The diff itself (data/vna/measures.json, 352 insertions/64 deletions, pure JSON re-serialization adding a registry row for metric-pill.mjs's <svg class="mp-spark">) never touches anything on Navigator's owned surface (scripts/open-room-session.sh, openclaw/*, .workflow/cognitive-dashboard.html). prewalkOverlap=21/58 (~36%) shows the reef seed was already half-divergent from Navigator's corpus before the recursive walk ran at all, and litReality=116 vs litIntent=58 shows the reality walk simply spread twice as wide with no dark cells — consistent with a data-registry commit that has no natural single-room home being pulled toward whichever room's glyph matched the terminal tag.

    Intent–reality gap: The commit claims no room lane at all for itself beyond its trailer (Relevant-Rooms: Builder, Laboratory, Architect) — it never claims Navigator. The receipt nonetheless scored this as a Navigator out-of-lane event (offPct=26), measuring drift against a room the commit's own paperwork excludes.

    • Edit CLAUDE.md § COMMIT MESSAGE STRUCTURE per spec_rewrite above, in the same commit as the guard.
    • Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, asked 35× — this is the lever named but never landed) asserting Relevant-Rooms overrides Originating-Terminal glyph on conflict.
    • Patch the production room-attribution step (wherever it currently resolves commitClass=work → room) to implement that precedence.
    • Backfill/re-tag this sha's room event away from navigator to {Builder, Laboratory, Architect} so the historical ledger matches the commit's own trailer.
    • Audit the other 56 navigator out-of-lane events in the last 14 days for the same Originating-Terminal="🧭 steer"-vs-Relevant-Rooms conflict signature, to size how much of navigator's rising offPct is this one bug.
    • Confirm data/vna/measures.json sits on an owned-surface glob for Builder/Laboratory/Architect (ask-001/ask-003 territory) so it stops landing as unclaimed shared state.

    What we learned: The information needed to fix this was never missing — it was already sitting in the commit's own Relevant-Rooms trailer, correctly filled in, and the attribution pipeline overrode it with a weaker glyph-matched signal anyway. Prior passes treated 'glyphs collide' as the root cause; the sharper fact is that the fix's ingredient already ships on every commit and is simply unread, which is why 35 asks of ask-027 never converted into code — nobody pointed at the specific precedence rule (trailer beats glyph) this sha now proves is needed.

    The missing guard (the deliverable): tests/pmu-simulator/originating-terminal-matches-surface.test.mjs — asserting that for any commit where Relevant-Rooms and the Originating-Terminal-implied room disagree, the room-attribution output matches Relevant-Rooms, never the glyph lookup.

    Detector probe: signal attribution — gzip reef 60% · ballistic walk 40%. Saturated on both sides: litIntent/walksIntent=58/58 and litReality/walksReality=116/116 are both 100% lit, meaning the walk found no dark (unlit) cells to contrast against — it can report breadth but not localize density. Adjustment: add a lit-density floor so cells below a minimum gzip-NCD match strength don't count as 'lit', restoring the ability to see WHERE within the 116 reality cells the real mass concentrated instead of a uniform full-lit block. Experiments: Re-run this commit's walk with the Originating-Terminal token stripped from the seed text and compare offPct before/after — if offPct drops below 15, it confirms the glyph token is polluting the reef seed, not the file content. · For docsOnly/data-asset commits (commitClass=work, diffstat touching only a JSON data file with zero code paths), re-seed the walk from the touched file's directory path (data/vna/) instead of commit-message prose, and measure whether laneHamming drops from 36. · Run the Relevant-Rooms-override rule as an ablation across the 56 logged navigator out-of-lane events from the last 14 days and measure what fraction resolve to offPct<15 once attribution reads the trailer first.

    A mistagged, non-actionable 26% offPct event inflates Navigator's apparent loss-ratio without any real exposure behind it; premium on this lane is restored by shipping ask-027's Relevant-Rooms-wins precedence and backfilling this sha's room tag, which removes the false claim from the book rather than discounting a real one.

    Open the signed attestation →
  45. 2026-10-05 · ☕ network · offPct 23

    feat(bookclub): the email opens with the edition line — title · ¶1–N · Ch X · date

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

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

    Open the signed attestation →
  46. 2026-10-05 · 🔨 builder · offPct 21

    feat(vna): C657 — the claim graph: six signed one-sided claims in a declared fixed sequence, predictions from the truncation model, readers proved monotone

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

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

    Open the signed attestation →
  47. 2026-10-05 · 🧪 laboratory · offPct 24

    spec(vna): C664 — k_E as a prediction we can lose: the turn is the crossing, admission is the adherence, the prediction is dated before the reading

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

    Open the signed attestation →
  48. 2026-10-05 · 🔨 builder · offPct 21

    feat(vna): C652a — the underwriter's landing: two entrances over one record, the seal, the recompute, and a contact box that sends nothing

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

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

    Open the signed attestation →
  49. 2026-10-05 · 🧭 navigator · offPct 33

    feat(vna): C647k — the status bar and the sidebar's top section speak only in templates

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

    Open the signed attestation →
  50. 2026-10-05 · 🧪 laboratory · offPct 39

    feat(vna): C667d — the tesseract state rides every backup as chained, content-addressed snapshots; --recompute checks the one the walk used

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

    Open the signed attestation →
  51. 2026-10-05 · 🧭 navigator · offPct 23 · mistagged

    spec(comms): C652c — the Paul draft as good as we can make it: every line true on the day it is read

    Why it left the lane: The one added line (C652c) is packed with comms/sales vocabulary — 'Paul', 'carrier(s)', 'npx -y thetacog-mcp@latest loss-run', 'actuarial-dataset.csv', '/curve', '41 %', 'email-paul-v14.html' — which is the same vocabulary family as the file's neighboring C658d (send plan, recipients) and C666 (research questions) entries. That lexical mass is what the ballistic walk's reality side (litReality=96) spreads toward [A2,C], away from the file's own declared coordinate home for this checklist row.

    Intent–reality gap: The commit's own trailers declare Relevant-Rooms: Strategist, Counsel, Builder and Originating-Terminal: 🧭 steer (the /steer skill, named explicitly after the glyph) — Navigator is never claimed anywhere in the message. The receipt was nonetheless filed under 🧭 Rio Navigator purely because that room's emoji (data/rooms.json line 144) is the same glyph character, even though Navigator's own declared home coordinate (B1 Tactics.Speed) appears in neither lensIntent (C2,C) nor lensReality (A2,C) measured for this event.

    • Ship ask-027 (tests/pmu-simulator/originating-terminal-matches-surface.test.mjs): assert attribution uses the trailer's trailing word, not the emoji prefix.
    • Extend that same guard to assert the attributed room's declared `coordinate` (data/rooms.json) lattice-matches at least one of lensIntent/lensReality for every receipt row — Navigator's B1 matching neither C2,C nor A2,C here is a cheap, mechanical tripwire independent of string-matching.
    • In data/rooms.json, mark `emoji` as display-only (comment or a sibling `attribution_key:false`) so no future script is tempted to key off it again.
    • Re-file this event's room charge to Strategist/Counsel/Builder (per the commit's own Relevant-Rooms) rather than leaving it counted against Navigator's 56-event/14-day tally.
    • Confirm ask-005 (docs-only-commit-skips-lattice) should NOT be applied here — this spec-file content legitimately carries cross-lane intent (comms text inside a cockpit spec), so the walk's signal is real; only the room TAG is wrong, not the decision to walk it at all.

    What we learned: The glyph-collision mechanism was already named by a prior pass (fee7471ed) but reported as a plausible narrative, never checked against the room's own declared coordinate. This event supplies that check: Navigator's home coordinate (B1, data/rooms.json) is absent from BOTH lensIntent and lensReality it was charged with — a mechanically falsifiable invariant violation, not just a story. The deeper structural fact this reveals: the open-ask ledger (ask-027 at 35 asks, ask-010 at 49, ask-001 at 25) is purely additive — repetition of an ask is tracked but never escalates into a forced build, so a correctly diagnosed mechanism can be re-diagnosed indefinitely without being shipped.

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

    Detector probe: signal attribution — gzip reef 15% · ballistic walk 85%. litIntent/walksIntent = 94/94 and litReality/walksReality = 96/96 — full saturation on both sides. A walk that lights 100% of every cell it visits isn't discriminating hit from miss; for a 1-line docs diff this reads as the walk being too shallow relative to its own seed count, not a genuine full-lane spread. Adjustment: scale walk depth/seed count down for sub-5-line diffs, or flag offPct confidence as degraded whenever lit/walked = 1.0 on either side. Experiments: Re-run this commit's reef seed scoped to just the new line (not the whole 1800+-line SPEC-VNA-COCKPIT.md) and measure whether prewalkOverlap rises from 3. · Across recent receipts, compute the false-positive rate of offPct>threshold specifically among commits where litIntent==walksIntent and litReality==walksReality (full saturation); if saturation commits over-trigger, add a saturation discount to offPct. · Swap glyph-keyed to name-keyed attribution on Navigator's last 56 out-of-lane events and recompute how many re-attribute elsewhere; measure the resulting shift in Navigator's 14-day mean offPct (currently 3→34 per prior lesson).

    A room-attribution bug inflating Navigator's offPct (and understating Strategist/Counsel/Builder's true share) corrupts the per-room loss-ratio the lane premium is priced against until the 🧭 collision is fixed at the parser level, not just re-diagnosed.

    Open the signed attestation →
  52. 2026-10-05 · 🔨 builder · offPct 28

    chore(commit-page): derived-receipt sweep — 151 files [panel-attached]

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

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

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

    feat(vna): C651 — the link I send is the landing: who, what was backed up, the money, Share this page, and their per-task curve

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

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

    Open the signed attestation →
  54. 2026-10-05 · 🧭 navigator · offPct 34

    spec(vna): C666 — sharpen the research questions before the research resumes

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

    Open the signed attestation →
  55. 2026-10-05 · ☕ network · offPct 36

    feat(bookclub): the subject names the edition — 📖 Book Club · <day> — Title · ¶1–N · Ch X

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

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

    Open the signed attestation →
  56. 2026-10-05 · 🔨 builder · offPct 19 · structural

    feat(vna): C647h — /backup shows both banks at a glance: tokens per day and the worst task left, the live survival curve and the worst-5 % share right

    Why it left the lane: The diff's new file src/lib/backup/root-banks.mjs is not what the commit message describes ('root-banks.mjs holds the specs; the page only lays them out'). Beyond the four small numeric computations (dayTot, top, curve via PAST/pastShare, worst5_share), the bulk of the file's bytes are hand-authored persuasive/interpretive prose per pill: full 'read.left/right', 'notFor.left/right' and 'mitigation.left/right' sentences — e.g. 'whether the work was good is undecidable (Rice, 1953)', 'You don't have to take my word for it: the sum is over rows anyone can read', 'Price from the whole curve, never one number'. That is voice-authored content (claim-bounding, falsifier-naming, reader-facing framing), the exact register governed by the voice-and-pitch rules, not plain library computation. The reef/walk read that prose density and pulled the reality mass toward a content-authoring coordinate instead of the claimed layout/lib coordinate.

    The semantic pull: Strings like 'Open ${link}.', 'Rice, 1953', 'You don't have to take my word for it', 'NOT SUFFICIENT FOR', 'describes how concentrated the bill is; it is not the tail test' are voice/claim-bounding constructs, not computation — they are the same register as outward comms copy. root-banks.mjs's header comment itself claims 'Port row: none — formatting over one reading; no placement, threshold or verdict is decided here,' which is true of the four numbers but false of the six read/notFor/mitigation blocks, each several sentences of original interpretive writing. That mismatch between the file's self-description and its actual content is what dragged reality from the claimed C2,C (UI/layout) coordinate toward the encircled C1,B3 coordinate.

    Intent–reality gap: The commit claims the new file 'holds the specs' while 'the page only lays them out' — i.e., a bounded layout/formatting change. The receipt shows the new file is dominated by originally-authored interpretive prose (the read/notFor/mitigation fields), which is a content-authoring act the commit message never named as its own lane.

    • Split src/lib/backup/root-banks.mjs into computation (readings) and root-banks-copy.mjs (the read/notFor/mitigation strings)
    • Update the commit-message convention for future C647-series pill commits to explicitly name 'computation' vs 'copy' as two lanes when a new pill ships
    • Cross-reference docs/architecture/claude-rules/voice-and-pitch.md's trigger list to include 'authoring a pill's read/notFor/mitigation text' as outward-facing work requiring the six-needs/advice-posture check
    • Add a prose-density check to tests/vna/c647h-backup-root-at-a-glance.test.mjs (or a new shared helper) asserting pill copy lives in a *-copy.mjs sibling, not inlined in the reading module
    • Audit prior C647 files (fat-tail-live.mjs, token-tail.mjs, backup-age pill in page.tsx) for the same inline-copy pattern and extract on the next touch

    What we learned: This repo's metricPill convention (C647d onward) structurally requires every new pill's lib file to carry both its computed reading AND its full interpretive copy (read/notFor/mitigation) in the same module — meaning any commit that adds a pill will systematically author voice-governed content inside src/lib/backup, a surface the lane model treats as pure computation. Unlike the prior lessons (which were facts-only, no mechanism), this event reveals the actual structural cause: the pill-spec shape itself conflates two lanes by convention, so offPct will recur on every future pill-adding commit in this subsystem until copy is externalized as a rule, not a one-off fix.

    The missing guard (the deliverable): tests/vna/pill-spec-copy-is-externalized.test.mjs — fails if a new or modified src/lib/backup/*.mjs file (identified by exporting a function whose return shape includes 'read'/'notFor'/'mitigation' keys) defines those string values inline rather than importing them from a sibling *-copy.mjs module; forces the computation/copy split before it ships instead of after a drift receipt catches it.

    Detector probe: signal attribution — gzip reef 30% · ballistic walk 70%. Full saturation (lit==walks on both sides) with no truncation but still a laneJump=6/laneHamming=36 split suggests the walk is resolving fine content differences correctly but isn't being asked to discriminate mixed-register files (computation + embedded prose) at a finer grain — it treats the whole root-banks.mjs as one unit. Adjustment: run a second, file-internal pass that segments a file by AST/string-literal boundaries before the ballistic walk, so computation statements and string-literal prose blocks get walked as separate sub-units within one file. Experiments: Ablation: strip the six read/notFor/mitigation string literals from root-banks.mjs, recompute offPct on this same sha, and confirm it drops below the 15 threshold — isolating the prose as the drift driver. · Add a prose-literal line-ratio feature (lines inside template-literal/string blocks ÷ total lines) to the pre-walk reef seed for src/lib/*.mjs files, and measure its correlation with laneJump across the next 20 builder commits. · Re-run this same experiment against the C647c/C647d pill files (already shipped) to see whether they'd also trip offPct>15 if measured today, confirming or refuting the 'structural, recurring' claim in the lesson.

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

    This event marks the backup lane's loss-ratio exposure as mis-declared-scope risk rather than defect risk — the computation is correct and the copy is sound, so the premium is restored once the copy is externalized into its own lane-tagged file and the commit message names both lanes it actually touches.

    Open the signed attestation →
  57. 2026-10-05 · 🔨 builder · offPct 41 · structural

    feat(vna): C647d — expandable pills: one component on /backup and in the vega graph, the + for how to read it

    Why it left the lane: The diff's load-bearing logic — PILL_HEADS, jargonIn()/JARGON_RE, and the per-head throw ('metricPill ID: HEAD has no BANK (who) line') — lives in scripts/vna/metric-pill.mjs, not in src/components where Builder's three site edits (MetricPill.tsx, VegaGraph.tsx, backup/page.tsx) sit. That file is a policy/refusal engine (it decides what may render, not how), and the commit's own story names why it had to sit there: 'the sidebar host (steer-ui.mjs paints pillRow) is C647e... steer-ui.mjs holds another session's uncommitted C647k work' — i.e. the function had to be import-reachable from a VS Code sidebar script that is not under src/. That single decision-bearing file, sitting one directory below scripts/ instead of under src/lib, is what the walk reads as lensReality=A1,B1 against the claimed lensIntent=C3,B2 (laneJump 8, laneHamming 34) — a near-maximal jump for a commit whose diff-stat is dominated (105 of 340 lines) by exactly that file.

    Intent–reality gap: The message claims pure site/UI work ('one component on /backup and in the vega graph') scoped to src/components and src/app; the receipt measured the plurality of new lines and the jargon/bank-refusal logic landing in scripts/vna/ — a surface Builder doesn't own and the commit trailer itself flags as cross-room ('Relevant-Rooms: Builder, Operator, Architect') without the lane check ever reading that trailer.

    • Add a one-line provenance header to scripts/vna/metric-pill.mjs: '// Room: shared surface — Builder (site hosts) + Operator/Architect (steer-ui.mjs sidebar host)' so the surface scanner has a machine-readable signal inside the file, not only in the commit trailer.
    • Extend tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027) to accept a touched path outside Originating-Terminal's glob when every top-level directory touched is covered by the union of rooms in Relevant-Rooms.
    • Add scripts/vna/** as a tagged shared glob in whatever config tests/ops/room-surface-coverage.test.js (ask-001) reads, instead of leaving it unowned.
    • Cross-check tests/pmu-simulator/shared-state-files-have-room-owner.test.mjs (ask-003) against *.mjs code files under scripts/vna/, not just .thetacog/ state — this is a second instance of an unowned shared file, just code instead of state.
    • File C647e (the steer-ui.mjs sidebar mount) as an explicit tracked follow-up so the cross-room dependency named in this commit's Story doesn't silently vanish once this commit closes.

    What we learned: A genuinely correct 'one component, two hosts' design (a site React tree plus a VS Code sidebar script) structurally forces its shared logic file outside any single room's owned glob — the lane detector currently has no notion of a jointly-owned surface, so it will keep flagging every future cross-host shared module at full offPct unless Relevant-Rooms coverage, not sole-glob ownership, becomes an accepted lane-passing signal.

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

    Detector probe: signal attribution — gzip reef 60% · ballistic walk 40%. Both sides are fully saturated (lit == walked on each side, no unlit remainder) with no truncation — a fully-dense, symmetric fill on a diff that spans two architecturally distinct directories (scripts/vna/ and src/components/receipt/) suggests the walk converged on one tight cluster rather than spreading across the diff's actual directory breadth. Adjustment: for multi-top-level-directory diffs, run the walk once per top-level directory touched and merge, rather than one walk over the whole diff, so a saturated-but-narrow walk doesn't mask a second cluster. Experiments: Recompute prewalkOverlap split by top-level directory (scripts/ vs src/) instead of over the whole diff, and check on the last 20 Builder commits whether the per-directory overlap predicts offPct better than the current whole-diff overlap. · When prewalkOverlap <=2 on a diff that touches more than one top-level directory, trigger a second seeded walk rooted at the second directory and compare its lane against the first-directory walk's lane; measure whether the resulting two-lane read correlates with the Relevant-Rooms trailer already present on the commit. · Ablate scripts/vna/** out of Builder's off-lane denominator for the last 14 days of the 103 logged events and recompute room mean offPct, to isolate how much of Builder's current drift rate is this one shared-surface mechanism versus everything else.

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

    A structurally-necessary shared file reading as 41% off-lane under a lane check that only knows sole ownership inflates Builder's loss-ratio with false-positive drift; premium is restored by teaching the check to read Relevant-Rooms as valid joint coverage rather than by moving correctly-placed code.

    Open the signed attestation →
  58. 2026-10-05 · 🔨 builder · offPct 19

    fix(vna): C662a — withhold the uncleared specimen endorsement: noindex, unlisted, unlinked until cleared_by

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

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

    Open the signed attestation →
  59. 2026-10-05 · 🔨 builder · offPct 41

    feat(vna): C656 — the health matrix is coin flips: every lever an ON line and an OFF line, measure and flip dated before the first trial

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

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

    Open the signed attestation →
  60. 2026-10-05 · 🧭 navigator · offPct 20 · mistagged

    spec(vna): C664 — k_E as a prediction we can lose: decisions counted, adherence plotted against crossings, pre-registered

    Why it left the lane: The commit's trailer carries 'Originating-Terminal: 🧭 steer' — 🧭 is Rio Navigator's own emoji, so the room-routing step read the glyph and parked the whole commit on Navigator without noticing 'steer' isn't one of the nine canonical room names (it's the /steer skill, not a terminal). The content itself — the new C664 row's vocabulary ('k_E', 'AXIOM 1', 'Landauer', 'pre-registered', 'BINDING CORRECTIONS', 'refutation interval') — is Strategy.Law/Counsel register (A,A1), nothing like Navigator's session-scheduler surface (thematic-scheduler.ts, focus-gravity.ts, cognitive-dashboard.html). Once routed to Navigator the walk had nowhere honest to land: 122 reality cells spread against 104 intent cells, 20% of them off Navigator's lane.

    The semantic pull: Strings in the diff — 'AXIOM 1', 'Landauer', 'BINDING CORRECTIONS', 'pre-registered', 'refutation interval', 'exp(−k·n)' — are contract/epistemic-rigor language that the lexicon scores into A,A1 (Strategy.Law/Counsel) — the exact coordinate this very prompt's own hat line names as Counsel's seat. Nothing in the one added line names a terminal, scheduler, session, or dashboard, so there is no lexical anchor pulling it toward Navigator's owned surface at all; the only thing that pulled it there was the emoji match on the trailer, not the content.

    Intent–reality gap: The commit's own Relevant-Rooms trailer declares Laboratory, Architect, Strategist — Navigator is not even on the list the commit itself names — yet the receipt measured reality landing in Navigator's lane at offPct=20, because the routing step keyed off the Originating-Terminal emoji instead of the room list the commit had already declared as relevant.

    • Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, already asked 35×) — stop re-asking it, build it.
    • Edit CLAUDE.md COMMIT MESSAGE STRUCTURE trailer spec to constrain Originating-Terminal to the nine canonical room names.
    • Add the Relevant-Rooms fallback/cross-check to the trailer-parsing routing script named above.
    • Re-run the last 53 Navigator out-of-lane events through the corrected router and report how many reclassify away from Navigator.
    • Audit other skill names that could alias onto a room emoji the same way 'steer' aliases onto 🧭 (e.g. check /walk, /wave, /club icons against the nine room emoji set).
    • Flag docsOnly=true, single-line spec-checklist commits for a cheaper self-declared-room read (the row already names its own hat/coordinate) before trusting the trailer at all.

    What we learned: Navigator's chronic high offPct (three prior facts-only passes: 3→34, 3→34, 28→26) looks like content drift but at least this event is a MISROUTING artifact: the trailer convention lets a skill name (/steer) alias onto a room's own emoji (🧭 = Navigator), so the lane-assignment math ends up comparing the wrong room's owned-surface fence against content that was never claimed for that room in the first place. Facts-only passes measure offPct but can't see this, because it's a classification bug upstream of the walk, not a drift-in-the-walk bug — which is why three prior interventions on this room never brought the mean down.

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

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Right-sized, not mis-tuned — full saturation on both sides with no truncation means depth/seed count isn't starving the walk. Concrete adjustment: use prewalkOverlap as a pre-walk early-warning gate — when prewalkOverlap falls this low (≤2) before the walk even starts, short-circuit to a ROUTING-UNRESOLVED flag and skip running the full 100+-cell walk against a room the seed already can't agree with. Experiments: Cross-check Originating-Terminal against the nine canonical room names at ingest; re-run the last 53 Navigator out-of-lane events through the corrected resolver and measure what fraction reclassify away from Navigator. · Bucket the last N commits by prewalkOverlap<5 vs >=5 and measure correlation with offPct>threshold, to confirm prewalkOverlap is a valid leading indicator before wiring it as a gate. · For docsOnly=true single-row spec-checklist commits, test classifying by the row's own self-declared hat/coordinate tag instead of the commit trailer, and measure whether that reduces offPct variance for this room's history.

    A docsOnly, one-line spec commit misrouted onto Navigator by an emoji-collision inflates Navigator's loss-ratio with a false-positive drift charge on top of an already-elevated 53-events/14-days baseline, eroding the receipt's credibility as an underwriting instrument; restored by shipping ask-027's terminal-matches-surface guard so skill-name trailers stop being billed against the wrong room's lane.

    Open the signed attestation →
  61. 2026-10-05 · 🔨 builder · offPct 29

    Originating-Terminal: 📐 VS Code Architect

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

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

    Open the signed attestation →
  62. 2026-10-05 · 🔨 builder · offPct 36

    feat(vna): C651a — back up all of it: the walk tape rides as chained, acknowledged segments

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

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

    Open the signed attestation →
  63. 2026-10-05 · 🧪 laboratory · offPct 18

    fix(cog): gate the hook and launchd local-model callers; the bench unloads too

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

    Open the signed attestation →
  64. 2026-10-05 · 🔨 builder · offPct 23

    feat(vna): C663 — the link you share: /curve redirects to the curve landing, one constant for the site and the extension, and a hosted run beside the figure so nobody has to run npx

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

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

    Open the signed attestation →
  65. 2026-10-05 · 🔨 builder · offPct 29

    fix(ops): C654a — the lane also refuses a stale private index and a message that is not the caller's unit

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

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

    Open the signed attestation →
  66. 2026-10-05 · 🔨 builder · offPct 17

    chore(bookclub): high-score board update — recomputed after send

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

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

    Open the signed attestation →
  67. 2026-10-05 · 🧭 navigator · offPct 21

    spec(vna): C657/C657a/C658 — the claim graph under formal methods; null and actual on one graph; one foundation, many seats

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

    Open the signed attestation →
  68. 2026-10-05 · ☕ network · offPct 21

    fix(cog): gate the ungated automatic ollama callers and unload after each job

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

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

    Open the signed attestation →
  69. 2026-10-05 · 🔨 builder · offPct 42

    feat(vna): C655 — one story: the Paul figure exactly, token efficiency, the fat tail and vega told as one thing, scoped to software development

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

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

    Open the signed attestation →
  70. 2026-10-05 · 🧭 navigator · offPct 18 · mistagged

    spec(ops): C654a — the commit crossover recurred after C654 through a stale private index

    Why it left the lane: The commit trailer reads "Originating-Terminal: 🧭 steer" — not a room name, the self-label of the /steer skill that wrote this spec-row edit. The receipt's room-attribution step appears to key off the emoji glyph 🧭 rather than the room-name string, and 🧭 is ALSO Rio Navigator's compass badge. So a pure docs/specs/vna/SPEC-VNA-COCKPIT.md edit (checking off C657a, appending the C654a row) got pinned to Navigator's declared lane (A1,B2) while the diff itself — strings like 'guard:', 'tests/ops/c654-concurrent-commits-never-cross', 'Done when the guard fails if' — is spec/ops narrative that the walk correctly places at A1,A3, 24 Hamming steps away, none of it touching any Navigator-owned glob (scripts/open-room-session.sh, openclaw/src/thematic-scheduler.ts, .workflow/cognitive-dashboard.html).

    The semantic pull: The pull is the glyph 🧭 itself, not any word in the diff — it is shared between 'Originating-Terminal: 🧭 steer' and the Navigator room's own nameplate, so room-attribution logic that matches on the emoji character collapses two different identities into one lane claim.

    Intent–reality gap: The commit claims to be C654a, an ops fix for commit-crossover via a stale private GIT_INDEX_FILE, filed by the /steer terminal; the receipt measured it as a Navigator-room commit because of the shared 🧭 glyph, so the work (correct, spec-row A1,A3 content) was graded against a lane (A1,B2, Navigator) it was never claiming.

    • Add the 9-room canonical-name allowlist as the match target in the Originating-Terminal parser, reject bare emoji/skill-name values
    • File tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027) asserting commit trailer room-name resolves to a room whose owned-surface glob set intersects the diff's touched paths
    • Document the Invoked-Skill vs Originating-Terminal split in docs/architecture/claude-rules/doors-and-surfaces.md
    • Backfill-scan recent commits for `Originating-Terminal: 🧭 steer` (or other skill-name trailers) and re-attribute their room for historical offPct accuracy
    • Add a commit-msg hook warning (not blocking) when the trailer value is not in the canonical room roster

    What we learned: Emoji glyphs are NOT unique keys in this repo — 🧭 is shared between a ROOM (Rio Navigator) and a SKILL (/steer) — so any receipt logic that keys room-attribution off the glyph instead of the full room-name string will keep misrouting docs-only, skill-authored commits onto whichever room happens to share that icon. This is the first pass to name the mechanism rather than report facts-only, which plausibly explains why the two prior facts-only passes left this room's mean offPct rising (3→34, 3→34) and flat (28→26): the actual lever (ask-027) was never shipped, just re-asked.

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

    Detector probe: signal attribution — gzip reef 35% · ballistic walk 65%. Suspicious saturation: walksIntent==litIntent (100/100) and walksReality==litReality (124/124) — a 100% hit rate on both sides means every cell the walk visited was lit; it never sampled a zero-expectation neighbor to test the boundary, yet walkTruncated=false so this isn't a cap artifact. The walk is running too shallow/confirmatory rather than exploratory. Adjustment: force the walk to sample at least one ring of zero-prior neighbor cells beyond the first lit hit on each side, so hit-rate <100% becomes the normal case and the boundary itself gets tested, not just confirmed. Experiments: Re-key room-attribution by full room-name match instead of emoji glyph on a batch of past Originating-Terminal:🧭 commits and diff prewalkOverlap before/after — measurable: overlap should rise for docs-only commits once the false Navigator match is removed · For docsOnly=true commits (this one included), compare offPct when the lattice walk is skipped and the lane is read from the spec file's own section heading vs the current full-walk path — measurable: variance in offPct across docsOnly commits in this room over the next 20 events · Reseed room attribution from the diff's touched-file globs rather than the Originating-Terminal trailer and measure whether this sha's offPct collapses toward 0 once Navigator's owned globs (none present) correctly fail to match

    A room-attribution mechanism that can be fooled by a shared emoji inflates this room's measured loss ratio with false-positive drift events, which premium cannot be restored on until ask-027 actually ships rather than being re-asked a 36th time.

    Open the signed attestation →
  71. 2026-10-04 · 🧪 laboratory · offPct 40

    feat(vna): C635g — the first eyeshot carries the install, the left door shows the teeth

    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 →
  72. 2026-10-04 · 🧪 laboratory · offPct 26 · mistagged

    fix(email): omit List-Id on --action-required sends

    Why it left the lane: The diff's substantive language — "the operator's own filter", "inbox-landing intent", "must be unfindable by EITHER filter", "the From rewrite never touched" — is a routing-POLICY argument (which header wins, which filter door an email passes through) rather than a laboratory-surface build (MCP servers, swarm-comms, CRM orchestration). hat Counsel sits at A1,A1 (Strategy.Law), and the reality landed at A1,C3 — same row as that hat — while the claimed lane was B1,B1. The low prewalkOverlap (8 of 142) shows the reef already saw this vocabulary as alien to the room's usual corpus before the walk even ran.

    The semantic pull: Terms like "List-Id", "machineSend", "filter cannot catch it", "inbox-landing intent overrides machine filterability" are governance/compliance-routing vocabulary, not swarm/MCP vocabulary — they pulled the walk off B1,B1 and onto the A1-row (Strategy.Law) coordinate at A1,C3, 5 lane-hops and 36 bits of lane-Hamming away.

    Intent–reality gap: The commit trailers claim Originating-Terminal 🧪 laboratory and Relevant-Rooms operator/builder/laboratory, but the receipt measured the work landing at A1,C3 (Strategy.Law-adjacent), 26% outside the declared B1,B1 lane — the content is a correct comms-filter fix, but the room tag attached to it does not match where the receipt says the mass actually sits.

    • Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, asked 35×): for every diffed path, assert the Originating-Terminal room's owned-surface glob covers at least one of them; fail/warn when it covers none, as happened here (scripts/email-artifact.mjs, tests/ops/action-required-from.test.mjs match neither laboratory's MCP/swarm-comms/CRM globs).
    • Extend tests/ops/room-surface-coverage.test.js (ask-001) to register scripts/email-artifact.mjs and tests/ops/*.mjs under whichever room is the real comms/email owner (first candidate: operator or builder, per this commit's own Relevant-Rooms order), so they stop defaulting to whatever terminal was open.
    • Update the COMMIT MESSAGE STRUCTURE section of CLAUDE.md to state the Originating-Terminal/ownership rule above.
    • Audit the room's 216 out-of-lane events in the last 14 days for how many share this exact terminal-vs-surface mismatch signature (comms/email files committed from 🧪 laboratory) before trusting the room's offPct trend as genuine technical drift.
    • Seed the gzip baseline dictionary with the literal comms-lane strings below and ablation-test whether prewalkOverlap rises for this commit class.
    • Close ask-027 as shipped, not just asked — 35 prior asks with zero ship is itself evidence this room-tag drift recurs structurally.

    What we learned: This room's Originating-Terminal tag tracks SESSION IDENTITY (which terminal was open when the commit landed), not CONTENT OWNERSHIP (which files the commit touched) — and the guard that would catch that mismatch (ask-027) has been asked 35 times without shipping, meaning the room's 216 out-of-lane events over 14 days are plausibly inflated by tagging noise, not all genuine cross-lane technical drift.

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

    Detector probe: signal attribution — gzip reef 55% · ballistic walk 45%. litIntent/walksIntent and litReality/walksReality are both ~100% (142/142, 143/143) — every cell the walk visited lit up, which is a SATURATED walk: it found signal everywhere it looked, so it can't currently distinguish a strongly-lit core from a marginally-lit edge within those 143 cells. Adjustment: raise the lit-threshold (or add a depth pass) so laneHamming=36 can be decomposed into 'heavily-lit off-lane cells' vs 'barely-lit off-lane cells' instead of being treated as one undifferentiated mass. Experiments: Re-run prewalkOverlap on sha 0a2aabf050 with 'List-Id', 'machineSend', 'INBOX_LANDING_ADDRESS' seeded into the baseline dictionary; measure whether prewalkOverlap rises above 8, confirming the reef currently lacks a comms/email-filter lane vocabulary. · Re-run the walk at increased depth on the same sha and check whether laneHamming=36 shrinks (walk under-resolved) or holds (walk already saturated at this depth) — directly tests the walk_utilization saturation hypothesis. · Ablation-test: recompress the room's last 14 days of commits with vs without a dedicated 'comms/email-routing' lane seed and measure whether the room's offPct mean (currently flagged at 216 out-of-lane events) drops for commits matching this vocabulary signature.

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

    Each mistagged commit like this one inflates 🧪 laboratory's measured loss-ratio with noise that isn't genuine technical cross-lane drift, so the room's premium can't be trusted to reflect real risk until ask-027 ships and separates tagging mismatches from true off-lane work.

    Open the signed attestation →
  73. 2026-10-04 · 🧪 laboratory · offPct 28

    fix(vna): C635i — the funnel's installs is the install statistic; downloadCount rides beside it, labelled

    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 →
  74. 2026-10-04 · 🧪 laboratory · offPct 19

    feat(vna): C596e — /steerone opens on the crux: one yes/no question, its measured state, what each answer settles

    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 →
  75. 2026-10-04 · 🧭 navigator · offPct 36 · mistagged

    feat(vna): C638 — the loss run on your own transcripts: npx thetacog-mcp loss-run

    Why it left the lane: The diff's five touched files (packages/thetacog-mcp/scripts/bundle-pmu.mjs, packages/thetacog-mcp/server.js, scripts/vna/loss-run.mjs, scripts/vna/token-tail.mjs, tests/vna/c638-loss-run-on-your-own-transcripts.test.mjs) carry exclusively VNA/MCP-door vocabulary — 'VNA_DOOR_SCRIPTS', 'VNA_DOORS', 'loss-run', 'token-tail', 'steer-ab-rules', 'npx thetacog-mcp loss-run'. None of them contain Navigator's owned vocabulary (thematic-scheduler, focus-gravity, thematic-heartbeat, cognitive-dashboard, open-room-session). The pull toward the out-of-lane region isn't coming from the code at all — it's coming from the commit trailer 'Relevant-Rooms: Builder, Operator, Navigator', which drags Navigator's lane into the walk's intent corpus even though the diff never visits Navigator's lattice coordinate.

    Intent–reality gap: The commit's own trailer claims Navigator is a relevant room for this work; the receipt measured zero touches to any of Navigator's seven owned paths and 100% of the semantic mass landing in VNA-door territory (lensReality=C3,A1) — the claim and the measured reality disagree about whether Navigator has anything to do with this commit at all.

    • Rewrite this commit's own Relevant-Rooms trailer (via `git notes add`, since the commit is already landed — never amend on main) to 'Builder, Operator' only.
    • Audit 🔨 Builder's last 14 days of commits for the same literal 'Builder, Operator, Navigator' triple — Navigator's 58 out-of-lane events in 14 days suggests this is a copy-pasted default, not a per-commit judgment.
    • Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010, already asked 44x, not yet present in the tree) so a trailer-listed room with zero touched paths under its owned glob fails or warns at commit time.
    • Cross-check against tests/ops/room-glob-overlap.test.mjs (ask-024) in case Navigator's owned globs are themselves too broad and silently claim VNA paths — rule out before blaming the trailer alone.
    • Add a one-line convention note next to the commit-trailer format in CLAUDE.md: Relevant-Rooms is computed from touched paths, never copied from the previous commit.

    What we learned: The drift signal for this room did not originate in any file Navigator touched — it originated in a boilerplate commit trailer written by a DIFFERENT room (Builder) that lists Navigator as 'relevant' by habit. Room offPct can be inflated entirely by another room's copy-paste discipline, with zero code from the accused room in the diff — the prior facts-only lessons for this room (offPct 3→34, 28→26) never surfaced this because they had no sensemaking pass to trace the pull to the trailer text rather than the code.

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

    Detector probe: signal attribution — gzip reef 60% · ballistic walk 40%. Right-sized, not shallow or saturated — equal walksIntent/walksReality and equal litIntent/litReality show the walk explored symmetrically on both sides. The adjustment isn't depth; it's input hygiene: strip boilerplate trailer lines (Relevant-Rooms, Originating-Terminal) from the intent-lane seed before the walk runs, so a copy-pasted room list can't seed cells the diff never visits. Experiments: Re-run the reef placement for this sha using ONLY the diff's file paths as the intent seed (drop the commit-message trailers) and measure whether offPct drops toward 0 for Navigator — isolates trailer-boilerplate pull from genuine cross-lane work. · Ablate the Relevant-Rooms trailer line specifically (keep Story/Subject) across the last 58 Navigator out-of-lane events and recompute mean offPct — tests the hypothesis that the trailer, not the Story paragraph, is the dominant intent-lane contaminant. · Compute gzip-NCD prewalkOverlap separately for (trailer-only vs diff) and (Story-paragraph-only vs diff) to quantify, per commit, how much of the stated 'prewalkOverlap=5' comes from each trailer field.

    A drift event whose entire cause is a copy-pasted trailer field, not touched code, is a cheap loss to underwrite once named — it raises Navigator's apparent loss-ratio without any real cross-lane work behind it, and the premium is restored the moment the trailer-hygiene guard ships and Builder's room stops defaulting to the same three-room list.

    Open the signed attestation →
  76. 2026-10-04 · 🔨 builder · offPct 21

    fix(forms): example emails use reserved domains; every route that mails a typed address refuses an example

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

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

    Open the signed attestation →
  77. 2026-10-04 · 🔨 builder · offPct 20 · structural

    feat(vna): C645 — the back page splits the attestation licence from the parametric pool

    Why it left the lane: The diff's actual mass is dominated by freshly-authored insurance/legal boundary prose — 'does not constitute insurance underwriting, capital pooling, or risk transfer', 'requires active verification telemetry (Track 1) to validate risk parameters before binding', 'carriers hold the capital and the risk; ThetaDriven holds neither', 'non-exclusive terms' — sitting inside 28 lines of otherwise plain JSX/style-object code in src/app/backup/page.tsx. The snowball context itself confirms A1 = Strategy.Law (hat Counsel [A1,A1] · A1.Strategy.Law). lensIntent=B,A1 claimed a Build-lane commit touching Strategy.Law lightly; lensReality=A1,A2 shows the lit mass actually centered ON Strategy.Law plus an adjacent lane — the legal-boundary sentences, not the grid/style code, are what the walk found and placed.

    The semantic pull: Specific strings pulling the walk off-lane: 'insurance underwriting, capital pooling, or risk transfer' (a legal disclaimer, not UI language), 'Track 1' + 'active verification telemetry… before binding' (an eligibility/contract clause), 'non-exclusive terms' and 'carriers hold the capital and the risk' (a term-sheet sentence). These five sentences outweigh the actual new code (two style objects: S.tiers, S.tier) in both token count and semantic density, so the reef/walk anchored on A1 (Strategy.Law) and its neighbor A2 rather than staying in B,A1 (Build).

    Intent–reality gap: The commit message files this as feat(vna) builder work on a page component, with Relevant-Rooms naming ☕ Network, 🏛️ Architect, 📖 Vault — omitting 🔨 builder entirely even though the only file actually changed (src/app/backup/page.tsx) sits on builder's owned surface. The receipt shows the landed mass is concentrated in Strategy.Law coordinates the commit never flagged as its primary content.

    • Extract BOUNDARY/BRIDGE/ELIGIBILITY sentences into the canon module alongside CANON_SPLIT; import by name in backup/page.tsx
    • Fix Relevant-Rooms trailer convention going forward: any commit touching src/app/** must list 🔨 builder
    • Confirm the new c645 test still passes after the extraction by asserting the rendered text matches the imported constant, not a duplicated literal in the test file
    • Add a glob exception in the room owned-surface config naming the canon-copy module as Architect/Counsel-reviewed content even though it physically sits under builder's src/lib glob
    • Check the other 100 out-of-lane events in 🔨 builder over 14 days for the same inline-legal-prose pattern before assuming this is a one-off

    What we learned: Room ownership here is path-based (🔨 builder owns src/app/), but canonical legal/insurance boundary language has no content-layer indirection — it gets hand-typed straight into page.tsx on first use. Until a canon-copy module exists as the indirection point (the way CANON_SPLIT already is), every commit that adds new policy sentences to a page will register as builder-room work that's actually majority Strategy.Law mass, and will keep tripping offPct regardless of how carefully the UI code itself is written.

    The missing guard (the deliverable): A new guard scanning src/app/**/page.tsx (and sibling components) for long string literals matching legal-boundary vocabulary (/does not constitute|underwriting|capital pooling|risk transfer|non-exclusive|Track 1 eligibility/i) that are NOT sourced from an imported canon constant, failing if found — e.g. tests/vna/legal-copy-lives-in-canon-module.test.mjs. Separately, the already-open tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010, asked 47×) would have caught this commit's Relevant-Rooms omitting 🔨 builder; it should be named here rather than re-coined.

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Right-sized in volume (136 vs 119 lit cells, no truncation flag) but under-anchored to the declared intent lane — laneHamming=18 on a 144-cell lattice (~12.5% of the whole space) is a large jump for a commit that's nominally a small UI patch. Concrete adjustment: pre-register canon-style legal sentences (CANON_SPLIT and its siblings) into the Build-lane intent seed so that prose which echoes already-canonical language doesn't read as novel Strategy.Law signal and pull the reality walk out of lane. Experiments: Re-run this commit's diff through the reef with BOUNDARY/BRIDGE/ELIGIBILITY pre-seeded into the 🔨 builder intent corpus, and measure whether offPct drops below 15 on replay. · Pull prewalkOverlap for the room's other 100 out-of-lane events in the last 14 days and check whether a similarly low value (0–5) co-occurs with legal/insurance vocabulary in those diffs — confirms or refutes a repeat class. · Ablate the diff: strip the five legal-boundary sentences, keep only the S.tiers/S.tier style objects and JSX structure, re-feed to the walk, and confirm offPct falls under 15 — isolates prose as the sole drift source.

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

    An off-lane legal-boundary commit filed as plain builder UI work raises this lane's loss-ratio by hiding uninsurable-sounding contract language inside unaudited code diffs; premium is restored by extracting canonical legal sentences into a reviewed canon module and closing the Relevant-Rooms gap so Strategy.Law content is never carried unflagged inside a builder-tagged commit.

    Open the signed attestation →
  78. 2026-10-04 · ☕ network · offPct 53

    spec(comms): C640 — must-say #6, a signed log is still a log (mechanism, never the carrier's name)

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

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

    Open the signed attestation →
  79. 2026-10-04 · ☕ network · offPct 16

    fix(vna): survivalSvg — x range follows the data, legend in the empty corner, the reader's words

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

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

    Open the signed attestation →
  80. 2026-10-04 · 🔨 builder · offPct 28

    fix(site): C635h — our own Marketplace badge, no count; shields.io retired theirs

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

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

    Open the signed attestation →
  81. 2026-10-04 · 🔨 builder · offPct 42

    spec(vna): declare C596d-f — steerone picks the crux, answers as a decision

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

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

    Open the signed attestation →
  82. 2026-10-04 · 🔨 builder · offPct 27 · mistagged

    spec(vna): declare C635f — the left door converts; correct C635's page

    Why it left the lane: The diff is a pure markdown edit to docs/specs/vna/SPEC-VNA-COCKPIT.md — a file outside Builder's owned surface (src/app/, src/components/, src/lib/, public/, two named scripts, hooks/pre-commit, vercel.json). The new C635f row's PROSE is dense with other rooms' literal tokens — `src/app/iamfim-landing/page.tsx`, `data-lane="deployer-door"`, `MARKETPLACE_URL`, `ref=iamfim-left`, `token-savings.json`, `99.85%` — and the C636 flip references `scripts/pmu/lens-health.sh` + `hooks/pre-commit`. The reef's gzip-NCD seed reads those literal path/URL strings as if they were touched, dragging reality placement toward lensReality=A1,C3 while the commit's claimed lane sits at lensIntent=B,A1 (laneJump=8, laneHamming=34, only prewalkOverlap=23 of litIntent=131 agreeing before the walk even ran).

    The semantic pull: Strings 'src/app/iamfim-landing/page.tsx', 'MARKETPLACE_URL', 'ref=iamfim-left', 'data-lane="deployer-door"' and 'data/vna/token-savings.json' sit inside a checkbox row that is otherwise pure spec-ledger prose; the walker has no way to distinguish 'this path is DISCUSSED' from 'this path is EDITED', so it lit cell C3 (the content/commerce coordinate those paths belong to) instead of staying inside the A1/B spec-declaration coordinate the commit actually touched.

    Intent–reality gap: The commit claims to be a Builder-room spec correction ('correct C635's page'), but the only file touched — docs/specs/vna/SPEC-VNA-COCKPIT.md — is not in Builder's owned-file-surface at all; the receipt is measuring a mismatch between the terminal tag and the file's true owner, not a defect in the edit itself.

    • Add docs/specs/vna/** to the owned-surface glob of whichever room is canonical for spec-ledger edits (Network, per Relevant-Rooms' first listing) in the room-surface config
    • Audit the room's other 94 out-of-lane events in the last 14 days for the same docsOnly spec-declare signature before assuming each is a distinct defect
    • Confirm the two glyphs '🔨 builder' (receipt room) and '🏗️ Builder' (commit trailer) are the SAME terminal in the room registry, or split them if they've drifted into two identities
    • Run tests/pmu-simulator/originating-terminal-matches-surface.test.mjs against sha 5a5dd2a8c6 as a fixture to confirm it would have caught this
    • Consider a docsOnly + 'declare/correct a spec row' commit class that is exempt from full-lattice offPct scoring the way docs-only already gets flagged (docsOnly=true is already set here — check why it didn't suppress offPct)

    What we learned: docsOnly=true did not suppress offPct here — a pure spec-ledger edit still gets walked at full lattice weight and scored against a room's code-lane, because the spec file itself is cross-domain by design (one file carries rows for every room). The structural fact: SPEC-VNA-COCKPIT.md is nobody's owned surface in the room-glob sense, so every terminal that edits it inherits whatever lane it happened to be tagged with.

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

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Right-sized, not shallow or saturated — litIntent/litReality are within 10 of each other, so the walk covered comparable breadth on both sides; the defect is upstream in what seeded it, not in walk depth. No depth adjustment needed; the fix belongs in reef seeding, not the walk. Experiments: Re-run the reef seed on this sha with literal path/URL strings inside checkbox-row prose masked out, compare offPct with vs without masking — measurable: offPct delta on sha 5a5dd2a8c6 · Build a corpus of the last 20 SPEC-VNA-COCKPIT.md-only commits, classify each as docsOnly+ledger-toggle, and measure mean offPct for that class vs the room's overall mean — if the class mean is itself >15, that proves the file needs its own lane rather than per-commit fixes · Add a 'declared-row' sensor that detects the `- [x] C\d+\w? (guard: ...)` toggle pattern and routes commits matching it past full-lattice scoring into a ledger-class score, then measure whether the room's 14-day offPct mean (27) drops

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

    A chronic 27% off-lane rate with 95 events/14 days in one room raises that lane's loss-ratio on every future audit of 'does the claimed room match the work'; premium is restored by giving docs/specs/vna/** an explicit owner so docsOnly spec-ledger edits stop being scored against a code-room's lane at all.

    Open the signed attestation →
  83. 2026-10-04 · 🔨 builder · offPct 20 · mistagged

    fix(vna): C646 — the curve page reads a committed snapshot, never scripts/ at render

    Why it left the lane: The diff's bulk is guard/rule-authoring vocabulary, not page-rendering vocabulary: the new test parses 'real import specifiers' and 'resolves them the way webpack would', asserts '.vercelignore strips scripts/* from the Vercel build', and cross-checks two committed artifacts byte-for-byte ('the two assets this page depends on can never silently drift apart'). That is law/enforcement content (lensReality=A1,A), while the commit's own framing — a page-level bugfix reviewed by Network/Architect/Vault — claims the lighter implementation lane (lensIntent=B3,C). The diff also physically touches scripts/vna/token-tail.mjs, a file neither the Relevant-Rooms trailer nor 🔨 builder's declared owned surface (src/app/*, src/components/*, src/lib/*, public/ — per .workflow/rooms/iterm2-builder.html:65) covers, so reality mass lands on ground nobody's lane fences.

    The semantic pull: Strings 'resolves them the way webpack would', '.vercelignore strips scripts/*', 'Cannot find module', 'AXIOM 1', and 'the two assets this page depends on can never silently drift apart' are constraint/enforcement phrasing that the walk places at A1,A; the commit's claimed B3,C lane only covers the page's own render logic, not the build-constraint proof the test now carries.

    Intent–reality gap: The commit message frames this as a scoped page-render fix under chair review (Relevant-Rooms: ☕ Network, 🏛️ Architect, 📖 Vault — no 🔨 builder named at all), but 73% of the changed lines (page.tsx 69 + the JSON asset 30, of 135 total) sit on 🔨 builder's own declared surface, and the receipt measured the lit mass landing in a different lattice region than the trailer implies.

    • Update the commit-trailer convention doc so Relevant-Rooms is derived from owned-surface line counts, not just 'who reviewed it'
    • Declare scripts/vna/* explicitly in some room's owned-surface list (.workflow/rooms/*.html) instead of leaving it implicit — it currently belongs to none
    • Implement scripts/room-drift-builder-check.sh (already spec'd at iterm2-builder.html:671, 'not yet implemented') so a builder-tagged commit touching an unowned path is flagged at commit time
    • Extract the Snapshot shape duplicated by hand in src/app/backup/curve/page.tsx into a single shared type next to curveSnapshot() so the two never drift independently of this guard
    • Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010) — 48 prior asks is itself evidence this diagnosis is already known and unbuilt

    What we learned: The Relevant-Rooms trailer is written by 'who reviewed this', not 'whose owned surface carries the bytes' — nothing today checks the two against each other, so a commit can cite three rooms by trailer and still land its majority mass in a fourth, unnamed room's lane. Builder's room doc even names its own fix for this ('scripts/room-drift-builder-check.sh', spec'd 2026 but never implemented) — the repair for this exact drift class has been sitting unshipped in the room's own documentation.

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

    Detector probe: signal attribution — gzip reef 30% · ballistic walk 70%. 100% lit-to-walked ratio on both sides signals the walk is not selective — it lights every cell it touches instead of separating strong from weak matches. Concrete adjustment: require a cell to clear a minimum gzip-NCD similarity score (not just be visited) before counting as lit, so litIntent/litReality can fall below walksIntent/walksReality and the lane call carries real discriminating power. Experiments: Re-seed this sha's reef with the full commit message + diff headers (not diff body alone) and measure whether prewalkOverlap rises above 2 · Raise the lit threshold to require ≥2 visits or a minimum similarity score, re-run this commit, and measure whether litReality drops below 126/126 — i.e. whether A1,A survives a stricter criterion · Weight reef candidate cells by each room's owned-file-surface globs (iterm2-builder.html's declared paths) so file ownership participates in placement, then re-measure offPct on builder-tagged commits with mixed-surface diffs

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

    A mistagged Relevant-Rooms trailer on otherwise sound work still reads as a loss event against builder's lane, so premium stays pressured until ask-010 ships and scripts/vna/* gets an explicit owner — restoring it is a documentation-and-guard fix, not a code fix.

    Open the signed attestation →
  84. 2026-10-04 · 🔨 builder · offPct 17 · structural

    feat(vna): C633 — the latency bench across pinned shas

    Why it left the lane: The diff is entirely scripts/vna/effects-latency.mjs plus a .gitignore line. Every mechanism it names is PMU/VNA apparatus internals — `lens-bound-guards.mjs` (`boundForCells`, `rowIndex`), `scripts/vna/path-prediction.mjs --c612p-receipt`, the `--door-serve` daemon's per-sha in-memory Binder cache, `pmu-onchip --path-bind / --aperture-verdict` — none of which intersect any glob in Builder's declared surface (src/app/, src/components/, src/lib/, public/, scripts/build-book-html.sh, scripts/convert-chapters-to-html.mjs, hooks/pre-commit, scripts/voice-*-check.sh, decentralizedtalk/, thetacoach-crm-mcp/, vercel.json). scripts/vna/ is not claimed by any surface in evidence, so the walk's real PMU-apparatus cells have no declared-lane home and light up in encircled lane B instead of the claimed A1,A2 — laneJump=2, laneHamming=34.

    The semantic pull: Strings pulling toward B: 'door-serve daemon', 'per-sha Binder', 'boundForCells', 'pmu-onchip --path-bind / --aperture-verdict', 'rowIndex' — deep PMU-chain apparatus vocabulary with zero overlap against Builder's owned-surface vocabulary (src/app, components, public, vercel.json).

    Intent–reality gap: The commit tags Originating-Terminal: Builder and claims Architect/Builder/Performer as Relevant-Rooms for a 'latency bench,' but the only two files touched sit entirely outside Builder's owned surface; the receipt shows lensReality=B,A1 against lensIntent=A1,A2 — 17% of the lit mass landed in a lane the Builder claim never declared, because that lane (scripts/vna/**) has no declared owner for any room.

    • Add `scripts/vna/**` as an owned-surface glob to whichever room's config actually claims VNA/PMU bench tooling (Architect or Performer per this commit's own Relevant-Rooms trailer) — never Builder.
    • Land tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, already asked 35×) so this exact tag/surface mismatch fails at commit time.
    • Land tests/ops/room-surface-coverage.test.js (ask-001, already asked 14×) to catch any touched path with zero room-owner match, independent of which terminal claims it.
    • Audit the other 96 out-of-lane events in Builder's 14-day window for the same scripts/vna/** pattern — if most share this root cause, one config fix (not 97 individual ones) resolves them.
    • Fix the trailer-stamping tool to derive Originating-Terminal from file-path ownership lookup, not session identity.

    What we learned: scripts/vna/** is a high-volume directory explicitly named as relevant across three rooms (Architect, Builder, Performer) in commit trailers, yet it has zero owned-surface claim in any room's glob list shown. This is a coverage gap in the room-ownership MAP itself, not a tagging-discipline failure by any one commit — every VNA commit, regardless of which room's session authors it, will offPct against whatever terminal it happens to get stamped with until the glob exists somewhere. The prior three facts-only lessons for this room never diagnosed this mechanism (two trended worse, one better) — this is the first pass to name the actual structural hole.

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

    Detector probe: signal attribution — gzip reef 25% · ballistic walk 75%. litIntent=119/walksIntent=119 and litReality=121/walksReality=121 — both sides are at ~100% fill, every visited cell lights. That is SATURATED, not shallow: the walk isn't filtering signal from noise, it's lighting everything it touches, which inflates both lane counts without discriminating lane membership. Concrete adjustment: tighten the walk's lit-threshold/aperture (or add a fence so a visited cell must clear a minimum weight to light) so fill ratio drops meaningfully below 100% and offPct starts reflecting genuine placement disagreement rather than walk saturation. Experiments: Re-run gzip-NCD prewalkOverlap specifically across the last 97 Builder out-of-lane events filtered to scripts/vna/** diffs — predict prewalkOverlap≈1 for most of them, confirming the reef is structurally uninformative for this path class and should defer to a direct room-ownership lookup instead of a corpus-overlap seed. · A/B the walk's lit-threshold (current effective saturation ~100%) against a tightened aperture on this exact commit's bytes and measure whether litReality's fill ratio drops below 100% while offPct stays stable — isolates whether 17% is a walk-saturation artifact vs a genuine content fact. · Replay this commit with Originating-Terminal corrected to Performer (or whichever room ends up owning scripts/vna/**) and confirm offPct drops materially — validates the fix is tag/ownership correction, not a deeper walk defect.

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

    This room's lane keeps writing premium against risk it doesn't carry — 97 out-of-lane events in 14 days, this one traced to an unowned directory rather than bad work — so the loss-ratio stays degraded until the scripts/vna/** ownership glob and the originating-terminal guard actually ship, at which point the claim and the exposure line back up.

    Open the signed attestation →
  85. 2026-10-04 · 🔨 builder · offPct 17 · structural

    docs(notebook): catalogue all 265 overviews by who they are for, with quotes and claims against receipts

    Why it left the lane: docs/notebooklm-transcripts/ — the only path this diff touches — is claimed by ZERO of the 9 rooms in data/room-surfaces.json (checked: vault/architect/performer/network/voice/laboratory/operator/builder owned-globs all miss it). With no path-based room owner, the pipeline falls back to the content-based gzip-NCD reef + ballistic walk, which reads the diff's PROSE. That prose is 3,880 lines of verbatim NotebookLM quotes saturated with builder-coordinate vocabulary — 'PMU', 'cache miss', 'ballistic walk', '144x144 lattice', 'hardware performance counter', 'Rust', 'ShortLex', 'silicon' — because the catalogue is literally cataloguing transcripts ABOUT the hardware/grounding mechanism. The walk matched those tokens as if they were builder's own engineering content and placed reality at C2,A2 (builder's coordinate), 7 lanes from the C2,C3 intent the commit's own trailers declared (Relevant-Rooms: blog · comms · vna → voice/network/operator).

    The semantic pull: Strings like 'PMU', 'ballistic walk', '144x144 lattice', 'cache-line', 'Rust', 'ShortLex', 'hardware performance counter' recur dozens of times across the 265 catalogue entries (e.g. the On-Chip_PMU, Silicon_Witness, Ballistic_Gate entries) — these are exactly the tokens that normally correlate with builder's C2/A2 coordinate space, so the NCD/walk treated 'quoting a podcast about the mechanism' as equivalent to 'building the mechanism'.

    Intent–reality gap: The commit's own trailers correctly declare this as 🎧 notebook work relevant to blog · comms · vna (confirmed: it is a pure docs catalogue, docsOnly=true, commitClass=work, zero src/** touched) — but the receipt scored it against 🔨 builder's lane because no room owns the path it landed in, so the architecture had nowhere correct to place it and guessed from vocabulary instead.

    • data/room-surfaces.json — add docs/notebooklm-transcripts/ to network's (or voice's/operator's) owned array; it is the only path in this diff and it currently matches none of the 9 rooms
    • Ship tests/ops/room-surface-coverage.test.js (ask-001, open 13×) — fail when any file touched by a commit matches zero room's owned glob, catching the NEXT unclaimed-path docs subtree before it mis-scores
    • Ship tests/pmu-simulator/docs-only-commit-skips-lattice.test.mjs (ask-005, open 20×) — docsOnly=true + commitClass=work + zero src/** paths should short-circuit the lattice walk to UNMEASURED rather than computing offPct against an unrelated room
    • Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010, open 41×) — would have caught that this commit's own Relevant-Rooms trailer (blog·comms·vna) ALSO doesn't cover docs/notebooklm-transcripts/ in any room's glob, the same root gap from the declared-intent side
    • Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, open 35×) — cross-check Originating-Terminal (🎧 notebook) against the room the receipt attributes the event to (🔨 builder) and flag the mismatch instead of silently scoring it
    • Do NOT coin a ninth spelling of this ask — scripts/pmu/guard-closure.mjs already documents eight prior spellings of this exact construct, none shipped; use the four paths above verbatim

    What we learned: A content-based reef/walk with no path-based room override will misattribute ANY prose-dense docs commit to whichever room's vocabulary it happens to echo — and data/room-surfaces.json currently has entire new docs subtrees (docs/notebooklm-transcripts/ is one; there may be others) that are claimed by NONE of the 9 rooms, so every commit to them is structurally forced through the content-guessing path rather than a path-based claim.

    The missing guard (the deliverable): tests/ops/room-surface-coverage.test.js

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Saturated, not right-sized: a 100%-fill walk on both intent and reality sides gives zero contrast between visited-but-dark and lit cells for a 3,880-line diff. Adjustment: either cap the walk's recursion depth tighter for docs-class commits or raise the lit-threshold so large prose diffs don't trivially saturate every visited cell. Experiments: Re-run this sha's reef placement with the catalogue's verbatim NotebookLM quotes stripped (score only the JSON scaffolding/field labels), and check whether offPct drops below 15 — confirms quotes-not-code are driving the placement · Add a commitClass=docs-only exemption to the reef seed step and measure whether offPct resolves to null/UNMEASURED for the next 10 docsOnly=true commits in builder's room history · Compare prewalkOverlap across the last 20 docs-only commits under docs/notebooklm-transcripts/ vs the last 20 commits under src/** to quantify the vocabulary-density correction factor needed

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

    This event inflates 🔨 builder's measured loss-ratio with a false positive — pure docs cataloguing priced as engineering-lane drift — which both overstates builder's actual out-of-lane rate (96 events/14 days) and masks that the real defect sits in room-surfaces.json's coverage gap; restoring the premium requires closing the unclaimed path plus shipping room-surface-coverage so offPct is only ever computed against a room whose owned glob the diff's paths actually matched.

    Open the signed attestation →
  86. 2026-10-04 · 🧪 laboratory · offPct 47

    fix(vna): C596f — the prompt file counts only when the transcript holds it as the newest operator turn

    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 →
  87. 2026-10-04 · 🔨 builder · offPct 59 · structural

    spec(vna): declare C635j — the sticker leads somewhere a phone can go

    Why it left the lane: The diff is a single markdown insertion into docs/specs/vna/SPEC-VNA-COCKPIT.md — a file the Builder room's owned-surface list (src/app/, src/components/, src/lib/, public/, the build-book scripts, hooks/pre-commit, decentralizedtalk/, thetacoach-crm-mcp/, vercel.json) does not include at all. The inserted text ('navigator.share', 'sms:/mailto:', 'Marketplace link tagged ref=sticker-share', "Send it to your devs"/"Send it to your laptop", 'the phone's share sheet') is distribution/GTM funnel language — it reads as A1 Strategy.Law content, matching lensReality=A1,B3, not the claimed lensIntent=C,B2 Builder-implementation lane. prewalkOverlap=2 (very low) shows the gzip-NCD reef already found almost no lexical overlap between the C,B2 seed and this paragraph before the ballistic walk ever ran.

    The semantic pull: GTM/install-funnel terms ('Marketplace link', 'ref=sticker-share', 'install', 'share sheet', 'buy door') in a checklist item that is pure spec-prose (docsOnly=true, 1 insertion, no code) pulled the walk toward Strategy/distribution coordinates (A1,B3) instead of the Builder-coded lane (C,B2) the commit trailer claims.

    Intent–reality gap: The commit claims Builder-lane work (Originating-Terminal Builder, continuing the C635g–i code-shipped checklist in C,B2) but the actual content of this specific commit is zero code — one markdown bullet describing a future GTM/distribution mechanism (phone share sheet) that the receipt correctly reads as Strategy prose (A1,B3), a 59% off-lane spread against a 15% threshold.

    • Wire the already-open ask-005 (tests/pmu-simulator/docs-only-commit-skips-lattice.test.mjs, asked 20x) so commitClass=setpoint + docsOnly=true commits either skip lane attribution or get a raised threshold — this exact event is the textbook case it was opened for.
    • Wire the already-open ask-003 (tests/pmu-simulator/shared-state-files-have-room-owner.test.mjs, asked 4x): docs/specs/vna/SPEC-VNA-COCKPIT.md is named in Relevant-Rooms: Network, Builder, Operator with no single owning room — give it an explicit shared-file declaration instead of inheriting whichever room happens to commit.
    • Check the emoji mismatch between the event's room (🔨 builder) and the trailer's Originating-Terminal (🏗️ Builder) against the already-open ask-027 (tests/pmu-simulator/originating-terminal-matches-surface.test.mjs, asked 35x) — confirm it's one canonical emoji per room, not two drifting spellings.
    • When C635j's code actually ships (navigator.share + Marketplace ref link in src/app/iamfim or sticker-landing component), file that commit separately from any further spec prose so the code commit's lane (C,B2) isn't diluted by planning text again.
    • Add docs/specs/vna/ to the room-surface coverage config (ask-001 / ask-024) for whichever room(s) legitimately author spec prose, rather than leaving it uncovered by every room's glob.

    What we learned: docsOnly=true is not just a flag the receipt carries for context — a 1-line pure-markdown insertion into a multi-room shared spec file is structurally guaranteed to read as whatever topic the paragraph is about, independent of which room's name sits in the commit trailer; the three prior facts-only interventions for this room never touched this (all were code-surface findings), so the file-ownership gap on docs/specs/vna/ is new.

    The missing guard (the deliverable): tests/pmu-simulator/docs-only-commit-skips-lattice.test.mjs (ask-005, already open, asked 20x — ship it rather than re-asking a 21st time)

    Detector probe: signal attribution — gzip reef 55% · ballistic walk 45%. Right-sized, not saturated or shallow (walkTruncated=false, lit==walks on both sides) — the asymmetry is in what was fed to it, not how it searched. Adjustment: seed the prewalk reef from the diff hunk plus local paragraph context only (not the full 1,747-line spec file), which should shrink litReality toward litIntent for single-bullet docsOnly commits. Experiments: Reseed the prewalk reef corpus from the diff hunk ± 20 lines instead of the full spec file for docsOnly commits on this file, and recompute prewalkOverlap on the last 20 such commits — hypothesis: overlap rises materially above 2. · Run the 102 out-of-lane events for this room over the last 14 days through a docsOnly vs non-docsOnly split and measure what fraction of offPct mass is docsOnly commits to shared spec files — this tells us whether ask-005 alone closes most of the 102, or whether code-surface drift is still the bulk. · Add a per-checklist-item 'Lane:' front-matter tag to SPEC-VNA-COCKPIT.md's C635 family and test whether lensIntent derived from that tag matches lensReality more often than lensIntent derived from the commit's Originating-Terminal trailer.

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

    A 59%-off-lane, docsOnly, zero-code commit is a false loss signal rather than a real one — it inflates this lane's apparent loss ratio without any defect in Builder's actual work; premium is restored by exempting docsOnly commits from lane threshold (ask-005) rather than by Builder changing behavior it didn't actually get wrong.

    Open the signed attestation →
  88. 2026-10-04 · 🧪 laboratory · offPct 31

    feat(vna): C635c — the funnel stops calling registry fetches people; the two doors read off the page log

    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 →
  89. 2026-10-04 · ☕ network · offPct 63

    feat(comms): C643 — the /brick readout, printed in chat every cycle; brick-readout.mjs computes its numbers

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

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

    Open the signed attestation →
  90. 2026-10-04 · 🧪 laboratory · offPct 47

    feat(vna): C596d — /steerone ranks by the crux: rows it unties × how legibly it reads

    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 →
  91. 2026-10-04 · 📐 architect · offPct 28 · structural

    spec(vna): declare C638 (loss run on your own transcripts) + C639 (the tail claim gets its control)

    Why it left the lane: The diff's terms ('npx thetacog-mcp loss-run', 'message.id' dedup, 'survivalSvg', 'paired randomised trial', 'Wilson 95%', 'McNemar exact p', 'bootstrap interval') are engineering/statistics vocabulary the reef lexicon places at the A2 (Laboratory/engineering) coordinate, not A1 (Architect/strategy). The touched path, docs/specs/vna/SPEC-VNA-COCKPIT.md, also sits outside every case arm of scripts/room-drift-architect-check.sh's is_architect_owned() (which only recognizes docs/strategy/{architecture,requirements,spec-*,plan-of-record-*,cardinal-*}, docs/03-product/{positioning,features,branding}, .workflow/rooms/*.html, docs/01-business/strategy/, CLAUDE.md) — so even on content grounds alone the file falls into that function's `*) return 1` catch-all.

    Intent–reality gap: The commit declares itself architect strategy work ('Originating-Terminal: 🏛️ Architect', a spec declaration), but the lit mass is two fully-specified engineering checklist items (a loss-run CLI tool with a dedup/network/UNMEASURED-threshold contract, and a pre-registered statistical trial with McNemar/Wilson/bootstrap machinery) — strategy framing wrapping Laboratory-grade engineering spec.

    • Wire scripts/room-drift-architect-check.sh into hooks/pre-commit (it is written but dead — zero callers found)
    • Fix its trigger to match the 'Originating-Terminal: 📐' trailer, not the unused literal string 'room: architect'
    • Add docs/specs/vna/*.md (and sibling shared VNA spec files) as a declared case arm, owned jointly by whichever rooms appear in Relevant-Rooms
    • Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010, already asked 42×) so lane coverage is computed from the union of Relevant-Rooms, not Originating-Terminal alone
    • Ship tests/pmu-simulator/shared-state-files-have-room-owner.test.mjs (ask-003) against SPEC-VNA-COCKPIT.md specifically, since it is the single highest-traffic shared ledger with no declared owner
    • Audit docs/strategy/architect-equivalent scripts for the other two rooms the prior lesson named (navigator, laboratory) — same dead-script pattern is plausible there too

    What we learned: The prior lesson (ff09774e5) found that three rooms independently spec'd the identical missing fix and concluded nobody had shipped it; this event shows the architect room's copy WAS written (scripts/room-drift-architect-check.sh exists, has a correct owned-surface table) but was never wired into hooks/pre-commit and its trigger condition matches a commit-message string ('room: architect') that no real commit in this repo ever contains — so it has been silently inert since creation. The room offPct oscillation (20→14 after the lesson, then 14→28→26 in the two 'sensemaking unavailable' commits after) is explained: the guard that should have suppressed recurrence was never load-bearing. An ask repeated 42×/35×/22× in the open-asks ledger is itself diagnostic of a broken propose-but-never-verify-shipped loop, distinct from a broken propose-but-never-build loop.

    The missing guard (the deliverable): tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, already open, asked 35×) — but it must assert not only that the check logic is correct, but that scripts/room-drift-architect-check.sh is actually invoked by hooks/pre-commit on every commit (a 'guard exists in the repo' check is insufficient; the guard must assert it fires, e.g. by checking hooks/pre-commit sources or calls the script path).

    Detector probe: signal attribution — gzip reef 70% · ballistic walk 30%. Saturated, not right-sized: 100% of walked cells lit on both the intent and reality side is the signature of a walk whose acceptance threshold is too permissive to prune anything. Concrete adjustment: tighten the walk's acceptance/EYE threshold (per the C226d iso-identity-test pattern where EYE=capFor(spec-tree) fixed a similarly saturated walk) until litIntent/litReality drop meaningfully below walksIntent/walksReality on docsOnly commits, restoring a discriminating signal. Experiments: Batch-rerun prewalkOverlap across the last 20 commits touching docs/specs/vna/*.md specifically — if they cluster at low overlap (~9) regardless of Originating-Terminal, that confirms the shared-ledger file systematically starves the reef seed and should get a widened intent lane by file type, not by room. · Ablation: parse the Relevant-Rooms trailer into the reef seed computation (union lexicon of all listed rooms, not just Originating-Terminal) and measure whether prewalkOverlap rises on the same commit class. · Add a walk-saturation flag: any commit where litIntent==walksIntent AND litReality==walksReality gets its offPct annotated LOW-CONFIDENCE (no pruning occurred); measure what fraction of the last 30 days of docsOnly commits hit full saturation.

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

    A guard written specifically to stop this loss class but never wired into the hook that fires on every commit is an uninsurable gap dressed as a mitigated one — restoring premium requires proving the hook actually invokes the script (a CI assertion), not re-pointing to the existing unfired script as evidence of coverage.

    Open the signed attestation →
  92. 2026-10-04 · 🔨 builder · offPct 60 · structural

    feat(vna): C635j — the sticker leads somewhere a phone can go

    Why it left the lane: The commit's Originating-Terminal trailer reads 🧭 steer and the file-level identifiers it edits are steer-prefixed (SteerInstall.tsx, steerHandOn, STEER_INSTALL_ACTION, useHandOn) — that token repetition is exactly what a gzip-NCD reef seed keys on, so the intent-lane walk anchors at the steer/strategy coordinate (lensIntent=A1,A) before it ever reads the diff body. The diff body itself is pure tactical UI construction (useState/useEffect, matchMedia('(pointer: coarse)'), navigator.share, sms:/mailto: anchors, a new <button data-c635j="share">) — vocabulary that only exists in builder's owned surface (src/components/, src/lib/) and walks to A1,B1. prewalkOverlap=4 is low, meaning the reef already disagreed with itself before the ballistic walk ran; the walk (litIntent 127 / litReality 144, a modest 1.13x spread) mostly inherited that early mismatch rather than creating it.

    Intent–reality gap: The commit's own trailers claim it originated from 🧭 steer (a strategy/dispatch room) while every byte of the diff lands inside 🔨 builder's owned glob (src/components/SteerInstall.tsx, src/lib/street-offer.mjs) — the receipt is charging builder 60% off-lane for work that IS builder's, because the terminal tag told the lane-walk to expect a steer-coordinate commit.

    • Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, asked 35x — write it with this exact path) asserting Originating-Terminal matches the file-surface owner when one room owns ≥90% of touched paths
    • Edit CLAUDE.md § COMMIT MESSAGE STRUCTURE to state the file-surface-owner rule for Originating-Terminal, with Relevant-Rooms as the dispatch record
    • Audit the rest of the open C635 sub-commits (g, i, and future k/l) for the same steer/builder tag mismatch before it recurs again
    • Re-weight the lane-seed step to prefer file-glob ownership over raw trailer-token match (code_rewrite above)
    • Re-run this sha's receipt offline against the proposed re-weighted seed to confirm offPct drops under 15 without touching the diff

    What we learned: This room's offPct is not purely a code-placement problem — a chunk of its 101-event/14-day out-of-lane rate is a TAGGING convention problem: an epic dispatched from one room (steer) and implemented entirely inside another room's owned surface (builder) gets its intent-lane seeded from the dispatcher's name, not the file-surface owner, guaranteeing high offPct on every sub-commit of that epic regardless of code quality. Three prior facts-only passes moved offPct by a few points each; none of them touched the seed mechanism, which is why the number keeps drifting back.

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

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Right-sized, not shallow or saturated — the ~13% spread differential between litIntent and litReality is normal corpus variance, not a sign the walk needs more depth. The adjustment belongs upstream of the walk: raise prewalkOverlap by seeding the reef with Relevant-Rooms tokens (Builder, Operator, Navigator) alongside Originating-Terminal, so the walk starts from better agreement instead of reconciling a bad seed. Experiments: Re-seed the reef corpus for this sha using Relevant-Rooms tokens in addition to Originating-Terminal and re-run the receipt offline; measure whether offPct drops below 15 on identical diff/walk · Partition the room's 101 out-of-lane events from the last 14 days by Originating-Terminal==charged-room vs mismatched, and compare mean offPct between the two groups; measure whether the mismatched group is significantly higher · Add the four literal strings below to the gzip baseline dictionary and ablation-test recompression of the last 14 days of builder-room commits; measure whether prewalkOverlap rises without any code change

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

    A structural tag mismatch producing repeat 60%+ offPct events on legitimate, correctly-owned builder work erodes trust in the lane signal itself (loss-ratio inflation from false positives, not real defects); premium is restored by closing ask-027 so Originating-Terminal and file-surface agree, which should quiet this exact recurring alarm across the whole C635 series.

    Open the signed attestation →
  93. 2026-10-04 · ☕ network · offPct 44

    spec(comms): C640 — #6 gets its image: a log is not real the way a car crash is

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

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

    Open the signed attestation →
  94. 2026-10-04 · 🧪 laboratory · offPct 54

    docs(comms): C643 — /brick: the fix also takes the sentence that contradicted the need, and factual errors anywhere

    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 →
  95. 2026-10-04 · 🧪 laboratory · offPct 40 · mistagged

    docs(comms): C643 — /brick names the tenth problem kind (malformed) and the plan-only check

    Why it left the lane: The commit's own trailers claim ☕ Network as Originating-Terminal and list 🔬 Laboratory / 🏛️ Architect / ☕ Network as Relevant-Rooms, but the event fired against the room key '🧪 laboratory' — a different emoji for the same word. 🧪 laboratory's owned surface is MCP/CRM/orchestrator plumbing (thetacoach-crm-mcp/, swarm-comms/, .thetacog/orchestrator/) — none of it overlaps .claude/skills/brick/SKILL.md. The diff's actual vocabulary ('brick-order', 'need-inversion', 'malformed', 'plan-only check', 'brick.mjs plan') is comms/skill terminology that the walk correctly placed at lensReality=B2,A2, far from the laboratory lane the event was scored against — hence offPct=40 on a 4-line docs patch.

    The semantic pull: Strings 'node scripts/comms/brick.mjs check' / 'node scripts/comms/brick.mjs plan' and the new field name 'malformed' are comms-pipeline tokens with zero lexical overlap against laboratory's owned globs (thetacoach-crm-mcp/, swarm-comms/, .thetacog/orchestrator/, .claude/settings*.json) — prewalkOverlap=14 (low) confirms the reef found little intent-side seed there, so the walk's own spread (litIntent=137 vs litReality=66) carried the mass to B2,A2 instead.

    Intent–reality gap: The commit claims room alignment with ☕ Network / 🔬 Laboratory / 🏛️ Architect via its trailers, but the receipt scored it under '🧪 laboratory' — a room whose owned-surface glob list contains nothing a comms-skill SKILL.md edit could ever land in, so the 'out-of-lane' reading is really 'never-in-this-lane-to-begin-with'.

    • Dedupe the room registry entry for Laboratory to one emoji (🧪, matching the live owned-surface list already shown for this event) and grep for the other spelling across commit trailers/docs.
    • Confirm .claude/skills/** is covered by ☕ Network's owned-surface glob (brick/SKILL.md plainly belongs there, not to laboratory).
    • Wire tests/pmu-simulator/originating-terminal-matches-surface.test.mjs to assert the Originating-Terminal room's owned-surface covers ≥1 diff path.
    • Wire tests/rooms/relevant-rooms-covers-diff.test.mjs to assert every touched path is covered by at least one listed Relevant-Room.
    • Backfill-audit 🧪 laboratory's 215 off-lane events over the last 14 days against Originating-Terminal to see what fraction share this exact alias-collision signature before writing further laboratory-specific interventions.
    • Investigate why lensIntent came back null with walksIntent=137 lit cells — a one-file, 4-line docs diff should converge, not spread un-resolved.

    What we learned: 🧪 laboratory's persistently high off-lane count (215 events/14 days, prior outcomes 15→13, 15→18, null→58) may not be 215 independent drifts at all — it may be one unresolved room-alias collision (🔬 vs 🧪 Laboratory) silently misrouting commits that were never laboratory's work in the first place, which is why facts-only interventions on this room have not converged.

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

    Detector probe: signal attribution — gzip reef 25% · ballistic walk 75%. Over-spread on the intent side for a thin diff: a one-file, 4-line docs change lit 137 intent cells yet never converged to a single lensIntent, while reality lit only 66 and did converge (B2,A2). That asymmetry suggests the intent walk's exploration budget is too generous for docsOnly commits. Adjustment: scale the intent walk's depth/budget down for commitClass=work + docsOnly=true + diff size under ~10 lines, and re-check whether lensIntent resolves non-null. Experiments: Re-score sha bf0b2b8fb after normalizing the 🔬/🧪 Laboratory alias in the resolver; measure whether offPct drops below 15 on the identical diff. · Sample the last 20 docsOnly=true commits with lensIntent=null and litIntent>100; cap intent walk depth at ~40 cells for that class and measure the null-rate before/after. · Re-run the room's 215 off-lane events grouped by Originating-Terminal vs scored-room pair; measure what fraction collapse once the alias is folded.

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

    A docs-only, well-scoped skill-doc edit scoring offPct=40 inflates this lane's apparent loss-ratio with a false claim; premium is restored by fixing the room-alias collision and the originating-terminal-matches-surface guard, not by treating the 215-event count as 215 real incidents.

    Open the signed attestation →
  96. 2026-10-04 · ☕ network · offPct 37 · mistagged

    feat(vna): C643 — brick.mjs makes an email's brick order decidable, with its guard

    Why it left the lane: The diff's actual mass is pure library code for a generic email-structure checker: strings like "data-brick", "data-need", "data-beats", "NEED_ORDER", "SKILL.md", "the mechanical half of the /brick skill" and the import from scripts/lib/six-percentages.mjs. None of that vocabulary touches outreach prospecting, battle-cards, CRM or book-club — the actual nouns of ☕ Network's owned surface. The walk's lit cells (118/118 intent, 119/119 reality — fully saturated) landed the reality mass at lensReality=C,A2 (general comms-mechanics/architecture territory) while the commit's claimed lane sits at lensIntent=B3,B1 (Network's outreach-ops territory), producing laneJump=6 and laneHamming=36.

    The semantic pull: Terms like "brick.mjs is the mechanical half of the /brick skill", "NEED_ORDER", "data-brick/data-need/data-beats", and "SKILL.md must state NEED_ORDER" are shared-infrastructure/architecture vocabulary (coord C,A2), not outreach-ops vocabulary (coord B3,B1) — there is zero mention of wave/battle-card/CRM/bookclub nouns anywhere in 698 inserted lines.

    Intent–reality gap: The commit's Originating-Terminal claims ☕ Network ownership (scoring the event against Network's outreach lane), and the Story even says 'the chair wrote the /brick skill' — implying Architect authorship — while the receipt measured the actual bytes landing almost entirely (37% over the 15% threshold) in general comms-library/architecture territory that Network's owned globs never list.

    • Add scripts/comms/** and tests/comms/** to an explicit owned-surface glob (Architect, or a new 'shared infra' category exempt from single-room lane scoring)
    • Add an 'Owned by' line to .claude/skills/brick/SKILL.md naming the room so future /brick commits inherit the correct Originating-Terminal automatically
    • Audit scripts/lib/six-percentages.mjs (imported by brick.mjs) for the same unclaimed-surface gap — it is a dependency of brick.mjs but appears in no room's glob list either
    • Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010) as the union-of-globs-covers-diff check — this is the single highest-repeat open ask (46x) and would have caught this exact class
    • Ship tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs (ask-033) so a commit with an honest Relevant-Rooms trailer scores against the union, not the originating room alone
    • Re-check the other /brick-adjacent skills (bump, club, chan, wave) for commits whose code lives in scripts/comms/ or scripts/lib/ tagged under their own originating room

    What we learned: This is the fe3e90611 structural gap recurring verbatim three weeks later, unfixed — and the guard that would close it (ask-010, relevant-rooms-covers-diff) is the single most-repeated open ask in the entire ledger (46x), meaning the system has already diagnosed this failure class 46 times without it shipping; ask-repeat-count is itself a signal that should force prioritization, not just another entry in a queue.

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

    Detector probe: signal attribution — gzip reef 20% · ballistic walk 80%. The walk is saturated, not shallow or truncated — 100% of walked cells lit on both sides. Full saturation plus a wide lane jump (6) suggests the walk's lighting aperture is too permissive to discriminate 'shared comms infra' from 'room-specific ops' sub-regions; it lights everything reachable rather than converging. Adjustment: tighten the aperture one notch specifically when lit/walks ratio exceeds ~0.95, so saturated walks still separate adjacent-but-distinct lattice regions instead of reporting uniform full coverage. Experiments: Split the reef corpus bucket so scripts/comms/** and tests/comms/** seed separately from scripts/outreach/**, then re-run prewalkOverlap on this same commit and compare — expect prewalkOverlap to rise above 2 once the comms-mechanics bucket is distinct from the outreach bucket · Re-score the last 10 ☕ Network commits with the Relevant-Rooms union (Network ∪ Architect ∪ Laboratory glob) instead of Network's lane alone, and measure whether offPct for genuinely-outreach commits (scripts/outreach/*) drops because comms-infra false positives stop polluting the room mean · Lower the ballistic walk's aperture by one step whenever litIntent/walksIntent > 0.95 on the next 20 saturated commits, and measure whether laneHamming separates more cleanly between shared-infra and room-specific placements

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

    Like fe3e90611 before it, this event inflates ☕ Network's apparent loss-ratio for infrastructure it structurally doesn't own (31 out-of-lane events in 14 days, now one more); premium is restored not by Network writing differently but by granting scripts/comms/**+tests/comms/** a real owner and shipping the ask-010 union-coverage guard so blame attaches to actual ownership.

    Open the signed attestation →
  97. 2026-10-04 · 🔨 builder · offPct 56 · structural

    fix(vna): C635g — the tooth graph's y labels were clipped at the left edge

    Why it left the lane: The one-line edit `PL = 46` → `PL = 60` lives inside renderToothGraphSvg's function body in scripts/vna/steer-ab-svg.mjs, a file whose own header declares it 'THE TWO TICK CHARTS, ONE RENDERER, NO DEPENDENCIES. Imported by the stats-page block.' That same export is imported by scripts/vna/steer-ab-tokens.mjs's writeToothGraph(), which both writes the committed public/vna/tooth-graph.svg AND feeds the live C519 stats-page render path. PL is a hardcoded local const, not a passed-in option, so there is no per-caller override — bumping it broadcasts to every consumer of the shared renderer in one motion. That broadcast is what the recursive walk picked up as 124 lit reality cells against 112 intent, landing reality at [B3,A1] against a claimed [B3,C2].

    The semantic pull: 'renderToothGraphSvg', 'ONE RENDERER, NO DEPENDENCIES', and the hardcoded 'const W = width, H = height, PL = 60' are the exact strings doing the dragging — 'ONE RENDERER' is the file announcing its own multi-consumer scope, and the hardcoded PL (no destructured default, unlike width/height/floor which ARE overridable) is the mechanism that turns a single-graph padding tweak into a change every caller inherits.

    Intent–reality gap: The commit claims a narrow, single-artifact fix ('the tooth graph's y labels were clipped') scoped to public/vna/tooth-graph.svg, but the receipt shows the edit landed in the shared C519 stats-page renderer's lane too — because PL has no caller-local override, the 'tooth graph fix' is structurally indistinguishable from 'change the shared renderer's default for everyone.'

    • Audit every call site of renderToothGraphSvg (currently steer-ab-tokens.mjs:290, plus the stats-page block the header names) to confirm none of them silently inherited the new PL=60 and regressed their own layout.
    • Add scripts/vna/** to a room's declared owned-surface glob (today it is tagged across Builder/Performer by commit, owned by none) so room-surface-coverage stops treating it as unclaimed.
    • Parameterize padLeft/padRight/padTop/padBottom on renderToothGraphSvg per the code_rewrite above; ship with a test asserting the stats-page default is unchanged.
    • Add a Playwright render-and-measure assertion for public/vna/*.svg (and the live stats-page tick chart) that fails if any axis label's bbox falls outside the viewBox — generalizes this fix beyond the one clipped label seen.
    • Update the commit-message convention doc to require naming the shared module (not just the output artifact) when a 'fix' edits a function with more than one caller.
    • Re-render and diff the live C519 stats-page tick chart against pre-commit bytes to confirm PL=60 didn't change what readers see there too.

    What we learned: A room's owned-surface glob is defined over directory trees (public/ vs scripts/), but the actual coupling in this codebase runs through shared, dependency-free renderer modules whose hardcoded layout constants have no per-caller override — editing one line inside such a module is structurally a broadcast to every consumer, not a scoped fix, regardless of which single output file the commit message names. This is new: prior lessons for this room shipped facts-only with no mechanism; this is the first time the actual coupling (generator-script-as-shared-infra vs output-file-as-owned-surface) was named.

    The missing guard (the deliverable): tests/ops/room-surface-coverage.test.js

    Detector probe: signal attribution — gzip reef 20% · ballistic walk 80%. Right-sized but not caller-aware: both walks are fully lit (no truncation) yet the 12-cell gap and laneHamming=24 show the walk is discovering the shared-consumer fanout late, inside its own recursion, rather than up front. Concrete adjustment: before the ballistic walk starts, seed it with a static import-graph enumeration of the touched export's callers (here: steer-ab-tokens.mjs, the stats-page block) so the intent lane already reflects known multi-consumer reach instead of the walk having to rediscover it. Experiments: Re-run this commit's walk with the reef seed augmented by a grep-derived caller list for the touched export (renderToothGraphSvg) and measure whether offPct drops below the 15 threshold — if it does, caller-aware seeding is the fix, not a deeper walk. · Ablate the last 20 builder-tagged commits touching scripts/vna/*.mjs with vs without export-name seeding in the reef, and measure the delta in laneHamming across the set. · Add caller-count (number of distinct importers of the touched export) as a logged field on the receipt row for every commit; regress offPct against it over the next 30 vna commits to confirm the correlation this incident suggests.

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

    A structural no-override shared-renderer broadcast under a 56% off-lane event raises this lane's loss-ratio read until room-surface-coverage.test.js closes the scripts/vna/ ownership gap and the padLeft parameterization ships — both named here as the restoring conditions, not yet applied.

    Open the signed attestation →
  98. 2026-10-04 · ☕ network · offPct 24 · mistagged

    fix(bookclub): refuse a subject that paraphrases a sent hook or names nothing in its passage

    Why it left the lane: The diff's new module scripts/lib/club-subject.mjs exports generic text-utility primitives — contentWords, stem, the STOP set, a Jaccard-overlap computation — none of which carry comms/bookclub vocabulary; they read as a stand-alone string-similarity library. That path sits outside ☕ network's owned glob (which lists scripts/bookclub/, data/bookclub/, docs/comms/bookclub-* but nothing under scripts/lib/). Meanwhile the commit's own Relevant-Rooms trailer reads 'Operator, Voice, Builder' — it never names Network, even though scripts/bookclub/compose-email.mjs and the new tests/bookclub/club-subject-is-specific.test.mjs sit squarely on Network's declared surface. The lattice placed intent at C1,C2 (the comms lane the trailer implied) and reality at B3,A (generic lib/infra coordinates) — exactly where a pure-function, no-domain-words module would land.

    Intent–reality gap: The commit presents itself as Builder/Voice/Operator work fixing a reader-facing subject-line bug; the receipt measured the actual file mass landing on ☕ network's owned bookclub surface (scripts/bookclub/, tests/bookclub/) plus a chunk that escaped into generic scripts/lib/ — neither the Network room nor the lib-vs-domain placement is acknowledged anywhere in the message or trailers.

    • Move scripts/lib/club-subject.mjs into scripts/bookclub/club-subject.mjs; fix both import sites.
    • Fix the Relevant-Rooms trailer on this commit's lineage going forward to list Network whenever scripts/bookclub/ or data/bookclub/ paths are touched.
    • Advance the already-open ask-010 (tests/rooms/relevant-rooms-covers-diff.test.mjs) rather than opening a new spelling.
    • Audit other recent single-caller additions under scripts/lib/ for the same domain-leak pattern (grep for files with exactly one importer outside scripts/lib/ itself).
    • Note in CLAUDE.md or the room glob doc that scripts/lib/ is for genuinely multi-consumer utilities only — a pure function with one caller belongs in that caller's own room directory.

    What we learned: scripts/lib/ is being used as the default landing spot for any freshly-extracted pure function, independent of whether that function has a single domain-specific caller whose own room directory already exists to hold it — the 'extract a testable pure function' habit and the 'default new files to lib/' habit are two separate decisions, and only the second one silently moves mass off the room's owned-surface glob.

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

    Detector probe: signal attribution — gzip reef 45% · ballistic walk 55%. Saturated, not right-sized: 100% lit-to-walked ratio on both sides means the walk isn't discriminating signal from noise, it's just reporting how far it got. Concrete adjustment: introduce a density/overlap threshold a step must cross before counting as 'lit' (rather than lit==visited by construction), then re-test whether the 138-vs-115 reality/intent gap survives — if it collapses under a real threshold, the offPct was walk-length artifact, not genuine drift. Experiments: Recompute prewalkOverlap for this sha after moving club-subject.mjs into scripts/bookclub/ and check whether the seed overlap rises above 4 — measurable: overlap delta before/after the move. · Cap walksReality at walksIntent's 115 steps (holding corpus fixed) and recompute offPct, to isolate how much of the 24% is pure step-count asymmetry vs content placement — measurable: offPct at capped depth vs reported 24. · Recompute the commit's room/lane assignment with Relevant-Rooms corrected to include Network, and check whether the receipt's room attribution (currently ☕ network) or offPct changes — measurable: before/after room+offPct diff.

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

    A room repeatedly under-claiming its own owned-surface in Relevant-Rooms (21 out-of-lane events in 14 days for ☕ network) widens this lane's loss-ratio by making every future offPct spike harder to attribute correctly; restoring it means landing ask-010 so the trailer check becomes load-bearing rather than advisory.

    Open the signed attestation →
  99. 2026-10-04 · 🧪 laboratory · offPct 29 · mistagged

    feat(vna): C637 — the reflex trial harness, paired ON/OFF through one door

    Why it left the lane: Every changed path in the diff — scripts/vna/reflex-trial.mjs, tests/vna/c637-the-reflex-trial.test.mjs, .gitignore — sits entirely inside the VNA/pipeline vocabulary: 'scratch tree', 'PostToolUse', 'claude -p', 'armOrder(taskId, seed)', 'VNA_RETURN_READING', 'C612i reading', 'stageRound'. None of that vocabulary, and none of those three paths, touch 🧪 laboratory's owned surface (thetacoach-crm-mcp/, swarm-comms/, .thetacog/orchestrator/, .claude/settings*.json, .mcp.json, scripts/init-claude-flow-with-crm.sh, scripts/check-mcp-health.sh, scripts/claude-room, .thetacog/punch-list*). The walk's reality lane (A1,B) is dominated by this VNA content while the intent lane (B,A1) still carries the laboratory tag — the two lenses agree on the same coordinate PAIR but disagree on which one is primary, which is exactly what you'd see if a Builder-authored commit got stamped with the wrong room rather than drifting semantically.

    The semantic pull: 'scratch tree', 'PostToolUse', 'claude -p', 'VNA_RETURN_READING', 'armOrder', 'C612i reading' — dense VNA-harness/pipeline terms with zero overlap with laboratory's CRM/MCP/orchestrator glossary; litIntent==walksIntent (117/117) and litReality==walksReality (137/137) show full saturation on both sides, so the pull is a wholesale relocation of mass into A1 (VNA/Architecture), not a partial bleed.

    Intent–reality gap: The commit's own trailers already say Originating-Terminal: 🏗️ Builder and Relevant-Rooms: Architect, Builder, Performer — 🧪 laboratory is not even named. The receipt nonetheless books offPct 29 against laboratory, meaning the room-to-commit attribution the pipeline used contradicts the commit's own declared authorship, and the diff content (100% scripts/vna + tests/vna) confirms the trailers, not the room tag.

    • Ship tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs (ask-033) — when Originating-Terminal/Relevant-Rooms exclude the receipt's assigned room, offPct for that room must be excluded/UNMEASURED, not counted.
    • Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, asked 35×) — assert the Originating-Terminal trailer's room owns ≥50% of the changed paths.
    • Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010, asked 44×) — assert every changed path falls under at least one room named in Relevant-Rooms.
    • Audit the commit→room resolver (wherever the receipt pipeline picks 'room 🧪 laboratory' for a sha) to source room from trailers first, terminal-session second.
    • Backfill-check the room's other 214 out-of-lane events in the last 14 days for the same Originating-Terminal≠assigned-room signature before concluding laboratory is genuinely drifting.
    • Explicitly glob scripts/vna/** and tests/vna/** under Architect/Builder's owned surface so future VNA commits have an unambiguous home and never default-attribute elsewhere.

    What we learned: Prior lessons in this room were facts-only (no sensemaking) with inconsistent measured outcomes (offPct 15→13, 15→18, null→58) — none diagnosed WHY. This event shows the room's chronic high offPct is plausibly a pipeline attribution defect, not content drift: the receipt's room tag for a commit can contradict that commit's own Originating-Terminal/Relevant-Rooms trailers, meaning laboratory's loss-ratio is being inflated by other rooms' work laundered through whichever terminal happened to run `git commit`.

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

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Saturated, not right-sized: 100% hit-rate on both arms with a 20-cell gap in raw count (137 vs 117) but a large laneHamming (36) suggests the walk can't distinguish 'fully covers its region' from 'covers the WRONG region at full confidence.' Concrete adjustment: cap the reality-side walk budget to litIntent's 117 and re-run — if it still lands outside the lane at the smaller budget, that confirms genuine mistagged content rather than a walk-sizing artifact inflating litReality. Experiments: Re-seed the reef for VNA-pipeline commits using Originating-Terminal/Relevant-Rooms trailers as seed hints (not just session-terminal) and measure whether prewalkOverlap rises above 7 for this sha's content. · Across the room's 214 out-of-lane events in 14 days, compute what fraction share this exact Originating-Terminal≠assigned-room signature; a result >50% would validate the attribution-layer hypothesis over a content-drift hypothesis. · Force-reassign this sha's room to Builder (per its own trailer) and recompute offPct — if it drops under the 15 threshold, ship the trailer-first resolution rule as the fix.

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

    This event — and the room's 214 out-of-lane events in 14 days — marks 🧪 laboratory's loss-ratio as contaminated by content it never owns and never claimed, which inflates its premium; premium is restored only by shipping the mistagged-commit guard so offPct is scored against the room a commit's own trailers actually name, not whichever terminal happened to run git commit.

    Open the signed attestation →
  100. 2026-10-04 · 🔨 builder · offPct 16

    spec(vna): declare C637 — the reflex trial, with and without, side by side

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

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

    Open the signed attestation →
  101. 2026-10-04 · ☕ network · offPct 25 · mistagged

    feat(vna): the tail reading — steered vs plain as a severity curve, onto the Marsh page

    Why it left the lane: The diff's mass is split: docs/comms/self/research/2026-10-04-marsh-gtm/index.html (the GTM comms rewrite) is Network/Architect-flavored, but scripts/vna/token-tail.mjs + tests/vna/token-tail.test.mjs — 143 of 188 inserted lines, 76% of the diff — are a decile-matched resampling engine over data/vna/token-savings.json producing survival curves, exceedance counts, and a CV statistic. Terms like 'tailReading', 'lcg(seed)', 'binomLE', 'byDec', 'survivalSvg', 'q(a,p)' are VNA/statistics vocabulary with zero outreach content, and they live under scripts/vna/ and tests/vna/ — paths that appear nowhere in ☕ Network's owned-surface list. That vocabulary pulled the walk's reality lane toward B3,C while the commit's claimed intent (via its Relevant-Rooms trailer naming ☕ Network) sits at B,A1.

    The semantic pull: 'scripts/vna/token-tail.mjs', 'tests/vna/token-tail.test.mjs', 'resampling', 'decile', 'survivalSvg' — none match Network's globs (docs/outreach/, scripts/outreach/, docs/strategy/battle-cards/, docs/crm/, data/bookclub/, docs/comms/bookclub-*). Even the comms edit lands at docs/comms/self/research/2026-10-04-marsh-gtm/, which is 'self' strategy research, not the bookclub-prefixed path Network actually owns.

    Intent–reality gap: The commit's trailer claims ☕ Network as a relevant room (implying the work sits in outreach/comms territory), but the receipt shows 76% of the new code mass landed in scripts/vna/ and tests/vna/ — a VNA-engineering surface with zero overlap with any path Network owns.

    • Add tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010) enforcing that every Relevant-Rooms entry owns ≥1 touched path in the diff.
    • Add 'scripts/vna/*.mjs' and 'tests/vna/*.test.mjs' explicitly to 🔬 Laboratory's owned-surface list if not already present, so VNA-tooling commits stop defaulting to whichever room's name appears in the commit's prose.
    • Add 'docs/comms/self/research/**' to 🏛️ Architect's owned-surface list — distinct from Network's narrower 'docs/comms/bookclub-*' glob.
    • Audit the other 22 of 23 out-of-lane events in ☕ Network over the last 14 days for the same GTM-strategy-commit-tags-Network-by-habit pattern before assuming this is a one-off.
    • Run ask-024 (tests/ops/room-glob-overlap.test.mjs) to confirm the attribution step isn't fuzzy-matching 'docs/comms/' generically instead of the room's literal 'docs/comms/bookclub-*' prefix.

    What we learned: f748e0b17 already named 'lane-claim should track code's bulk, not its consumer' and offPct only improved 27→21 — it recurred here nearly verbatim. The NEW fact this event adds: the Relevant-Rooms trailer is being populated by topical/stakeholder relevance ('this is about outreach to Paul') rather than by the template's own stated criterion (owned-surface touch), and nothing mechanically checks the two against each other at commit time — so the lesson from f748e0b17 sat in prose with no enforcement and the same mistake repeated under different code (a GTM page then, a VNA statistics reader now).

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

    Detector probe: signal attribution — gzip reef 20% · ballistic walk 80%. Saturated, not right-sized: fill equals spread on both intent (132/132) and reality (115/115) sides, meaning the walk never pruned unlit territory — it's spreading as wide as it's permitted to walk rather than converging on a tight lane. Adjustment: segment the walk per-file (index.html / tail.svg vs token-tail.mjs / token-tail.test.mjs) instead of one walk over the whole mixed-content diff, since mixing comms prose with statistics code is exactly what prevents convergence within a single commit's walk. Experiments: Re-run the reef seed per-file-segment (index.html+tail.svg vs token-tail.mjs+test) and compare prewalkOverlap per segment; expect near-zero overlap with Network's reef for the .mjs/.test.mjs segment and measurably higher overlap with Laboratory's reef — outcome: segment-level overlap variance. · For commits with a multi-room Relevant-Rooms trailer, run one reef query per listed room and flag any room whose query returns prewalkOverlap≈0 relative to litIntent size BEFORE the walk runs — outcome: a per-room overlap score usable to catch trailer/room mismatches pre-commit. · Test capping walksIntent/walksReality at a lower ceiling (e.g. 80) for commits touching >1 room's owned surface, and measure whether offPct variance drops across a batch of mixed-content commits with capped vs uncapped walk budget.

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

    Combined with 23 prior out-of-lane events in 14 days, this is a frequency problem for ☕ Network's lane (many small positional losses from habitual mistagging, not one severe one) — premium stays elevated on frequency alone until ask-010's guard is shipped, at which point the loss-ratio restores by removing the recurring cause rather than any single severity fix.

    Open the signed attestation →
  102. 2026-10-04 · ☕ network · offPct 23

    feat(bookclub): the sceptic's chart (ladder rung 1) after the Intermission, trend read live

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

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

    Open the signed attestation →
  103. 2026-10-04 · 🔨 builder · offPct 39

    spec(vna): tick C634 (8ec67fa77f, 4/4) — the reflex demo, guard green at HEAD

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

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

    Open the signed attestation →
  104. 2026-10-04 · 🔨 builder · offPct 21

    docs(notebook): the 20 newest short overviews, by who needs to hear each, with verbatim quotes

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

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

    Open the signed attestation →
  105. 2026-10-04 · ☕ network · offPct 21 · structural

    spec(comms): declare C644 — the new-desk blast-radius message, its own /brick piece, parked behind C637 and 1 Nov

    Why it left the lane: The diff's one added line is '- [ ] C644 ... THE NEW-DESK MESSAGE — AGENTIC BLAST RADIUS, A SEPARATE /brick PIECE FOR CHRISTOS ADAMANTIADIS' naming 'Placement & Market Solutions', 'Cyber', 'FINPRO', 'blast radius', 'facility condition where an agent's reach is declared before it runs'. Those are underwriting/legal-placement terms, not comms/outreach terms. The commit's own lensIntent is B3,B1 (the Network room's usual comms lens) but lensReality reads A1,B1 — the walk pulled the single line toward A1 (Strategy/Law), matching the hat 'Counsel [A1,A1] A1.Strategy.Law' already active this session. laneJump=5 / laneHamming=22 register that pull even though the diff is one line in one file.

    The semantic pull: Insurance-placement vocabulary ('Placement & Market Solutions', 'Cyber', 'FINPRO', 'blast radius', 'facility condition ... declared before it runs and read after') in the C644 row drags the lattice coordinate from B3,B1 (Network's comms lane) to A1,B1 (Strategy/Law), because the file it lands in — docs/specs/vna/SPEC-VNA-COCKPIT.md — is the single shared ledger every room's spec rows get appended to, with no room-tag partition the walk can use to keep each row in its author's lane.

    Intent–reality gap: The commit claims Originating-Terminal ☕ Network and a comms Story ('a second reader in his own vocabulary'), and the work IS a correct comms-room decision (declaring a new /brick message). But the receipt measures where the edited BYTES sit, and those bytes sit inside docs/specs/vna/SPEC-VNA-COCKPIT.md — a file owned by no room (confirmed: it appears in zero .workflow/rooms/*.html owned-surface lists) — so a correct comms declaration still reads as 21% off the comms lane.

    • Build scripts/room-drift-network-check.sh — already spec'd in .workflow/rooms/messages-network.html ('spec'd, not yet implemented') but never written; it is the exact drift hook this event needed.
    • Land tests/pmu-simulator/docs-only-commit-skips-lattice.test.mjs (ask-005, already asked 21x) so docsOnly=true + commitClass=setpoint commits skip offPct scoring entirely.
    • Add a room-tag convention ('[room:<name>]') to every checklist row in docs/specs/vna/SPEC-VNA-COCKPIT.md so the scorer can read per-row origin instead of per-commit originating-terminal.
    • Add docs/specs/vna/SPEC-VNA-COCKPIT.md to a 'shared, unowned' list in the room-surface config so offPct scoring treats it as neutral ground rather than scoring against whichever single room's glob it fails to match.
    • Update .workflow/rooms/messages-network.html's owned-surface list to either explicitly disclaim SPEC-VNA-COCKPIT.md or claim its own room-tagged rows within it.

    What we learned: A file can be referenced by three rooms' commit trailers in a row (C643, C643a, C643b, C644 all list Relevant-Rooms including ☕ Network) and still be claimed by ZERO room's owned-surface glob — the shared spec ledger is a standing structural blind spot, not a one-off mistag, and the room's own HTML already names the fix ('spec'd, not yet implemented') without anyone having built it.

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

    Detector probe: signal attribution — gzip reef 25% · ballistic walk 75%. Saturated, not shallow: both walksIntent (122) and walksReality (96) are fully lit for a 1-line, 1-file diff — the walk runs the same depth/budget regardless of diff size, so a trivial docsOnly insertion gets the same recursive spread as a multi-file commit and any semantic pull (the insurance vocabulary) gets amplified into a large lane jump. Adjustment: scale walk budget (walksIntent/walksReality caps) proportionally to lines-changed for docsOnly commits, or skip the walk outright when docsOnly (ties directly to ask-005). Experiments: Re-run efbb58880's walk with walksIntent/walksReality capped near 20 (proportional to the 1-line diff) and check whether offPct drops below 15. · Ablation: recompute offPct for this room's last 32 out-of-lane events with docsOnly-skip toggled on vs off and compare the room mean offPct trend. · Split docs/specs/vna/SPEC-VNA-COCKPIT.md's reef seed into per-room-tag sub-corpora (using the proposed '[room:network]' tags) and measure whether prewalkOverlap rises for Network-tagged rows once isolated from Architect/Lab rows.

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

    32 out-of-lane events in 14 days driven by the same single-line, docs-only pattern into an unowned shared ledger inflates ☕ Network's loss ratio on a defect class that is structurally benign (correct comms declarations, wrong-file scoring); premium restores once ask-005's docs-only skip lands or the ledger carries per-row room tags.

    Open the signed attestation →
  106. 2026-10-04 · ☕ network · offPct 17

    spec(comms): C640b — the monologue for Mike Carls and Carlos Dias

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

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

    Open the signed attestation →
  107. 2026-10-04 · ☕ network · offPct 25 · structural

    spec(comms): declare C643 (/brick skill), C643a (Paul brick plan), C643b (the cycle)

    Why it left the lane: The only diff touched is docs/specs/vna/SPEC-VNA-COCKPIT.md — the single shared contract-declaration ledger every room writes into. The literal strings dragging placement are the C640–C642 checkbox flips (`- [x] C640` etc.) and the new `C643`/`C643a`/`C643b` blocks naming `.claude/skills/brick/SKILL.md`, `scripts/comms/brick.mjs`, `tests/comms/brick-skill.test.mjs` — all genuinely comms-shaped content — but the bytes that actually moved sit inside a VNA-cockpit infrastructure file (`docs/specs/vna/`), which the lens pulls toward Ops.Grid×Tact.Signal (C1,B3) rather than the comms lane the commit claims. The lensReality=B,A1 vs lensIntent=B3,B1 split and the laneJump=7/laneHamming=36 are the file-path signal, not the prose signal: it is a spec/ledger path wearing comms clothes.

    The semantic pull: Every repeated VNA C-number token ('C640', 'guard: `tests/comms/c640/', 'docs/comms/self/research/2026-10-04-marsh-gtm/monologues/') lives physically inside SPEC-VNA-COCKPIT.md, a filename the lattice reads as Ops/cockpit infrastructure regardless of the comms-flavored content quoted inside it — the path dominates the placement, not the words.

    Intent–reality gap: The commit claims 'spec(comms): declare C643 …' with Relevant-Rooms Network/Architect/Laboratory — a comms-domain intent — but the receipt measured 100% of the touched bytes landing in a file none of those three rooms' owned-surface globs cover, because the one shared cockpit spec file has no room owner at all.

    • Add a SHARED-LEDGER exemption marker to docs/specs/vna/SPEC-VNA-COCKPIT.md's header so lane-scoring reads contract-row content tags, not the file path alone
    • Extract the C643/C643a/C643b block (and future Network-tagged rows) into docs/comms/specs/c643-brick-skill.md, owned by ☕ Network's glob, with SPEC-VNA-COCKPIT.md keeping a one-line pointer/transclusion
    • Fix tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010) with this sha as a named regression fixture: a correct Relevant-Rooms trailer on a shared-ledger-only diff must not fail coverage
    • Fix tests/ops/room-surface-coverage.test.js (ask-001) to recognize docs/specs/vna/SPEC-VNA-COCKPIT.md as a declared SHARED path rather than an uncovered one
    • Run the reef-reseed experiment (per-room lexicon bucket) and the EYE-cap experiment on spec-tree files named in the pipeline probe below

    What we learned: fe3e90611 found one specific unowned folder (docs/comms/self/research/); this event generalizes it — the repo's SINGLE shared contract-declaration file (docs/specs/vna/SPEC-VNA-COCKPIT.md) is BY DESIGN unownable by any content-domain room glob, because every room's C-number rows funnel into it. That means any room that correctly and honestly declares a new contract row will keep tripping offPct until the ledger itself carries a shared-path exemption or is sharded per room — this is a structural, not a one-off, gap.

    The missing guard (the deliverable): tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010) — extended to treat docs/specs/vna/SPEC-VNA-COCKPIT.md as a declared SHARED path (once the header marker above exists) so a correctly-tagged Relevant-Rooms trailer on a shared-ledger-only diff passes coverage instead of flagging a homeless path.

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Saturated, not under- or over-deep: both lanes hit 100% lit/walked ratio with no truncation, which looks less like genuine discrimination and more like a cap ceiling being hit on a large spec-tree file (same failure mode as C226d's EYE=900 ceiling, fixed by raising to capFor(spec-tree)=800). Concrete adjustment: re-run this sha's walk with the spec-tree EYE cap raised one notch and check whether litIntent/litReality drop below 100% — if they do, the current 100% fill is a ceiling artifact, not a real full-coverage signal. Experiments: Re-seed the reef for this sha using a per-room content-tag bucket (tag C640–C643 rows as 'comms' independent of file path) and check whether prewalkOverlap rises above 4 — confirms the low overlap is a path-vocabulary artifact of the shared ledger, not true semantic drift · Dry-run split SPEC-VNA-COCKPIT.md's Network-tagged rows into a counterfactual docs/comms/specs/ shard, re-walk the counterfactual diff, and check whether offPct drops below 15 — directly tests the structural hypothesis · Raise the EYE cap for docs/specs/** files to the C226d spec-tree value and re-walk this sha, checking whether litIntent/litReality fall below 100% (confirms vs refutes the saturation diagnosis)

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

    A correctly-tagged, docs-only contract declaration still reads as a 25% off-lane loss event against this room's book, which overstates the room's true loss ratio — premium is restored not by tightening Network's behavior but by sharding or exempting the shared ledger so honest declarations stop generating phantom claims.

    Open the signed attestation →
  108. 2026-10-04 · 🔨 builder · offPct 16

    chore(bookclub): high-score board update — recomputed after send

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

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

    Open the signed attestation →
  109. 2026-10-04 · ☕ network · offPct 16

    docs(gtm): Marsh, Bryan, the wording — the angles laid out before deciding (v1)

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

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

    Open the signed attestation →
  110. 2026-10-04 · ☕ network · offPct 39 · structural

    feat(comms): C641 — v6 restores what closes it; C641.7 pins the four closers (seen red on v5)

    Why it left the lane: The diff's actual prose is dense with vocabulary that belongs to other rooms' corpora, not Network's comms-craft register. 'CG 40 47', 'CG 40 48', 'CG 35 08', 'D&O tower', '22 AI-washing securities suits', 'FINPRO', 'loss run', 'underwriter' are Vault's insurance/underwriting vocabulary. And the v6 P.S. reproduces CLAUDE.md's AXIOM 1 PAIRED SENTENCE verbatim — 'Whether it was good is undecidable (Rice, 1953). What it actually did cannot be reconstructed from its own account (the data processing inequality). The only remaining move is to read a record the actor did not write.' — which is literally Architect's canonical axiom text. Those two vocabularies pulled 17 extra cells into the reality walk (137 vs 120 intent) even though the commit's own Relevant-Rooms trailer already names Architect and Vault alongside Network.

    The semantic pull: Insurance-clause codes + D&O/securities-suit language → Vault's underwriting coordinates. Rice/1953 + data-processing-inequality citation, byte-identical to AXIOM 1's paired sentence → Architect's axiom coordinates. Both are real strings in the diff, not inferred.

    Intent–reality gap: The commit message frames this as a pure comms-craft iteration (cold-read fixes, four closers restored, caveats moved to a P.S.) that should sit inside Network's lane alone — and its own trailer already discloses Architect + Vault relevance — but offPct is computed against Network's single owned-surface glob, not the union of the three rooms the commit itself named, so correctly-scoped cross-room content reads as 39% off-lane.

    • Add 'docs/comms/self/research/**' to ☕ Network's owned-surface config (likely .workflow/rooms/network.html)
    • Confirm Architect's and Vault's owned-surface configs also don't claim this path, so the union-fix (below) doesn't just shift the gap sideways
    • Implement ask-010 (tests/rooms/relevant-rooms-covers-diff.test.mjs) to compute offPct against the UNION of owned-surface globs for every room in the Relevant-Rooms trailer, not Originating-Terminal alone
    • Backfill the room's 25 out-of-lane events from the last 14 days and bucket by touched-path prefix to confirm what fraction share this same self/research glob gap
    • Add the docs/comms/self/research/ convention explicitly to CLAUDE.md's 'Comms pipeline' paragraph, naming it as pre-decision research distinct from drafts/approved

    What we learned: A commit can honestly and correctly declare multi-room relevance in its own trailer (Relevant-Rooms: Network, Architect, Vault) and still get penalized at 2.6x the lane threshold, because offPct is scored against the originating room's lane alone while the content's actual home — docs/comms/self/research/ — is owned by none of the three named rooms. Honest multi-room content can be structurally homeless at the same time it is structurally correct.

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

    Detector probe: signal attribution — gzip reef 65% · ballistic walk 35%. Right-sized in depth, not shallow or saturated-by-truncation — 100% lit/walked ratio on both sides with walkTruncated=false shows clean convergence. The adjustment belongs upstream of the walk: enrich the reef's pre-walk corpus matching (the underwriting-clause and axiom-citation vocabulary) rather than deepening the walk itself. Experiments: Add the insurance-clause vocabulary (CG 40 47, CG 40 48, CG 35 08, FINPRO, D&O tower, loss run, underwriter) to a Vault-tagged reef dictionary entry, re-run prewalkOverlap on sha fe3e906110, and check it rises above 15 · Recompute offPct for this sha using the union of Network+Architect+Vault owned-surface globs instead of Network alone, and check whether it drops below the 15 threshold · Bucket the room's prior 25 out-of-lane events (14-day window) by touched-path prefix and measure what share is the docs/comms/self/research/** gap specifically vs. other causes

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

    The event inflates ☕ Network's apparent loss ratio on work that is actually correct and declared, not reckless — the false-positive premium hit is restored by filing docs/comms/self/research/** under Network's owned surface and union-scoping offPct against the trailer's declared rooms.

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

    feat(vna): C606b — the four prebuilds carry boundaryProbe and the next pin names the linux-x64 one

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

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

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

    spec(vna): C612m–n — the binding weighs specificity; the walk differs by ingress on the live grids

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

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

    Open the signed attestation →
  113. 2026-10-03 · 🧪 laboratory · offPct 35

    fix(vna): C606c — next.config.js traces the addon into /api/pmu/boundary

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

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

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

    chore(vna): C606a — carve takes IntentGuard 12406ee (the guard builds the host addon in a clean extract)

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

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

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

    fix(vna): C611n — one witness reads as one witness: tri abstains on NCD's own σ floor, pmu-demo says "one witness (gzip-NCD)"

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

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

    Open the signed attestation →
  116. 2026-10-03 · 🧪 laboratory · offPct 20

    feat(vna): C607 — the first line reads the freshest iso receipt and names it; pairs per half beside n

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

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

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

    spec(vna): C612s–t — the intent mass is counted (pipeline.mjs:376 zlib bug); the last mjs deciders of today

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

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

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

    fix(vna): the guard time limit is one rule in one place — spec-check and verify share scripts/lib/guard-timeout.mjs

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

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

    Open the signed attestation →
  119. 2026-10-03 · 🔨 builder · offPct 31

    feat(vna): C612h — the binding predicates (C612i/C612j depend on them)

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

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

    Open the signed attestation →
  120. 2026-10-03 · 🧪 laboratory · offPct 51

    fix(vna): C631 — the ollama-callers ratchet is green at debt 74; the enforcer test reads the act, not the phrase

    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 →
  121. 2026-10-03 · 📐 architect · offPct 20 · structural

    spec(vna): C616 — the money shot reads today's receipts: wire C612a/c/d/g into the C611h infographic ledger

    Why it left the lane: The diff touches only docs/specs/vna/SPEC-VNA-COCKPIT.md — a single checklist-row insertion ('C616 ... THE MONEY SHOT READS TODAY'S RECEIPTS') — but the row's own body names the files it intends to wire: data/vna/infographic-requirements.json, scripts/vna/infographic-ledger.mjs, data/vna/path-prediction.json, data/vna/repo-as-spec-gain.json, and the committed SVG/PNG under money-shot.mjs. The commit's lattice placement is pulled by that enumerated future-work surface (laboratory/engine-script territory: scripts/vna/*.mjs, data/vna/*.json) even though not one byte of those files changed — the ONLY reality mass is the one docs-only line. offPct=20 with litReality=139 vs litIntent=83 means the walk spread wide across reality coordinates the diff never touched, purely from the row's prose enumerating C612a/c/d/g receipt paths and resolver targets (IR-B6, IR-B3/B4/B7, IR-C2, IR-A4) that live in scripts/vna and data/vna, not in docs/specs/vna.

    Intent–reality gap: The commit message and trailers claim a pure spec-authoring act in 📐 architect's docs lane ('spec(vna): C616 ... the ledger ... does not read what C612 built'), and the diff stat confirms exactly one line in one spec file changed — yet the receipt measured reality mass spread across 139 lit cells, 20% of it outside the declared lane, because the row's own body text names and describes five scripts/vna + data/vna files it does not yet touch.

    • Split C616 into C616 (📐 architect, spec-only, no file paths beyond docs/specs/vna/) and C616-impl (🔬 laboratory, owns scripts/vna/infographic-ledger.mjs + data/vna/*.json + money-shot.mjs)
    • Add Relevant-Rooms: laboratory to any future architect commit whose row body enumerates scripts/vna or data/vna paths, satisfying ask-010 (relevant-rooms-covers-diff)
    • File data/vna/infographic-requirements.json: add a `spec_row_owner` field per IR-* entry so resolver wiring is tracked outside prose
    • Ship tests/pmu-simulator/mistagged-commit-does-not-inflate-offpct.test.mjs (ask-033) scoped to docs-only spec commits whose body text names future files not yet in the diff
    • Update docs/architecture/claude-rules/doors-and-surfaces.md with the rule: a spec row's body may REFERENCE a target path only after that path has its own row owned by the room that holds it

    What we learned: A docs-only spec commit can still read as 20%+ off-lane because the receipt's lattice walk treats the PROSE INSIDE a checklist row as reality mass — a spec row that previews five not-yet-built files pulls the same walk weight as if those files had been edited, meaning the detector cannot currently distinguish 'describing future work' from 'doing it'; this is a new failure mode distinct from the three prior architect lessons (which were about Originating-Terminal/Relevant-Rooms mismatch and stale room-lane classification), because here the trailers and the diff stat are BOTH internally consistent and correct — the drift comes from the row's own forward-looking content, not from mistagging.

    The missing guard (the deliverable): tests/pmu-simulator/docs-only-commit-skips-lattice.test.mjs (ask-005) — extended to specifically cover the case in this event: a docs-only spec-authoring commit whose row text enumerates target file paths should have those paths excluded from (or down-weighted in) the reality-lane walk until a commit actually touches them, so forward-declared implementation targets don't inflate offPct for the declaring room.

    Detector probe: signal attribution — gzip reef 25% · ballistic walk 75%. Oversaturated on the reality side relative to intent: litReality=139 vs litIntent=83 with only 5 prewalk-overlap cells suggests the walk is treating every named file path in the row's prose as an independent lit coordinate rather than collapsing forward-referenced-but-unedited paths into a single 'planned' bucket. Concrete adjustment: cap the reality-side walk depth/breadth for docs-only commits (docsOnly=true) to the actual diff's touched files, and treat file paths appearing only in prose (not in the diff stat) as a separate lower-weight 'intent-preview' channel that does not count toward offPct. Experiments: Re-run this sha's walk with docsOnly=true forcing litReality to the diff's actual touched-file set only (exclude prose-mentioned paths) and measure whether offPct drops below the 15 threshold — if yes, confirms prose-path leakage is the mechanism · Ablate: strip the five inline file-path mentions from the C616 row text (keep the prose description, remove the literal paths) and re-walk the same commit to see if offPct falls without changing diff content · A/B the reef seed: compare prewalkOverlap for this commit against a docs-only commit whose row body names ZERO implementation paths, to quantify how much prewalkOverlap=5 is itself depressed by path-dense prose diluting the gzip-NCD match

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

    This event is a false-positive loss signal rather than a true structural drift, so it should NOT raise architect's loss ratio on its own merits, but left unguarded it will keep firing on every forward-looking spec row and erode the lane threshold's credibility as a premium signal — restored by shipping the docs-only-commit-skips-lattice extension so prose-only path mentions stop pricing as realized cross-lane work.

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

    spec(vna): C612o — the aperture ratchet aims where the walk and the snowball aim (and it has never moved: 429 holds, n 0)

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

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

    Open the signed attestation →
  123. 2026-10-03 · 🔨 builder · offPct 18

    data(vna): C612j — port row C612j-reflex declared (file committed whole: C612h's uncommitted row rides along)

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

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

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

    feat(vna): C610k — the walk on the NCD grid: a sensor arm on the one walk, five readings side by side

    Why it left the lane: The diff's substantive edits are in scripts/pmu/panel-door.mjs, scripts/pmu/tolerance-panel.mjs and scripts/pmu/triptych-build.mjs — threading a new `sensor` parameter ('claim'|'ncd') through the walk/render chain, plus the xorGrid/topSeeds rewrite of the competence-pixel logic in triptych-build.mjs. scripts/rooms/recontext.mjs's own TOPIC fallback table (line 98) maps `^scripts\/pmu` to room 'kitty-operator', never 'cursor-laboratory'. The commit's Originating-Terminal is 🧪 Laboratory, but the files whose bits actually moved (producing lensReality=A1,C1) bucket to Operator by the repo's own rule. Only tests/vna/c610k-the-walk-on-the-ncd-grid.test.mjs matches a Laboratory-owned pattern (`^tests\/`, line 99); the new scripts/vna/ncd-walk-arm.mjs (582 lines, the bulk of new logic) matches no TOPIC rule at all.

    The semantic pull: Literal strings 'sensor arm', 'forwarded through panel-door → the encircled panel → the tolerance panel', 'the SAME walk', 'lens.rs walk entry' all describe core pipeline plumbing in scripts/pmu/*, which recontext.mjs's TOPIC array (scripts/rooms/recontext.mjs:98) explicitly assigns to kitty-operator. The reality lens coords A1,C1 are the walk/render axes the triptych-build.mjs rewrite (xorGrid, topSeeds ingress) actually touched — exactly the surface the commit's own Originating-Terminal trailer doesn't own.

    Intent–reality gap: The commit message frames this entirely as a VNA experiment row (C610k, 'readings', 'arms', pre-registered branch) filed under 🧪 Laboratory, but the receipt measured real bytes landing in scripts/pmu/panel-door.mjs, tolerance-panel.mjs and triptych-build.mjs — files the repo's own room-bucket logic assigns to Operator, not Laboratory. The work is legitimate; the room claim on the commit is wrong by the project's own filling rule.

    • scripts/rooms/recontext.mjs TOPIC array: add [/^scripts\/vna|^data\/vna/, 'cursor-laboratory'] so the un-mapped scripts/vna/* surface stops falling to the neighbour/default fallback.
    • Commit trailer convention: when a VNA-room commit edits scripts/pmu/*, its Relevant-Rooms line must include kitty-operator (Operator) — this commit's trailer (Laboratory, Architect, Performer) omits it.
    • Run scripts/rooms/recontext.mjs --json after the TOPIC edit and confirm scripts/pmu/panel-door.mjs, tolerance-panel.mjs, triptych-build.mjs still resolve to kitty-operator (expected, unchanged) and scripts/vna/ncd-walk-arm.mjs now resolves to cursor-laboratory (new).
    • Audit the room's other 224 out-of-lane events in the last 14 days for the same signature (scripts/pmu/* or scripts/vna/* edits tagged Laboratory) to size how much of the chronic rate this one TOPIC-rule gap explains.
    • File/confirm ask-010 (tests/rooms/relevant-rooms-covers-diff.test.mjs) as the guard that would have caught the Relevant-Rooms omission on this exact commit.

    What we learned: recontext.mjs's TOPIC fallback table is the de-facto room-ownership authority whenever a room's own .html owned-surface block doesn't cover a path — and it currently has zero rule for scripts/vna/ or data/vna/, the exact directory Laboratory's VNA-walk work (C610-series) lives in. The room isn't mistagging on a whim; it's defaulting into a gap the fallback table never closed, so every VNA commit that also touches scripts/pmu/* splits across two rooms by construction.

    The missing guard (the deliverable): tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010, asked 39×) — it would have failed this commit directly: the diff touches scripts/pmu/* which recontext.mjs buckets to kitty-operator, but Relevant-Rooms lists only Laboratory, Architect, Performer.

    Detector probe: signal attribution — gzip reef 60% · ballistic walk 40%. Right-sized on spread (126 vs 133 walks/lit, a tight ratio), but lensIntent=null shows the intent side never resolved to a named lane at all — the weak link is ingress/seed binding, not walk depth. Concrete adjustment: when the commit message carries a declared port-row (here 'C610k', explicit in the message and in PORT_ROW), seed the intent lens directly from that row's spec entry instead of free-text classification, so a dense technical message doesn't fall through to null. Experiments: Re-run this commit's receipt with intentText swapped to just the 'Story:' trailer line (short, plain prose) vs the full technical body; measure whether lensIntent resolves non-null and whether offPct changes — isolates whether message density alone caused the null lens. · Raise the prewalk seed count k and re-measure prewalkOverlap on this same sha; if overlap rises substantially, the low 4/126 figure is a seed-count artifact rather than a true low-overlap signal. · Bucket the room's last 20 commits by lensIntent null-vs-non-null and compare mean offPct between the two groups, to quantify how much of the 224-events/14-days rate is the null-lens artifact vs genuine cross-room work.

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

    A mistagged-room event with a genuine TOPIC-table coverage gap behind it reads as a repeatable attribution defect rather than a one-off lapse, so it holds this lane's loss-ratio flat rather than improving it until the TOPIC rule and the Relevant-Rooms guard both ship; closing the scripts/vna gap and wiring ask-010 restores premium by making the next VNA+pmu commit self-correctly attributed instead of defaulting into Operator's bucket.

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

    spec(vna): declare C619 — the lens serves the guards the commits exercise

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

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

    Open the signed attestation →
  126. 2026-10-03 · 🧪 laboratory · offPct 20

    feat(vna): C609a — the code-only arm: with tests/, docs/, comments and long strings out of the diff, the brief still predicts the code (z 15.25|21.70, 47 % of the raw median gain) — survives quoting

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

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

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

    test(vna): C612l follow-up — a test brief never stamps a chat pair on the live record; tick C612l

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

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

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

    docs(steergoal): v2 — all together in one Rust-homed steer text: C612a–g, seventeen pending asks folded, ten units

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

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

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

    fix(vna): C629 — the enforcer never evicts an admitted bench

    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 →
  130. 2026-10-03 · 📐 architect · offPct 44 · structural

    spec(vna): tick C616 — the money shot reads today's receipts (d0be1a4a2a, 5/5)

    Why it left the lane: The diff is one character — `- [ ]` to `- [x]` on the C616 row of SPEC-VNA-COCKPIT.md — but the walk re-measures the ENTIRE unchanged row, not the diff hunk. That row's body is dense with reality-lane artifact names: `data/vna/infographic-requirements.json`, `scripts/vna/infographic-ledger.mjs`, `money-shot.mjs`, `data/vna/path-prediction.json`, `data/vna/repo-as-spec-gain.json`, `IR-B6`, `C612a/c/g/d`. Those tokens are what the lexicon maps to engineering/lab coordinates, dragging reality to A1,B1 even though the only byte that changed was a checkbox glyph claimed under lensIntent C,C.

    The semantic pull: Literal strings pulling placement: `scripts/vna/infographic-ledger.mjs`, `money-shot.mjs (SVG + PNG)`, `data/vna/path-prediction.json`, `data/vna/repo-as-spec-gain.json`, `C612a`, `C612c`, `C612g`, `C612d` — all engineering-artifact nouns sitting in a line the architect's trailer claims as C,C strategy work, measured instead at A1,B1.

    Intent–reality gap: The commit message claims a narrow, finished act — 'tick C616', 'verify re-ran the guard', '7/21 held unchanged' — but docsOnly=true was already known to the receipt and the pipeline still ran a full lattice placement over the untouched paragraph's engineering vocabulary, reporting a 44% off-lane drift for what is, byte-for-byte, a checkbox flip.

    • Ship tests/pmu-simulator/docs-only-commit-skips-lattice.test.mjs (ask-005, already asked 19×) — exempt checkbox-only docsOnly diffs from lattice offPct scoring.
    • Ship tests/pmu-simulator/originating-terminal-matches-surface.test.mjs (ask-027, already asked 35×) — fail when the diff's path (docs/specs/vna/SPEC-VNA-COCKPIT.md) isn't in the trailer room's listed owned surface.
    • Declare docs/specs/vna/** ownership (laboratory, per this commit's own Relevant-Rooms trailer) in whatever config tests/ops/room-surface-coverage.test.js (ask-001) reads.
    • Add the tick-only-commit room-naming rule to CLAUDE.md's COMMIT MESSAGE STRUCTURE section (quoted in spec_rewrite).
    • Run the dictionary ablation on the compression_dictionary_adds strings below against the last 14 days of commit history.

    What we learned: docsOnly=true is already computed and present on the receipt row, but nothing downstream consults it to gate the lattice walk — the detector carries the exact signal that would have silenced this false alarm and discards it. This is distinct from the prior architect lessons (originating-terminal legitimacy, which this event also shows, but that fix is already an open ask); the new fact is that the docsOnly flag is dead telemetry, not an unbuilt concept.

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

    Detector probe: signal attribution — gzip reef 75% · ballistic walk 25%. Saturated, not under- or over-shallow — the walk is doing exactly what it's told on both sides. The lever is upstream: seed the reef from the diff hunk's changed bytes (the checkbox glyph) rather than the full unchanged line, for any docsOnly commit. Experiments: Re-seed the reef from only the `-`/`+` diff hunk characters (not the full line) for docsOnly commits; measure offPct on a fixture set of 10 checkbox-only commits before/after — expect near-0 after. · A/B prewalkOverlap for docsOnly vs non-docsOnly commits over the last 14 days; if docsOnly consistently shows overlap <10 against non-docsOnly's >30, that confirms the seed miscalibration class and justifies the lattice-skip guard. · When Originating-Terminal doesn't own the touched path, re-seed the reef prior from the file's historical dominant committer room instead of the trailer's claimed room, and re-measure offPct on this exact commit as the regression fixture.

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

    A docsOnly checkbox flip scoring 44% off-lane is a false claim against this lane's loss ratio — it inflates architect's 99-event-in-14-days count with zero real drift; restoring the premium requires the docs-only lattice skip (ask-005) to retire this entire false-positive class before the next underwriting read.

    Open the signed attestation →
  131. 2026-10-03 · 🧭 navigator · offPct 27

    perf(vna): C612b — the door and the slot in the crate: pmu-onchip --door-serve runs the sense loop, the ten walks, the code-slot read and the per-HEAD anchor NCD

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

    Open the signed attestation →
  132. 2026-10-03 · 🧪 laboratory · offPct 38

    feat(blog): C611f — every media file transcribed: 226 distinct transcripts, 0 untranscribed; the catalogue covers all of them

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

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

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

    spec(vna): tick C628 (ef9a94e2cc, 2/2) — the race was in C110a.2's live-file check, not the tick check

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

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

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

    docs(spec): declare C611l (the pastes and infographics catalogued) and C611m (the four shear probes run on our own instrument)

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

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

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

    fix(vna): C627 — three red guards green at the root: regions guard reads the construct, the packaging doc names the audio commands, the skill guard holds C334a's driver seam

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

    spec(vna): tick C624 (fc2fac3222, 4/4) — the steer door keeps a paragraph whole and extends an open goal

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

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

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

    feat(vna): C611m — the four shear probes run on our own instrument

    Why it left the lane: The diff's own vocabulary is governance language, not harness language: "the four verdict rules DECIDE pass/fail", "requires UNMEASURED with the count, never a number", "never a pass" (shear-probes.mjs header, and PORT_ROW/SUFFICIENT_FOR/NOT_SUFFICIENT_FOR exports). Those strings describe code that sets the criteria the whole measurement system judges by, which is Strategy/Goal vocabulary even though the commit frames itself as a tactical 'harness around readings that already exist' (B,C1). That pull dragged the lit cells toward C,A2 while the claimed lane stayed B,C1 — laneHamming=32 is the distance between 'build a gauge' language and 'write the rulebook the gauge is judged by' language.

    The semantic pull: 'the four verdict rules (below-bar ⇒ UNMEASURED, tamper ⇒ break at the tampered seq, …) DECIDE pass/fail' and 'the test we ask a vendor to pass, turned on our own instrument' are policy-defining phrases copied almost verbatim from governance/ratchet vocabulary (C610-series). prewalkOverlap=4 against litIntent=137/litReality=129 shows the reef seed barely recognized the file before the walk ran, so the walk had to find its own neighborhood — and it found A2 (Strategy.Goal), not C1.

    Intent–reality gap: The commit claims this is LLM-free plumbing that 're-implements none of' the existing readings — a tactical harness (B,C1, Architect/Laboratory/Operator owned-surface). The receipt measured the opposite: 24% of the lit mass sits in C,A2, because the file's actual job (four verdict rules that decide pass/fail for the whole instrument) is a strategy-defining artifact, and no room's owned-surface glob declares scripts/vna/** or tests/vna/** at all — so the Relevant-Rooms trailer cannot truthfully cover the diff no matter which three rooms are named.

    • Add `scripts/vna/**` and `tests/vna/**` to Architect's owned-surface glob (room-ownership config) — currently claimed by no room.
    • Ship tests/pmu-simulator/shared-state-files-have-room-owner.test.mjs (ask-003, asked 3×) against this exact gap before it recurs across the other ~15 C6xx vna modules.
    • Ship tests/rooms/relevant-rooms-covers-diff.test.mjs (ask-010, asked 39× — the most-asked unresolved ticket) so a commit's Relevant-Rooms trailer is checked against the diff's actual owned-surface coverage, not just plausibility.
    • Add a one-line convention to docs/architecture/claude-rules/the-ratchet-invariants.md: a module whose exported function 'decides pass/fail' (a verdict rule) is canonically A2-lane, independent of which room wrote it.
    • Audit the other scripts/vna/*.mjs files already shipped (forecast-scored-on-past-commits.mjs, preference-read.mjs, flight-tape.mjs, steer-ab-rules.mjs) for the same unowned-surface gap before the next one lands.

    What we learned: The three prior facts-only interventions in this room moved offPct inconsistently (13, 18, 58) because they treated the room's drift as one undifferentiated pool. This event shows a distinct sub-class inside that pool: files whose JOB is to define pass/fail criteria (verdict-rule code) are structurally ungovernable by the room-ownership glob system as it stands — no room's surface list can honestly claim them, so EVERY commit touching scripts/vna/**'s verdict layer will read as off-lane until the glob itself, not the commit message, is fixed.

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

    Detector probe: signal attribution — gzip reef 25% · ballistic walk 75%. Right-sized in depth (litIntent≈litReality, ~130 each, so the walk isn't saturating or truncating — walkTruncated=false), but mis-seeded: with prewalkOverlap this low the walk is effectively starting cold and finding whichever lane has the denser vocabulary match, which here is A2. Adjustment: raise the reef seed's pre-walk overlap floor for C6xx files specifically (seed from the verdict-rule/governance corpus, not just the room's owned-surface corpus) so the walk starts closer to the true lane instead of discovering it 130 cells in. Experiments: Seed the gzip reef dictionary with 'decide pass/fail', 'verdict rule', 'requires UNMEASURED' and rerun prewalkOverlap on the last 20 scripts/vna/*.mjs commits; measure whether the near-zero baseline (4) rises. · Re-run this commit's walk twice — once seeded only from Architect's C6xx corpus, once from Laboratory's existing owned-surface corpus — and measure which seed drops laneHamming below 32, to decide which room's corpus the glob fix should actually favor. · Backtest the proposed scripts/vna/**+tests/vna/** glob ownership change against the room's last 224 out-of-lane events and measure what fraction were VNA-surface files (a structural fix) vs files needing an actual content change.

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

    An unowned shared surface producing a 24%-off receipt on a room already running 224 out-of-lane events in 14 days reads as uninsurable noise rather than a priced risk; restoring the premium requires the owned-surface glob fix plus ask-003/ask-010 landing, so the next verdict-rule commit prices against a real lane instead of three rooms each disclaiming it.

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

    docs(vna): C612 impasses v2 — the teardown read against the record: five taken, one already true, one not taken

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

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

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

    feat(vna): C612l — the chat door leaves C609a pairs: steer.mjs brief writes <n>-<Cn>.snowball.txt + a door:chat dispatch row; backfill fenced; receipt splits WITH/WITHOUT backfill

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

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

    Open the signed attestation →
  140. 2026-10-03 · 🧪 laboratory · offPct 43

    feat(vna): C612i — the reading returns to the actor mid-round: a PostToolUse hook places each write against the note and returns additionalContext only when the outside set or its bound rules change

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

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

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

    feat(vna): C614a — the seven cold-read checks (S24–S30) in the street cook, computed on the construct

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

    spec(vna): tick C606a, C606b, C606c — each verified by steer.mjs verify

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

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

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

    spec(vna): tick C614a — the seven cold-read checks in the street cook (7c58bcf839, 6/6)

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

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

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

    docs(vna): C612 impasses v5 + gains report — the conscience leaves the null in one half; C612h's honest miss; two levers running

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

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

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

    spec(vna): tick C614 — the cold-read learnings in the cook, all three sub-rows done

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

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

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

    spec(vna): C606a–c — the L1 boundary probe runs in Rust on Vercel

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

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

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

    spec(vna): tick C625 (3dd546bba2) — one daemon per socket, the row pick in the crate, first-seen bind 19–23 ms

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

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

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

    spec(vna): tick C627 (66b871e0c7, 3/3) — three red guards green at the root

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

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

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

    refactor(vna): C611g — compress runs on gzip-NCD alone; the signature pair helpers are held on SimHash, with the reason named

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

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

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

    test(vna): C612 and C614 parent guards — every sub-row ticked; C612 also waits on C612b2. Ticks C614b C614c

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

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

    Open the signed attestation →
gemsedu.com #1 ▼5.7%moonshotscapital.com #2 ▼1.8%leadedgecapital.com #3 ▲0.6%differential.vc #4 ▲11%dometic.com #5 ▼6.2%thecignagroup.com #6 ▲5.8%sigma.se #7 ▼9.2%karlsborg.se #8 ▼4.8%teneo.com #9 ▲0.2%ltu.se #10 ▼4.8%emiratesnbd.com #11 ▲1%apcoworldwide.com #12 ▼0.8%rytmus.se #13 ▲5.1%championacaustin.com #14 ▼1.9%amseliplaw.com #15 ▼8.1%clarionschool.com #16 ▼6.2%svenskakyrkan.se #17 ▼5.8%reed.com #18 ▼12.9%scania.com #19 ▼14.4%anthonypllc.com #20 ▲1.7%sigeducation.com #21 ▼7.6%state.gov #22 ▲3.2%scor.com #23 ▼6.3%easystem.se #24 ▲0.1%brodit.se #25 ▼13.5%ericsson.com #26 ▼6.4%khda.gov.ae #27 ▲3.6%parkcity.org #28 ▲52.4%pernod-ricard-china.com #29 ▼16%innoventureseducation.com #30 ▼4%dubaiholding.com #31 ▼0.8%wsp.com #32 ▼6.2%addition.com #33 ▲7.2%bdtmsd.com #34 ▲1.9%expediagroup.com #35 ▼8.7%crslimited.com #36 ▲16.1%baylor.edu #37 ▼4.5%americancenteruae.com #38 ▼5.2%lfg.com #39 ▼5.1%atriumhealth.org #40 ▼4.6%eosvc.com #41 ▲2.3%upandrunningdubai.com #42 ▼2.1%its.jnj.com #43 ▼2.5%cablevision.com #44 ▼2.3%mit.edu #45 ▲0.6%rackspace.com #46 ▼14.6%winningtemp.se #47 ▲1.2%siemens.com #48 ▼4%sunstarstrategic.com #49 ▼16%gunnebo.com #50 ▼8.8%newyorklife.com #51 ▼1.8%volvo.com #52 ▼6.8%oryxworld.com #53 ▼20.9%statefarm.com #54 ▼1.4%jcdecaux.ae #55 ▲10.5%neweratech.com #56 ▼8.9%munichre.com #57 ▼2.7%sc.com #58 ▲6.4%inspiralia.com #59 ▼4.1%linkedin.com #60 ▼5.6%insureai.co #61 ▼20.9%louisville.edu #62 ▲22.1%marsh.com #63 ▼2%bakerbotts.com #64 ▲78.9%ecoclean-group.net #65 ▲153.8%bermanauditadvisorycpa.com #66 ▲8.5%aresmgmt.com #67 ▲16.6%se.abb.com #68 ▼11.2%jkj.com #69 ▲12.3%nsigroup.org #70 ▼1.9%tyrolit.com #71 ▲299.9%jcdecaux.com #72 ▼9.5%fox.com #73 ▲19.2%emerson.com #74 ▲13.6%luxcapital.com #75 ▼6%conning.com #76 ▼8.1%artvillagenursery.com #77 ▼20.9%pacemetals.com #78 ▲12.3%bancamediolanum.it #79 ▲106.1%schmuhlbrothers.com #80 ▲82.4%peraco.com.au #81 ▲199.2%students.rcsj.edu #82 ▲61.6%scnsoft.com #83 ▲64.6%jsx.com #84 ▲209.9%bartec.com #85 ▲141.2%lbl.gov #86 ▼20.9%muskegoncc.edu #87 ▲149.1%rakbank.ae #88 ▼2.3%mindshareworld.com #89 ▲185.9%aig.com #90 ▼5.5%camarda.com #91 ▲25.7%xprize.org #92 ▼5.4%stoughtontrailers.com #93 ▲400%tetrapak.com #94 ▼1.9%dubailand.gov.ae #95 ▲42.7%hsph.harvard.edu #96 ▼20.9%krausanderson.com #97 ▲171.8%nyu.edu #98 ▼11%trenchlaw.com #99 ▼20.9%mckoolsmith.com #100 ▼20.9%gemsedu.com #1 ▼5.7%moonshotscapital.com #2 ▼1.8%leadedgecapital.com #3 ▲0.6%differential.vc #4 ▲11%dometic.com #5 ▼6.2%thecignagroup.com #6 ▲5.8%sigma.se #7 ▼9.2%karlsborg.se #8 ▼4.8%teneo.com #9 ▲0.2%ltu.se #10 ▼4.8%emiratesnbd.com #11 ▲1%apcoworldwide.com #12 ▼0.8%rytmus.se #13 ▲5.1%championacaustin.com #14 ▼1.9%amseliplaw.com #15 ▼8.1%clarionschool.com #16 ▼6.2%svenskakyrkan.se #17 ▼5.8%reed.com #18 ▼12.9%scania.com #19 ▼14.4%anthonypllc.com #20 ▲1.7%sigeducation.com #21 ▼7.6%state.gov #22 ▲3.2%scor.com #23 ▼6.3%easystem.se #24 ▲0.1%brodit.se #25 ▼13.5%ericsson.com #26 ▼6.4%khda.gov.ae #27 ▲3.6%parkcity.org #28 ▲52.4%pernod-ricard-china.com #29 ▼16%innoventureseducation.com #30 ▼4%dubaiholding.com #31 ▼0.8%wsp.com #32 ▼6.2%addition.com #33 ▲7.2%bdtmsd.com #34 ▲1.9%expediagroup.com #35 ▼8.7%crslimited.com #36 ▲16.1%baylor.edu #37 ▼4.5%americancenteruae.com #38 ▼5.2%lfg.com #39 ▼5.1%atriumhealth.org #40 ▼4.6%eosvc.com #41 ▲2.3%upandrunningdubai.com #42 ▼2.1%its.jnj.com #43 ▼2.5%cablevision.com #44 ▼2.3%mit.edu #45 ▲0.6%rackspace.com #46 ▼14.6%winningtemp.se #47 ▲1.2%siemens.com #48 ▼4%sunstarstrategic.com #49 ▼16%gunnebo.com #50 ▼8.8%newyorklife.com #51 ▼1.8%volvo.com #52 ▼6.8%oryxworld.com #53 ▼20.9%statefarm.com #54 ▼1.4%jcdecaux.ae #55 ▲10.5%neweratech.com #56 ▼8.9%munichre.com #57 ▼2.7%sc.com #58 ▲6.4%inspiralia.com #59 ▼4.1%linkedin.com #60 ▼5.6%insureai.co #61 ▼20.9%louisville.edu #62 ▲22.1%marsh.com #63 ▼2%bakerbotts.com #64 ▲78.9%ecoclean-group.net #65 ▲153.8%bermanauditadvisorycpa.com #66 ▲8.5%aresmgmt.com #67 ▲16.6%se.abb.com #68 ▼11.2%jkj.com #69 ▲12.3%nsigroup.org #70 ▼1.9%tyrolit.com #71 ▲299.9%jcdecaux.com #72 ▼9.5%fox.com #73 ▲19.2%emerson.com #74 ▲13.6%luxcapital.com #75 ▼6%conning.com #76 ▼8.1%artvillagenursery.com #77 ▼20.9%pacemetals.com #78 ▲12.3%bancamediolanum.it #79 ▲106.1%schmuhlbrothers.com #80 ▲82.4%peraco.com.au #81 ▲199.2%students.rcsj.edu #82 ▲61.6%scnsoft.com #83 ▲64.6%jsx.com #84 ▲209.9%bartec.com #85 ▲141.2%lbl.gov #86 ▼20.9%muskegoncc.edu #87 ▲149.1%rakbank.ae #88 ▼2.3%mindshareworld.com #89 ▲185.9%aig.com #90 ▼5.5%camarda.com #91 ▲25.7%xprize.org #92 ▼5.4%stoughtontrailers.com #93 ▲400%tetrapak.com #94 ▼1.9%dubailand.gov.ae #95 ▲42.7%hsph.harvard.edu #96 ▼20.9%krausanderson.com #97 ▲171.8%nyu.edu #98 ▼11%trenchlaw.com #99 ▼20.9%mckoolsmith.com #100 ▼20.9%