⬡ delegation direction · from somewhere → pointing somewhere
📐 VS Code — QC → → 🔨 iTerm2
work done in VS Code · QC written to iTerm2's to-do (shape-max-match)
the commit message (the ask the narratives below are about)
feat(attest): the evasion/convergence HYPOTHESIS suite — CLI + HTML button, self-improving guard · v2.35.0

The instrument's own self-improvement loop, written as falsifiable hypotheses
('I expect X → Y'), deterministic (gzip-NCD, no LLM), runnable TWO ways:
  • CLI: npx thetacog-mcp hypotheses [--json] (scripts/pmu/attest-hypotheses.mjs)
  • HTML: the 🧪 Run evasion tests button in the instrument — same suite, browser gzip
Both emit full input+output JSON. Hypotheses:
  - convergence: Reality == Intent → IN_LANE (dI≈0)
  - noise: excluded-domain noise into Reality → MORE drift (more red)
  - sledgehammer: the surgical shift → OFF_DOMAIN
  - negative: Reality in the Negative's vocabulary → FAIL MODE B
  - reef-sanity: all 144 cells non-empty — DIRECTLY catches the 'fed the reef wrong
    data → undefined → empty panel' root cause the operator named
Guard: tests/pmu-simulator/attest-hypotheses.test.mjs (3 tests) — a regression to
the empty-panel/one-sided class turns the build red. 34/34 across the attest guards.

ALWAYS-EXPAND-COORDINATES standing rule (CLAUDE.md): every coordinate is written
with its full ShortLex name — C,C1 (Operations ⊕ Operations.Grid) — never a bare
rank; a coord is a time-themed 2D index (actor ⊕ patient), and the reef is redefined
per domain (Strategy in the OR ≠ Strategy elsewhere). fullLabel()/bFullLabel() +
guard assertion.

(Held: the email path — CLI + HTML only for now, per operator.)

Originating-Terminal: 📐 architect (VS Code)
Relevant-Rooms: 🔨 builder, 📐 architect, 🧪 laboratory
Story: 'it needs to be tested, feed back into itself as a self-improvement loop — when it goes wrong it's because the reef was fed wrong data.' So the hypotheses are the guard, runnable from CLI and an HTML button, with reef-sanity pinning the empty-panel root cause and every coordinate spelled out in full.

Receipt-Verified: σ=2.54 · cell=A · witness-agreement=GZIP_ONLY · lens=gzip · receipt=fd96ffd1

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EssMgKix9aZmZ5dxGPqYCW

◎ COMPETENCE SHAPE — the leaf walk, encircled
the shape the off-lane % describes — each cluster ringed in its own colour, numbered, located on the 144-anchor lattice
each region is where the leaf walk — the recursive definer-of-definer walk on the chip — lit reality outside the declared intent lane. Named, ranged and read below deterministically, with zero model in the loop — recompute the identical bytes yourself: npx thetacog-mcp attest-demo
1bleed · ShortLex A2,A ▸ B2,A3 B1.Tactics.Speed × A1.Strategy.Law → ~comms-email · email comms newsletter telegram · 10 amber blocks
ask: "convergence: Reality == Intent → IN_LANE (dI≈0)" · landed off that lane · bleed
2in-lane · ShortLex A,A ▸ B,B1 B.Tactics × A1.Strategy.Law → blog-content · blog post mdx breadcrumb · 9 green blocks
ask: "feat(attest): the evasion/convergence HYPOTHESIS suite" · held the declared lane
3drift · ShortLex B3,B3 ▸ C2,C2 C1.Operations.Grid × C1.Operations.Grid → ~comms-email · email comms newsletter telegram · 9 red blocks
ask: "CLI: npx thetacog-mcp hypotheses [--json] (scripts/pmu/attest-hypotheses.mjs)" · landed off that lane · drift
4bleed · ShortLex B,B ▸ B,C3 B.Tactics × B1.Tactics.Speed → delegation-mesh · delegate room bifurcate mesh · 8 amber blocks
fired from the code, not the ask · lane not declared · bleed
5bleed · ShortLex A2,C1 ▸ B2,C3 B1.Tactics.Speed × C2.Operations.Loop → ~infra-hooks · hook pre-commit post-commit launchd · 8 amber blocks
fired from the code, not the ask · lane not declared · bleed
6bleed · ShortLex B,B3 ▸ A1,C3 C.Operations × C2.Operations.Loop → deployment · deploy vercel build push · 7 amber blocks
fired from the code, not the ask · lane not declared · bleed
7drift · ShortLex C1,A ▸ C3,C C2.Operations.Loop × B.Tactics → ~comms-email · email comms newsletter telegram · 7 red blocks
fired from the code, not the ask · lane not declared · drift
8bleed · ShortLex B,B ▸ C1,B A3.Strategy.Fund × B.Tactics → ~comms-email · email comms newsletter telegram · 6 amber blocks
fired from the code, not the ask · lane not declared · bleed
9in-lane · ShortLex A1,A1 ▸ A2,B1 A2.Strategy.Goal × A3.Strategy.Fund → ~comms-email · email comms newsletter telegram · 6 green blocks
held the declared lane · not singled out by the ask
10bleed · ShortLex B2,A1 ▸ C1,A3 B3.Tactics.Signal × A2.Strategy.Goal → ~comms-email · email comms newsletter telegram · 6 amber blocks
fired from the code, not the ask · lane not declared · bleed
11drift · ShortLex C2,A1 ▸ C3,A3 C3.Operations.Flow × A2.Strategy.Goal → ~comms-email · email comms newsletter telegram · 6 red blocks
fired from the code, not the ask · lane not declared · drift
12bleed · ShortLex B,A2 ▸ C1,A2 A3.Strategy.Fund × A2.Strategy.Goal → ~comms-email · email comms newsletter telegram · 5 amber blocks
fired from the code, not the ask · lane not declared · bleed
13in-lane · ShortLex A1,A ▸ A2,C A2.Strategy.Goal × B.Tactics → ~comms-email · email comms newsletter telegram · 5 green blocks
held the declared lane · not singled out by the ask
14drift · ShortLex C2,B1 ▸ C3,B3 C3.Operations.Flow × B2.Tactics.Deal → ~comms-email · email comms newsletter telegram · 5 red blocks
fired from the code, not the ask · lane not declared · drift
15in-lane · ShortLex A1,B3 ▸ A2,C1 A2.Strategy.Goal × C1.Operations.Grid → ~testing-gate · test jest guard gate · 4 green blocks
held the declared lane · not singled out by the ask
16bleed · ShortLex B,A ▸ C,C C.Operations × B.Tactics → ~patent-ip · patent uspto inventor provisional · 4 amber blocks
ask: "C,C1 (Operations ⊕ Operations.Grid)" · landed off that lane · bleed
17bleed · ShortLex A1,B1 ▸ A3,B3 A2.Strategy.Goal × B2.Tactics.Deal → ~infra-hooks · hook pre-commit post-commit launchd · 4 amber blocks
fired from the code, not the ask · lane not declared · bleed
18drift · ShortLex C1,C2 ▸ C3,C3 C2.Operations.Loop × C3.Operations.Flow → ~comms-email · email comms newsletter telegram · 4 red blocks
fired from the code, not the ask · lane not declared · drift
19in-lane · ShortLex B1,A2 ▸ B1,B1 B1.Tactics.Speed × A3.Strategy.Fund → ~comms-email · email comms newsletter telegram · 3 green blocks
held the declared lane · not singled out by the ask
20in-lane · ShortLex B1,B3 ▸ B1,C2 B1.Tactics.Speed × C1.Operations.Grid → ~infra-hooks · hook pre-commit post-commit launchd · 3 green blocks
held the declared lane · not singled out by the ask
21bleed · ShortLex B,A2 ▸ C,B1 C.Operations × A3.Strategy.Fund → scheduled-jobs · cron launchd schedule scheduled · 3 amber blocks
fired from the code, not the ask · lane not declared · bleed
22bleed · ShortLex B2,B2 ▸ C1,B3 B3.Tactics.Signal × B3.Tactics.Signal → ~comms-email · email comms newsletter telegram · 3 amber blocks
ask: "sledgehammer: the surgical shift → OFF_DOMAIN" · landed off that lane · bleed
23bleed · ShortLex B3,A ▸ C1,B C1.Operations.Grid × B.Tactics → ~comms-email · email comms newsletter telegram · 3 amber blocks
fired from the code, not the ask · lane not declared · bleed
24drift · ShortLex C,C3 ▸ A2,C3 A1.Strategy.Law × C3.Operations.Flow → ~deployment · deploy vercel build push · 3 red blocks
fired from the code, not the ask · lane not declared · drift
25in-lane · ShortLex A,C2 ▸ A,C3 A.Strategy × C3.Operations.Flow → voice-glossary · glossary mis-transcription refine-prompt refiner · 2 green blocks
held the declared lane · not singled out by the ask
26in-lane · ShortLex A,B3 A.Strategy × B3.Tactics.Signal → tesseract · tesseract axis latent focused · 1 green block
held the declared lane · not singled out by the ask
27in-lane · ShortLex B1,A B1.Tactics.Speed × A.Strategy → ~comms-email · email comms newsletter telegram · 1 green block
held the declared lane · not singled out by the ask
28in-lane · ShortLex B3,A B3.Tactics.Signal × A.Strategy → ~comms-email · email comms newsletter telegram · 1 green block
held the declared lane · not singled out by the ask
29in-lane · ShortLex B3,A2 B3.Tactics.Signal × A2.Strategy.Goal → ~comms-email · email comms newsletter telegram · 1 green block
held the declared lane · not singled out by the ask
30in-lane · ShortLex B3,B1 B3.Tactics.Signal × B1.Tactics.Speed → ~comms-email · email comms newsletter telegram · 1 green block
held the declared lane · not singled out by the ask
31drift · ShortLex B3,C B3.Tactics.Signal × C.Operations → ~comms-email · email comms newsletter telegram · 1 red block
fired from the code, not the ask · lane not declared · drift
⎇ attestation · decidable facts — recompute-it-yourself, no trust in the sender
LANE: OUT
deterministic — σ / tolerance vs the 25% off-lane threshold + lattice placement; NOT a probability, NOT a risk-price
✅ DECIDABLE: WHERE this work landed is provable & re-runnable — recompute this LANE verdict yourself. WHETHER it is bug-free is UNDECIDABLE (Rice) — we do NOT claim that.
placement: A2,B1B3,A1 · Strategy·Goal × Tactics·Speed
σ (placement measurement): -0.21 shape-match σ
sensor: metal CXMF9VMM29 · attest MFkwEwYHKoZIzj0CAQYIKoZIzj0D… (ecdsa-p256-sha256)
ed25519 signature: valid 324b63929b1d… · signer fc0fb4d5709e…
gridHash: 8a4b87022885 (reef the σ was measured against)
binary: b409b4c1dedd815b… daemon sha256 · 690.61ns/walk
⬛ TOLERANCE — the highest-signal read
332 green · 444 amber · 700 red · off-lane 47% vs 25% — ⚠ TOO MANY out-of-lane — drifting
proof of insurability · priced from the geometry, not the code
VERDICT: UNDETERMINED
NATURE: Lens calibration required · was Bottom-Up · Horizontal line — one actor (Ops.Flow) across many patients · Systemic blast radius
VECTOR: Ops.Flow redefining Strategy.Goal (C3 → A2)
ABSTRACTION RUPTURE: Severe — macro Operations→Strategy, prefix 2→2, line spans 12 lanes
RATIONALE: SUSPECT read (σ -0.21 — not evidence) under a systemic line = LENS BLINDNESS, not drift. Verdict ABSTAINS; the implicated lane (Ops.Flow) is routed to reef calibration. Re-measure after the lens is tuned.
rolling resilience · last 24 days (this commit in context)
VELOCITY: 1873 commits (~78/day)
CORRECTION TAX: 14% (253 folded back to fix) — the org-level resilience read
REEF σ̄: 3.12 ▼ · ρ 0.7671 · STABLE (not inflating its own grip — anti-Goodhart)
what you're looking at: the whole map is your competence lattice — both edges are the same 144 ShortLex anchors (what you do × what you act on). Each lit cell is one place this commit said something (its message + docs) and did something (its code). Colour = whether saying and doing landed in the same lane.
green — in lane: you worked where you declared. This is the competence; more green is better.
amber — bleed: code touched a neighbour you didn't mention. A little is normal — nobody declares everything.
red — drift: code fired in an orthogonal lane (the surgeon doing plumbing) and enough of it to flip the aggregate. Red ≈ 0 is what good looks like.
the pink ring is this commit's coordinate — where its work actually concentrated on the lattice.
so, this commit: 332 green, 444 amber, 700 red → off-lane 47% against a 25% tolerance — ⚠ TOO MANY out-of-lane — drifting.
⛓ produced on attested silicon · sealed receipt — verify without trusting the sender
silicon CXMF9VMM29 · attest MFkwEwYHKoZIzj0CAQYIKoZIzj0D… (ecdsa-p256-sha256)
ran in architect · VS Code 3.9.16 · room-id e643c506059e…
daemon sha256 b409b4c1dedd815b… · gate 0.9975ns/cmp
sealed receipt run-2026-07-15T11-44-25-705Z-b4be3f64 · payload b5b48cc712205873… · band noise
on-chip 690.61ns/walk · pipeline 984ms · lens 144 seeds/678ms · seed-lib 8a4b87022885
BEARER POLICY sha256 ae4715172d7a21d6… · ed25519 sig 324b63929b1d… · signer fc0fb4d5709e… — binds input+lens+verdict + instrument health; attached as policy-b1bc32057.json (verify: node scripts/pmu/verify-policy.mjs)
⬡ three-node attestation · spec + work + a trustless 3rd party
① SPEC NODE serves the spec + the 144-semantics lattice — intent a5fe4b783dc0… · lattice 8a4b87022885
② WORK NODE produced the work — reality 3fa520ffcd2f…
③ ATTESTOR (3rd party) reads the A↔B drift, trustlessly via the sealed receipt above:
TOLERANCE: OUTSIDE (47% off-lane vs 25%)
BARTER FLAG: INSURE — outside tolerance but gripped — price the insurance / renegotiate the spec before settling
PMU · on-commit dogfood · the chip's own anatomy
View this commit: ◎ the full commit page on thetadriven.com (same output as this email) · ⌥ the actual commit on GitHub
the verdict · commit b1bc32057
1 · did this commit drift?
YES — out of lane (47% orthogonal vs the 25% tolerance)
alarm too much reality fired in ORTHOGONAL lanes — the aggregate flip; this is the drift the instrument exists to catch · vs your last 10 commits: p95 of last 10 — unusually high for you lately
2 · can you trust that reading?
σ_spec-delta -0.21 — NOISE
noise no measurable relation between the work and the declared spec · vs your last 10: p70 of last 10 — normal for you lately · why low: usually a thin grip (only 44 reality vs 160 intent claims sensed) or a seed library not yet converged — low σ means "don't lean on the maps", NOT "the commit is bad"
3 · where does this commit live?
A2,B1 Strategy·Goal × Tactics·Speed → B3,A1 Tactics·Signal × Strategy·Law
read it as actor × patient: this commit is mostly Strategy·Goal × Tactics·Speed work acting on Tactics·Signal × Strategy·Law (grip 0.828). this is the commit's COORDINATE — where the work lives — not a judgement; the panels below (◎ marks this cell) are what judge it · drift concentrates in lane C3 · Operations·Flow — read that row on the TOLERANCE panel
next: do not act on the panels — on a docs-only commit this is expected; otherwise fix the ingest and re-run · open the TOLERANCE panel and chase the red rows — undeclared work shipped
what this instrument measures: drift = what this commit SAID (message + docs) vs what it DID (code), sensed and walked on the chip — a deterministic read, not an LLM opinion. in reading order: ① the verdict (above) → ② the maps (the raw sense grids, then the leaf-walk clouds that bridge them, then DELTA/TOLERANCE judging the result) → ③ the numbers, contextualized (every value with band · verdict · percentile · what it leads to) → ④ expert detail, collapsed (attestation · receipts · timings · σ inputs).
commit b1bc32057 — 144×144 lattice triptych (on-chip)
◎ the ingest chose A2,B1 — Strategy·Goal × Tactics·Speed — acting on B3,A1 — Tactics·Signal × Strategy·Law (grip 0.828) · the walk starts at the ACTOR's row · 9 file(s)
ingest 775.7ms (corpus→lattice) · definer walk 329ms (row→transpose→row, ballistic XOR per hop) · total 1313ms
ingest here = commit-scoped SENSING only (this commit's message + changed files → lit anchors) — deep seed authoring lives in the reef-self-loop, off the commit path
rows = ACTOR (lens) · cols = PATIENT (object) · diagonal = self-reference; ◎ at actor-row × patient-col — every panel, same orientation. Heat above the diagonal = actors ranking ShortLex-earlier than their patients (the walk follows definers uphill in rank).
The 12 canonical lanes (rows top→bottom, cols left→right): A·Strategy · B·Tactics · C·Operations · A1·Law · A2·Goal · A3·Fund · B1·Speed · B2·Deal · B3·Signal · C1·Grid · C2·Loop · C3·Flow
PAIR LATTICE (the map we normally see)
PRE-WALK SENSE · INTENT grid — the snapshot, no point of view
the no-point-of-view snapshot — what the sensor lit before any walk; the leaf walk below is what bridges the two grids
ABC
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
A1–C3
ABC
A1–C3
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
PRE-WALK SENSE · INTENT grid — the snapshot, no point of view 144×144 (axes = the 144 ShortLex anchors on both sides)
PRE-WALK SENSE · REALITY grid — the snapshot, no point of view
the no-point-of-view snapshot, reality side — same sensor law
ABC
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
A1–C3
ABC
A1–C3
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
PRE-WALK SENSE · REALITY grid — the snapshot, no point of view 144×144 (axes = the 144 ShortLex anchors on both sides)
PRE-WALK Δ · straight comparison of the two ingested grids (green both · cyan intent-only · amber reality-only) · 1% overlap · ◎ = where the competence pixel sits in the raw overlap
good = green overlap without being a copy — near-100% is self-similarity, not alignment
ABC
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
A1–C3
ABC
A1–C3
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
PRE-WALK Δ · straight comparison of the two ingested grids (green both · cyan intent-only · amber reality-only) · 1% overlap · ◎ = where the competence pixel sits in the raw overlap 144×144 (axes = the 144 ShortLex anchors on both sides)
◎ the pixel this commit belongs to
A2,B1 — Strategy·Goal × Tactics·Speed (actor) acting on B3,A1 — Tactics·Signal × Strategy·Law (patient) · grip 0.828
actor seed A2,B1 — Quarterly goal objectives set the target position that dictates the necessary speed and tempo beat. Latency is the price of a missed beat. Every hundred milliseconds of round-trip turns a parallel race into a stalemate, because the first arrival sets the rules the second arrival has to honor. Throughput compounds: doubling the rate doubles the surface area where serendipity can hit. A pipeline at twice the velocity is not twice as productive — it is exponentially more lucky. Time-to-first-byte is the only number the operator feels at the wheel. Optimize the felt latency before the raw throughput; the operator's grip on the loop is what drives the loop forward. Velocity is irreversible. A delivery sent fast cannot be unsent slow; a release deployed cannot be undeployed at the same speed it was deployed. Speed buys position, and position is harder to surrender than to occupy. The target is the cell coordinate the system MUST occupy by end-of-quarter. Anything that does not drive toward that coordinate is exhaust, and exhaust does not become substrate by being labelled progress. Vision is the coordinate the lattice rotates around — the fixed bearing every iteration is measured against. Without the fixed point, motion is movement; with the fixed point, motion is convergence. Define the goal as a verifiable predicate, not a feeling. The system terminates when the predicate evaluates true, and the predicate is what the next agent inherits when this one hands off. A goal that cannot be tested is a wish. Wishes have no termination condition, so they consume budget forever; goals have a finish line and therefore a payable price.
patient seed B3,A1 — Signal reach and message broadcast channels are governed by the binding mandate and governance rule of law. EU AI Act Article 14 requires human-on-the-loop oversight, with the supervisor able to interrupt the system at any moment. Compliance attaches to the artifact the artifact cannot escape — provenance is a regulatory primitive, not a feature. Constraints precede objectives. The cap-table, the license text, the consent envelope — each draws the inviolate line the action must respect, and the line is enforced before the optimization runs. A rule names what the system MAY NOT do. If the agent can do X, then 'forbid X' is not the constraint — it is wishful thinking dressed as policy. Constraints live in the gate, not in the prompt. Signal-to-noise is the inverse cube of bandwidth — narrow the channel, the message arrives; broaden it, recipients tune out. The right channel is the one whose floor matches the message's importance. A broadcast that addresses everyone addresses no one. Precision over reach until the address is calibrated; only then does scale convert prospects into recipients rather than into unsubscribes. Repetition is the cost of being heard. Three sends to one recipient beats one send to three; the first send announces, the second send is heard, the third send is remembered. Every message carries provenance. The sender's history is half the message's weight; an unknown sender pays in attention what a known sender pays in seconds saved.
INTENT · leaf-walk clouds · BLUE→VIOLET by ply (◎ = the competence pixel: actor∩patient)
good = the clouds concentrate where the commit SAYS it works
ABC
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
A1–C3
ABC
A1–C3
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
INTENT · leaf-walk clouds · BLUE→VIOLET by ply (◎ = the competence pixel: actor∩patient) 144×144 (axes = the 144 ShortLex anchors on both sides)
REALITY · leaf-walk clouds · ORANGE→RED by ply (◎ = the same pixel — the shared perspective)
good = the same clouds as intent — shipped where declared
ABC
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
A1–C3
ABC
A1–C3
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
REALITY · leaf-walk clouds · ORANGE→RED by ply (◎ = the same pixel — the shared perspective) 144×144 (axes = the 144 ShortLex anchors on both sides)
DELTA · graded cloud divergence (green agree · magenta declared-not-done · amber done-not-declared) · 1% agree
good = mostly green; magenta = said-not-done (chase it in the code), amber = done-not-said (chase it in the docs)
ABC
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
A1–C3
ABC
A1–C3
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
DELTA · graded cloud divergence (green agree · magenta declared-not-done · amber done-not-declared) · 1% agree 144×144 (axes = the 144 ShortLex anchors on both sides)
TOLERANCE · cloud topology (dim green in-shape · hot amber bleed · red orthogonal concentration) · ⚠ TOO MANY
red only matters above the flip — a few amber is normal bleed
ABC
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
A1–C3
ABC
A1–C3
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
TOLERANCE · cloud topology (dim green in-shape · hot amber bleed · red orthogonal concentration) · ⚠ TOO MANY 144×144 (axes = the 144 ShortLex anchors on both sides)
SHORTLEX-3 PROJECTION (ABC · A1..C3 · the 132 children — candidate, pre-ratchet)
PROJECTED INTENT · the commit’s claims, head→axis_i tail→axis_j (cyan)
the three-length view — good = claims land inside their own zone
ABC
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
A1–C3
ABC
A1–C3
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
PROJECTED INTENT · the commit’s claims, head→axis_i tail→axis_j (cyan) 144×144 (axes = identical 144 ShortLex-3 names both sides)
PROJECTED REALITY · same projection law (amber)
same projection law — good = reality occupies the zones intent does
ABC
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
A1–C3
ABC
A1–C3
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
PROJECTED REALITY · same projection law (amber) 144×144 (axes = identical 144 ShortLex-3 names both sides)
STRAIGHT COMPARISON · green both · cyan intent-only · amber reality-only · 5% overlap
good = the zones agree; cross-zone scatter is the drift to read
ABC
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
A1–C3
ABC
A1–C3
A1A–O
A2A–O
A3A–O
B1A–O
B2A–O
B3A–O
C1A–N
C2A–N
C3A–N
STRAIGHT COMPARISON · green both · cyan intent-only · amber reality-only · 5% overlap 144×144 (axes = identical 144 ShortLex-3 names both sides)
shortlex-3 zone occupancy (lit cells per diagonal square)
INTENT: 2 in the 3×3 ABC corner · 12 in the 9×9 A1..C3 square · 1510 in the 132×132 children square · 326 cross-zone
REALITY: 0 in the 3×3 ABC corner · 4 in the 9×9 A1..C3 square · 1088 in the 132×132 children square · 198 cross-zone
axes: identical 144 ShortLex names both sides (symmetric); weights asymmetric
zone 3 = candidate children, pre-ratchet (repo-derived dumps not yet past the perturbation-probe gate) · intent 160 claims @ θ 0.6406 · reality 44 claims @ θ 0.625 · projection 834ms
SHAPE-MATCH σ = -0.21 — the real intent↔reality definer walk vs random-reality (actual 0.0596 vs random 0.066). >0 = the walk distinguishes real alignment from noise; aggregate over independent walks → the divergent series.
σ_spec-delta · noise · no measurable relation between the work and the declared spec
Most out-of-lane row: C3 · Flow — that lane is drifting most (read the red band in that row).
Three-colour tolerance (out-of-lane = reality fires where intent is weak, in orthogonal blocks): green=in-lane agreement · amber=a few out-of-lane (tolerated) · red=FIRED — orthogonal out-of-lane 47% vs tolerance 25%.
332 green · 444 amber · 700 red · 405 XOR-friction cells.
Both axes = the 144 ShortLex anchors, cell=row⊕col, on the chip. INTENT=docs+rules · REALITY=code · DELTA=friction.
tile dump — what the SimHash matched on the diagonal (inspect the sensor; tap to expand)
A,A The lattice we build today is what next year's underwriter inherits.
intent 77% **Through-holes (H state in grid):** - Type: UPSIDE-DOWN PYRAMIDS (inverted, point down) - Why:
reality 70% This change operates in the payments domain, involving checkout price. This change operates in
B,B Tactics is the choice of which leverage to pull at which beat.
intent 75% ### SQL (Central Supabase: `bvhhlosblntckhwyagvp.supabase.co`) | File | Purpose | |---|---| | `
reality 70% else if(dN<dI){mode='B';verdict='OFF_DOMAIN';}
C,C Operations is the loop that runs whether anyone watches.
intent 84% # Claude Code Configuration
reality 75% (no distinctive match)
A1,A1 EU AI Act Article 14 requires human-on-the-loop oversight, with the supervisor able to interrupt the system at
intent 84% <span class="dim">No throughput figure is quoted that this run did not measure — the speed IS t
reality 78% const json=JSON.stringify({suite:'attest-evasion-hypotheses',all_pass:allPass,results},null,2).
A2,A2 The target is the cell coordinate the system MUST occupy by end-of-quarter.
intent 88% ## Notes / open - v1 = single qwen pass per slice (recognition). Parallel/batch = a later cloud
reality 78% { const empty=D.cells144.filter(c=>!c.snippet||!c.coord); R.push({id:'reef-sanity',hypothesis:'
A3,A3 Every dollar builds either the floor (substrate that lifts future bets) or the ceiling (cap on the next round)
intent 80% ### DELEGATION NEVER GIT-BRANCHES (HARD RULE — enforced by tests, not by prose) **We NEVER auto
reality 73% for (const c of lit) encircled[cls(c)].push(fullLabel(c.coord));
B1,B1 Latency is the price of a missed beat.
intent 77% ### 2. Loader / curator (`scripts/substrate/build.mjs`) - Parses the rulebook + CLAUDE.md + mem
reality 69% else { mode = 'in-lane'; verdict = 'IN_LANE'; }
B2,B2 The deal sets the exchange rate between two value substrates.
intent 86% (no distinctive match)
reality 72% // • NEGATIVE — Reality written in the Negative's vocabulary must flip FAIL MODE B (closer to t
B3,B3 Signal-to-noise is the inverse cube of bandwidth — narrow the channel, the message arrives; broaden it, recipi
intent 75% ### 5. Integration points - The **commit-panel stories** (qwen already monologues there) gain t
reality 73% if (import.meta.url === `file://${process.argv[1]}`) {
C1,C1 Power flows where the grid lets it.
intent 78% const dI=await ncd(fR,fI), dN=await ncd(fR,fN);
reality 73% const dI=await ncd(fR,fI), dN=await ncd(fR,fN);
C2,C2 Each iteration is a hypothesis tested against the ground truth of the world.
intent 80% ### MDX FORBIDDEN CHARACTERS **The following CRASH the MDX parser (500 error on blog posts):**
reality 75% (no distinctive match)
C3,C3 Flow is the rate at which committed work crosses the finish line.
intent 80% - **NEVER** just substantiate claims - show why the reader should care - **EVERY** section shou
reality 73% (no distinctive match)
commit context — 9 file(s)
feat(attest): the evasion/convergence HYPOTHESIS suite — CLI + HTML button, self-improving guard · v2.35.0

The instrument's own self-improvement loop, written as falsifiable hypotheses
('I expect X → Y'), deterministic (gzip-NCD, no LLM), runnable TWO ways:
  • CLI: npx thetacog-mcp hypotheses [--json] (scripts/pmu/attest-hypotheses.mjs)
  • HTML: the 🧪 Run evasion tests button in the instrument — same suite, browser gzip
Both emit full input+output JSON. Hypotheses:
  - convergence: Reality == Intent → IN_LANE (dI≈0)
  - noise: excluded-domain noise into Reality → MORE drift (more red)
  - sledgehammer: the surgical shift → OFF_DOMAIN
  - negative: Reality in the Negative's vocabulary → FAIL MODE B
  - reef-sanity: all 144 cells non-empty — DIRECTLY catches the 'fed the reef wrong
    data → undefined → empty panel' root cause the operator named
Guard: tests/pmu-simulator/attest-hypotheses.test.mjs (3 tests) — a regression to
the empty-panel/one-sided class turns the build red. 34/34 across the attest guards.

ALWAYS-EXPAND-COORDINATES standing rule (CLAUDE.md): every coordinate is written
with its full ShortLex name — C,C1 (Operations ⊕ Operations.Grid) — never a bare
rank; a c

CLAUDE.md
docs/pmu/attest-demo-report.html
docs/pmu/attest-demo-ux.html
packages/thetacog-mcp/package.json
packages/thetacog-mcp/scripts/bundle-pmu.mjs
packages/thetacog-mcp/server.js
scripts/pmu/attest-demo-ux.mjs
scripts/pmu/attest-hypotheses.mjs
tests/pmu-simulator/attest-hypotheses.test.mjs
③ the numbers, contextualized — value · band · verdict · percentile · what it leads to
shape-match σ · -0.21 noise p70 of last 10
no measurable relation between the work and the declared spec → do not act on the panels — on a docs-only commit this is expected; otherwise fix the ingest and re-run
good looks like: positive on an aligned commit (phantom P1: sigmaPositive) · ≥6 clears the trust floor · ≥8.5 verified-reef · 0–3 = panel story not yet evidence
tolerance (edge cells) · 332 green · 444 amber · 700 red · off-lane 47% alarm p95 of last 10
too much reality fired in ORTHOGONAL lanes — the aggregate flip; this is the drift the instrument exists to catch → open the TOLERANCE panel and chase the red rows — undeclared work shipped
good looks like: red ≈ 0 and orthogonal off-lane < 10% on an in-lane commit (phantom P1: redZero, offPctBelow 10) — a few amber is normal bleed
pre-walk overlap · 1% mostly-disjoint p10 of last 10
docs and code light different cells — normal for a code-heavy commit; the WALK is what bridges them → nothing to do — judge alignment by σ and the walk panels, not this raw overlap
good looks like: green overlap WITHOUT being a copy — near-100% is self-similarity (a docs-only read), not alignment
drift (XOR %) · 1.953% of compared cells disagree close p25 of last 10
intent and reality mostly agree cell-for-cell → nothing to chase
the walks (how the heatmaps were made) · intent 122 hops → ply 8 · reality 128 hops → ply 8 · 329ms inside-budget
both cascades ran to extinction inside the time budget — the read is complete · each hop = one real on-chip ballistic process; intent ended at B2,C, reality at C1,B3 — the definers-of-definers the recursion concentrated on → the ply story in the panels is complete
good looks like: both sides finish inside the 2500ms budget; clouds concentrate at block-heads (the ShortLex-ascending follow), early plies heavy, deep plies faint
lattice fill · intent 1207/20736 (5.8%) · reality 1476/20736 (7.1%) walkable
a real, walkable lattice (~4% is the density target) — the walk had ground to cover → nothing to do
the ladder — what's climbing · weakest link first
→ weakest · intersection-specific words/tile (median) · 5 (over 144 tiles) → target 70 parent-echo distance 0.93 · author intersection-specific seeds (what does B,A3 say that NEITHER parent says alone?) — the single highest-leverage number in the system
σ_drift (commit panel, median last 10 non-docs-only) · -1.29 (n=10) → target 6 noise distance 1 · do not act on the panels — on a docs-only commit this is expected; otherwise fix the ingest and re-run
σ_response pass count · 32/144 → target 144 thin distance 0.78 · raise seed richness (the reef GDD loop) — pass count follows intersection-specific words
σ_localize (latest targeted edit) · 0.61 @ B3,B3 → target 6 chance distance 0.9 · iterate the ingest until the target zone owns its own edit — the brain-surgeon read does not yet hold
sweep coverage (deterministic top-rank hits) · 23/46 → target 46 majority distance 0.5 · chase the missing tiles in the sweep — each convert lifts σ_panel directly
seed orthogonality (distinct openings) · 143/144 → target 144 converging distance 0.01 · fix the few shared openings — tile-dump-inspect names them
σ_panel (joint rank certainty) · 10.63 → target 6 beyond-doubt distance 0 · cite the distribution-level claim (carry the independence caveat)
next move (picked by the system, not session memory): intersection-specific words/tile (median) is furthest from target weighted by leverage (5 (over 144 tiles) vs target 70 → distance 0.93 × leverage 1 = 0.93) — author intersection-specific seeds (what does B,A3 say that NEITHER parent says alone?) — the single highest-leverage number in the system
④ expert detail — chain ✅ reef · ✅ on-chip · ✅ hardware · ✅ render — attestation · receipts · timings · σ inputs (tap to expand)
chain✅ reef sensed — 144 seeds → SimHash in 678ms · grid attached (input seed → SimHash sanity check) · ✅ on-chip 690.61ns/walk · 2.293ms · 5234079 walks/sec · 42 / 144 lit (measured on silicon, this commit) · ✅ triptych rendered · pipeline 984ms · render 222ms · 405 XOR-friction nodes
hardware root of trustserial CXMF9VMM29 · UUID 43C33AB6… · attest MFkwEwYHKoZIzj0CAQYIKoZIzj0D… (ecdsa-p256-sha256 · hw-derived fallback, weaker than Secure Enclave)
gate (XOR+popcount)0.9975 ns / driven comparison · walk @ gate rate 287.3 ns
cache witnessL1 3.58 ns · DRAM 172.56 ns · miss ×48.2
daemon binarysha256 b409b4c1dedd815b… (the attested silicon path)
run receiptrun-2026-07-15T11-44-25-705Z-b4be3f64 · payload b5b48cc712205873… · band noise
timingsingest 775.7ms · definer-walk+σ 329ms · render 222ms · pipeline 984ms · ingest = commit-scoped SENSING only (msg + changed files → lattice); deep seed authoring lives in the reef-self-loop, off the commit path
walks (this heatmap)INTENT: 122 hops / 122 chip processes / 122 anchors lit, ended at B2,C (ply 8 — the definers-of-definers) · REALITY: 128 hops / 128 chip processes / 128 anchors lit, ended at C1,B3 (ply 8 — the definers-of-definers) · walks concentrate at block-heads by the ShortLex-ascending follow
per-stageresolve 0ms · invariants 0.6ms · sense 775.7ms · sigma 0.3ms · binarize 0.1ms · project 60.5ms · xor 0.1ms · walk 83ms · claudbridge 42.2ms
walk start A2,B1 (STABLE attractor) · 250 hops · maxPly 8
σ — defined by its inputsσ = (cos(intentCloud, realityCloud) − μ of 12 bit-shuffled-reality impostor walks) / sd · INPUTS: intent 160 claims @ θ 0.734 (msg + 3 docs + 1 tests + ideal-case spec + SPEC intent) · reality 44 claims @ θ 0.719 (4 code) · walk topK 2 decay 0.5 ply≤8 budget 2500ms · seed-lib 8a4b87022885 — σ comparisons are only valid at equal inputs
σ rawheat-cosine 0.0596 vs random 0.066 → σ_spec-delta · noise · no measurable relation between the work and the declared spec
shortlex-3 projection834ms · intent zones 2/12/1510 (+326 cross) · reality zones 0/4/1088 (+198 cross) · zone 3 = candidate children, pre-ratchet
orthogonality (seed 144)144/144 unique · 143/144 openings · pairwise sim 0.367 · junk 0
intent documentsCLAUDE.md · attest-demo-report.html · attest-demo-ux.html · attest-hypotheses.test.mjs

Produced on the chip by the running pipeline (scripts/pmu/pipeline.mjs → runPipeline → walk + xor), commit-scoped · on-chip per-walk 690.61ns (this commit). Recompute: node scripts/pmu/commit-triptych.mjs --commit b1bc32057

Commit artifacts (open on a computer — Gmail mobile won't follow file:// links; the inline images above are the phone-viewable form): reef grid · this triptych · the HDL — all three are also attached to this email.

↓ interpretive · optional — why it drifted (qwen narration) & where its QC is directed. NOT part of the attested proof above.
🪸 delegation receipt · spec — the ASK (spec+reef) and the ANSWERED work, attested together
ASK · reef —… built from the spec · 0 reqs · collisions · mean pairwise NCD · closeness ρ
⚡ 5,234,079 ballistic walks/sec · gate 1.00B comparisons/sec on chip (690.61ns/walk) — a walk is MANY chip processes (one per hop); impossible off-silicon
PMU × NCD interleave: gzip-NCD compresses each claim onto the 144 ShortLex anchors (the decidable where) → its top landings seed the real recursive definer walk, which fans out ballistically row→significant-column→transpose→recurse on chip (the shape) → σ = the fraction of the ANSWERED work's shape inside the ASK's. Compression says where; the walk says how much.
✓ SIGNED — this whole artifact (ASK reef + ANSWERED work) is bound under ed25519 sig 324b63929b1d… · sha256 ae4715172d7a21d6… — a mesh receiver verifies without trusting the sender (node scripts/pmu/verify-policy.mjs)
▸ full delegated spec (docs/specs/qwen-rulecheck-sqlite-substrate.md)
# Spec — Qwen Rule-Checker + Searchable SQLite Rulebook & Decision-Book

**Delegated to:** 🏗️ architect (infra) — database + local-LLM context substrate.
**Status:** spec for pickup. **Why now:** we have tons of documentation; it must become a queryable
substrate the local LLM can actually use, sentence-by-sentence, without blowing context.

## Framing: this is an ADDITION to the pixel (not a replacement)
The SQLite rulebook + decision-book is **one more input the local LLM reads alongside the pixel/
PMU maps and the reefs** — not a separate silo. The competence pixel already places work on the
lattice; this gives qwen the *named rules* and *prior decisions* to read **together with** that
placement, so it can say not just "this drifted" but "this breaks rule X, against decision Y." Two
tracks, both required: **(a)** stand up the SQLite substrate (rules + decisions, searchable), and
**(b)** teach qwen to read the pixel maps better *with that substrate in context*. And both must be
**maintained** — a living rulebook + decision-book that Claude keeps current as new rules are bitten
and new choices are made.

## The core inversion (the whole point)
qwen (local, qwen2.5:7b) is **better at recognizing rule-breaking than at producing rule-clean
prose.** So flip the division of labor:
- **qwen** reads a small artifact (a paragraph, a code hunk, a commit message) **plus the relevant
  rules + recent context**, and emits **which rules it breaks, quoting the rule and the offending
  span.** Recognition, not generation.
- **Claude** takes qwen's named violations and **solves** them. Generation/repair.
This is the optimal token split: qwen does cheap, local, high-recall detection; Claude spends
expensive tokens only on the fix. qwen monologues *everything we write or commit* and says
"breaks rule X, rule Y"; Claude resolves.

## Components

### 1. SQLite store (`data/substrate.sqlite`, local "sequel light")
- **`rules`** — one row per rule. Columns: `id`, `name`, `category` (hard | voice | format | pmu),
  `statement`, `rationale`, `incident` (what created it), `guard` (test/hook that enforces it),
  `priority` (int), `source` (file), `created_at`. Seed from `docs/voice/paradox-voice-rulebook.md`
  + the CLAUDE.md voice/PMU rules + the `feedback_*` memory entries + the anti-rules ledger.
- **`decisions`** — one row per choice we've made. Columns: `id`, `title`, `choice`, `why`,
  `alternatives_rejected`, `scope`, `priority`, `decided_at`, `supersedes`, `source`. Seed from the
  `project_*`/`feedback_*` memory + key commits.
- **FTS5** virtual tables over both so qwen's context can be retrieved by relevance to the passage.
- **Sortable by time AND by priority** (the operator's explicit requirement) — indexes on
  `created_at`/`decided_at` and `priority`.

### 2. Loader / curator (`scripts/substrate/build.mjs`)
- Parses the rulebook + CLAUDE.md + memory + anti-rules → `rules`. Parses memory/commits →
  `decisions`. **Claude-optimized** (curated, deduped, priority-ranked) but **qwen-readable**
  (plain statements). Idempotent; re-run to refresh. Each rule keeps its guard/incident so a
  violation can cite the precedent.

### 3. Context manager (`scripts/substrate/context.mjs`)
Given a passage + a task, assemble qwen's window: the small text slice + the **top-N relevant
rules** (FTS) + the **relevant recent commit messages** + the **relevant prior decisions**, sorted
by time/priority, capped to keep qwen's window small and accurate. This is the bridge between the
SQLite substrate and the reefs (where the reefs are; how the context comes in to get along with
them).

### 4. qwen rule-checker (`scripts/substrate/qwen-rulecheck.mjs`)
- Input: passage + assembled context. Prompt qwen to **read and report each rule it breaks** as
  structured output: `[{ruleId, ruleName, quote (the offending span), why}]`. NOT to rewrite.
- One pass per small slice (qwen handles one at a time reliably; batching/parallel is a follow-up,
  possibly a cloud-model job — out of scope for v1).
- Output feeds Claude, who repairs and re-submits until qwen reports zero violations + the grade is ≥95.

### 5. Integration points
- The **commit-panel stories** (qwen already monologues there) gain the rule-violation read.
- The **book-edit loop** + all outreach prose route through `qwen-rulecheck → Claude-fix`.
- Anything we write or commit can be checked: prose, code, commit messages.

## Acceptance
- `data/substrate.sqlite` has `rules` + `decisions` (FTS5), sortable by time + priority.
- `qwen-rulecheck.mjs <file>` returns the rules a passage breaks, quoting each.
- A passage that violates a known rule is correctly flagged with the rule quoted; a clean passage returns zero.
- Wired into the commit-panel + the writing loop.

## Track B + maintenance (both required)
- **Track B — read the pixel maps better:** with the substrate in context, improve qwen's read of
  the PMU/reef placement so a violation cites both the drift (where it landed) and the rule/decision
  it breaks. The substrate is an input to the pixel read, not a parallel system.
- **Maintenance loop:** rules + decisions are LIVING. When a new rule is bitten (a new signal-loss
  drift) or a new choice is made, Claude appends it (with incident + priority) and re-runs the
  loader. The substrate is only as good as it is current.

## Notes / open
- v1 = single qwen pass per slice (recognition). Parallel/batch = a later cloud-model option.
- The rulebook itself may become a standalone product; this substrate is its machine-usable form.
- Keep qwen STRICTLY off any blocking path (recognition is advisory; Claude/operator decide).
This is the on-chip drift receipt for commit b1bc32057, the same artifact emailed on commit — published so the claim is verifiable on the open web. Recompute it yourself: npx thetacog-mcp attest-demo.