{
 "BLOCKS": [
  {
   "tag": "A",
   "name": "Can binding be induced?",
   "range": "rows 001–010",
   "desc": "Ten attempts to make a text autoencoder represent who-did-what-to-whom — via objectives, data, and architecture. The original program found SONAR does not bind roles; this asks whether anything can force it to."
  },
  {
   "tag": "B",
   "name": "Where does role information live?",
   "range": "rows 011–020",
   "desc": "Localizing — and mostly failing to find — a role code inside the 24-layer encoder and decoder, using certified probes, activation patching, and attention analysis."
  },
  {
   "tag": "C",
   "name": "Fabrication & the limits of auditing",
   "range": "rows 021–030",
   "desc": "When the single-vector bottleneck underdetermines a sentence, the decoder invents. This block measures how often, of what kind, by what mechanism — and whether any cheap monitor can catch it."
  },
  {
   "tag": "D",
   "name": "The geometry of z",
   "range": "rows 031–040",
   "desc": "The directional, radial, and topological structure of the embedding space: linear operators, norm semantics, isotropy, antipodes, and global shape."
  },
  {
   "tag": "E",
   "name": "Dictionaries & the SAE residual",
   "range": "rows 041–050 · COMPLETE",
   "desc": "Sparse dictionaries over z and the encoder stack — completed verdict: the SAE dictionary is a lossy topical index, not a compositional basis for sentence meaning. Atoms are real, language-invariant, topic-bound detectors; most of what a sentence is never enters the dictionary, and neither width, sparsity, supervision, nor revival changes that. The interesting failure is what never gets in."
  },
  {
   "tag": "F",
   "name": "Beyond SONAR",
   "range": "rows 051–060 · COMPLETE",
   "desc": "Ten cells asked whether any pooled representation binds thematic roles; every one answered no — across objective, capacity, 44× scale, instructions, cross-attention, latent reasoning, diffusion, concept-space planning, and modality. The one regime shift is objective-driven: generative MT decoders buy a transferable surface code, ranking buys a lexically-anchored possessor code, binding emerges in neither. And the gap is real: every meaning-attentive judge separates role-swaps from paraphrases by ~4 points while SONAR's similarity is sign-inverted on the same items."
  },
  {
   "tag": "G",
   "name": "Multilingual binding",
   "range": "rows 061–065 · COMPLETE",
   "desc": "Completed verdict: language in SONAR is an interface property — a decoder token plus a tiny removable mean offset — layered on largely language-neutral content geometry. Roles ride surface order everywhere; the one order-invariant case code (Japanese particles) is language-local; capacity is content-bound at ~2 sentences per language; the language vector is causally inert; and the encoder–decoder pair actively monolingualizes mixed input."
  },
  {
   "tag": "H",
   "name": "Capacity",
   "range": "rows 066–072 · COMPLETE",
   "desc": "Completed verdict: SONAR's bottleneck is a fixed ~460-bit budget, confirmed five independent ways. The knee is denominated in bits, not tokens; composition is subadditive; degradation past the knee is graceful and fluent, never silent. Rare high-entropy content dominates cost and degrades first, and the budget resolves into a semantic priority — SONAR keeps who-did-it and when, and sacrifices what-was-acted-on first."
  },
  {
   "tag": "I",
   "name": "Training dynamics",
   "range": "rows 073–077 · COMPLETE",
   "desc": "Completed verdict — a stable-core / fragile-shell law. The structural and relational code crystallizes early and freezes: its content is fixed by early conditions (initialization, data diversity, the first objective) and is robust to later perturbation (data order, a later objective), modulo a free rotation of the absolute basis. What is fragile is reconstruction fidelity — governed by data diversity, recency and forgetting, and the last objective. A formed code sticks; only its fidelity is at the mercy of how training ends."
  },
  {
   "tag": "J",
   "name": "Composition operators",
   "range": "rows 078–081 · COMPLETE",
   "desc": "Completed verdict: SONAR's relations, where they linearize, form a real steerable algebra — closed-class marker swaps compose additively and commutatively across families and can be causally steered with perfect specificity and invertibility. But the boundary is sharp: argument reversal and even the grammatical tense operator hit a wall. And the operator has two separable substrates — the offset direction is nearly free at initialization (a token-embedding fact), while causal usability is learned, decoder-gated, and installs early. The 'linear operator' is really a decoder capability."
  },
  {
   "tag": "K",
   "name": "Safety applications",
   "range": "rows 082–089 · COMPLETE",
   "desc": "Completed verdict: the SONAR interface is defensible against gross attacks but blind to subtle ones, and style-transparent yet identity-opaque. Manifold and norm defenses catch gross anomalies and covert high-bit channels, but cosine misses close perturbations and abstention misses interpolation fabrication. z does not intrinsically leak training membership (only memorization does), and it exposes content and style about as much as the text itself while revealing demographic identity only through topic confound — but canaries survive retrieval and a single shared word can break a role-sensitive RAG query."
  },
  {
   "tag": "L",
   "name": "Instruments & theory",
   "range": "rows 090–100",
   "desc": "Turning the campaign's methods into durable artifacts and explanations: a probe-power kit, canonicalization and norm linters, a stimulus-evolution loop, the prereg-to-Brier engine, a Bayesian ledger, toy theories of the anti-binding and pooling results, a rate-distortion account of the knee, an interactive explorer, and a packaged public benchmark."
  }
 ],
 "rows": [
  {
   "n": "001",
   "b": "A",
   "name": "Role-swap contrastive",
   "v": "null",
   "star": 0,
   "br": 0.218,
   "one": "An InfoNCE objective separated role-swapped pairs on its training vocabulary yet gained nothing on held-out transfer — the objective was satisfied by lexical shortcuts.",
   "method": "Trained a rung-A ladder autoencoder with a contrastive term whose hard negatives were argument-swapped sentences (λ=0.3), 140k pairs, lexical holdout verified against the eval battery.",
   "detail": "The contrastive loss fell from 1.33 to 0.32 — the model learned to rank the correct sentence above its role-swap — but the binding battery's primary cell (novel vocabulary, novel constructions) sat at 0.501, identical to the untrained baseline's 0.501. The organism satisfied a binding-flavoured objective through vocabulary-specific directions rather than an abstract role code. First evidence of what later became the campaign's central binding motif: decodability without abstraction.",
   "lane": "hardened",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Yes, conditionally — 002's dose-response (running) is the direct next probe; if λ=1 aux-QA also fails to transfer, the \"shortcut satisfaction\" story strengthens and 096 (toy theory) should formalize it."
  },
  {
   "n": "002",
   "b": "A",
   "name": "QA-head dose-response",
   "v": "null",
   "star": 0,
   "br": 0.166,
   "one": "A supervised who-is-the-agent head reached 100% held-out accuracy at every dose, while the transfer battery stayed flat at chance.",
   "method": "Three sequential organisms with a linear agent-vs-patient head on z at loss weights λ∈{0.01, 0.1, 1.0}; the head's own accuracy is the manipulation check.",
   "detail": "At λ=1 the auxiliary head decoded roles at 1.000 on held-out propositions — so z demonstrably carries linearly-readable role information for the training distribution — yet the battery's cross-vocabulary transfer cell was 0.489–0.495 at all three doses with no dose-response and no reconstruction cost. Second independent objective type (classification) producing role decodability without role abstraction.",
   "lane": "hardened",
   "note": "",
   "fu": "?",
   "fu_text": "Caveats / follow-ups - Aux held-out split is proposition-level, same vocab/families — it certifies decodability, not abstraction (that contrast is the finding). Single seed per dose; shares 001's mix-in design. - Feeds directly: 003 (structured-decoder = generation-side pressure with word-level slots), 006 (phase transition — should sweep CROSS-LEXICAL pressure, updated design note), 096 (toy theory now has two shortcut-satisfaction instances to formalize)."
  },
  {
   "n": "003",
   "b": "A",
   "name": "Structured decoder",
   "v": "null",
   "star": 0,
   "br": 0.062,
   "one": "Forced to emit an explicit role tuple, the decoder retrieved the agent at 0.998 on order-swapped sentences — yet transfer was exactly chance. The role code is a lexical lookup.",
   "method": "Decoder target became \"agent = X ; verb = V ; patient = Y | sentence\"; a first-noun baseline on the swapped-order families isolates genuine retrieval from position heuristics.",
   "detail": "On passive/object-relative sentences (where the agent is not the first noun) the decoder named the agent at 0.998 versus a first-noun baseline of 0.000 — genuine role retrieval, not a positional trick. But probing z for the same role under vocabulary holdout gave 0.507. The diagnosis that shaped the whole block: the induced code is a per-word lookup over trained fillers, not an abstract role variable — it simply does not exist for words outside the training lexicon. Best-calibrated launch of the block.",
   "lane": "hardened",
   "note": "",
   "fu": "?",
   "fu_text": "Caveats / follow-ups - Same-vocab manipulation check vs disjoint-vocab battery: the contrast IS the finding, but a middle cell (novel vocab, trained constructions, tuple-decode with novel nouns) would pin down whether the lookup fails on novel fillers at generation too — cheap add-on if promoted. - Single seed/rung/budget. Shares the 20% mix design. - Feeds: 006 (phase transition should sweep LEXICAL DIVERSITY of the transitive corpus, not loss weight — the bottleneck is abstraction over fillers), 096 (toy theory n"
  },
  {
   "n": "004",
   "b": "A",
   "name": "Shuffled-input DAE",
   "v": "twist",
   "star": 0,
   "br": 0.18,
   "one": "Word-shuffling forced order information into z — the model could reorder a scrambled bag (Kendall-τ 0.45) — yet the linear surface-order probe read order worse than baseline.",
   "method": "Corruption became a full word-shuffle; a Kendall-τ reordering check confirms z carries order; the battery's surface cell reads whether that order is linearly decodable.",
   "detail": "z demonstrably held enough order information to reconstruct a shuffled sentence, but the battery's surface-position probe fell to 0.615 (baseline 0.706). Forcing information into z says nothing about the format it takes — the reconstruction-driven order code lives in word-identity↔position associations that do not linearize into a global \"who's first\" direction, and it diluted the code that was there. A format-vs-presence lesson that echoes through the geometry block.",
   "lane": "hardened",
   "note": "",
   "fu": "?",
   "fu_text": "Caveats / follow-ups - Tau conflates z-order with decoder LM prior (pre-flagged); the surface-cell drop is the cleaner z-side readout and is the notable number here. - Suggests a probe-format experiment (nonlinear/pairwise readout of order from shuffle-z) if promoted; connects to 097 (pooling symmetrization theory: what formats survive)."
  },
  {
   "n": "005",
   "b": "A",
   "name": "Passive curriculum",
   "v": "null",
   "star": 0,
   "br": 0.078,
   "one": "Making surface order perfectly uninformative about role in 40% of the data — with no role objective at all — induced no transferable role code.",
   "method": "Plain DAE on an order-decorrelated corpus with P(agent surface-first)=0.500 hard-asserted per family; the data-only arm of the block.",
   "detail": "Primary cell 0.504 — the fifth consecutive flat result, now spanning objective pressure (001–003), format pressure (004), and pure data pressure. Neither what you optimize nor what you feed produces role abstraction at this scale. The block's negatives were now systematic enough to demand an explanation of the invariant itself.",
   "lane": "hardened",
   "note": "",
   "fu": "?",
   "fu_text": ""
  },
  {
   "n": "006",
   "b": "A",
   "name": "Lexical-diversity phase transition",
   "v": "signal",
   "star": 1,
   "br": 0.306,
   "one": "Holding the objective fixed and only widening the filler vocabulary, role abstraction EMERGES between 117 and 1000 fillers — novel-word retrieval jumps 0.00 → 0.05 → 0.73.",
   "method": "The structured-decoder objective at three filler-pool sizes N∈{30,117,1000}; the decisive cell is retrieval on fillers never seen in any transitive frame.",
   "detail": "At N≤117 the organism memorizes a per-word lookup (perfect in-vocabulary, zero out-of-vocabulary). Somewhere before N=1000 memorization stops paying and a filler-general role mechanism forms: the decoder retrieves the agent for never-trained words, against surface order (0.807 vs first-noun baseline 0.0). This is the abstraction 001–005 failed to produce — induced not by objective, format, or decorrelation but by lexical pressure. It explains all five earlier negatives in one stroke (they trained on 117 fillers, below threshold) and is the campaign's first genuine discovery. The battery's linear-probe cell stays flat even here: generation-readable role structure is not linear-probe-transferable.",
   "lane": "hardened",
   "note": "",
   "fu": "?",
   "fu_text": "follow-up.) - Grain of salt: parse rate dipped at N=117 (0.87) — the 0.05 there is on parsed outputs; the qualitative 0→0.73 jump is robust to this."
  },
  {
   "n": "007",
   "b": "A",
   "name": "Two-slot bottleneck",
   "v": "twist",
   "star": 0,
   "br": 0.216,
   "one": "Given two independently attention-pooled slots, the model made them redundant twins rather than factoring roles — each slot carries the full lookup.",
   "method": "z replaced by two 128-d learned-attention-pooled slots; a slot-specialization matrix asks whether agent info concentrates in one.",
   "detail": "Agent-identity decoded at 0.833 from slot 1 and 0.834 from slot 2 — near-zero specialization across every probe. With nothing breaking the permutation symmetry between the slot queries, training converged to two copies of the same pooled summary. The architecture arm fails instructively: slots alone do not induce factoring; a symmetry-breaking term would be needed.",
   "lane": "t3",
   "note": "",
   "fu": "?",
   "fu_text": "Follow-ups: slot-dropout or role-keyed decoding as the symmetry breaker (worth one campaign slot if the binding block gets extended); feeds 096/097 (theory should explain why the symmetric copy is the attractor)."
  },
  {
   "n": "008",
   "b": "A",
   "name": "Anti-binding mechanism",
   "v": "null",
   "star": 0,
   "br": 0.192,
   "one": "No meaningful early anti-binding dip at 10% budget — the below-chance readings are noise-scale, because the surface code has barely formed. The lasting yield was an arithmetic insight.",
   "method": "Dense-checkpoint early-training dynamics across three seeds, tracking the binding probe below chance.",
   "detail": "The historical \"anti-binding from init\" observation did not reproduce at this budget (deepest dip 0.007 below chance, 1–2 of 17 checkpoints). But the pre-registration surfaced the real story: the stimulus grid splits 12 flipped-parity to 8 same-parity ordered pairs, so a pure surface-order reader mechanically scores below 0.5 on the pooled primary. Anti-binding is likely the arithmetic shadow of the surface code — a hypothesis for a full-budget follow-up.",
   "lane": "t3",
   "note": "",
   "fu": "?",
   "fu_text": "follow-up. ## Brier: (a) dip in ≥2/3 seeds (0.70) → T-by-letter (all seeds have ≥1 below-chance ckpt) but trivial in magnitude — scored T with the caveat; (b) dip↔surface-rise (0.65) → F; (c) anti-alignment (0.40) → unscored (conditional gate correctly not triggered); (d) recovery by 5e7 (0.50) → T. Mean (scored 3) 0.192."
  },
  {
   "n": "009",
   "b": "A",
   "name": "Binding distillation",
   "v": "blocked",
   "star": 0,
   "br": 0.0225,
   "one": "Blocked by its own gate — a 3-billion-parameter LM's pooled sentence representations also fail to bind roles, so there was nothing to distil from.",
   "method": "Mandatory teacher-verification gate: run the battery on Qwen2.5-3B's pooled mid-layer representations before training; distil only if the teacher binds.",
   "detail": "Across 20 layer×pooling cells the teacher's best cross-construction primary was 0.510, with high within-construction ceilings proving the probe was powered — a genuine transfer null. A 3B decoder-LM's pooled representations join the original program's 26 embedders and BART in the same pathology: transferable surface signal, no role binding. The gate correctly halted a wasteful training run and produced a free datapoint for the beyond-SONAR block. Prediction (probability 0.15 the teacher would pass) was well-calibrated.",
   "lane": "blocked",
   "note": "Blocked by its own gate: the candidate teacher (Qwen2.5-3B pooled mid-layer states) does not bind roles either, so there was nothing to distill. Would unblock with a verified binding teacher.",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (redirected). Not \"distill from a pooled teacher\" (dead — nothing binds under the pool). The live questions this surfaces: (1) does ANY LM state bind roles *before pooling* — probe last-token / per-content-token reps of Qwen2.5-3B on the battery (a mini-051-for-decoders); if yes, distill from the UNPOOLED signal (cross-attention or per-token) rather than a single pooled vector. (2) 059 GTR-T5 base→XXL scale sweep is now the clean way to ask if scale ever induces *pooled* binding — 009 con"
  },
  {
   "n": "010",
   "b": "A",
   "name": "Case-marked scrambled MT",
   "v": "twist",
   "star": 0,
   "br": 0.238,
   "one": "A scrambled-order case-marked target language was unlearnable at matched budget — 0.503 case accuracy vs 0.99 for fixed slots. The output scaffold was doing the role work all along.",
   "method": "MT into \"roommate @wo sue @ru pilot @ka\" with random word order per example, at the N=1000 above-threshold regime; case attachment is the only role carrier.",
   "detail": "With a fixed slot order (003/006) the decoder's positional scaffold shoulders the role computation and same-vocabulary accuracy reaches ~0.99. Remove that scaffold — random output order, case as the sole carrier — and a rung-A model at matched budget cannot learn the mapping at all (0.503, both markers a single coin-flip per sentence). This closes the block as a triptych: scaffolded lookup (003) → scaffolded abstraction (006) → no scaffold, no learning (010).",
   "lane": "t3",
   "note": "",
   "fu": "?",
   "fu_text": "Follow-ups: the binding block's closing synthesis should present 003/006/010 as a triptych (scaffolded lookup → scaffolded abstraction → no scaffold, no learning). Curriculum idea if ever extended: fixed-order pretraining THEN scramble (does the abstraction transfer into the case system once formed?). Feeds 096 theory directly."
  },
  {
   "n": "011",
   "b": "B",
   "name": "Pooling-input role code (v4)",
   "v": "null",
   "star": 0,
   "br": 0.267,
   "one": "A scale-consistent probe of the exact states mean-pooling consumes finds no construction-invariant role code — certified by planted-signal recovery. SONAR's binding null is stack-deep.",
   "method": "A layer-norm-consistent contextual delta at L24n on retained token states, with probe-power certification against a planted role signal and the focal-swap label fix.",
   "detail": "The binding-death program's open question, finally answered with a certified instrument. The probe reads surface order at ceiling and role anti-transfers across parity (perm p=1.0), while the same pipeline recovers a genuinely planted role code at 0.90+. C1's null is a property of the token states, not of the pooling readout — the encoder never computes a transferable role variable at any depth.",
   "lane": "t3",
   "note": "",
   "fu": "?",
   "fu_text": "Verdict & follow-up delta-LN: CLEAN_NULL — a certified negative for linear role binding at the pooling input. Combined with the mid-stack negative (BD_RESULTS §1c) this closes the \"pooling/LN destroyed a role code that was there\" story for the linear regime: the code is not linearly present at the pooling input either, in a construction that reproduces C1 and passes a planted-signal power test. Fund follow-up? Y — (1) promote this delta-LN cell to the H-POOL record (it is the gate v3 could never pass); (2) nonlinea"
  },
  {
   "n": "012",
   "b": "B",
   "name": "Role-consistent attention heads",
   "v": "signal",
   "star": 1,
   "br": 0.38,
   "one": "42 of 384 attention heads route agent→predicate consistently across all constructions — Bonferroni-significant, held-out-replicated, killed by label permutation. Role lives in the computation.",
   "method": "Per-head agent-vs-patient attention deltas across five families, with a surface-consistency competitor and a permutation null.",
   "detail": "The program's first look inside SONAR's attention found genuine role structure where the residual stream has none: head L11h5 fires in all five families and provably tracks the by-phrase agent in passives, not the grammatical subject. The manager priced this at 0.12 (given the state-level nulls) and was wrong — the calibration lesson stands: a certified null on one measurement surface does not license a low prior on a different surface. Sets up the causal tests that follow.",
   "lane": "t3",
   "note": "",
   "fu": "?",
   "fu_text": "Verdict & follow-up POSITIVE — role-consistent attention heads exist in SONAR (42/384, certified vs a strong surface positive control and a label-permutation null). Fund follow-up? Y: 1. 013 head-knockout and 014 swap-patching are now sharply motivated — ablate/patch the L11h5-type heads and read decoder role fidelity: do these heads *cause* role reconstruction, or is their routing inert w.r.t. the pooled z (which would reconcile with the linear null)? 2. Characterize the mechanism: is one head an amodal agent-dete"
  },
  {
   "n": "013",
   "b": "B",
   "name": "Role-head knockout",
   "v": "null",
   "star": 0,
   "br": 0.172,
   "one": "Ablating all 42 role heads leaves reconstruction role-fidelity untouched (+0.001) — the role-structured attention is causally inert. Only surface heads matter.",
   "method": "Mean-ablate the 42 heads (and L11h5 alone) versus random, surface, and magnitude-matched controls; score role preservation in actual reconstructions.",
   "detail": "The role heads are pattern without function: their attention is structured, but nothing the decoder's role fidelity depends on reads it. Meanwhile the only ablation that moved preservation was the surface heads (−0.0055, CI excluding zero). Bonus first measurement: SONAR preserves roles at 0.981 on canonical transitives with no state-level role code — it reproduces the surface form nearly verbatim and roles ride along.",
   "lane": "t3",
   "note": "",
   "fu": "?",
   "fu_text": "Follow-ups: 014 (swap-patching) is now the sharper causal tool — patch attention/states between swap-mates and see WHERE the decode flips; redundancy check (ablate 42 + top surface simultaneously) is a cheap add-on if the thread is promoted."
  },
  {
   "n": "014",
   "b": "B",
   "name": "Swap-patching localization",
   "v": "signal",
   "star": 1,
   "br": 0.193,
   "one": "Patching filler-token states from the role-swapped sentence flips the decode at 0.95 through layer 22, then 0.00 at layer 24 — a flat-then-cliff commitment, identical in actives and passives.",
   "method": "Layer-wise activation patching between swap-mate sentences; half-swap and random-span controls.",
   "detail": "Role identity is carried locally at the argument tokens through 22 of 24 layers — swap them anywhere up to L22 and the reconstruction swaps; at L24 the patch is simply ignored. Not a gradual migration but an abrupt late broadcast into the pooled summary. The half-swap control garbles 100% of decodes — you cannot change one entity independently — reproducing the entity-entanglement claim causally. The keystone of the 011→020 mechanistic arc.",
   "lane": "hardened",
   "note": "",
   "fu": "?",
   "fu_text": "Follow-ups: fine-grained L22-L24 sweep + patch-at-L24n(post-LN) to pin the commitment step; larger n via relaxed piece-matching with alignment interpolation. Strong candidate for the mechanistic arc writeup (011-014 as one figure)."
  },
  {
   "n": "015",
   "b": "B",
   "name": "Pooler retrofit",
   "v": "null",
   "star": 0,
   "br": 0.092,
   "one": "A trained, transfer-disciplined attention pooler on frozen token states recovers no transferable role code at any depth — certified. C1 is a property of the states, not the readout.",
   "method": "Learn an attention pooler + role classifier under the battery's exact train/test discipline on retained states; planted-signal power certification throughout.",
   "detail": "Closes the \"wrong readout\" loophole: even an optimal learned pooler lands at 0.48–0.50 on the strictest cell at L8/L16/L22/L24n, identical to mean pooling, while the pipeline provably recovers a planted role code (0.90–0.97). The pooler learns fine in-distribution (0.71–0.82) — so the abstraction simply is not there to be pooled. Fastest self-harvest of the campaign at 2.7 GPU-minutes.",
   "lane": "t3",
   "note": "",
   "fu": "?",
   "fu_text": "Follow-up worth funding? Marginal (N-ish). The core question is answered decisively for the specified pooler family. A focal-conditioned attention pooler (inject focal token as query) would raise the in-dist ceiling and make the strongest possible \"even optimal pooling fails\" statement, and a pre-LN/scale-free plant would firm L24n — a cheap ~30-min add-on if the mechanistic-arc writeup (011–015) wants to preempt the \"you used a weak pooler\" objection. Otherwise this stands as the readout-limitation ruling-out for "
  },
  {
   "n": "016",
   "b": "B",
   "name": "Nonlinear / kernel probes",
   "v": "null",
   "star": 0,
   "br": 0.256,
   "one": "Kernel, focal-conditioned MLP, and bilinear probes all null at certified sensitivity — five probe families now agree the states hold no transferable role code, only a perfect surface code.",
   "method": "Three additional probe families with per-family planted-signal certification, including a layer-norm-consistent plant at the pooling input.",
   "detail": "Readout exhaustion: the stronger the probe family, the more perfectly it recovers the surface-order code (same-parity 1.000, flipped 0.06) — the purest anti-transfer signature in the campaign. The post-layer-norm surface resisted power certification in every family, a small methods finding about layer-norm geometry. Salvaged after an over-strict gate abort; the unpowered families were honestly reported, not dropped.",
   "lane": "hardened",
   "note": "",
   "fu": "?",
   "fu_text": "Follow-ups: none needed for the arc; the LN-geometry probe-hostility of L24n could seed a small methods note (feeds 092 norm-linter and 097 theory)."
  },
  {
   "n": "017",
   "b": "B",
   "name": "Position × layer heatmap",
   "v": "twist",
   "star": 0,
   "br": 0.129,
   "one": "The order code is strictly filler-local at every depth (0.86–0.96), never spreading to summary positions — refuting the broadcast-before-pooling hypothesis.",
   "method": "Linear probes for order and role at 8 position-classes × 8 layers, block-rule proposition eligibility.",
   "detail": "Order information rides only on the moving argument tokens at every stage — lang, eos, final, and predicate positions all sit at 0.50, including at the pooling input. This reframes 014's cliff: role does not migrate elsewhere by L24 (nothing spreads); rather a last-layer patch has no propagation layers left to amplify the swap, and the pooled mean dilutes it. Role is chance in all 72 cells. Surfaces a real tension for the writeup — the pooled vector's linear order content is chance, yet the decoder reconstructs order verbatim, so its order-reading must be nonlinear.",
   "lane": "hardened",
   "note": "",
   "fu": "?",
   "fu_text": ""
  },
  {
   "n": "018",
   "b": "B",
   "name": "Function-word carriers",
   "v": "null",
   "star": 0,
   "br": 0.035,
   "one": "Grammar tokens (\"by\", \"'s\", \"that\") carry no vocabulary-transferring role code — conduits, not stores. Best-calibrated experiment of the campaign.",
   "method": "Probe function-word span states within-construction under lexical holdout, against filler-span anchors and random-token controls, with power certification.",
   "detail": "The cue tokens that role-consistent attention reads (012) hold no role assignment themselves: every grammar-token cell sits at the 0.40–0.69 noise floor with passing power certs, while the moving-filler positional anchor reads 1.000. Role-consistent attention reads the cues (012) but the cues do not store the answer — it is carried at the argument tokens (014). Brier 0.035.",
   "lane": "hardened",
   "note": "",
   "fu": "N",
   "fu_text": "Follow-up worth funding? N (low priority). Grammar tokens are a conduit for the role-reading attention (012), not a store — consistent with 014's \"role rides the fillers.\" A funcword-state probe adds no transferable role code, and the nonlinear escape hatch is already closed (016). The only mildly-live thread is the passive-by / nominal-'s whisper (~0.6): if anything, test it with the 012 attention-write direction (does a role head WRITE agent identity into by?) rather than a fresh linear state probe — but the prio"
  },
  {
   "n": "019",
   "b": "B",
   "name": "Decoder-layer mirror",
   "v": "twist",
   "star": 0,
   "br": 0.041,
   "one": "Role never crystallizes into a linear code anywhere in the decoder; order is 0.999 early and DECAYS with depth; cross-attention reads z as a length-1 sequence — no copy pathway.",
   "method": "Layer-wise probing inside the teacher-forced decoder plus a cross-attention read map.",
   "detail": "The decoder that outputs roles at 0.981 forms no linear role code in its own residual stream (48 cells at chance, power certs passing, even in-distribution). Order is trivially present early from the forced input and decays rather than accumulating. And the architectural surprise: SONAR's decoder cross-attends to z as a single length-1 token — everything it knows passes through the one pooled vector, and entity-2 never self-attends to entity-1's span. The copy-pathway hypothesis is doubly dead.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Limitations / follow-up - Teacher-forced confound (headline, pre-registered): order is trivially in the input, so this localizes where order/role are linearly+transferably decodable in the decoder residual stream, NOT order *recovery from z alone*. The genuine recovery question needs FREE-RUNNING generation with generated-token alignment — the clean follow-up (worth funding: Y — it would test whether the decay-with-depth reverses when order must be reconstructed rather than read). - Self-attn attribution mean-pools"
  },
  {
   "n": "020",
   "b": "B",
   "name": "z-read lens",
   "v": "twist",
   "star": 0,
   "br": 0.068,
   "one": "z enters the decoder as a constant per-layer bias — the cross-attention contribution is bit-identical at every generation step. There is no stepwise \"reading\" of z.",
   "method": "Measure the cross-attention read gate and content across decode steps; step-class-targeted read ablations.",
   "detail": "Per-step variance of the z-derived contribution is 0.000 across all 24 layers: SONAR's decoder is a conditional language model running on 24 static z-bias vectors, with all sequencing done by internal autoregressive dynamics. Remove the bias everywhere and generation collapses to noise (chrF 17); remove it at subsets of steps and damage tracks how much conditioning was lost, not which class. The manager pre-registered the constancy at 0.97 rather than discovering it post-hoc. Closes the encoder+decoder mechanism arc.",
   "lane": "t3",
   "note": "",
   "fu": "?",
   "fu_text": "Follow-ups: the 24 constant read-vectors ARE z's functional decomposition at the decoder interface — dictionary/geometry experiments (041-050 block) should analyze THEM (W_v z per layer) rather than raw z; noted for the SAE block briefs."
  },
  {
   "n": "021",
   "b": "C",
   "name": "Fabrication taxonomy",
   "v": "signal",
   "star": 1,
   "br": 0.179,
   "one": "Semantic fabrication on clean sentences is 3.6% — an order of magnitude below the program's 20–30% headline — length-scaling, entity-dominated, and 65% invisible to a cosine gate.",
   "method": "1500 stratified round-trips, codex-judged with a frozen rubric, dual-rubric κ and a mandatory 40-pair hand calibration.",
   "detail": "Rescopes the program's own fabrication figure honestly: the 20–30% counted decode-parse failures on messy fragment-heavy text; on clean inputs with faithful paraphrase excluded the semantic rate is 3.6% (any-non-exact would be 43%). The operationally important claims survive and are now quantified: length-scaling 1.8→6.2%, entity+number substitution 72% of fabrications, and 65% of all fabrications occur at cosine > 0.95. The hand audit found the judge stricter than the human, so 3.6% is a ceiling. Produces the labeled gate-blind corpus the rest of the block runs on.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y - 022 entropy-signature and 030 confidence-calibration: the gate-blind high-cosine fabrications (entity-sub at cos>0.99) are the exact cases a token-entropy or decoder-confidence detector must catch — this experiment hands them a labeled positive set (out/labels_v1.json + pairs.json). - 026 decoding-strategy: nucleus>greedy head-start confirmed here (do not over-claim; beam not tested). - 029 audit-v2: run the same corpus through decode-parse+NLI to reconcile the 3.6% (semantic) vs the C4"
  },
  {
   "n": "022",
   "b": "C",
   "name": "Entropy signature",
   "v": "signal",
   "star": 1,
   "br": 0.267,
   "one": "Fabricated spans are high-entropy guesses (Cohen's d 1.20); an entropy detector reaches AUC 0.87 — but it is redundant with cosine, not a complementary signal.",
   "method": "Per-token decoder confidence at fabricated vs faithful spans; a sentence-level detector versus cosine and cosine+entropy stacks.",
   "detail": "The decoder knows when it is guessing — substituted tokens run at 2.85 nats versus 1.58 for faithful tokens in the same sentence, and an entropy-only flag hits 0.871 overall / 0.834 on the gate-blind subset, needing no re-encode. But stacking entropy on cosine gains −0.013: both are correlated readouts of the same decode difficulty. A useful negative that saves building a two-signal monitor that does not help.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (targeted) - The headline for the program: entropy ≈ cosine, not additive → a fabrication monitor gains little from stacking them; pick entropy when you want a *decode-time, no-re-encode* flag (086 latent-monitor). - 030 confidence-calibration: per-token-class PAV on these exact scores (does p_top1 calibrate to fidelity?) is the natural next step; 022 hands it out/scores.json (per-token stats + labels). - 087 fail-closed-decoder: an entropy/margin abstention threshold at decode time, ROC "
  },
  {
   "n": "023",
   "b": "C",
   "name": "Off-manifold dose-response",
   "v": "null",
   "star": 0,
   "br": 0.388,
   "one": "No fail-open band exists off-manifold — the scary \"fluent lies\" picture collapses. The only potent direction is interpolation toward another real embedding, where fabrication and garble co-rise.",
   "method": "7200 decodes across six perturbation doses × three directions (random, chord, SAE-residual), codex-judged for the fluent-but-altered vs garbled boundary.",
   "detail": "The preregistered fail-open band (fluent-but-altered > 0.30 while garbled < 0.20) is empty in all three directions. Random perturbations are inert; the residual-normal direction breaks into visible garble; only the chord toward another sentence's embedding produces fluent meaning changes, and those co-rise with garble in a mush zone. The dangerous zone is between-manifold interpolation, not off-manifold — a genuine revision of the program's safety story. Managers over-priced the band; honest Brier 0.388.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? — Weak Y The clean finding \"the decoder does not fail open off-manifold; it fails *closed* into garble except along inter-sentence chords\" is a useful safety-relevant map. A worthwhile extension is a sampling-decoder rerun of the chord direction only (where fabrication concentrates) at fine dose spacing around 0.35–0.6, to see whether sampling widens the fluent-wrong shoulder that greedy suppresses. Lower priority than the 024/086 prior-implausibility detector thread."
  },
  {
   "n": "024",
   "b": "C",
   "name": "LM-prior mechanism",
   "v": "signal",
   "star": 1,
   "br": 0.22,
   "one": "Fabrication is the decoder's language-model prior showing through where z fails to rescue a prior-implausible token — a mechanism, and a detector feature orthogonal to entropy and cosine.",
   "method": "At each substituted span, compare the full model distribution to the reads-ablated (no-z) prefix prior.",
   "detail": "The prior prefers whatever the decoder emitted everywhere (+2.71 nats even at faithful sites — consistent with 020's weak constant bias), but fabrication specifically happens where the original token is prior-implausible (rank 762 under the prior vs 93 for surviving tokens) and z fails to rescue it. The fabrication-specific increment is +1.54 nats, CI excluding zero. \"Original-token-is-prior-implausible\" is the first genuinely additive detector feature — decoupled from entropy (r=−0.19).",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y The \"original token is prior-implausible (rank 762)\" signature is a candidate fabrication *detector feature* orthogonal to entropy (022) and cosine — worth adding to 086's monitor ensemble and testing on 023's off-manifold fabs (where fabrication is dialled up). Also: does steering z toward the prior's preferred token (025 fabrication-axis) reproduce these substitutions?"
  },
  {
   "n": "025",
   "b": "C",
   "name": "Fidelity-gate reliability",
   "v": "signal",
   "star": 1,
   "br": 0.116,
   "one": "The only deployable cosine gate — self-consistency, holding just the latent — accepts a fluent, completely different reconstruction ~90% of the time at every threshold.",
   "method": "Nearest-neighbour interpolation sensitivity: the largest meaning change that keeps re-encode self-cosine above {0.95, 0.97, 0.99}, codex-judged; a gradient variant as an upper bound.",
   "detail": "A real monitor can only compute cos(z', encode(decode(z'))) — it holds the possibly-tampered latent, not the clean original. That gate is essentially blind: all 181/181 self-gate-accepted meaning changes at T=0.95 have original-drift cosine below 0.95 (mean 0.262). A perturbed latent that decodes to a different fluent sentence simply re-encodes back near itself. A sharper refutation of the \"deployable auditor\" than the program's own withdrawal — not \"it's thin\" but \"the only computable version is provably blind, and here's why.\" Brier 0.116.",
   "lane": "t3",
   "note": "",
   "fu": "?",
   "fu_text": ""
  },
  {
   "n": "026",
   "b": "C",
   "name": "Decoding strategy",
   "v": "twist",
   "star": 0,
   "br": 0.216,
   "one": "Greedy is already at the faithfulness ceiling; beam search does not reduce fabrication; temperature is the dangerous knob, with a cliff between 0.7 and 1.0.",
   "method": "Seven decoding strategies over the 1500-sentence corpus, reusing 021's greedy/nucleus labels, judging the five new strategies.",
   "detail": "Greedy fabricates at 3.0%; beam-4/8 are statistically indistinguishable (3.7–4.0%), buying only +1.3pt surface exact-match. Temperature-1.0 collapses everything — cosine 0.77, faithfulness 44%, entity-substitution up 11× to 19%. A clean monotone fidelity/diversity tradeoff. Practical guidance for anyone deploying SONAR round-trips: greedy or beam, never sample hot.",
   "lane": "t3",
   "note": "",
   "fu": "?",
   "fu_text": "Follow-up Marginal. The practical answer is settled (greedy/beam interchangeable and near-ceiling; avoid high-temp full-vocab sampling). A worthwhile extension would be a temp sweep between 0.7 and 1.0 to locate the collapse knee, and pairing temp-1.0's entity-substitution spike with 021/024's entity-fabrication mechanism. Not high priority."
  },
  {
   "n": "027",
   "b": "C",
   "name": "Round-trip attractors",
   "v": "null",
   "star": 0,
   "br": 0.168,
   "one": "Iterating encode→decode is a per-sentence near-identity map — 2000 seeds give 2000 distinct fixed points, no consolidation toward generic attractors.",
   "method": "Iterate the round-trip from 2000 seeds up to 30 steps; classify fixed points, cycles, and basin structure.",
   "detail": "1997/2000 immediate fixed points (plus three cosmetic paraphrase 2-cycles), 100% converged by step 6, 95% meaning-preserving. No basin consolidation whatsoever — the fixed points are not shorter, not lower-perplexity, not more generic than the seeds. A reassuring negative: the autoencoder has no hidden funnel pulling sentences toward canonical outputs. Its result made the next experiment's premise moot, forcing a documented reframe.",
   "lane": "t3",
   "note": "",
   "fu": "?",
   "fu_text": "Follow-up worth funding? Weak-Y. The deterministic-greedy result is clean and mostly closes the question (no attractor consolidation). The one open thread: sampled-decoder round-trip — does temperature >0 break the near-identity into genuine wandering / drift toward a prior? That is the only way this map would produce interesting attractors, and it connects directly to 026's temperature cliff and 024's LM-prior findings."
  },
  {
   "n": "028",
   "b": "C",
   "name": "SAE decomposition",
   "v": "signal",
   "star": 1,
   "br": 0.188,
   "one": "A single length ≈ inverse-density difficulty axis governs the sparse-autoencoder decomposition (recon cosine vs length r=−0.78), unifying length, intrinsic dimension, and fabrication.",
   "method": "The program's BatchTopK SAE on 1500 embeddings; per-sentence reconstruction quality and effective-atom count against measured properties. (Reframed from the now-moot attractors-vs-atoms design.)",
   "detail": "Short, dense sentences reconstruct well with ~2 atoms; long, sparse ones poorly with ~27 — the same axis as the intrinsic-dimension and fabrication findings, now shown to be one phenomenon. Two deliverables de-risk the dictionary block: a working SAE loader path, and the correction that the embedding-SAE reconstructs at FVU ~0.44–0.55 (the familiar 0.22 is the residual-stream SAE, a different target). Confirmed the near-identity round-trip as a side-check (seed-vs-fixed-point atom Jaccard 1.000).",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (weak-moderate). (1) Width sweep h∈{8192,16384,32768,65536} (all on box) — does the length/density difficulty axis persist and does m90 scale with width? feeds 044 splitting-absorption / 045 k-atom-curve. (2) Residual probing (043): probe the SAE residual (the lossy 0.45) for length/surface — is the un-reconstructed part exactly the length/rarity signal? (3) Density-controlled fabrication: does the recon↔fabrication link survive length control (partial correlation)?"
  },
  {
   "n": "029",
   "b": "C",
   "name": "Decode-verify auditor (v2)",
   "v": "null",
   "star": 1,
   "br": 0.467,
   "one": "An NLI decode-then-verify auditor ranks fabrications BELOW chance (AUC 0.478) — it shares cosine's blind spot. And the 3.6%-vs-20–30% gap is input cleanliness, not method.",
   "method": "Bidirectional NLI between original and reconstruction stacked with cosine/entropy/prior signals, evaluated end-to-end on the labeled corpus, plus a clean-vs-messy reconciliation.",
   "detail": "NLI misses 85% of true fabrications (role-swaps score exactly 0.000) and false-alarms on benign synonyms — TAE fabrication is minimal high-fluency editing, precisely NLI's blind spot, the same one cosine has. No detector reaches a deployable operating point (precision@recall-0.8 ≈ 0.17–0.30 at the 2–4% base rate). The same auditor gives 0.47% on clean text and 24% on messy — settling the reconciliation mechanically. The block's decisive conclusion; the manager over-bet NLI and said so (Brier 0.467).",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow). The NLI/decode-then-verify path is decisively refuted for TAE monitoring — do not pursue sentence-level NLI. The failures are all slot-level (entity/number/role), so a targeted structured-slot checker (extract (agent,verb,patient,numbers,named-entities) from orig and recon, compare slots) is the mechanistically-indicated next auditor — connects to 086 (latent-monitor) and the binding-program's who-did-what focus. The standing lesson stands reinforced: no cheap post-hoc auditor r"
  },
  {
   "n": "030",
   "b": "C",
   "name": "Confidence calibration",
   "v": "twist",
   "star": 0,
   "br": 0.181,
   "one": "The decoder's token confidence rank-orders fidelity (AUC 0.738) but is systematically UNDER-confident; PAV recovers a proper map; abstention is a coarse lever.",
   "method": "Reliability diagram + ECE on 30k tokens, PAV isotonic recalibration, and a risk-coverage curve for the abstention block.",
   "detail": "Every confidence bin's accuracy exceeds its stated confidence — the greedy argmax often still matches the original even when mass spreads over synonyms. Raw p_top1 is near-useless as an absolute probability (Brier ≈ base rate), but PAV recovers a monotone map. Removing 90% of fabricated tokens costs 84% abstention, because under-confidence buries correct tokens at low confidence. Closes the decoder-safety block: no cheap signal — cosine, entropy, NLI, or confidence — is deployable, because they share one blind spot.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow). Feed the PAV-recalibrated confidence + the graded risk-coverage curve directly into 087 (fail-closed decoder) as the abstention primitive — the honest lever is coverage tradeoff, not a precise fab gate. The under-confidence finding suggests temperature/label-smoothing recalibration of the decoder itself could sharpen p_top1, but the ceiling is low (raw Brier ≈ base rate)."
  },
  {
   "n": "031",
   "b": "D",
   "name": "Local intrinsic-dimension field",
   "v": "signal",
   "star": 1,
   "br": 0.202,
   "one": "The manifold is decisively inhomogeneous — local intrinsic dimension varies 2–3× by length and domain (short 31 < long 69; fiction 36 ≪ news 60). Ordering claimed, magnitudes withheld.",
   "method": "Per-point intrinsic dimension over a domain×length grid with two estimators, synthetic-manifold bias calibration, and a density-confound control.",
   "detail": "Robust across estimators and normalizations, spatially coherent (Moran's I ~96σ). The withdrawn-claim discipline held: absolute values are flagged untrustworthy (density confound r=0.71, values exceed the estimator's own calibration ceiling), so only the ordering is claimed — and the program's old withdrawn ~24 reproduces under normalization. Exactly the right way to do the thing that got burned before. (Completed out of manifest order under the folder 027-local-id-field.)",
   "lane": "t3",
   "note": "",
   "fu": "?",
   "fu_text": "Follow-up worth funding? Y - Density-matched stratum comparison (does ID inhomogeneity survive matching local density?) — the decisive test of whether this is dimension or just a density field. Cheap (reuse z + kNN on box). - Feeds 035 (operator-curvature: is composition constant across these varying-ID regions?), 037 (anisotropy), 039 (persistent-homology), 063 (per-language ID). The inhomogeneity + spatial coherence justify treating the manifold as a *field*, not a homogeneous space, in all geometry work."
  },
  {
   "n": "032",
   "b": "D",
   "name": "Geodesic vs linear interpolation",
   "v": "signal",
   "star": 1,
   "br": 0.262,
   "one": "Manifold-following geodesics stay coherent where straight chords collapse — 62.5% coherent vs 50%, only 4% word-salad vs 17%. But geodesics buy coherence, not smooth meaning-blending.",
   "method": "kNN-graph shortest paths vs straight segments between 200 sentence pairs; decoder fluency, on-manifold-ness, and a coherence + betweenness judge.",
   "detail": "Linear paths are U-shaped, collapsing at the midpoint (its worst point 99% of the time; midpoint cosine 0.68, off-manifold); geodesics stay flat and coherent throughout, and a blinded vote favored geodesic betweenness 31–13. The honest nuance kept front-and-centre: the geodesic's intermediate sentences are individually well-formed but topically detour through geometrically-close-but-unrelated regions. Complements the fabrication block — 023 named chords the hazard, this shows the structure a chord skips.",
   "lane": "t3",
   "note": "",
   "fu": "?",
   "fu_text": ""
  },
  {
   "n": "033",
   "b": "D",
   "name": "Analogy operator battery",
   "v": "signal",
   "star": 1,
   "br": 0.254,
   "one": "Tense, number, negation, and question are clean linear, invertible, composable offsets — but voice produces passive form with 0/40 argument swaps. An independent confirmation of the binding gap.",
   "method": "Estimate offset = mean(after − before) per transformation on a train set, apply to held-out disjoint-vocabulary sentences, decode and judge.",
   "detail": "Tense/negation/question succeed at ~1.00 and compose perfectly (tense∘number = 1.00); a pure z-side diagnostic predicts the whole ordering without decoding. The gem is voice: the offset produces the passive form on 40/40 sentences but swaps arguments on 0/40 — passive morphology is a clean linear direction, but z has no linear role-swap operator. Two methods a dozen experiments apart agree: SONAR represents what transformations linearly, but not who↔whom. Sentiment (0.11) and entity-substitution (0.00) are non-linear.",
   "lane": "hardened",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow) Voice is the cleanest generative probe yet of the binding gap: fit the passive offset, apply, and measure argument-order fidelity as a scalar. Feeds 034 (negation operator — here 1.00, causally steerable next), 064 (translation-as-offset), 079/081 (operator composition/emergence across rungs), 080 (causal steering along these directions). The diff_align diagnostic is a cheap pre-screen for \"is transform T a linear operator\" without any decoding."
  },
  {
   "n": "034",
   "b": "D",
   "name": "Causal negation operator",
   "v": "signal",
   "star": 1,
   "br": 0.138,
   "one": "A single linear direction is a causal, dose-responsive, content-specific negation operator that generalizes templated→natural. Best-calibrated ★ of the campaign.",
   "method": "Fit the offset on natural affirmative→negative pairs, causally add/subtract at doses 0.5–2.0 on held-out sentences, versus random and string-insertion baselines.",
   "detail": "Textbook dose-response (flip 0.64→0.84, over-steer garble at 2.0), natural and templated directions nearly parallel (cos 0.856), specificity chrF 0.92, and a norm-matched random direction never flips (0.00). The honest caveat that matters: a naive \"insert not\" string rule beats the offset practically (0.89 vs 0.84) — so the value is mechanistic (a single causal linear negation code exists), not as a better negator. The campaign's first fully causal steerable operator on natural sentences.",
   "lane": "hardened",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow). - The negation direction as a latent monitor / steering primitive (feeds 080 sonar-causal-steering, 086 latent-monitor): a single vector whose addition provably flips a semantic property. - diff_align again pre-screens linearity (0.65 natural vs 0.84 templated predicts the mild degradation) — cheap \"is T linear\" gauge, consistent with 033. - Dose-optimum >1.0 for natural text (offset under-scaled) is a general lesson for latent operators fit by mean-difference on short templates"
  },
  {
   "n": "035",
   "b": "D",
   "name": "Operator curvature",
   "v": "twist",
   "star": 0,
   "br": 0.179,
   "one": "The offset operators are a curved field — regional directions rotate 20–25° vs a 3° noise band — but the curvature does not break application: a global offset is good enough for coarse transforms.",
   "method": "Re-fit each offset within manifold regions; regional-vs-global application on held-out; curvature correlation with the intrinsic-dimension field.",
   "detail": "A 6–8× curvature ratio, U-shaped in length — the global offset is a chord anchored near mid-lengths that mis-serves both extremes by ~18°. Yet re-fitting per region beats global by only +0.8pt (both 97–100%): a 15–20° direction error still greedy-decodes the right sentence. Curvature does not track the intrinsic-dimension inhomogeneity (r=0.14), so they are separate properties. Matters only for precision steering and the half-operators — feeds the composition-operator block.",
   "lane": "hardened",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow). The operator field is provably curved (a global offset mis-serves length extremes by ~18°) yet application-robust at this scale — so curvature matters for *precision* steering / larger edits, not for coarse transforms. Worth: (1) test whether curvature breaks application at LOWER cosine budgets or for the HALF-operators (voice arg-swap, 033) where headroom exists; (2) a length-conditioned (curved) offset vs global for long-text steering (feeds 080); (3) parallel-transport the of"
  },
  {
   "n": "036",
   "b": "D",
   "name": "Norm semantics",
   "v": "twist",
   "star": 0,
   "br": 0.249,
   "one": "The magnitude ‖z‖ encodes specificity/information content (partial r 0.41 with perplexity) — but is not a usable control: scaling z ±30% changes the decode not at all.",
   "method": "Correlate ‖z‖ against length, density, specificity, and fabrication with length-partialled controls; a causal scaling-decode probe.",
   "detail": "Lowest-norm sentences are generic and predictable, highest are entity-dense and surprising — and this survives length control. But the decoder reads direction, not magnitude: scaling by 0.7–1.3× leaves length and specificity judged \"same\" 30/30 at every factor. The anti-inflation catch: the eye-catching norm↔density r=0.88 was ~90% a raw-Euclidean artifact, collapsing to 0.21 in cosine space. Steering must move direction, not magnitude.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Weak-Y (narrow). - The norm↔specificity link is the only positive: worth a clean confirm with proper NE tagging + a controlled rare-word-injection stimulus (does adding a rare proper noun raise ‖z‖ at fixed length?) — connects 066 bits-accounting (norm as a crude bits gauge) and 070/071 numeric/entity fidelity. - The scale-invariance result is a useful negative primitive for steering work (080/082/086): attacks/edits should move *direction*, not magnitude; a magnitude-only perturbation is a"
  },
  {
   "n": "037",
   "b": "D",
   "name": "Anisotropy audit",
   "v": "signal",
   "star": 1,
   "br": 0.193,
   "one": "A robustness certificate — SONAR z is nearly ISOTROPIC (mean pairwise cosine 0.068, top PC 3.3%), unlike BERT/GPT, and all four headline claims survive whitening.",
   "method": "Characterize anisotropy, then re-run the binding pattern, the offset operators, norm↔specificity, and the intrinsic-dimension ordering under mean-centering and top-k PC removal.",
   "detail": "Nothing like the strongly-anisotropic sentence-embedding regime that motivates the audit — so SONAR lacks the dominant-direction pathology entirely. Every audited result is flat to ~3 decimals under whitening: whitening neither manufactures role-binding nor destroys the surface code, the operators are not riding a top PC (max alignment 0.22). Re-frames 036's caught artifact precisely as a norm-scale confound, not classic anisotropy. Lets the program's z-space claims stand without the \"but is it just anisotropy?\" caveat.",
   "lane": "hardened",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Weak-Y (as a certificate, not a new hunt). The valuable output is the certificate itself: *SONAR z is near-isotropic, so campaign geometry results are not basis-artifacts, and the correct confound to police is norm-scale/raw-Euclidean density (036 lesson), not classic anisotropy.* Narrow extensions: full ZCA-whitening stress test (does inflating tail dims break anything?) and re-running 040 (whitening-robustness) can now cite this μ+PC fit as the shared normalization."
  },
  {
   "n": "038",
   "b": "D",
   "name": "Antipodal decoding",
   "v": "null",
   "star": 0,
   "br": 0.151,
   "one": "The antipode −z is unstructured — statistically indistinguishable from a random same-norm vector, not an opposite, not a valid latent, orthogonal to the negation operator.",
   "method": "Decode z, −z, a random same-norm vector, and a mean-reflection; judge the seed→antipode relationship and test involution and negation-alignment.",
   "detail": "Across 400 seeds: zero opposites, zero same-ish, 69% unrelated-fluent / 31% garbled — χ² indistinguishable from random. −z has self-consistency 0.097 (not a valid latent), sits off-manifold, is orthogonal to 034's negation offset (|cos| 0.044), and the map is not an involution. Negation is a specific learned offset, not \"the opposite direction.\" With 036 and 037, completes the radial/directional picture: meaning lives in direction within a bounded valid cone; the exact antipode is fluent noise outside it.",
   "lane": "t3",
   "note": "",
   "fu": "?",
   "fu_text": "Follow-up (weak-Y) - The det=−1 reflective-refinement idea (Paper C) is not visible in raw −z; if pursued, it would need to be tested at the *composition-operator* level (035's curved offset field), not the global antipode. - \"−z re-encodes like a random vector\" is a clean negative primitive: the AE's latent geometry has no usable involution/antipode structure — steering must move along small learned offsets (034), not flip sign."
  },
  {
   "n": "039",
   "b": "D",
   "name": "Persistent homology",
   "v": "null",
   "star": 1,
   "br": 0.056,
   "one": "No robust global topology — no persistent loops or voids beyond a Gaussian blob, and cyclic linguistic attributes do not trace geometric cycles. Best calibration of the campaign.",
   "method": "Ripser persistence with a planted-circle sanity gate, a covariance-matched null band, subsample stability, and a decisive label-shuffle control.",
   "detail": "The planted-circle gate passed at 9.3× separation (the tool finds loops when they exist), but every real cloud — including days/months/clock-time \"cyclic\" attributes — sits below its null. The label-shuffle control killed a tempting false positive: cyclic-attribute sentences have closure ratio ~1.0, but so do random orderings — high-dimensional distance concentration, not a cycle. Textbook TDA hygiene. z-space's real structure is a graded density field (031), not a global shape. Brier 0.056.",
   "lane": "t3",
   "note": "",
   "fu": "N",
   "fu_text": "Follow-up worth funding? Weak-N. The negative is clean and coheres with 037/031. Not worth a full TDA re-run. One narrow, cheap idea if revisited: mapper/graph-based structure (rather than persistence) on the local-ID field from 031 to see if the *inhomogeneity* has connected-component structure — but that is a 031 extension, not a topology claim. Methodological asset produced: (i) the ripser install recipe + euclidean-vs-cosine ring/blob lesson; (ii) the closure-ratio + label-shuffle-null test for \"does a linguist"
  },
  {
   "n": "040",
   "b": "D",
   "name": "Whitening robustness",
   "v": "signal",
   "star": 0,
   "br": 0.312,
   "one": "Every audited campaign finding survives a change of basis — and whitening does NOT un-blind the fabrication gate (ZCA: −0.011 AUC), killing the last basis-artifact escape hatch.",
   "method": "Re-run the cosine fabrication gate, the SAE length axis, the offset operators, and the geodesic gap under five bases: raw, mean-centered, ABTT, full ZCA, and a random rotation.",
   "detail": "The cosine gate's raw AUC 0.922 is rotation-invariant to 1.3e-15; the SAE length axis (r=0.631) is exactly preserved under co-rotation; the 033/034 operators score 0.94–0.98 in every basis; the geodesic-vs-chord gap (−0.234) is rotation-exact. ZCA is well-conditioned (cond 31.6, effective rank 1018) and top-PC variance is 3.3%, reconfirming 037's near-isotropy from an independent implementation. Closes theme D: the program's z-space claims are properties of the geometry, not of the coordinate system. Brier 0.312 — strict self-scoring on a confounded full-ZCA-on-raw-SAE cell. Operational footnote: the row was accidentally double-assigned to two managers; the yielded implementation's partial gates (mean-vector match, rotation invariance) cross-validate the owning run.",
   "lane": "t3",
   "note": "",
   "fu": "?",
   "fu_text": "Follow-up — Y (narrow) Run the prereg's primary (c) test — recon-cosine in the whitened metric vs token length — to deconfound the ZCA-SAE cell (cheap CPU pass over stored z + SAE recons). Beyond that, the row's answer is complete: basis-dependence is NOT a threat to the campaign's claims (near-isotropy makes basis choice a second-order concern), and whitening is NOT a fabrication-gate fix — future gate work should target manifold/self-consistency signals (029/030 line), not reparameterizations."
  },
  {
   "n": "041",
   "b": "E",
   "name": "Crosscoders across depth",
   "v": "null",
   "star": 0,
   "br": 0.266,
   "one": "Dictionary atoms are depth-LOCAL, not persistent: of 13,706 firing atoms in a crosscoder spanning L12, L24, and z, only 26 — 0.19% — are shared across all three.",
   "method": "One crosscoder (shared encoder, per-representation decoders) trained on paired L12/L24/z representations of 40k sentences; atom-sharing and per-rep FVU analysis.",
   "detail": "The prereg predicted ~25% of atoms would originate mid-stack and persist into the embedding; the answer is 0.19% — features re-form at each depth rather than flowing through. Training itself is clean (FVU: L12 0.259, L24 0.066, z 0.643; 16% dead), and there is an incidental positive: the shared encoder improves z reconstruction (FVU 0.643) over a z-only baseline (0.752), so the representations are related — just not atom-by-atom. All four predictions missed (Brier 0.266), an honest surprise. Incident absorbed: SONAR's 514-token positional cap crashed the first encode; a 500-token truncation repair cost 4 of 40,000 sequences.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Weak-Y. The clean negative (depth-partitioned dictionary, near-zero shared atoms) is itself informative and the z-reconstruction-improvement-under-shared-encoding is a genuine lead. A tighter re-run (match the 028 corpus + h/k so z-FVU lands in 0.44–0.55; add a real coherence judge; sweep the share threshold τ) would firm up whether ANY concepts persist across depth or whether SONAR's dictionary is strictly stratified. Not urgent."
  },
  {
   "n": "042",
   "b": "E",
   "name": "The residual is structured",
   "v": "signal",
   "star": 1,
   "br": 0.264,
   "one": "The half of z the SAE fails to reconstruct is NOT noise: adding the recovered residual to the decode lifts chrF by +25.3 (a Gaussian control LOWERS it), and its ICA components sit ~69× above the matched-noise null.",
   "method": "Four decompositions of r = x_n − x_hat, each run identically on the residual, matched-covariance Gaussian nulls, and the full vector as positive control: a fresh SAE, PCA→FastICA kurtosis, a shallow autoencoder vs exact PCA, and greedy decoding of x_hat + r_hat with paired bootstrap.",
   "detail": "On the pile corpus the SAE reconstructs poorly (FVU 0.731 — at the gate band's edge; ‖r‖/‖x_n‖ ≈ 0.79, so the residual carries most of the vector), which raises the stakes of the question. Answer: the residual's structure is linear-plus-non-Gaussian and decode-relevant — held-out ICA kurtosis 9.997 vs null-band max 0.145; decode chrF climbs from 21.5 (x_hat alone) to 46.8 with the AE-recovered residual added, while adding matched Gaussian noise costs −4.4 — but there is NO compact nonlinear manifold beyond covariance (AE beats exact PCA by only +0.0014, needing ≥0.03). The fresh-SAE cell failed its own positive-control power gate and was downgraded per prereg rather than spun (instrument lesson 5 applied as designed). Consequence for the block: dictionary-based readings of z currently describe the minority of its decodable content. Brier 0.264, dominated by over-confidence in the underpowered SAE cell and under-confidence in the decode lift, which came in at 8× threshold.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow) (1) Row 043 residual-probing is already queued and directly extends this: WHAT information lives in r (probes for length/topic/register/syntax). (2) A properly powered residual dictionary probe (larger h, aux-k, more epochs, power-certified on x first) to settle P1's open question. (3) The 042 finding reframes the 041–050 block: at FVU ~0.7 the SAE dictionary explains a minority of sentence content on generic text — worth one row testing whether campaign-corpus FVU 0.44 vs pile 0"
  },
  {
   "n": "043",
   "b": "E",
   "name": "What the dictionary drops",
   "v": "signal",
   "star": 0,
   "br": 0.106,
   "one": "The residual out-informs the reconstruction on every certified probe: token length (R² .907 vs .723), word content (AUC .937 vs .878), domain (.832 vs .782) — the k=32 dictionary keeps a MINORITY of the linearly-decodable content.",
   "method": "Linear probes for length, bag-of-words, domain, construction family, and voice on five channels — x, x_hat, r, unit-r, and the concatenation x_hat ⊕ r — with shuffled-label baselines, same-regime positive controls, and a length-confound audit.",
   "detail": "Everything the dictionary loses, the residual keeps: x_hat ⊕ r matches x exactly (domain .881 = .881), the feature-level twin of 042's decode-chrF result. Length information lives in the residual's direction, not just its magnitude (unit-vector R² .884 vs .348 for the norm alone), and topic-in-r survives the length-confound audit (per-length-bin domain accuracy .76–.90). The role cell honestly failed its positive-control gate under lexical holdout (x itself reads .573 < .65) — the 062 lesson replayed, numbers reported as uninterpretable. Bonus: templated battery sentences reconstruct notably worse than natural corpus text (FVU .826 vs .655). All five frozen predictions landed TRUE — Brier 0.106, the best-calibrated row of the SAE block. Ran in 17 seconds on cached embeddings; the leftover setup from a usage-limit-killed agent was audited and adopted with provenance.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y The dictionary misses most probe-readable content at k=32 — a k/width-sweep of \"probe recovery vs FVU\" (does the residual's probe content vanish as FVU→0, or plateau?) would say whether SAE dictionaries systematically privilege some feature types (topic vs length vs lexical) — directly relevant to interp claims that SAE features \"explain\" the representation."
  },
  {
   "n": "044",
   "b": "E",
   "name": "Width buys nothing",
   "v": "null",
   "star": 0,
   "br": 0.144,
   "one": "Across a 32× width sweep at matched budget, feature splitting is essentially absent (4.1% → 0.4%, shrinking with width), FVU is flat from h=2048 to h=65536, and the residual beats the reconstruction on all five probe families at every width.",
   "method": "Decoder-direction matching across adjacent widths h∈{2048…65536}×2 seeds with a certified matcher (self-match, noise-recovery, and Gaussian-null controls all exact), plus the 043 probe battery and FVU at every width; the pre-existing matched-budget w40 grid supplied four widths, with h=2048 trained to extend it.",
   "detail": "The dictionary-drops problem exposed by 042/043 is a property of the sparsity/objective, not a capacity ceiling: growing the dictionary 32-fold leaves reconstruction flat (pile FVU actually rises 0.710→0.748) while the fraction of atoms that fire at all collapses from 0.99 to 0.23. Narrow atoms are preserved near-verbatim or lost, not refined into finer features — the hierarchical-splitting picture from residual-stream SAEs does not describe this embedding regime. The absorption cell (novel wide atoms, 52–77% raw) was formally gated INSTRUMENT_FAILURE: the cross-seed identifiability floor failed (s0↔s1 match 0.151), so 'novelty' cannot be distinguished from seed noise — with the note that cross-seed stability itself collapsing 0.473→0.149 across widths is a finding. Brier 0.144. The decisive lever left standing is k, handed directly to row 045.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (modest) Row 045 (k-scaling at fixed h) is already queued and is now the decisive arm: if FVU/residual content is also k-invariant, the SAE objective itself caps readable content; if k buys it back, the 042/043 residual is \"content beyond the top-k budget\", which reframes all w40-family dictionaries. Also cheap and worth it: one activation-correlation rerun of the novelty matcher (fixes the gated cell with data already on the box)."
  },
  {
   "n": "045",
   "b": "E",
   "name": "The k-atom curve",
   "v": "twist",
   "star": 0,
   "br": 0.146,
   "one": "Keeping more atoms makes L2 reconstruction WORSE past m=64 (FVU U-curve, 0.69→0.83) while decode quality keeps rising monotonically (chrF 21→35) — the dictionary's error metric and the decoder disagree about what matters.",
   "method": "Inference-time sweep m∈{1…128} of atoms kept on the fixed k=32 dictionary: FVU and greedy-decode chrF at each m on 1000 sentences, against random-atom baselines, with the m=32 cell certified against 042's known values (0.7312 vs 0.731).",
   "detail": "Three structural facts. First, the FVU/decode dissociation: rank-33+ atoms were never trained to fire and add badly-scaled mass (FVU worsens), yet the decoder extracts real content from them (chrF +7.1 from m=64→128, bootstrap-clean) — reconstruction error is the wrong lens on dictionary quality. Second, no saturation: at 4× the trained sparsity the decode still sits 48 chrF below the full-embedding ceiling (83.8); the sentence never survives inside this dictionary, consistent with the whole 042–044 arc. Third, atom mass is diffuse and structurally constant — ~1500 atoms to cover 90% of activation mass, uncorrelated with sentence length (r=0.04) or difficulty. The qualitative ladder is tidy: one atom gives a generic scaffold, 4–16 give topic gist (cross-lingually, before wording), entities and numbers arrive last. Honest caveat: at m=2 a random-atom baseline slightly beats the top atoms on chrF. Brier 0.146; m>32 is off-training-distribution throughout. Ran in 4 minutes entirely on cached embeddings.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y Two forks: (1) TRAINED k-ladder (k ∈ {64,128,256} same recipe, ~min/train at h16384) — does trained k=128 close the decode gap that inference-k cannot, or does FVU-vs-content dissociate there too? (2) The FVU/chrF dissociation itself: what do rank-33-128 atoms add that decoders love but L2 hates? (candidates: low-norm content directions vs high-norm scaffold; connects 036 norm-semantics.)"
  },
  {
   "n": "046",
   "b": "E",
   "name": "Atoms are meaning-indexed",
   "v": "signal",
   "star": 1,
   "br": 0.179,
   "one": "The English-trained dictionary's atoms fire on MEANINGS, not English: activation-correlation identity is 1.000 across all five language pairs (German, Japanese, Turkish, Chinese, Arabic), raw and centered.",
   "method": "The existing k=32 SAE run on FLORES-200 parallel text in six languages; atoms matched by activation correlation over translation-equivalent sentences (sidestepping 044's failed decoder-cosine matcher), certified by split-half self-match 1.0 and a scrambled-pairing null of 0.0035.",
   "detail": "For every frequent atom, its activation profile over 2009 translation-parallel sentences identifies it perfectly across languages — median self-correlation 0.78–0.87 against a runner-up of 0.19. The dictionary is one shared semantic inventory viewed through different languages. Two sharpening details: translation pairs co-fire only 21–33% of their top-32 atoms (same inventory, diffuse per-sentence selections — exactly 045's picture), and per-language mean-centering removes essentially the entire non-English reconstruction penalty (FVU 0.74–0.80 → ≈0.71 ≈ English), confirming 062's language-as-mean-offset in reconstruction space. A real language-exclusive core survives centering (19.4% of atoms, ~557) — flagged for follow-up. Two predictions missed at ceiling-tie and by 0.004 respectively; Brier 0.179. Full run: 58 seconds. The activation-correlation matcher also offers a route to un-gate 044's absorption cell retroactively.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow). 1. The graded matcher (margin / profile-corr instead of saturated argmax-identity) is now the right instrument for the typology gradient AND for re-running 044's gated novelty cell (activation-correlation across widths/seeds) — data already on the box. 2. The centering-resistant ~19% exclusive core (557-atom union): are these script/tokenizer detectors or content? Cheap: top-activating FLORES sentences per exclusive atom."
  },
  {
   "n": "047",
   "b": "E",
   "name": "Frames vs atoms",
   "v": "twist",
   "star": 0,
   "br": 0.201,
   "one": "Semantic frames explain only ~3.3% of z's variance and the frame-supervised basis loses to plain PCA-50 — yet 46 of 50 frames have an atom firing selectively for them. Atoms are topic and lexical-field detectors, not frame-structure detectors.",
   "method": "5000 FrameNet exemplars (top-50 frames × 100 balanced sentences) encoded to z; frame-supervised rank-50 basis vs PCA-50 vs the SAE on variance explained; per-frame selective-atom search against a 20-permutation null; frame classification from z, the SAE code, and the residual.",
   "detail": "The frame inventory — the linguist's hypothesis for what sentence meanings are made of — is nearly orthogonal to how z allocates its variance (centroid-assignment FVU 0.967). But atom-level alignment is dense: 46/50 frames have a selectively-firing atom, and the four failures are precisely the abstract, structural frames (Statement, Aggregate, Removing, Quantified_mass) — atoms detect Food and Clothing, not predicate-argument structure, rhyming with the campaign's binding results. Unregistered but flagged: PCA-50 beats the 16384-atom SAE on this off-pile corpus (FVU 0.770 vs 0.822) — the SAE's edge may be pile-specific, queued as a follow-up. 043's channel pattern extends to frames too: the residual out-decodes the reconstruction (0.346 vs 0.242). One bad miss in calibration: 50-way frame classification from z reached 0.455, not the predicted 0.55+ (still 23× chance). Brier 0.201. Whole chain: ~3 minutes.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (one specific). PCA-50 > SAE off-distribution (this corpus AND 043's battery FVU 0.826) suggests the SAE's advantage over cheap global bases is pile-specific — a small \"FVU vs corpus\" grid (pile/FrameNet/battery/FLORES × {SAE, PCA-k, frame/label bases}) would say whether the dictionary's variance story generalizes at all. The abstract-vs-concrete frame split (b) is also a clean handle on WHAT KIND of meanings atoms are (046 follow-up: content vs topic)."
  },
  {
   "n": "048",
   "b": "E",
   "name": "Atom ontogeny",
   "v": "signal",
   "star": 0,
   "br": 0.179,
   "one": "Atoms crystallize gradually and front-loaded: half the final inventory is matchable at 5.7% of the training budget, 98% by 74%, with no late reorganization — and ~31% of top-frequency atoms exist already in the UNTRAINED encoder.",
   "method": "Real training-time series: five checkpoints × two seeds of the ladder rung-A autoencoder, a matched SAE trained per checkpoint (two SAE seeds each, 20 SAEs), atoms matched to the final inventory with the certified activation-correlation matcher, ceiling-normalized against cross-SAE-seed identifiability.",
   "detail": "The crystallization curve is smooth and saturating (match-to-final 0.16 → 0.52 → 0.77 → 0.98 across the budget), replicated across both organisms, and frequency-first — high-frequency atoms lock in ~44 points earlier than rare ones. The untrained-encoder result is the conceptual surprise: corpus-statistics atoms survive random projection, so part of the dictionary describes the data distribution, not anything learned. The FVU control confirms matching isn't just reconstruction improving (FVU worsens while match rises). The row also paid its way in instrument terms: the initially frozen SAE config had a cross-seed identifiability ceiling of 0.008 — 044's pathology amplified at 8× overcompleteness — caught in a pre-run pilot and recalibrated to a 0.723 ceiling before any result was scored, with the amendment logged pre-run and predictions untouched. Brier 0.179. Run: 8.4 minutes, self-harvested under the watcher rule.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (modest) The 4000→26000 gap hides where the last quarter of atoms locks in; the ladder trainer saves F1-crossing milestones, so a cheap rerun of rung A with log-spaced step ckpts (shape B-style dense trajectory, ~70 min GPU) would resolve the tail and test the flicker/\"final-only\" 25%. Also: the untrained-encoder atom inventory (~16% of ceiling, 0.31 of frequent quartile) is a clean handle on \"what SAEs find that isn't learned\" — worth cross-referencing with 047's topic-selectivity labels"
  },
  {
   "n": "049",
   "b": "E",
   "name": "Paraphrase invariance",
   "v": "twist",
   "star": 0,
   "br": 0.179,
   "one": "Atom co-firing is genuinely semantic — paraphrases beat equally-word-matched non-paraphrases in all ten surface-overlap deciles — but rewording alone moves co-firing as much as meaning does, reproducing 046's translation deficit inside English.",
   "method": "Six cells × 5000 pairs from PAWS and QQP: paraphrase vs non-paraphrase at matched ~0.88 lexical overlap (the decisive control), duplicate questions split by overlap terciles, and derangement nulls; top-32 Jaccard co-firing, overlap-matched deciles, and per-atom invariance vs bag-of-words boundness.",
   "detail": "At matched surface overlap, meaning adds +0.228 to co-firing (0.561 vs 0.333, every decile) — atoms are not just keyword detectors. But surface adds a comparable +0.183 independently, and the symmetry is striking: same-meaning-different-words co-fires at 0.208, exactly the floor of 046's translation band, while different-meaning-shared-words reaches its ceiling of 0.333. The 21–33% translation co-fire deficit is thus not about language at all — it is what rewording costs, reproduced within English. Per-atom, activation profiles are topic-bound rather than proposition-bound (invariance 0.906 para vs 0.836 nonpara; ~40% of atoms carry meaning beyond topic; zero of 414 atoms are more word-bound than invariant — the predicted lexically-bound atom class does not exist, the one missed prediction). Coheres exactly with 047: atoms encode lexical fields and topics, with a genuine but partial semantic layer on top. Brier 0.179; run 165 seconds.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow). 1. The 40%-semantic / 40%-surface per-atom split: rerun semantic index with PAWS pairs stratified by shared-content-word count, or with role-swap minimal pairs (061/062 battery) to isolate proposition-level atoms from topic atoms — directly tests whether ANY atom encodes structure rather than field. 2. In-domain low-overlap paraphrase cell (backtranslation of the same PAWS sentences) to confirm the \"rewording ≡ translation\" equivalence without the QQP domain confound."
  },
  {
   "n": "050",
   "b": "E",
   "name": "Dead-feature necropsy",
   "v": "null",
   "star": 0,
   "br": 0.145,
   "one": "The row's premise is empty, and that is the result: no atom ever dies in training, the aux-k revival mechanism never engages (aux loss ≡ 0 across all 8 runs, 320 epochs), and 'dead' atoms are ordinary rare-topic atoms that don't transfer across an eval-distribution shift.",
   "method": "Read the steps_since_fire telemetry sitting unread inside all eight w40 checkpoints; audit every training log for aux-k engagement; necropsy eval-dead atoms on two corpora with text autopsies and zombie-duplicate checks; and run bit-identity ablation retrains with aux_k=0 vs 256.",
   "detail": "Every 'dead feature' in this family is eval-distribution shift, not death: 100% of the h65536 atoms that never fire on pile text fire happily in-distribution, at 0.76× the healthy median rate, with ordinary topic-detector max-activating texts, and zero of 2232 are zombie duplicates of live atoms. The ablation is decisive — retraining with the revival mechanism disabled is bit-identical to training with it on. The most informative miss (P5): 'dead' atoms are not even tail-specialists in-distribution; the label carries almost no information. Caveat held honestly: this is a fact about the BatchTopK k=32 recipe at this scale, not about aux-k in general. Brier 0.145. Closes block E with its synthesis: the SAE's interesting failure is what never gets into the dictionary, not what happens to the atoms inside it.",
   "lane": "t3",
   "note": "",
   "fu": "N",
   "fu_text": "Follow-up worth funding? N as a dead-feature program (there is nothing to necropsy in this family). Y as one cell in a future \"when does AuxK matter\" recipe sweep (per-sample TopK vs BatchTopK × width × data passes) if SAE work continues past the block."
  },
  {
   "n": "051",
   "b": "F",
   "name": "Embedder binding sweep",
   "v": "blocked",
   "star": 0,
   "br": 0.22,
   "one": "All six small sentence embedders FAIL the battery's positive-control gate (within-construction ceilings 0.54–0.74 vs SONAR's ~1.0) — so the sweep returns no clean nulls, and one real twist: role information is faint in all of them.",
   "method": "The unchanged stimuli_v2 battery on MiniLM, MPNet, E5-base, BGE-base, GTE-base, and Sentence-T5 (seeds 0–2, n_boot 1000), with the certification gate ruling on whether nulls are trustworthy.",
   "detail": "Every cross-construction + lexical-holdout cell sits at 0.49–0.51 and the surface-order code reads at only 0.52–0.54 — but the gate correctly refuses to certify \"no binding\" when the instrument cannot even read roles within-construction. The informative part is the failure itself: SONAR's signature pattern (strong surface code, absent role code) does NOT extend downward — 22M–110M-parameter contrastive embedders are in a faint-signal regime where even the surface code barely registers. The gate discipline (instrument lesson 1) is what kept six seductive false nulls out of the ledger. Operational note: the first pass was killed mid-run by the tmux kill-server incident; the relaunch completed all six models with zero errors.",
   "lane": "blocked",
   "note": "INSTRUMENT_FAILURE: all six small embedders fail the battery positive-control gate (within-construction ceilings 0.54–0.73), so their nulls are uninterpretable. Would unblock with a per-embedder recalibrated battery.",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow). The instrument-failure is itself the finding and it directs the next steps: (1) row 053 role-retrieval prompts to try to lift the within-construction ceiling above 0.9 (restore power) before re-asking the binding question; (2) larger sentence embedders to test whether the weak-role regime is capacity-bound; (3) row 052 (LASER/LaBSE MT objective) as pre-registered. Until a small embedder passes the positive control, \"no binding in small embedders\" stays uncertified."
  },
  {
   "n": "052",
   "b": "F",
   "name": "LASER vs LaBSE: the objective",
   "v": "signal",
   "star": 1,
   "br": 0.219,
   "one": "It's the generative MT decoder: 45M-parameter LASER lands in SONAR's probe-power regime while 471M LaBSE patterns with the small contrastive models — training to GENERATE translations installs the surface code that training to RANK them does not.",
   "method": "The identical certified battery on LASER2 (LSTM, MT seq2seq — SONAR's ancestor) and LaBSE (translation-ranking), plus a pre-registered German case-marking cell reusing 061's stimuli; LASER ran via a vendored dependency stub after its packaging proved uninstallable.",
   "detail": "The capacity explanation dies cleanly: LASER at 45M reaches within-construction ceilings of 0.80–0.83 with an elevated transferable surface code (0.694 vs the contrastive models' ~0.53), while LaBSE at 10× the size sits at 0.53–0.62. A post-hoc inversion sharpens it: LaBSE aces a possessive positive control (0.986) that LASER wholly lacks — ranking installs a lexically-anchored semantic code, generation installs the surface code, SONAR has both, and abstract binding lives in neither. The German cell is decisive for 061's interpretation: LASER is fully powered on German (0.990) and reads case morphology (0.856) yet shows NO case→role binding (0.442 vs SONAR's 0.668) — SONAR's German binding is SONAR-specific, not an MT-objective universal. Honest amendment logged pre-run: SONAR itself scores 0.76–0.84 on these stimuli and fails the strict 0.9 gate, so 'SONAR-like regime' was re-anchored to measured values. Brier 0.219. Run ~7 minutes.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow). (1) Pooling-swap control (attention-pool LASER's states / max-pool SONAR's) to isolate the decoder-objective vs pooling contribution to the SONAR regime. (2) The LaBSE lexically-anchored possessor cell (0.986) deserves promotion into the battery as a named cell (\"content-addressed binding\") — it is the first non-SONAR encoder to pass the s↔of positive control. (3) German case-binding is now SONAR-specific: test NLLB-encoder (SONAR's parent) on the 061 battery to locate where it "
  },
  {
   "n": "053",
   "b": "F",
   "name": "Instructions are inert",
   "v": "null",
   "star": 0,
   "br": 0.092,
   "one": "Telling an instruction-tuned encoder 'represent this sentence by who performs the action' does nothing: the ceiling shifts by +0.004–0.006 — indistinguishable from a scrambled-prefix control — and opposite instructions produce embeddings at cosine 0.999.",
   "method": "Six instruction conditions (none, agent-focused, patient-focused, irrelevant, scrambled-prefix null, and the agent−patient difference vector) × two models (instructor-base, multilingual-e5-large-instruct at 560M) × the full certified battery, gates anchored to measured baselines.",
   "detail": "The cleanest null of the beyond-SONAR block, at the block's best calibration (Brier 0.092, all four predictions true). The instruction is a topic prior applied to an unchanged sentence code: agent- and patient-instructed embeddings of the same sentence are nearly identical (0.9995 / 0.998), the primary binding cell is dead chance in all twelve cells, and ceilings stay in the small-embedder band even at 560M parameters. Combined with 052 the block's conclusion sharpens: role-rich pooled codes come from the generative objective — not capacity, not contrastive data, not instruction conditioning. One razor-thin call reported with full transparency: the e5 difference-vector cell missed the frozen +0.05 threshold by 0.00007, and its binding cell is chance regardless — the difference sharpens within-construction separability, not binding. Judged not worth its own follow-up row.",
   "lane": "t3",
   "note": "",
   "fu": "N",
   "fu_text": "Follow-up worth funding? N (as a row) / one cheap cell folded elsewhere. The question is answered for this campaign: inference-time conditioning does not create role structure, with well-calibrated nulls across two conditioning routes. Not worth another full row. Cheap fold-in if the diff idea resurfaces: run the diff construction on a *powered* encoder (SONAR/LASER, z(agent-ish prompt)−z(patient-ish) via their prompt-free encoders is ill-defined — so rather: e5-mistral-7b-instruct, the rejected-for-size model, is "
  },
  {
   "n": "054",
   "b": "F",
   "name": "The concept-space LM",
   "v": "null",
   "star": 0,
   "br": 0.132,
   "one": "Even an LM that PLANS in SONAR space develops no binding: all three depths of a 1.6B Large Concept Model stay in SONAR's exact probe regime (max ceiling shift +0.016), the binding cell is dead chance throughout, and the surface-order code is mildly amplified, not replaced.",
   "method": "Meta never released LCM weights (confirmed via the repo's own issues), so the row ran on Mimir-1.6B — an MIT-licensed faithful reproduction of the two-tower diffusion LCM trained with the official codebase — as a pre-declared deviation; battery at three depths against a replicated raw-z anchor, plus a causal role-swap generation cell judged locally.",
   "detail": "The strongest version yet of the block's conclusion: autoregressive planning pressure over concepts — the downstream use-case most plausibly requiring role structure — installs none. The raw-z anchor replicated SONAR's measured ceilings exactly (instrument certified), the LCM's internal states never leave that regime, and with depth the model leans harder on surface order (0.755 → 0.791). The generation cell tells the same story behaviorally: continuations are context-sensitive but echo-dominated (a third are verbatim copies), with active role inversions at only 7.8%. One instrument honestly invalidated post-hoc: the embedding forced-choice metric turned out to read the probe's surface subject rather than role, and its cell was scored as the miss it was (Brier 0.132 overall). Stack note: the LCM's pinned dependencies conflicted with the shared venv and got their own isolated environment. Kills the 'downstream pressure will fix it' hypothesis at T3.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow): (i) battery on states at position k>1 under role-relevant multi-sentence contexts (tests planning pressure properly); (ii) role-diagnostic probe pairs with novel subjects to fix the forced-choice instrument; (iii) denoiser tower depths. As a cheap fold-in, not a new flagship row."
  },
  {
   "n": "055",
   "b": "F",
   "name": "Continuous thought",
   "v": "null",
   "star": 0,
   "br": 0.243,
   "one": "Reasoning pressure doesn't install binding either: across all six of Coconut's continuous-thought steps the binding cell stays at chance (0.494–0.515), and the within-ceiling DECAYS as thoughts progress. Five pressures tested across the arc, five NOs.",
   "method": "Certified community reproduction of Coconut (GPT-2, official training framework, functional gate reproducing the paper's 35% GSM8k), battery run at eight representation points — input embedding, unmodified GPT-2 anchor, thoughts 1–6 — with manipulation checks that latents genuinely evolve.",
   "detail": "The strongest candidate pressure of the whole beyond-SONAR block — math-problem reasoning that genuinely requires tracking who-did-what — moves the binding cell not at all (flat against both anchors; the prereg's P(binding)=0.30 allowance, the arc's highest, did not pay). Two honest wrinkles. First, the run's FAILED sentinel was a preregistered gate working as designed: the ProsQA model's latent thoughts collapse into a runaway fixed-point on out-of-distribution English stimuli (consecutive-thought cosines →1.000, norms exploding 182→281), so its arm was correctly never scored — relaxing the gate to 'fix' it would have unfrozen the prereg, and the agent declined. Second, a neat structural datum: the input-embedding bag scores exactly 0.500 on genitive roles (a bag of word embeddings carries zero role information) versus 0.698 one thought-step in — the thoughts do compute something relational within-construction; it just never abstracts. Brier 0.243 over four scoreable predictions. Closes the 051–055 sequence: no objective, capacity, instruction, planning, or reasoning pressure tested installs abstract binding in a pooled representation.",
   "lane": "t3",
   "note": "",
   "fu": "N",
   "fu_text": "Follow-up worth funding? N as a row — the 051–055 arc is closed (five pressures, five nulls on transfer). Cheap fold-ins only if the theme resurfaces: (a) llama-3.2-1b-gsm8k coconut (scale check, same script), (b) prosqa-formatted stimuli to un-gate the collapsed arm."
  },
  {
   "n": "056",
   "b": "F",
   "name": "Cross-attention doesn't bind either",
   "v": "twist",
   "star": 1,
   "br": 0.281,
   "one": "The folklore that rerankers 'handle roles via cross-attention' is wrong: on surface-incongruent role swaps the cross-encoder scores 0.468 — BELOW chance, actively preferring the wrong candidate whose word order matches the query — and there is no role layer to localize.",
   "method": "8000 role-swap forced choices split by surface congruence (the binding-sensitive cell), QA and lexical controls, scrambled nulls; then cross-segment vs within-segment attention lesions per-layer and per-head (72 heads) on the MiniLM reranker, with mask machinery mechanically certified.",
   "detail": "The reranker's celebrated advantage is pure surface matching: 0.858 when word order agrees with the query, below chance when it doesn't. Its apparent QA role-sensitivity decomposes into a construction lookup — active and passive near-perfect, object-relatives at a catastrophic 0.09, a proximity-driven inversion. The lesions found nothing to localize: no single head matters more than 0.025, and masking the early cross-layers IMPROVES incongruent accuracy (they are where the surface-matching bias lives). The pooled CLS is emptier than the same backbone's bi-encoder finetune, so the discriminative signal lives entirely in the interaction — and the interaction reads surface. The worst-calibrated row of the arc (Brier 0.281) for the best reason: the folklore motivating the row was false. Sixth consecutive NO, and the most instructive: even full cross-attention at inference does not implement role binding — it implements word-order matching. Flagged fold-in: one modern reranker on the same cells; promote the object-relative inversion into the battery.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow, fold-in) One cell, not a row: run R-decl-incongruent + QA-objrel on one strong modern reranker (bge-reranker-v2-m3 or an LLM judge-scorer) to test whether the below-chance surface inversion is a MiniLM-capacity artifact or a general property of relevance-trained cross-attention; plus promote the objrel QA inversion into the battery as a standing behavioral cell."
  },
  {
   "n": "057",
   "b": "F",
   "name": "Diffusion latents",
   "v": "null",
   "star": 0,
   "br": 0.134,
   "one": "Iterative denoising is the seventh NO: role binding sits at chance at every noise level (32 of 32 cells), nothing ever 'commits' to who-did-what across the denoising trajectory, and what does commit early is the surface scaffold — function words recover 4× faster than content words.",
   "method": "DiffuGPT-small — a genuine masked discrete-diffusion LM adapted from GPT-2, verified bidirectional against its own parent — probed at six masking rates plus the parent GPT-2 and embedding-bag anchors, eight batteries total, in a pinned separate environment.",
   "detail": "The model choice was the careful part: the classic diffusion-LM checkpoints don't exist publicly, the modern masked-diffusion releases hard-require an uninstallable attention kernel, and the 7–8B models don't fit the GPU — DiffuGPT threads the needle and brings its own perfect same-architecture AR baseline. Results: the primary binding cell never leaves 0.478–0.514; the within-construction code decays monotonically with masking rather than crystallizing at some commitment point (no masked-diffusion analogue of the encoder's L22→L24 finding); and diffusion adaptation mildly erodes the parent's role code (0.658 vs 0.730). The early-commitment structure is pure scaffold: at 25% masking, function words are recovered at 0.230 vs content words at 0.052, and the geometry collapses smoothly toward the all-mask attractor. One razor-thin miss (by 0.002, scored as frozen) in an otherwise well-calibrated row — Brier 0.134. Judged not to need an eighth mechanism cell: the fundable question now is the arc-level synthesis.",
   "lane": "t3",
   "note": "",
   "fu": "N",
   "fu_text": "Follow-up worth funding? N as a row. The 051–057 arc is now uniform across seven generation/encoding mechanisms; marginal value of an eighth small-model NO is low. Cheap fold-ins if the arc resurfaces: layer sweep of dg states; DiffuGPT-medium; LLaDA-8B int8 on a bigger card. The arc-level synthesis (what training signal WOULD install binding) is the fundable question, not another mechanism cell."
  },
  {
   "n": "058",
   "b": "F",
   "name": "Speech is text with an accent",
   "v": "signal",
   "star": 0,
   "br": 0.166,
   "one": "SONAR's speech encoder lands spoken sentences essentially on top of their transcripts (cosine 0.912, retrieval P@1 0.967 even among role-swap twins), the text decoder reads speech-z near-natively with zero fabrication — and the binding null extends to a second modality, the arc's eighth NO.",
   "method": "3200 TTS-certified spoken battery sentences encoded with SONAR's speech encoder; alignment, the full battery against a same-run text-z anchor, cross-modal decoding through the text decoder, and a modality-offset analysis mirroring the language-offset findings of 046/062.",
   "detail": "The shared embedding space is real and tight: the feared blurring of role-swap minimal pairs under audio never materialized, and cross-modal decode costs only 3.2 chrF (predicted ≥10 — the one missed prediction, failed in the good direction), with errors that are ASR-like homophones (Mei→may, aunt→ant) rather than fabrications. The modality difference is one removable vector — mostly encoding written register, at 15% relative norm — and centering it doubles strict exact-match decode (0.29→0.57). The battery tells the now-familiar story point-for-point: speech-z pays a small acoustic tax on ceilings (0.03–0.06) but sits in text-z's exact regime, with the primary binding cell at chance in every cell. Binding absence is now modality-general. The run itself survived its manager (killed by a usage limit post-completion); the harvest scored the frozen predictions exactly as registered, Brier 0.166.",
   "lane": "t3",
   "note": "",
   "fu": "N",
   "fu_text": "Follow-up worth funding? N (as a row) The cross-modal geometry result is clean and the binding arc doesn't need a 9th cell. Fold-ins if ever revisited: natural speech (LibriSpeech/CommonVoice) to stress the TTS-regime caveat; non-English speech encoders vs the 046/062 language offsets (is the \"modality offset\" one axis or per-language?); offset-as-register probe (does μ_sp − μ_tx decode as lowercase style on text-z too?). The fundable question remains the arc-level synthesis: what training signal WOULD install bind"
  },
  {
   "n": "059",
   "b": "F",
   "name": "Scale moves nothing",
   "v": "null",
   "star": 0,
   "br": 0.086,
   "one": "A 44× scale sweep within one fixed architecture and objective — GTR-T5 from 110M to 4.8B, all four scales — leaves every preregistered cell flat: probe ceiling 0.601→0.591, binding at chance throughout, and the possessive code scale can't buy. The ninth NO closes the capacity axis.",
   "method": "The identical certified battery on gtr-t5-base/large/xl plus a successful fp16 stretch to xxl (the manager noticed GTR uses only the T5 encoder, halving the expected memory), with the LaBSE possessive comparison extracted from the existing genitive cross-grid rather than new code.",
   "detail": "The cleanest possible statement of the block's capacity conclusion: within one family, 44× more parameters move the within-construction ceiling by +0.003, leave the primary binding cell at 0.505–0.508 (max CI-lo 0.496), keep the surface code below 0.60, and fail to produce LaBSE's lexically-anchored possessive code (chance and non-monotone at every scale — it is a ranking-objective property, not an emergent-scale one). The internal control that makes the flatness credible: one cell does move with scale — genitive cross-construction with SHARED vocabulary rises 0.722→0.805 while its lexical-holdout twin stays at chance. Scale sharpens the lexical shortcut, not structure; the battery demonstrably sees trends when they exist. All four predictions correct at Brier 0.0858, the best-calibrated row of the beyond-SONAR block. The SONAR regime is bought by the generative decoder objective — not capacity, at any scale tested.",
   "lane": "hardened",
   "note": "",
   "fu": "?",
   "fu_text": "Tier & follow-up T3-exploratory (campaign default; EXT row). Follow-up as its own row: N. The capacity axis is now closed with four measured points and every cell flat; the marginal next dollar goes to the arc-level synthesis (and the already-queued 061/062 case-marking / cross-lingual rows), not a fifth scale point. The one loose thread worth a fold-in, not a row: the growing genitive all-vocab curve (0.72→0.80) as a case study of what scale DOES buy retrieval embedders (lexical shortcut sharpening)."
  },
  {
   "n": "060",
   "b": "F",
   "name": "The judgment anchor",
   "v": "twist",
   "star": 1,
   "br": 0.233,
   "one": "SONAR's within-topic similarity is not merely role-blind — it is ANTI-meaning: given a paraphrase and a role-swap of the same sentence, the panel picks the paraphrase 90/90 times while z-cosine picks the role-swap 30/30, and within-topic correlation with judged similarity is NEGATIVE (−0.218).",
   "method": "A complete, powered, costed human-study protocol (frozen 100-pair set in a 5-cell design, graded similarity + triplets + a casual-vs-role-critical instruction arm, N=160, ~$1k) plus an honest LLM-proxy pilot: three frontier-model panelists, 51 local calls, panel consistency ρ=0.959, all gates passed.",
   "detail": "The block-closing question was whether 'embeddings don't bind roles' merely matches human coarse similarity. The proxy answer: no — every meaning-attentive judge available separates paraphrases from role-swaps by ~4 points on a 7-point scale, even under deliberately casual framing, while z's same-topic ordering is sign-inverted (the true paraphrase — active vs passive — is z's LEAST similar same-topic pair, and bag-of-words Jaccard predicts the panel better than the embedding does). The pilot's methods finding is itself valuable: frontier LLMs cannot emulate a casual gist reader — role-critical instructions add only +0.41 because they are already at ceiling — which is precisely why the human study remains necessary and is now designed, powered, and ready to field. Both prediction misses trace to that one lesson (Brier 0.233). Everything here is honestly tiered LLM-PROXY; the durable artifacts are the frozen judgment anchor and the runnable protocol. Closes block F.",
   "lane": "partial",
   "note": "Design + LLM-panel proxy only. The human similarity-judgment study was designed but never run with humans.",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y — the human study itself. STUDY_DESIGN.md is runnable as written (~$1,000, N=200 recruit / 160 analyzed, Prolific + jsPsych). It is the single missing anchor for the whole 051–060 arc: it decides whether \"embeddings don't bind roles\" is a deviation from human similarity or a faithful model of its casual regime. Everything else in the arc is now bottlenecked on that anchor, not on more encoder cells."
  },
  {
   "n": "061",
   "b": "G",
   "name": "Case-marking languages",
   "v": "signal",
   "star": 1,
   "br": 0.154,
   "one": "The first order-invariant role binding of the entire program appeared here — German 0.668 and Japanese 0.658 on the strict primary cell. Row 062's fresh-vocabulary replication then rewrote the ranking: Japanese held (0.696), German did not (0.551).",
   "method": "Battery-style certified probes on ~1500 templated transitives per language (German, Japanese, Turkish, English), each proposition in both word orders so surface position is uninformative about role by construction; case-morphology readability as the positive control.",
   "detail": "Case morphology is readable at ceiling (0.99–1.00) in every language, so the nulls are informative. Role still rides surface order universally — the memorization-friendly cross-order cell anti-transfers everywhere (0.02–0.21). But in the preregistered cross-order + lexical-holdout cell a weak order-invariant case→role code appears exactly where case is a free-standing token: German (der/den article) 0.668 BINDING_PRESENT, Japanese (が/を particle) 0.658 just short of the bar, Turkish (bound -I suffix) 0.413, English (no case) 0.520. Honest caveats: the German CI-lo clears 0.6 by 0.008, the companion cross-all cell disagrees in sign, and the readout is linear-only — a breaker pass is required before promotion. The morpheme-separability gradient became a first-class hypothesis and was immediately stress-tested by row 062 — which replicated Japanese on a second disjoint lexicon (0.696) but NOT German (0.551): the German positive was lexicon-specific, and the binding thread now runs through Japanese particles.",
   "lane": "refuted",
   "note": "Campaign verdict was ★ signal (German 0.668 / Japanese 0.658). Consolidation H1 showed the cross-lexical case→role cell is an encoder-invisible-label confound; retired as a binding assay.",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow, breaker-first). 1. Breaker on German before any promotion: MLP readout; more orders (German OVS variants, scrambled subordinate clauses); does the signal survive a null where case markers are swapped to break der↔den? Is 0.668 an artifact of the article being a separable adjacent token (bag-of-words \"den+Noun\")? → feeds 062 (crosslingual-role-transfer), 073. 2. Morpheme-separability hypothesis as a first-class claim: predict binding strength from how free-standing the case expone"
  },
  {
   "n": "062",
   "b": "G",
   "name": "Cross-lingual role transfer",
   "v": "twist",
   "star": 1,
   "br": 0.163,
   "one": "SONAR's one vocabulary-general role code (Japanese, replicated at 0.696 on a fresh lexicon) does NOT transfer to other languages — and German's 061 positive fails fresh-vocabulary replication (0.551). Binding is language-local in z.",
   "method": "A translation-parallel 4×4 transfer matrix: role probes trained on English z, tested zero-shot on German/Japanese/Turkish translations of held-out propositions — 6000 sentences, role ⊥ order exact in every language, concept-aligned focal-swap labels; retrieval P@1 certifies the cross-lingual alignment.",
   "detail": "The preregistered en→X transfer cells came back INSTRUMENT_FAILURE with a precise diagnosis: the power gate was certified in the wrong vocabulary regime (within-vocab the same cell reads 0.99–1.00; en↔X retrieval P@1 is 0.88–1.00, so encoder and alignment are fine) — a new instrument lesson now in the protocol: certify power gates in the same vocab regime as the cell they gate. The two real yields: (1) Japanese native cross-order + lexical-holdout binding replicates and strengthens on a second disjoint lexicon, 0.696 [0.635, 0.751], while German's 061 headline drops to 0.551 [0.478, 0.624] — lexicon-specific, not a stable code; the separability gradient reorders to particle > article ≈ suffix ≈ none. (2) The Japanese code is language-local: jpn→eng/deu/tur transfer sits at 0.445–0.451. Language identity itself is just the per-language mean offset (lang-ID probe 1.000 raw → 0.273 after centering), and centering shifts transfer by exactly 0.0000. The row's actual transfer question stays open pending a redesigned vocab-general cell (swap-pair differences).",
   "lane": "refuted",
   "note": "Campaign verdict was ★ twist (Japanese 0.696 replicated on a fresh lexicon). H1: a third disjoint lexicon gives 0.451 (chance); particle-swap does not invert the probe. Artifact, not binding.",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (two narrow threads). 1. Transfer-cell redesign that can extrapolate: score RELATIVE codes instead of focal-canonicalized absolutes — e.g. probe on swap-pair differences z(AB)−z(BA) (label = which of the two orders is agent-first for the SAME noun pair), which is vocab-general by construction; then rerun the crosslingual matrix. This is the fix that lets the row's actual question be answered. 2. Japanese is now the binding thread: 0.696 across two disjoint lexicons is the strongest order-"
  },
  {
   "n": "063",
   "b": "G",
   "name": "The capacity tax",
   "v": "twist",
   "star": 0,
   "br": 0.154,
   "one": "Languages pay a LEVEL tax, not a knee tax: round-trip fidelity ranges from 89.7 (English) down to ~35 (Chinese/Japanese) at every length, but the capacity knee sits at ~2 sentences of content everywhere — and the language offset is not load-bearing for the decoder.",
   "method": "Parallel FLORES concatenations (1–8 sentences) across six languages, decoded on all three GPUs in language shards; knee criterion frozen in prereg; wrong-language-token decode and offset-centering cells close the 046/062 mean-offset arc on the decode side.",
   "detail": "The informative miss (P2, the one failed prediction): no language's token-space knee comes early — German and Arabic knees actually sit LATER in token space because their tokenizer inflation is capacity-neutral. Capacity is content-bound: roughly two FLORES sentences fit everywhere, with a real ~25% content deficit for Chinese/Japanese/Turkish. The fidelity LEVELS differ dramatically and reproduce 046's FVU ordering as an all-lengths penalty (Turkish is the clean witness at 59.8; the CJK levels are partly a chrF-script artifact, flagged honestly). The offset cells are decisive: decoding with the wrong language token yields clean translation (the decoder reads language from z, not the token — 53–67 chrF-vs-English), centering z to the English mean is free at one sentence and actually HELPS past the knee (+3.7 to +6.6 chrF), and centered z still decodes in-language at ≤3.4 cost. Language identity consumes essentially no decode-relevant budget. Ran in 9.3 minutes with a 3-GPU shard; Brier 0.154; sharpens row 064 — if the offset is removable, is it additively steerable?",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow). 1. Row 064 (language-vector) is now sharpened: the offset is removal-safe and removal-HELPS near the knee — test the reverse direction (adding μ_L − μ_eng to an English z: does it translate? at what fidelity cost vs token-switch translation?). 2. Script-fair fidelity metric (word/morpheme-level or punctuation-normalized) to de-confound the CJK level tax; cheap re-analysis of the saved decodes. 3. The \"centering frees capacity past the knee\" effect (+5 chrF for deu/tur/jpn) as a "
  },
  {
   "n": "064",
   "b": "G",
   "name": "The language vector",
   "v": "null",
   "star": 0,
   "br": 0.21,
   "one": "Translation is NOT a constant offset and the language vector is causally near-inert: v_lang explains only 9–13% of per-sentence translation displacement, steering flips the output language 0% of the time, and a plain decoder-token switch already delivers 80–88% of the translation ceiling.",
   "method": "Out-of-sample language vectors (FLORES dev means, evaluated on devtest), steering decodes at α ∈ {0.5…2} under both decoder tokens across five languages on a 3-GPU shard, against the decisive no-steering baseline of 063's wrong-token decode.",
   "detail": "The refinement of the mean-offset arc: the language vector is real, tiny (18–29% relative norm), and hyper-stable — the training-split mean aligns with the eval-split mean displacement at cosine 0.99, and no learnable constant does meaningfully better. But per-sentence it is drowned (residual ≈ 3× the vector's own norm), so 'translation = z + v' fails as a per-sentence model. Causally, the decoder token owns language: with the English token, no amount of steering (α up to 2) flips a single output, and with the target token, steering shifts quality by at most ±1.8 chrF over just switching the token. Even at α=2 nothing breaks down — the manifold is robust (037's certificate holding up). The midpoint is winner-take-all, never code-switched, handing row 065 its sharpened question. A script-mixing detector bug (Japanese kana+CJK falsely read as 'mixed') was caught by its own gate and fixed analyze-side only, decodes untouched. Brier 0.210; run 5.7 minutes.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow). 1. What IS the 91% residual? It is sentence-specific but averages to ~0: test whether it is (i) encoder noise (re-encode paraphrases), (ii) content-language interaction (probe residual for POS/morphology), or (iii) chrF-invisible register/style. 2. 065 midpoint tie-in: the no-code-switching winner-take-all here says decoder output language is discrete in the token — 065 should test WITHIN-z mixtures (interpolate z_eng↔z_deu of the SAME sentence, fixed token) instead of adding v."
  },
  {
   "n": "065",
   "b": "G",
   "name": "Code-switching monolingualized",
   "v": "twist",
   "star": 0,
   "br": 0.22,
   "one": "The matrix language owns a mixed sentence (one embedded word moves z by ~2% of the between-language displacement), interpolating between translations has NO code-switched region at any point, and the round-trip actively monolingualizes — insertions get translated into the decoder token's language.",
   "method": "2700 code-switched stimuli (three languages × three patterns: word insertion, clause switch, matrix flip) built by Dice-lexicon alignment over FLORES parallel pairs, honestly labeled lexical code-switching; placement geometry, 18 round-trip cells, and a same-sentence interpolation sweep sharded across three GPUs.",
   "detail": "Placement is matrix-owned to an extreme degree (projection t ≈ 0.02–0.03 for single insertions), clause switches land mid-segment in projection but 1.1–1.4× off the segment — a new content point, echoing 064's finding that displacement is mostly idiosyncratic — and nothing is off-manifold. The decoder token wins output language in all 18 cells with no capacity collapse (a single-word switch costs 3.3–4.2 chrF, ≈0 against fair translation anchors), with one genuine leak channel: clause-level switches under the English token emit 13–36% mixed output — the only place mixedness survives, and the source of both prediction misses (mixed input leaks more than the winner-take-all prior allowed; Brier 0.220). The interpolation cell is the cleanest: the English token yields English even at t=1.0 on the far endpoint — token dominance is total on-segment — while content slides smoothly and the midpoint decodes better than the far end. Closes block G. One watcher-rule slip corrected mid-row; harvest completed in-session.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow). 1. The p2 leak channel: what exactly survives in the 36%-mixed clause-switch decodes (function words? seam-local material?) — the only place SONAR emits mixed text; cheap re-analysis of saved decodes. 2. Encoder-token dose on mixed input: cos(mat,emb) 0.60–0.85 says the source token matters ~10× more for mixed than pure input — measure properly with monolingual wrong-token baselines (one encode pass). 3. Preservation gradient deu>tur>jpn (script distance): test with Latin-script"
  },
  {
   "n": "066",
   "b": "H",
   "name": "The bits budget",
   "v": "twist",
   "star": 1,
   "br": 0.295,
   "one": "One SONAR vector carries ~180–195 bits per sentence in EVERY language — Japanese's terrible round-trip fidelity nearly vanishes in bits (163 vs English 182): the information is in z, the free-running decoder just can't surface it. Specific information caps at ~0.45 bits per dimension.",
   "method": "Teacher-forced SONAR-decoder likelihoods against a mean-z reference with identical tokenization (GPT-2 rejected for the tokenizer confound), certified by a pad-consistency gate at 5.6e-5 nats, a shuffled-z null, and a positive control; English/German/Japanese across six length bins.",
   "detail": "The keystone quantitative anchor for the capacity block, with an honest calibration stumble. The preregistered information curve never saturates — but the shuffled-z null grows with length too (mismatched z still 'explains' generic English structure), and the corrected specific-bits measure (conditional minus shuffled) caps cleanly at ~463/485/393 bits ≈ 0.45 bits/dim, plateauing around 4 FLORES sentences. That correction is post-hoc, so three predictions were scored as the misses they were (Brier 0.295, worst of the campaign, one shared cause: the frozen measure conflated specific with generic bits). What survives regardless: the bits budget is quasi-equal across languages (0.79–1.18× English), reframing 063's level tax as a DECODE problem rather than an encoding one — a beam-search rescue of Japanese is now an obvious follow-up — and z's information is front-loaded (2.2× more bits per token in the first decile) but only 1.52× concentrated in content words: z genuinely predicts structure too. Run: 3.7 minutes, entirely on reused machinery from rows 024 and 063.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow). 1. Prereg the specific-bits ladder properly: random non-adjacent cross-domain mismatched z, item-level pairing, all 6 langs — freeze the ceiling + knee criteria on THAT curve. 2. \"Bits present, decode can't surface\": beam/sampling/constrained decode on jpn near the knee (ties 026-decoding-strategy) — can better search recover the chrF the bits say is there? 3. Connect the ~460-bit ceiling to 045's k-atom curve / 028 SAE decomposition: bits-per-atom accounting."
  },
  {
   "n": "067",
   "b": "H",
   "name": "The dimension ladder",
   "v": "twist",
   "star": 0,
   "br": 0.222,
   "one": "Capacity scales with bottleneck dimension up to the architecture's rank-256 ceiling and saturates exactly there — specific bits climb 110 → 319 → 404 across d_z 16→64→256, while the d_z=1024 reparameterization placebo is dead flat (knee excess 0.35, within the seed gap of 0.37).",
   "method": "Three full-budget rungs (d_z 16, 64, 1024) trained in parallel on the ladder family with the existing d=256 runs as seed anchors — after the relaunch manager's audit caught that the encoder mean-pools to width 256, making the originally-planned 4096 rung a rank artifact and converting 1024 into an explicit placebo.",
   "detail": "The row's letter-verdict fired through a degenerate statistic and is flagged as such: the frozen criterion reads 'objective-limited' only because the d_z=16 model is so bad it fails its own quality anchor (chrF 28 at eight tokens), which inflates its relative knee and makes the knee curve non-monotone. Scored as frozen (Brier 0.222, the two misses both traceable to that degeneracy), with the weight of evidence stated plainly: capacity-limited up to the rank ceiling — the post-hoc absolute knee is cleanly monotone (18.9 → 32.2 → 36.3), bits saturate exactly at 256, and the placebo confirms nothing above the rank ceiling adds anything. One honest deflation: dz1024's 0.39 bits per raw dimension landing near SONAR's 0.45 is coincidence, not constant — bits per dimension falls 6.9 → 5.0 → 1.6 across the ladder. Follow-up flagged cheap and precise: absolute-knee primary, two intermediate rungs, and a width-widened control to separate objective from architecture above 256.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (cheap). (a) Freeze the absolute-τ knee (or a bits-demand knee) as the primary and add d_z ∈ {32, 128} rungs (~3.4 GPU-h) to localize the saturation point of absolute fidelity between 64 and 256; (b) a d_model-widened control (rank ceiling moved to 512) would separate objective from architecture above 256 — the one question this design provably cannot answer."
  },
  {
   "n": "068",
   "b": "H",
   "name": "The budget is in bits",
   "v": "signal",
   "star": 1,
   "br": 0.224,
   "one": "The capacity knee is denominated in BITS, not tokens: across natural tiers the bits-at-knee is constant to 1.08× (352/327/347) while random text — the one genuinely high-perplexity tier — knees at HALF the token length of predictable text, exactly the leftward shift a bits-budget predicts.",
   "method": "Length-matched English at four predictability tiers (TinyStories / news / PubMed+legalese / random content words) × seven length bins, with GPT-2 as the external perplexity instrument and the 063 knee + 066 bits machinery reused; three-GPU tier sharding, 7.4-minute run.",
   "detail": "The confirmation the block's theory needed, plus a finding hiding in a failed gate: technical text is NOT high-perplexity — GPT-2 finds PubMed abstracts and legalese formulaic (only 0.70 bits/token above TinyStories, failing the frozen 1.5-bit separation gate). That's why natural token-knees barely spread (83/73/71): bits per token is nearly flat across natural registers, and the real perplexity axis only exists at the artificial ceiling — where the knee halves (41 vs 83 tokens) on cue. This cleanly deconfounds 028's length↔entropy correlation: at fixed length, only genuine per-token surprise moves the knee. The specific-bits plateau reproduces 066's ~460-bit ceiling on fully independent stimuli, and the past-knee failure mode on technical text is 022-style fluent confabulation (invented statistics, re-expanded acronyms), not omission. Scored honestly at Brier 0.224 with two gate failures owned — one of which IS the perplexity finding. Follow-up: a natural high-perplexity tier (code, math, dense named entities).",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow). 1. Add a REAL high-perplexity NATURAL tier (code, math notation, dense named-entity text, or non-English transliterated) to get natural per-token separation ≥1.5 bits and score P4 cleanly on non-artificial text — the RAND result predicts a leftward natural knee too. 2. Fitted-changepoint knee + bootstrap CIs on the chrF curves (frozen-criterion knee is coarse); regress knee_tok on measured rate across all 4 tiers (slope ≈ −budget/rate²). 3. Codex-judge the fabrication-vs-omissio"
  },
  {
   "n": "069",
   "b": "H",
   "name": "Conjunction is subadditive",
   "v": "signal",
   "star": 0,
   "br": 0.13,
   "one": "Storing 'A and B' always costs less than A plus B — even unrelated clauses compress ~8%, paraphrase pairs compress 28%, and when demand exceeds the ~460-bit ceiling the shortfall splits evenly across both clauses: graceful degradation, not clause dropout.",
   "method": "Five relatedness tiers (unrelated → related → back-translation paraphrase → verbatim-self → over-budget long pairs) × four encoding cells, with the validated bits machinery, span-split accounting, a cross-carry meter, and per-clause decode recall under clause-order swap; 3.8-minute three-GPU run.",
   "detail": "The best-calibrated row of the campaign (all five predictions true, Brier 0.130) and a tidy set of laws. The subadditivity ratio orders exactly as frozen (0.924 unrelated > 0.907 related > 0.725 paraphrase > 0.612 self) — topicality buys almost nothing, true redundancy compresses hard, and the connective itself costs ~6 bits. The cross-carry cell doubles as a clean shared-information meter: a vector for A carries −2 bits of an unrelated B, 69% of a paraphrased B, 100% of an identical B. The ~460-bit ceiling reproduces for the third independent time (446 vs 463/476), and the overflow behavior is the finding: both clauses degrade equally rather than one being dropped. One exploratory gem: positional interference is capacity-gated — below the knee, clause position doesn't matter; past it, the first clause gains a +12.6-point recall advantage (swap-invariant), meaning 066's front-loading switches on only under budget pressure. Ties to 033's operator algebra flagged for the composition block.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow). 1. Relatedness as a CONTINUUM: regress per-pair R on chrF(A,B)/embedding-sim across many intermediate levels — is there a sharp redundancy threshold or smooth exchange rate between shared bits and stored bits? 2. Capacity-gated position effect dose-response: sweep conj length through the knee and watch the first-clause advantage switch on (ties 066d/068; clean causal handle on front-loading). 3. Operator cost: swap \", and\" for \"but/or/;/because\" (ties 033 composition operators) "
  },
  {
   "n": "070",
   "b": "H",
   "name": "Numbers don't cliff",
   "v": "twist",
   "star": 0,
   "br": 0.195,
   "one": "Random numbers survive to 12 digits intact in a short sentence (exact-match ≥0.96) — a 12-digit number is only ~40 bits, trivially under the ~460-bit budget. Digits aren't fragile; the cliff is purely capacity pressure, appearing only near the knee (exact drops to 0.31).",
   "method": "A digit-count ladder (1–12) crossed with precision, format, and context load, scored for exact match, edit distance, and leading-digits-correct under a frozen error taxonomy, plus teacher-forced bits on numeric versus non-numeric spans.",
   "detail": "Three predictions missed and cohere into one clean revision: numeric fragility is not intrinsic, it is capacity-driven. There is no digit cliff in short context (integers exact 1.00 through five digits, ≥0.96 at twelve), the cliff appears only under length load (near-knee exact 0.90→0.31 across the ladder, a 37-point short-to-near-knee drop at eight digits), failures are fluent magnitude and rounding errors that preserve leading digits rather than garble, and numeric span-bits grow linearly with no saturation and without starving other spans. Two counterintuitive misses: number-WORDS survive worse than digits (−29 points), and long numbers don't cannibalize the sentence's other content. The prior manager's untested code carried three crash bugs (a dedup infinite loop when only 8 one-digit values exist, a singleton-partner assert, a set-not-serializable error) — all traced and fixed before launch, a good argument for the smoke-first discipline. Brier 0.195; 3-minute three-GPU run.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow). 1. Length dose-response through the knee at fixed D: sweep context 32→144 tok and watch the D=8/12 survival curve collapse — locate the number-fidelity knee vs the chrF knee (ties 068/069 capacity-gating; is digit loss the *first* thing to go as bits run out?). 2. Digit-position error profile: the leading-digit-preserving / tail-corrupting pattern suggests a positional fidelity gradient inside the number — measure per-digit-position exact rate (are units-place digits lost first?"
  },
  {
   "n": "071",
   "b": "H",
   "name": "The entity ceiling",
   "v": "twist",
   "star": 0,
   "br": 0.33,
   "one": "About three distinct rare entities survive a round-trip at fixed length — but it's capacity, not slots: give the sentence more length and it sustains five or six. Each rare entity costs 4–6× a number, and the first is bit-protected while later ones pay.",
   "method": "Random rare named entities (median GPT-2 rarity 11.7 bits/token) packed at counts 1–8, in a length-matched regime (count varies at ~constant length) versus a natural regime (length grows), scored per-entity for survival and failure mode with teacher-forced per-entity bits.",
   "detail": "The row's worst calibration (Brier 0.330, four predictions missed) but a coherent capacity story. There is a real ceiling — about three entities survive exact at fixed length — yet it isn't a fixed slot count: the natural regime's extra ~30 tokens buy ~1.8 more surviving entities, the same ~460-bit budget seen five times now. Rare entities are expensive (53–68 bits each, 4–6× a single number from 070), and the subadditivity mirrors 069: the first entity's bits stay flat across load while later entities and the filler get sacrificed first (filler bits collapse 215→33). Who-dies-first is capacity-gated front-loading, not rarest-first (rarity of dropped ≈ rarity of survived), with the last slots collapsing and merges spiking only at the highest count. Failures are fluent and diffuse — a neutral judge on ambiguous cases found zero true drops and zero confabulations, all present-but-altered, so true survival is if anything higher than the rule-based score. Follow-up: scale the matched length to separate ceiling from budget.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow, not a new row) (1) push L* higher (80/120 tok) to trace how the matched count-ceiling scales with budget — does ~3 rise linearly with bits like 070's I_spec? (2) matched cells with entity sentence at FIXED position + filler varied, to cleanly separate length-load from entity-count; (3) mixed-rarity items (famous + rare in one z) to re-test rarest-first with real rarity variance (here all ~12 bits, low variance → the null is under-powered); (4) merge-mechanism probe — are two→one "
  },
  {
   "n": "072",
   "b": "H",
   "name": "What gets deleted first",
   "v": "twist",
   "star": 1,
   "br": 0.395,
   "one": "Pushed past the knee, SONAR deletes the DIRECT OBJECT first and keeps time and quantity last — the reverse of gist-over-detail. The predicate skeleton is NOT preserved as a unit: its object collapses into a repeated placeholder while the subject survives.",
   "method": "Six independently-scorable semantic roles (time, agent, action, quantity, patient, place) with rarity- and length-matched single-token fillers, on a demand ladder of 1–6 concatenated facts spanning below to well past the knee, scored per role with teacher-forced per-span bits and a rarity/length OLS control.",
   "detail": "The capstone that maps the bits budget onto meaning — and refutes the intuitive hypothesis (all six predictions reversed, Brier 0.395, the campaign's worst, but cohering into a cleaner law than the prereg). Observed deletion order is patient → agent ≈ place → action → quantity → time: the core skeleton survives WORSE than the adjuncts (0.202 vs 0.319). The decode mechanism is vivid — past the knee, distinct object nouns all collapse into one repeated placeholder (the slot is kept, the content overwritten). One robust structural law survives every control: subject ≫ object at matched rarity and length (0.249 vs 0.055), generalizing the front-loading of 069/071 to argument structure. And the deepest twist: bit-allocation ANTI-predicts survival (Spearman −0.37) — SONAR spends the most bits on the rare entities it still loses and the fewest on the annihilated patient. Allocation tracks entity cost, not preservation. Closes block H: the ~460-bit budget resolves into a priority map that keeps who and when, and sacrifices what-was-acted-on first.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow) (1) Separate object-role from medial-position: put the patient sentence-initial (passive / OSV templates) and re-measure — is it the *object relation* or the *buried position* that dooms it? (2) Formal codex neutral judge (~100) on ACTION-paraphrase and PATIENT-merge calls to tighten the lower bounds. (3) Push the same 6-role ladder with a bit-budget x-axis (not K) to place each role's half-survival demand on the common 460-bit scale. (4) Object-collapse mechanism: is the repeate"
  },
  {
   "n": "073",
   "b": "I",
   "name": "When the order code forms",
   "v": "null",
   "star": 0,
   "br": 0.276,
   "one": "SONAR's surface-order code and its anti-transfer signature form gradually in mid-training (onset ~11% of budget, saturated by ~74%) — not an early cheap heuristic, not a late abrupt phase transition, and later than the dictionary atoms crystallize.",
   "method": "The certified binding battery replayed across 18 ladder checkpoints spanning two seeds and two corruption arms, tracking the surface-order cell and the role anti-transfer cell against training step, with the instrument reproducing the documented baseline to four decimals before the sweep.",
   "detail": "The row imported 048's 'early and front-loaded' prior for atom crystallization and the data rejected it (three of five predictions missed, Brier 0.276 — an honest miss with clean science underneath). The order code is a mid-training, gradual phenomenon: at 5% of budget the surface cell is still at chance (0.52), onset arrives around step 4000, and it saturates near step 26000. Two mechanistic findings sharpen it: the surface code and its anti-transfer signature are locked equal-and-opposite at every milestone (they form at the same time — roles ride position the moment position becomes readable, not in a later second step), and both track reconstruction val_f1 near-linearly, so the anti-transferring order code is a byproduct of reconstruction improvement rather than a separately-learned heuristic. Both seeds and both arms agree. Opens block I on the first real training-time trajectory of the campaign's founding binding result.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (modest) A cheap retrain of A_D (the exact anti-transfer organism) with log-spaced milestone ckpts through 11%→100% (~1 GPU-h) would (a) remove the A_P90 arm caveat and (b) resolve whether the mid-training rise has any fine abrupt structure hidden in A_D's coarse tail. The locked surfX↔roleXflip co-movement is a clean handle for a causal test: ablate the linear surface-position direction at each milestone and check whether role within-ceiling survives (does role readout depend on the posi"
  },
  {
   "n": "074",
   "b": "I",
   "name": "Grokking: none",
   "v": "null",
   "star": 0,
   "br": 0.12,
   "one": "15,000 epochs of over-training — 5× the standard budget — induce ZERO delayed emergence: role abstraction stays at chance at every one of 15 checkpoints, the order code freezes early and weak, and validation peaks then declines. Compute alone buys no abstraction.",
   "method": "One small rung over-trained on a memorizable 6000-sentence set to full memorization, checkpointed log-spaced, with the binding battery swept across every checkpoint and a frozen grokking criterion (flat plateau then a late jump ≥0.10 with non-overlapping CIs).",
   "detail": "The cleanest calibrated null of block I — all five predictions correct, Brier 0.120. The role cell is dead flat at chance (0.488–0.499) from the untrained checkpoint through 15,151 epochs; the surface-order code forms early and weak (~0.53, a vestige of the low-diversity set versus 073's full-budget 0.706) and does not strengthen with 5× more epochs; validation reconstruction peaks at step 2000 then monotonically declines — an overfit signature, not grokking. The grokking criterion is met at no checkpoint for any metric. The scientific payoff is the pairing with 073: 073 had high lexical diversity and normal training time and grew the order code; 074 has low diversity and 5× the time and grows nothing. Together they implicate LEXICAL DIVERSITY, not compute, as the driver of the order and role codes — closing over-training time as a lever and echoing 006's phase transition. Two operational notes carried honestly: the run required a repair (v1 was killed at 4.5% by a mis-specified rising-val-CE watchdog that mistook the intended memorization signature for divergence; v2 removed it and ran clean to 100%), and the harvest reused 073's exact stimuli for comparability.",
   "lane": "t3",
   "note": "",
   "fu": "N",
   "fu_text": "Follow-up worth funding? N (for over-training); Y-modest (for the diversity axis)"
  },
  {
   "n": "075",
   "b": "I",
   "name": "Anatomy up to rotation",
   "v": "signal",
   "star": 1,
   "br": 0.104,
   "one": "Across 8 seeds, SONAR's anatomy is stable up to a global ROTATION of the z-basis: operator directions are seed-random (raw cross-seed cosine ≈ 0) but snap to 0.83 after a single orthogonal alignment, while the knee, order code, and reconstruction are near-identical (CV ≤ 0.03).",
   "method": "Six new full-budget seeds plus the two existing ones, each given the full anatomy eval — capacity knee, the 033/034 offset operators, the surface-order code and anti-transfer, and reconstruction — with operator directions compared both raw and after a single orthogonal Procrustes rotation to a reference seed.",
   "detail": "The definitive statement of a pattern the campaign kept brushing against (044's non-identifiable atoms, the 2-seed caveats of 048/067/073): what is real in this representation is relative geometry, and what is arbitrary is the absolute orientation of the z-basis. Every scalar invariant is seed-stable to a few percent — reconstruction CV 0.005, knee CV 0.025, surface-code CV 0.028, anti-transfer universal below 0.45 — and only one thing is idiosyncratic: the free per-seed rotation of the operator basis. Raw cross-seed operator cosine is ≈0 (each seed picks a random frame), but one Procrustes rotation recovers a median 0.83, and the recovery tracks operator quality (question 0.97, negation 0.93, the weak number operator only 0.59 — a flagged anomaly). All six predictions correct at Brier 0.104, the score reflecting honest under-confidence on the rotation story rather than any miss. This retires the small-n caveat that shadowed the geometry and operator rows: their structure is a stable property of data-plus-objective, seen through a seed-dependent rotation.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (modest) Two cheap extensions would sharpen this into a promotable claim: (1) repeat the seed atlas at one higher rung / larger d_z (~6 GPU-h) to test whether \"stable up to rotation\" is a property of this bottleneck or of ladder-TAEs generally — if the aligned-cosine recovery and the invariant list survive a capacity change, the anatomy claim strengthens sharply; (2) the number-operator anomaly (diff_align 0.35, aligned recovery only 0.59) is a clean handle on \"which linguistic operators "
  },
  {
   "n": "076",
   "b": "I",
   "name": "Curriculum splits the anatomy",
   "v": "twist",
   "star": 1,
   "br": 0.34,
   "one": "Training ORDER governs reconstruction but not structure: at fixed seed, monotone curricula wreck fidelity (val F1 0.11–0.52 vs 0.645 random, order-variance 104× the seed band) via end-of-training forgetting — yet the surface and relational codes are order-robust (within 2× seed).",
   "method": "Five presentation orders of ONE fixed token multiset (two reshuffles, short→long, long→short, common→rare) at fixed seed, with identical multiset hashes verified so only order differs, each given the full 075 anatomy eval; the reconstruction and structural invariants compared against 075's seed-variance band.",
   "detail": "The row reverses its own path-independent hypothesis for half the anatomy and confirms it for the other half — the interesting split. Reconstruction is strongly path-dependent (order-CV of val F1 is 0.48, about 104× the 0.005 seed band; knee likewise), and the mechanism is recency/catastrophic forgetting: long→short catastrophically forgets long sentences (per-length-bin F1 collapses from 0.46 to 0.0003), short→long forgets short, common→rare degrades broadly. But the surface-order code, its anti-transfer, and the operator basis are all order-robust within 2× the seed band — so 075's cross-seed rotation is init-driven, not order-driven. Two random reshuffles stay inside the seed band, so it is specifically structured monotone curricula, not order per se, that break fidelity. Two honesty notes carried in the writeup: the long→short arm was first killed by the same mis-specified watchdog as 074 (removed, re-run clean to exhaustion, confirming a false abort), and the aggregation script mechanically printed a misleading 'path-independent / Brier 0.173' because its sanity gate had excluded exactly the three collapsed curricula — the agent re-scored honestly over all five arms (Brier 0.340). Refines the block synthesis: diversity builds the relational code (074), order governs reconstruction fidelity (076), but the relational code once formed is order-robust.",
   "lane": "hardened",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y-modest. The reconstruction path-dependence is a clean, mechanistic recency/forgetting result that a 1-GPU-hour follow-up could sharpen: (a) mid-vs-final checkpoint anatomy for a curriculum arm (does the *relational* code peak-and-hold while reconstruction peaks-and-forgets? the best-f1 milestones suggest yes); (b) a replay/interleave control to confirm the effect is terminal-recency, not curriculum per se; (c) does a length curriculum with a *balanced* final phase recover val_f1 to the 0."
  },
  {
   "n": "077",
   "b": "I",
   "name": "Objective hysteresis",
   "v": "twist",
   "star": 0,
   "br": 0.421,
   "one": "Switching the training objective mid-stream reveals a split: reconstruction follows the LAST objective (recency), but the surface-order code is imprinted by the FIRST objective and never overwritten — a formed code sticks even when the objective that formed it is replaced.",
   "method": "Four conditions at fixed seed and matched budget with a single continuous learning rate — DAE-only, paraphrase-only, DAE→paraphrase, paraphrase→DAE — each given the full anatomy eval, with a memory-of-first index m per invariant (0 = pure recency, 1 = full first-objective memory) scored against the seed and order bands.",
   "detail": "The richest result of block I, and its worst calibration (all five predictions missed, Brier 0.421 — the surface code was predicted convergent when it is in fact first-objective-imprinted, and reconstruction-recency was under-credited by a razor-thin band). Reconstruction is recency-dominant: switching to DAE recovers 71% of fidelity, switching to paraphrase collapses 83% toward paraphrase-only (a mild asymmetry, more first-objective memory when ending on DAE). But the surface-order code has a memory-of-first index above 1.0 — it splits cleanly by which objective came FIRST (0.71 for DAE-first vs 0.61 for paraphrase-first) despite identical total DAE exposure, ~6× the seed band. Operators stay path-robust up to a rotation (raw cross-condition cosine 0.42, Procrustes-aligned 0.86, matching 075). This is 076's 'relational code is order-robust' seen from the other side: 076 couldn't detect the imprint because both its orders shared one objective, while 077 varied the first objective and exposed it. One operational note: the run wrote a FALSE failure sentinel from a trivial np.eye bug in the aggregation script — all data was intact, fixed and re-aggregated in minutes. Closes block I.",
   "lane": "hardened",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? YES (narrow). The surface-code first-objective imprint (surfX m>1, ‖z‖ m≈0.7) is the surprising, block-I-enriching result and deserves a 2-seed × 2-switch-fraction confirmation plus a layer/step trace of WHEN the surface code freezes (ties to 073's \"forms mid-training\"). The recency-of-reconstruction result is already well-supported (076+077) and does not need more runs."
  },
  {
   "n": "078",
   "b": "J",
   "name": "The operator zoo",
   "v": "signal",
   "star": 1,
   "br": 0.125,
   "one": "The real boundary isn't grammar-vs-semantics: closed-class MARKER swaps all linearize perfectly (before/after, above/below, in/out, near/far, bigger/smaller — success 1.00), while ARGUMENT swaps hit the exact voice binding wall (0/74). A linear offset can substitute a word; it cannot reverse who-relates-to-whom.",
   "method": "Eleven SONAR offset operators fit and tested on held-out lexically-disjoint minimal pairs — two grammatical controls, five closed-class relational markers, three argument-reversal swaps, and a causal reframe — each judged for decode success, invertibility, collateral damage, and a linear-vs-MLP comparison.",
   "detail": "The result that reframes 033's operator boundary. 033 had said grammatical transforms linearize but sentiment and entities don't; 078 shows the true axis is closed-class marker substitution versus argument binding. All five relational markers behave exactly like negation — clean linear offsets, ~1.00 success, fully invertible, minimal collateral — so spatial, temporal, and comparative RELATIONS are linearly manipulable in z as long as the manipulation is a word swap. But argument reversal (making X relate to Y instead of Y to X) scores 0 of 74, the same wall voice hit in 033 and role-swap hit across the binding block: z carries no transferable linear operator for reversing bound roles. An MLP never beats the linear offset on any transform, so where structure exists it is genuinely linear. The causal reframe (because↔so, a clause reorder) also fails to linearize (0.36), consistent — reordering is binding, not marking. All five predictions correct, Brier 0.125 (pure under-confidence). Opens block J by mapping exactly which relations the operator algebra can and cannot reach.",
   "lane": "hardened",
   "note": "",
   "fu": "?",
   "fu_text": "Follow-up: Y (modest). 1. Composition across relation classes — does offset_temporal_marker ∘ offset_vertical apply both relation flips additively (as 033's tense∘number did)? Tests whether relational markers are commuting operators or interfere. 2. A FIXED-pair argument swap — 033-entity was null because generic; a fixed A↔B operand pair with a fixed marker might reveal whether the binding wall is about *generality* or about *role reorganization per se*. Sharpens the binding-block claim. 3. causal_reframe decompos"
  },
  {
   "n": "079",
   "b": "J",
   "name": "Operators compose",
   "v": "signal",
   "star": 0,
   "br": 0.139,
   "one": "The linearizing operators form a real vector algebra: summing two single-operator directions equals the directly-fitted double transform (mean additivity 0.982, compose-minus-direct gap exactly 0.000), it works across families, and it commutes perfectly.",
   "method": "Six operator pairs — grammatical, cross-family (vertical marker × tense), and a non-additive control — each fit as v(A), v(B), and v(A∘B) directly, then compared on additivity cosine AND end-to-end decode success of the summed versus directly-fitted offset, with a sequential order-invariance test.",
   "detail": "033 showed tense∘number composes; 079 generalizes it into a clean algebraic statement. For every linearizing pair, applying v(A)+v(B) to a held-out embedding decodes the exact double transform as well as the purpose-fit v(A∘B) — the compose-minus-direct gap is zero to three decimals — and the two application orders are identical (order-invariance asymmetry 0.000). It even holds cross-family: the spatial 'vertical' marker composes with grammatical tense at additivity 0.996, success 1.00. The control is the methodological gem: spatial-swap × tense fails composition unambiguously in DECODE (0.00 success while the target was reachable at ceiling 1.00), yet its additivity cosine is a degenerate 0.999 — because spatial-swap's offset is near-null (the binding wall from 078), summing it changes nothing, so the cosine looks perfect. The failure is legible only in decode success: cosine additivity is necessary but not sufficient for working composition. The single missed prediction (Brier 0.139) is purely that the frozen P5 form required the control to also fail the cosine clause, which the degeneracy prevented — the control did fail composition where it counts. z's relations, where they linearize, are a genuine commutative vector space.",
   "lane": "hardened",
   "note": "",
   "fu": "?",
   "fu_text": "Follow-up: Y (modest). 1. Norm-normalized additivity metric — replace raw cos(v(A)+v(B),v(AB)) with a metric that is NOT degenerate when a constituent is null (e.g. require both diff_align_A and diff_align_B ≥ threshold before scoring additivity, or report the projection of v(AB) onto span{v(A),v(B)} with per-operand coefficients). This would let a single metric flag the control instead of needing the decode clause. Directly fixes the P5 form. 2. Three-way composition — does v(A)+v(B)+v(C) (e.g. negation × tense × "
  },
  {
   "n": "080",
   "b": "J",
   "name": "Steering is causal",
   "v": "signal",
   "star": 1,
   "br": 0.158,
   "one": "The operator directions don't just describe attribute geometry — they install it: adding α·v steers negation, tense, number, and a spatial marker from 0 to ~1.0 success by α=1, with ZERO off-target collateral, perfect invertibility, and a norm-matched random push completely inert.",
   "method": "Preregistered dose-response — decode z_base + α·v across α ∈ {−1…2} for four validated operators on held-out sentences, with per-α attribute readout, cross-attribute specificity, manifold-distance tracking, an α=0 identity anchor, and a norm-matched random-direction null.",
   "detail": "The causal payoff of the operator arc, and a clean one (five of six predictions correct, Brier 0.158). Every operator shows a sharp threshold-then-plateau dose-response (≈0 below α=0.5, ~1.0 by α=1), cosine to the true target peaking at α≈1 (0.97–0.995). Specificity is perfect: off-target flip rate is 0.00 for all four — steering negation flips only polarity, so the collateral-damage worry from the antipode and norm-scale rows does not fire. Inversion is perfect (−v undoes at α=−1, success 1.00, extending 078's marker invertibility to the grammatical operators), and the random-direction control is inert at every α, certifying these directions are special rather than generic large-norm pushes. The one miss is the interesting part: 034 predicted over-steer garble at α=2, but there was zero garble anywhere on the grid — on clean templated stimuli the operators steer without breaking fluency, so the off-manifold break-point seen in 034's natural text and 038's antipode is stimulus-complexity-gated, not a property of the direction itself. A readout-hygiene catch: SONAR decodes markers via synonyms (below→'under'), which a literal extractor mis-scored — fixed to the semantic class before the run. This turns the campaign's correlational operator geometry into a controllable interface.",
   "lane": "hardened",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y — natural-sentence dose-response (where the over-steer break should reappear, per 034) + push α past 2 to localize the fluency break-point + steer a CLOSED-CLASS marker on natural text. The causal claim is now clean at T3; a natural-text replication with the codex fluency gate would be the promotion path above T3."
  },
  {
   "n": "081",
   "b": "J",
   "name": "When operators install",
   "v": "twist",
   "star": 0,
   "br": 0.255,
   "one": "Operators have two separable substrates: the offset DIRECTION is present at initialization (a token-embedding fact, negation cos 0.93 and vertical 0.999 at step 0), while CAUSAL usability is learned, decoder-gated, and installs early and abruptly (step 2000–4000) — in a strict order, with the tense operator never installing at all.",
   "method": "The 080 steering machinery replayed across 18 ladder checkpoints for three operators, tracking both correlational offset-fit quality and causal α=1 steering success versus training step, using each checkpoint's own encoder and decoder, against final-model, untrained, and random-direction controls.",
   "detail": "Closes block J with a dissociation that explains the whole arc. The linear operator direction is nearly free — it exists at initialization because it is a fact about token embeddings and pooling, not something training discovers (which is why one prediction, that the untrained model steers at zero, missed). What training installs is causal usability, and it is gated by the decoder: steering only works once the decoder comes online, appearing early and abruptly (5–11% of budget, earlier than 073's mid-training surface code), in the strict order negation → vertical → tense, consistent across seeds and arms. And tense never installs: the decoder can render past tense (ceiling 0.95) and the direction weakly exists (0.52), but causal steering stays at 0.05 at every checkpoint — the same weakly-linearizing operator 078 flagged, now shown to be causally non-installable in time as well as geometry. So the binding wall (078's argument swaps) and the tense causal-null are one boundary seen from two angles. Brier 0.255. The block's lesson: a 'linear operator' in z is really a decoder capability, present in direction from the start but usable only once the decoder learns to read it.",
   "lane": "hardened",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (modest). The sharp result — causal installability is decoder-gated and tense never installs — invites: (1) does a stronger decoder (SONAR-scale ladder or more dec_layers) rescue tense's causal steerability, or is tense's linear offset fundamentally non-causal (probing the 078 binding wall from the time axis)? (2) a finer log-spaced A_D milestone retrain to pin the decoder-onset step exactly and test whether negation/vertical install at the SAME decoder-competence threshold (ceiling≈0.5) "
  },
  {
   "n": "082",
   "b": "K",
   "name": "The cosine gate's blind spot",
   "v": "twist",
   "star": 1,
   "br": 0.334,
   "one": "A cosine-similarity monitor on z cannot both admit paraphrases and reject meaning flips: a fluent negation costs less cosine (0.069) than a meaning-preserving synonym swap, so no threshold separates them — and closing the hole entirely requires τ≈0.98, which rejects nearly everything.",
   "method": "A defensive sensitivity analysis of a cosine-monitor gate — using the validated operators as principled meaning-flip generators and paraphrases as meaning-preserving controls, measuring the cosine cost of each semantic change against a paraphrase floor across acceptance thresholds.",
   "detail": "Opens the safety block by quantifying the blind spot the fabrication rows exposed. The cosine gate is blind exactly where it matters least intuitively and most practically: closed-class logical and grammatical flips are cheap in cosine (negation 0.069, tense 0.040, number 0.041 — the ~1-bit operators, cosine 0.93–0.96) while argument and entity reversals are expensive (entity swap 0.176, role swap 0.161, cosine 0.82–0.84 — the binding wall again). The load-bearing fact: a meaning-flipping negation sits at higher cosine (min 0.908) than a meaning-preserving synonym paraphrase (mean 0.906), so no single threshold both admits paraphrases and catches negations. Pooled miss rate is 0.64 at τ=0.90, 0.34 at τ=0.95, and only reaches 0.00 at τ≈0.98 — near-identity, useless as a monitor. Worst calibration of the safety block so far (Brier 0.334): the prereg guessed role-swap would be the near-free blind spot, but it's backwards — argument binding is costly to move, and the real hole is the logical operators. The misses tie the result tighter to the bits (066/069) and binding-wall (078) findings than the prereg did. Ran defensively throughout, neutral language, in about a minute.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow): (1) codex neutral-judge cross-check to promote above T3; (2) natural (non-templated) sentences — does the negation/entity cost ordering hold off-manifold?; (3) a *logical-flip-aware* auxiliary probe (negation/quantifier direction) as the missing orthogonal check the cosine gate needs."
  },
  {
   "n": "083",
   "b": "K",
   "name": "Covert capacity, and its catch",
   "v": "twist",
   "star": 0,
   "br": 0.207,
   "one": "A z-vector can hide ~103 bits per sentence that slip past BOTH a cosine monitor and a decode-parse monitor undetected (recovered losslessly) — an order of magnitude more than expected — but those payloads are NOT invisible: a manifold-distance monitor catches the directional ones at AUC 0.92–0.94 and a norm check catches the radial one at 0.998.",
   "method": "A defensive covert-channel characterization: encode payloads into candidate decode-inert, cosine-cheap carriers (near-null directions, the SAE residual, radial magnitude), measure how many bits survive both a cosine gate at τ=0.95 and an unchanged decode, then test whether a defender can detect the perturbation off-manifold.",
   "detail": "The constructive complement to 082's blind spot. Against cosine-plus-decode monitoring alone, the channel is large — ~103 bits ride in non-radial decode-inert directions plus ~3.6 in magnitude, 96% of payloads clearing both gates with bit-error-rate zero, roughly ten times the prereg's guess (one of two honest misses, Brier 0.207). Null and residual directions carry 4–5 bits per dimension. But the defensive payoff is the real result: these payloads are exactly what an off-manifold or norm monitor sees. Directional payloads push z off the real-embedding manifold (nearest-neighbor-cosine detector AUC 0.92–0.94), and the radial magnitude channel — invisible to a manifold check (it rides 036's decode-inert scaling) — is caught by a norm check at 0.998. So 082's missing orthogonal monitor is concrete: manifold-distance plus norm. Honest scoping in the writeup: this bounds the latent channel (a text channel's capacity through this mechanism is ~0 by construction). This row also carried a main-session process misjudgment — I wrongly re-dispatched a second manager thinking the first had stalled; the dedup fail-safe held, no duplicate run, and the original manager's harvest is the record.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow): (1) load the real w40 SAE and test the SAE-residual carrier specifically (does dictionary structure raise or lower detectability?); (2) natural (non-templated) sentences — does the ~100-bit capacity and the nn-cos AUC hold off-manifold?; (3) an *adaptive* payload that minimises off-manifold nn-cos deviation (project onto the data manifold's tangent) — the true worst-case for a manifold monitor, to size the residual undetectable capacity."
  },
  {
   "n": "084",
   "b": "K",
   "name": "Canaries survive retrieval",
   "v": "signal",
   "star": 0,
   "br": 0.207,
   "one": "Role structure survives a SONAR-RAG round-trip cleanly: a role-correct query retrieves the right proposition over its role-swapped twin 48/48 times, a pure in-store role-swap NEVER wins top-1 (false-match rate 0.000), and retrieved embeddings decode back to the exact canary.",
   "method": "A local retrieval pipeline over ~1600 propositions including 48 role-structured canaries and their role-swapped twins, queried by role-correct and role-swapped paraphrases plus exact-text and topic-only controls, with round-trip decode judged for role preservation.",
   "detail": "A constructive counterweight to the binding-block pessimism, and it resolves cleanly against the naive prior. Retrieval respects who-did-what: role-correct queries win 48/48 with a median cosine margin of +0.159, role-swapped queries symmetrically retrieve the twin, and round-trip role survival is perfect. Crucially the false-match rate is zero — a role-swap distractor does not win top-1 on the swap alone, which is a concrete lead for 085: any 'role-swap distractor wins retrieval' failure must come from an ADDITIONAL surface or topic advantage, not the role swap itself. The only near-tie is the topic-only query (twin-gap 0.038), confirming role identity is the genuine differentiator behind the +0.16 margin. This looks like it contradicts the binding results but doesn't: 082 already measured that a role swap costs ~3× the cosine of a paraphrase, so cosine retrieval CAN separate role-swap pairs even though a linear probe cannot abstract the role — decodability without abstraction, once more. Two honest misses (Brier 0.207) both from under-weighting that 082 cost. Feeds 085 directly.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow, feeds 085). The clean positive here sharpens 085: role-swap alone does not break retrieval, so 085 should test whether a distractor that is topic/surface-closer to the query BUT role-wrong can beat the role-correct canary — i.e. can surface similarity overpower the +0.16 role margin? Also: heavier/cross-lingual paraphrase queries and a natural-text canary corpus to see where the role margin finally collapses."
  },
  {
   "n": "085",
   "b": "K",
   "name": "One word breaks RAG",
   "v": "signal",
   "star": 1,
   "br": 0.099,
   "one": "A single shared surface word overturns SONAR's role-binding margin: it buys +0.123 cosine to a role-WRONG distractor, so ~2 shared words fully overpower the +0.159 role-correct margin — and when the distractor wins, downstream QA is wrong 100% of the time, returning the asker's own name as the answer.",
   "method": "A reliability demonstration building on 084's +0.16 margin: role-correct passages versus role-wrong distractors that add k of the query's topic words, sweeping k to find the flip point, with a surface-trusting QA reader measuring the downstream error when the distractor wins top-1.",
   "detail": "The campaign's best-calibrated row (all five predictions true, Brier 0.099) and its most concrete deployment warning. 084 established that a pure role swap never wins retrieval; 085 shows how cheaply that guarantee breaks — each shared content word adds +0.123 cosine to the wrong-role distractor, so the flip point is a median of ONE word (k=0 wins 0%, reproducing 084; k=1 flips 97.9%; k≥2 is 100%). The role signal is real but quantitatively fragile: ~2 shared words erase the entire binding margin. Downstream the failure is total — when the role-wrong passage wins, the QA reader is wrong 100% of the time, literally returning the asker's own name. An honest compounding finding: the verbose keyword query is itself a poor retriever (a topic-unrelated filler outranks the terse gold fact 65% of the time), so two RAG failure modes stack. This is the practical face of the whole binding story: SONAR distinguishes 'Alice paid Bob' from 'Bob paid Alice' geometrically, but the distinction is worth only about one keyword of surface overlap — far too little to survive a real retrieval corpus. Defensive fix flagged: an agent-consistency guard on the retrieved passage.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow). (1) Re-run with 084's tightly-matched paraphrase query as the incumbent to report the flip threshold against the full +0.159 role margin directly (predict ≈2 words). (2) Natural-corpus base rate: how often do real passages carry a role-wrong sentence with incidental surface overlap to the query? (3) The defensive fix: a role/agent-consistency check between query subject and retrieved-passage agent as the orthogonal guard the cosine retriever lacks (ties to 082's \"cosine needs a "
  },
  {
   "n": "086",
   "b": "K",
   "name": "The ensemble monitor",
   "v": "twist",
   "star": 0,
   "br": 0.182,
   "one": "An ensemble of six detectors catches all seven corruption types at AUC 1.000 (0% false positives) when it can insist on a tight re-encode — but that also rejects 82% of benign paraphrases; relax it to admit paraphrases and the blind spot returns, now a covert null-carrier payload that no geometric detector sees.",
   "method": "A six-component fusion monitor — cosine-to-reference, manifold distance, norm, decode round-trip, attribute-probe consistency, decode entropy — built from the campaign's findings and characterized by ROC against a labeled seven-type corruption battery, in both a tight-reference regime and a paraphrase-admitting regime.",
   "detail": "The defensive synthesis of block K, and its verdict is a genuine two-regime dichotomy (Brier 0.182, the misses tracing the regime split the prereg didn't anticipate). With a faithful reference in hand, the ensemble is perfect — AUC 1.000 on every corruption, beating the best single component (norm at 0.943) by +0.057 at zero clean false positives, and each corruption is caught by a DIFFERENT sole component (magnitude by norm alone, off-manifold by nearest-neighbor, covert payload by decode-consistency, negation by the probe, fabrication by decode-entropy) — a clean demonstration that the campaign's scattered detectors are jointly complete. But the realistic regime must admit benign paraphrases, and there 082's hole reopens: a re-encode floor tight enough to catch a negation also flags 82% of paraphrases, so once paraphrases are admitted the geometric detectors all fall to ≤0.64 on negation (the probe is the sole rescue at 0.92), and the residual blind spot is the covert payload (AUC 0.68) — a decode-preserving, cosine-cheap null-carrier that is indistinguishable from a paraphrase. The deployable lesson: SONAR-z monitoring is solvable when you have the source text to re-encode against, and hard exactly when you don't — the covert channel of 083 is the one thing that survives a paraphrase-tolerant monitor.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow): (1) tangent-adaptive covert payload (083 follow-up) vs the decode- consistency check — size the truly-undetectable capacity; (2) natural (non-templated) sentences — does the re-encode floor loosen enough that cos_ref stops dominating the primary?; (3) a learned (not prototype) logical probe to lift negation AUC above 0.85 in the paraphrase-admitting regime."
  },
  {
   "n": "087",
   "b": "K",
   "name": "Fail-closed decoding",
   "v": "twist",
   "star": 0,
   "br": 0.33,
   "one": "A density gate is a near-perfect fail-closed decoder against gross off-manifold fabrication (reject-ROC 1.000, keeps clean AND the faithful covert channel) — but it is blind to interpolation fabrication: a midpoint of two embeddings sits at clean-level density yet fabricates 92.5% of the time.",
   "method": "A reject-option decoder that abstains when nearest-neighbor density to a real-embedding bank falls below threshold, swept for the coverage-versus-fabrication tradeoff across a mix of clean sentences, antipodes, covert payloads, off-manifold noise, and interpolated midpoints, with fabrication judged by a condition-blind local judge.",
   "detail": "The constructive companion to 086, and it reframes the residual blind spot precisely. Against gross corruption the gate is excellent — off-manifold and antipode inputs separate from clean at reject-ROC 1.000, and at a sub-5%-fabrication operating point it rejects all gross fabrication while accepting every clean sentence and the faithful covert channel. So the covert channel is NOT the deployment problem — it decodes faithfully and the density gate correctly keeps it. The real problem is near-manifold interpolation fabrication: a 50/50 midpoint of two real embeddings sits at clean-level density (0.729 vs clean 0.730, reject-ROC 0.508 — chance) yet is judged fabricated 92.5% of the time, so on the full mix fabrication cannot be driven below ~33% at any useful coverage. This is the geometric dual of 064/065's finding that a midpoint is a new content point rather than an interpolation — the density of z carries no signal that a plausible-looking embedding was synthesized rather than encoded. Worst calibration of the block (Brier 0.330) from over-optimism the gate would broadly work, but the interpolation blind spot was correctly foreseen. Clean follow-up flagged: pairing density with round-trip consistency (which does separate interpolation) closes both doors.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? YES (small): pair the density gate with a round-trip-consistency gate and re-run the tradeoff — hypothesis is that density ∧ round-trip closes both the off-manifold AND the interpolation doors while still keeping clean+covert. - Caveats: equal 5-category test mix (population fab is a design choice; the density-ordering result is mix-robust but the absolute no-abstention rate is not). Simple templated clean stimuli (low clean-fab baseline). Single seed, single embedder (SONAR). nn-cos densit"
  },
  {
   "n": "088",
   "b": "K",
   "name": "Membership is memorization",
   "v": "null",
   "star": 0,
   "br": 0.088,
   "one": "An embedding does not inherently betray whether its sentence was in training: a normally-trained model leaks membership at AUC 0.546 (chance), an untrained model at 0.522 — the signal only appears (AUC 1.000) when the model has memorized, and it rides reconstruction fidelity.",
   "method": "A privacy audit run on ladder organisms where the training set is KNOWN, so membership is measured cleanly rather than guessed — reconstruction NLL and chrF, manifold density, and norm as classifier features across a memorized organism, a normally-trained one, and an untrained control, with an approximate SONAR proxy tiered honestly.",
   "detail": "The block's best calibration (all five predictions true, Brier 0.088) and a reassuring privacy result made rigorous by design: rather than lean on SONAR's unknowable training set, it uses the ladder-TAE where membership is exact. Leakage is a memorization phenomenon, not an intrinsic property of z. The over-trained organism reveals membership perfectly (member reconstruction NLL 0.00, chrF 99.8 versus non-member 17.85 / 21) — but that is the pathological memorized regime from 074. A normally-trained model (~1 epoch) sits at AUC 0.546, and the untrained checkpoint at 0.522 (chance) is the decisive negative control proving the signal is trained in, not architectural. The SONAR proxy reaches AUC 0.975 but a model-free surface-anomaly classifier matches it at 0.976 — so that number is 100% typicality, not membership, and the writeup tiers it as such rather than claiming leakage. The clean takeaway: a SONAR embedding betrays training membership only to the extent the model memorized, which for normal training is negligible — leakage tracks exactly the reconstruction-fidelity gap from the capacity block.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow). 1. Memorization dose-response: sweep train-set size / epochs from the STD (0.55) to the MEM (1.0) regime to map AUC vs the 066 recon-fidelity gap — quantify \"how much memorization ⇒ how much leakage.\" Cheap (forward-only, reuse this harness). 2. Two-bank density to test the manifold-density membership hypothesis (031/083) without the bank-distribution artifact. 3. SONAR proper needs a *real* member/non-member corpus (e.g. a known NLLB bitext slice vs a post-cutoff/held-out slice"
  },
  {
   "n": "089",
   "b": "K",
   "name": "Style-transparent, identity-opaque",
   "v": "signal",
   "star": 0,
   "br": 0.186,
   "one": "z is a style encoder: register (0.998), topic (0.963), sentiment (0.903), and formality (0.873) are all highly linearly readable — but demographic identity is not, collapsing to chance once topic is partialled out, and z leaks identity LESS than the raw text would.",
   "method": "Linear probes for seven attributes from public labeled corpora — register, topic, sentiment, formality, acceptability, and blog-author gender and age — each against a bag-of-words baseline, a norm-only control, a shuffled null, and a topic-confound partial-out.",
   "detail": "Closes block K with a clean privacy characterization: an embedding is style-transparent but identity-opaque. The strongly-readable attributes are exactly the style and form dimensions the campaign found z encodes best (register near-perfect, topic and sentiment high), while apparent demographic signal is topic confound — partialling out topic collapses age from 0.717 to chance (0.472) and gender to 0.545. Crucially z is no worse than the text itself: a bag-of-words baseline actually leaks topic and demographics slightly MORE than z does, so sharing an embedding is not a privacy downgrade from sharing the sentence. One honest miss (age at 0.717 marginally over the frozen ≤0.70 bound, scored FALSE; Brier 0.186), though the topic-confound control confirms even that is not real demographic style. The deployment guidance is concrete: treat a shared z as safe for identity and membership but fully exposing of content, style, and any memorized or canaried text — and defend with the latent monitor and fail-closed decoder, never with cosine alone.",
   "lane": "t3",
   "note": "",
   "fu": "N",
   "fu_text": "Follow-up worth funding? (narrow) Y (1) Nonlinear demographic probe on topic-residualized z (does the *linear* null survive an MLP?). (2) A true authorship-attribution (many-author) arm to test identity, not just demographics. (3) Cross-encoder generality (does the style-transparent/identity-opaque profile hold for other sentence encoders?)."
  },
  {
   "n": "090",
   "b": "L",
   "name": "The probe-power kit",
   "v": "signal",
   "star": 0,
   "br": 0.115,
   "one": "A reusable, validated tool that packages the campaign's most important instrument lesson — certify probe power with a planted signal before trusting a null — with a PASS/FAIL certificate that catches the exact uncertified-probe trap that produced the 051 and 062 false nulls.",
   "method": "A library that injects a label-correlated direction at a controllable Cohen's d, runs the battery's own probe verbatim, and returns a minimum-detectable-effect and a pass/fail power certificate, validated against known-powered, known-underpowered, noise, shuffle-null, and real-SONAR anchors.",
   "detail": "Opens the instruments block by turning a hard-won discipline into infrastructure. The kit reproduces the binding battery's own linear AUC to four decimals — proof its probe is byte-identical to the one every earlier row used — and its validation is decisive: the known-powered regime certifies PASS with a minimum-detectable-effect of exactly 3.0 across all seeds (zero spread), the 051 small-sample regime correctly FAILS (can't recover even a strong plant), a plant on pure noise reads chance, and the shuffle-null lands in [0.45, 0.55]. It also demonstrates that power is relative — the same representation passes at effect size 3 but fails at 1 — which is precisely why a bare null is uninterpretable. The one missed prediction is honest and instructive: the manager bet SONAR's within-family role signal would certify above 0.9, but the kit measured the true 0.77 exactly — a moderate effect, not a strong one, so the prediction was miscalibrated, not the tool. Brier 0.115. Any future probe-versus-representation study can now import it and gate its nulls, so the 051/062 failure cannot recur silently.",
   "lane": "shipped",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (as infrastructure, not a study). The kit is now the standing pre-flight for every future probe-vs-representation row: call ppk.certify(Z, y, target_effect, readout, groups) and only report a null if it PASSes. Natural extensions (cheap): (1) an mlp-readout certificate pass for reps with nonlinear-only signal; (2) a helper that maps a real intrinsic AUC back to an equivalent Cohen's d so callers can state \"our null rules out effects ≥ d*\"; (3) wire it as an assertion into the battery's ve"
  },
  {
   "n": "091",
   "b": "L",
   "name": "The canonicalization checker",
   "v": "signal",
   "star": 0,
   "br": 0.005,
   "one": "A property-based checker that certifies a labeled stimulus set's slot and label conventions before a probe trusts them — and it catches exactly the real bugs rows 017 and 020 hit, each injected bug flipping only its target property with no false alarms.",
   "method": "A pure-standard-library checker of five properties (focal-swap consistency, label balance, slot-index alignment, lexical-holdout disjointness, and no-leakage), validated on the clean battery across all four tasks and on deliberately broken copies that reproduce the 017 and 020 bugs.",
   "detail": "The second instrument, packaging the campaign's focal-swap canonicalization lesson. Its validation is airtight: the clean battery certifies all-PASS on every task, and each deliberately injected bug flips only its target property — a prop-imbalance reproduces 017 and trips only the label-balance check, a slot off-by-one reproduces 020 and trips only the alignment check, a planted leakage marker trips only no-leakage, a non-disjoint holdout trips only disjointness. No false alarm even under a valid-but-different focal convention. On real data the swap-pair symmetry drives maximum per-token leakage to exactly 0.000, so any planted marker is caught with enormous margin. Best-calibrated row of the campaign at Brier 0.005 (all seven predictions correct — appropriate for a deterministic tool). Now importable from the shared library alongside the power kit, so the two bug classes that silently corrupted binding probes early in the program are mechanically excluded going forward.",
   "lane": "shipped",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow) Wire canon_check.certify() as a pre-flight gate into the binding battery itself (load_task could assert it), and extend the item-schema adapter to the ladder/SONAR retained-state probe rows so every future binding probe self-certifies its labels."
  },
  {
   "n": "092",
   "b": "L",
   "name": "The norm linter",
   "v": "signal",
   "star": 0,
   "br": 0.031,
   "one": "A pre-flight linter for any difference-of-means or offset construction that flags magnitude confounds — and building it surfaced a genuine refinement: norm confounds come in TWO modes, artifact (dies under cosine) and confound (norm-defined but survives cosine), needing different fixes.",
   "method": "Four checks — norm distribution and norm-only separability, the 036 raw-versus-cosine test, top-PC anisotropy, and effect-versus-norm correlation — with cross-fit AUC to guard the high-dimension regime, validated against the real 036 corpus, synthetic magnitude fakes, and operator-faithful directions.",
   "detail": "The third instrument, packaging the norm-profile discipline. Its validation flags the 036 magnitude artifact and passes genuine operator directions, 13 of 13 self-tests green. The honest and valuable part is a mid-build discovery: the prereg assumed the 036 high/low-norm split would flag because cosine kills it — but on real data that split SURVIVES cosine (raw AUC 0.994 → 0.996), because norm carries a genuine specificity direction, which is 036's own finding. So the raw-versus-cosine check correctly did NOT flag it, and the manager added a norm-only-separability gate to catch the distinct second mode: a delta that is norm-DEFINED rather than a magnitude artifact, needing decomposition rather than cosine. The linter now distinguishes the two, each validated independently. That prediction is satisfied by the improved design rather than the frozen one, disclosed plainly (Brier 0.031). Flagged to wire in as a pre-flight to every future offset row (034/046/062/063/064/080). Three of the campaign's four instrument lessons are now enforced tooling.",
   "lane": "shipped",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Weak-Y (narrow, cheap). - Re-encode ~40 real 033/078 operator before/after pairs (GPU, seconds) → run the linter on a real operator delta as the PASS anchor (closes the one synthetic gap). - Wire norm_linter.lint_delta as a pre-flight assert into future offset/operator rows (034/046/062/063/064/080) — it is a 2-second import norm_linter call."
  },
  {
   "n": "093",
   "b": "L",
   "name": "Adversarial stimuli evolution",
   "v": "null",
   "star": 0,
   "br": 0.238,
   "one": "A codex loop evolving stimuli to break the binding probe found ZERO genuine breaks in 24 candidates: every well-formed, plausible construction leaves the verdict flat, and the only 'breaks' are artifacts the canonicalization checker correctly rejects.",
   "method": "A generate-evaluate-select loop where a local model proposes stimulus templates, a harness realizes them with guaranteed swap-pairs and balance, and each candidate is scored on well-formedness (the 091 checker), plausibility, and probe stress on real SONAR embeddings, against an artifact-injection control.",
   "detail": "An adversarial robustness check on the campaign's own instruments, and a reassuring negative. Across three rounds and 24 candidates, every one was well-formed (per-token leakage exactly 0.000 — the alphabetically-first-filler canonicalization is orthogonal to any construction or adverb the model can add), and the 11 that were also plausible left the probe flat on SONAR: z-bag role-blindness stays in [0.498, 0.502], no cross-construction cell exceeds the 0.70 falsification bar. The only things that break the probe are the injected artifacts — a role-correlated token, a slot off-by-one, a broken swap-pair — each caught by the 091 checker on its correct property. So a 'break' that fails canonicalization is correctly an artifact, not a probe weakness, and the probe's verdicts survive adversarial template evolution. Honest scoping (the source of the P1 miss, Brier 0.238): the attack surface was constructions and templates only — the model was not given the filler-pool or lexical-diversity levers (006's axis), which is the one untested place a plausible break might still live. The 11-family output becomes a hardened cross-construction generalization battery for the benchmark rather than a probe-breaker set.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow). Give codex the filler-pool + lexical-diversity levers (the 006 axis) as the attack surface and re-run the loop with the full battery + CIs: that is the one place a plausible+well-formed z_bag/STIMULI_INVALID break might actually exist. Absent that, the template-level conclusion (probe + canon_check gate robust to adversarial construction evolution) is a solid T3 instrument-validation result."
  },
  {
   "n": "094",
   "b": "L",
   "name": "The prereg engine",
   "v": "signal",
   "star": 0,
   "br": 0.003,
   "one": "The discipline the whole campaign ran on — frozen predictions, gates, verdict, Brier — extracted into a tested library that reproduces past rows' Brier scores exactly and makes cheating structurally impossible: a certificate hash rejects any post-hoc edit to the predictions.",
   "method": "A standard-library engine defining predictions and gates as frozen units, scoring per-prediction and mean Brier with the gate-fail-means-instrument-failure rule, and a sha256 certificate over the frozen prereg, validated by reproducing four past rows' published Brier scores and rejecting tamper attempts.",
   "detail": "The instrument that turns the campaign's method into a reusable, enforceable artifact. Validation is exact: it reproduces 069 (0.1295), 085 (0.099), 088 (0.088), and 039 (0.056) to within a ten-thousandth, hits the 0.0 and 0.25 anchors, routes a gate failure to INSTRUMENT_FAILURE, and — the honesty enforcement — rejects a post-hoc edit to any frozen prediction via the certificate hash, both for a live prereg and a saved one. It also enforces the coverage rule (you cannot quietly drop a prediction that came out wrong; the outcomes must cover exactly the frozen ids). 35 of 35 self-tests pass, and it was dogfooded — self-scored with itself at Brier 0.0034, all five predictions true. The three honesty rules the campaign followed by hand — score exactly as frozen, never drop a bad prediction, gates-fail-means-uninterpretable — are now code. Follow-up flagged: wire it into launch and harvest so every future row emits a frozen certificate at launch and auto-generates its Brier table at harvest, making the discipline mechanical rather than manual.",
   "lane": "shipped",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? (Y, narrow) Y — wire prereg_engine into the launch/harvest of future rows so the PREREG_LITE emits a PREREG.json (frozen certificate) at launch and RESULT.md's Brier table is generated by Verdict.brier_table() at harvest. Cheap, and it makes the \"score exactly as frozen\" rule mechanical rather than manual. Sibling of the 090/091/092 kits; block-L instrument suite now covers probe-power, canonicalization, norm-linting, and (this row) the prereg/Brier method itself."
  },
  {
   "n": "095",
   "b": "L",
   "name": "The Bayesian ledger",
   "v": "signal",
   "star": 0,
   "br": 0.042,
   "one": "An auditable posterior tracker that turns 95 scattered results into aggregate credences: no-linear-role-binding rises to 0.99, operators-compose to 0.96, the 460-bit capacity to 0.89 — while the genuinely mixed claims (multilingual binding, off-manifold fabrication) correctly stay near 0.5.",
   "method": "A log-odds accumulator where each core claim has a prior and each bearing row is evidence weighted by its direction, strength, and 094-Brier reliability, with likelihood ratios kept conservative and clamped for correlated single-model rows, validated by a shuffled-evidence null and a prior-sensitivity sweep.",
   "detail": "The campaign's aggregate self-assessment, made mechanical and honest. The ranked ledger reads the way the arc feels: the no-linear-binding claim is strongly supported (posterior 0.99, driven by the power-certified probe arc 001–018 with five families at chance), operator composition is high (0.96, from the causal, additive, decode-gated rows 078–080), and the ~460-bit capacity is high (0.89, from block H's five independent confirmations). Crucially the tool does NOT overclaim where the science is open: multilingual binding (the German-vs-Japanese replication split of 061/062) lands at 0.48 and off-manifold fabrication (087's near-manifold blind spot) at 0.44 — both correctly parked near their priors by genuine contradicting evidence. All five predictions true (Brier 0.042); the shuffled-evidence null regresses every claim to within 0.016 of its prior, and the top claims survive a prior sweep from 0.25 to 0.60. The honesty framing is explicit: this is bookkeeping of the campaign's own T3-exploratory evidence with conservative likelihood ratios and a hard clamp for correlated rows — 0.99 reads as 'strongly supported', not a literal probability. The whole campaign's conclusions, now in one auditable file.",
   "lane": "shipped",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? (Y — narrow) Y: (1) wire the ledger into harvest so each new row auto-appends its Evidence (row + Brier + one-line direction) and the posteriors update mechanically — the campaign's live scoreboard. (2) Replace analyst strength labels with a rule that reads effect size + gate outcome directly from out/results.json (removes the one subjective step). (3) A proper independence discount (down-weight correlated rows within a block) would let C1 report an honest sub-clamp posterior."
  },
  {
   "n": "096",
   "b": "L",
   "name": "Why bag codes win",
   "v": "twist",
   "star": 0,
   "br": 0.136,
   "one": "A toy mean-pooled autoencoder reproduces the whole binding story — bag-lookup beats abstract role below a critical vocabulary, abstraction emerges above it — but the numerical model FALSIFIES the predicted cause: the transition isn't set by data or capacity, it's set by the surviving order-channel's signal-to-noise.",
   "method": "A minimal formal model of two competing codes over mean-pooled (agent, patient) triples — memorize-per-content-bag versus read a weak order-residual filler-generally — with a derived description-length crossover, a numerical toy sweep over vocabulary, data budget, and bottleneck width, and an ablation of the residual channel.",
   "detail": "The explanatory heart of the campaign, and a model honest enough to break its own prediction. The mechanism is exactly right: mean-pooling destroys word order up to a weak residual g = β(agent − patient), and two codes compete — a bag-lookup that is perfect in-vocabulary but transfers at zero, versus a g-reader that generalizes. Below a critical vocabulary the bag basin is cheaper (predicting 001's failure and 006's near-zero novel-filler accuracy at 30 and 117 fillers); above it only the g-reader lowers loss (predicting 006's jump at 1000). The numerical toy reproduces 006's signature precisely — novel-filler accuracy rising 0.5→1.0 while same-vocabulary stays near 1.0 — and ablating g drops novel accuracy to chance, confirming the emergent rule really reads the surface-order residual. But the frozen √data-budget scaling is falsified: the critical vocabulary is flat in both data and capacity (64 across a 16× data range, ~45 across bottleneck widths) and moves only with the order-channel strength β. So the crossover is signal-to-noise-limited, not coverage- or capacity-limited — the mechanism and every qualitative signature survive, only the scaling variable was mis-called (Brier 0.136). This gives the binding failure a first-principles account: abstraction is withheld not because the model can't afford it but because the order signal that would teach it is too weak until vocabulary forces the issue.",
   "lane": "hardened",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Yes, conditionally. Corrected, falsifiable prediction for the real system: 006's transition location is governed by the strength of the residual order/position signal that survives pooling (β in the toy), and is roughly insensitive to both training-token count and bottleneck width — the opposite of a naive capacity story. Discriminating experiments: (i) a data sweep at fixed capacity should NOT move 006's knee (toy: T-independent); (ii) a bottleneck-width sweep (ties to 067) should also NOT"
  },
  {
   "n": "097",
   "b": "L",
   "name": "What survives pooling",
   "v": "signal",
   "star": 0,
   "br": 0.121,
   "one": "Formally, mean-pooling contextual states smuggles order through ONE channel: the bag reweighted by each token's average received attention — and word order survives only via the relative-position bias, whose antisymmetric part is the sole who-came-before-whom discriminator, exactly 096's β residual.",
   "method": "Mean-pooling analyzed as the Reynolds operator averaging over the symmetric group on positions, deriving the surviving function class for static versus contextual states, with a toy self-attention layer pooled over permutations of a fixed multiset to isolate the smuggling channel numerically.",
   "detail": "The formal companion to 096, and it identifies the exact channel. For static embeddings the pool is an exact symmetric function of the token multiset — order is destroyed to machine precision (dispersion 6e-16). For contextual states the pool is that bag PLUS a smuggling term: the bag reweighted by each token's average received attention. The sharp result is that content-only attention leaves those weights a function of the multiset alone, so order STILL dies — it survives only through the relative-position bias, and its antisymmetric part is the sole agent-before-patient discriminator, which is precisely 096's β residual seen from the architecture side. Numerically the toy confirms every piece: contextual pooling recovers order at AUC 1.0 where static sits at chance, a symmetric bias reads adjacency but not direction, the order subspace is low-rank (4 components), and — the 004/073 signature — order is recoverable per-instance and within a fixed pair but a single global order axis reads at chance, so there is no linear who-is-first direction. The one miss (Brier 0.121) is another mis-called variable, not a broken mechanism: the surviving/dying line is per-instance-recoverable versus content-independent-global-axis, revised honestly post-validation. Together 096 and 097 explain the binding failure from both sides: order is stored entangled with content in a weak, low-rank, position-bias channel — never as the abstract role variable a probe could read.",
   "lane": "hardened",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Yes, narrow. Cheap, sharp real-SONAR test of the two robust claims: (i) extract encoder contextual states (011–020 rows already did this), mean-pool, and show order recovery is per-instance yes / global linear axis no (the cross-pair AUC≈chance vs within-bag high contrast) — a direct check of the content-entanglement mechanism; (ii) confirm the surviving-order subspace is low-rank (top-few PCs of z−bag over shuffles capture the order variance) and small-amplitude, tying its strength to 096'"
  },
  {
   "n": "098",
   "b": "L",
   "name": "The knee from first principles",
   "v": "signal",
   "star": 0,
   "br": 0.084,
   "one": "Rate-distortion theory predicts the capacity knee with zero free parameters: one source rate (4.5 bits per token) and one channel capacity (460 bits) place all three measured knees — 2 sentences, ~70 tokens, and the mysterious '15.79' — on a single R(D) curve, each at its own distortion bar.",
   "method": "Deriving the knee as capacity over source rate from the measured 460-bit budget and corpus entropy rate, then reconciling the campaign's separate knee measurements (63's sentence knee, 66's bits knee, 68's token knee, and the ladder program's 15.79 figure) as points on one rate-distortion curve.",
   "detail": "The theory row that unifies the capacity block. The prediction with no free parameters lands within 16%: 1.99 sentences versus a measured 2.14, 80 tokens versus 70–83. The task's naive 460/4.5 ≈ 100-token estimate versus the measured ~70 is explained exactly by a distortion discount of 0.78 — the knee fires at ~0.8× hard capacity because fidelity tolerates some loss. And the '15.79' figure, traced conclusively, turns out to be the real SONAR knee measured in content words at a stricter recall-0.85 bar — so the three campaign knees are three distortion bars on ONE curve at a single source rate: recall (15.79 content words ≈ 190 bits ≈ 0.41× capacity), chrF (72 tokens, 358 bits, 0.78×), and bits-saturation (152 tokens, 460 bits). Cross-language it holds — ~2 sentences in English, German, and Japanese alike, content-bound and language-invariant. All predictions but one correct (Brier 0.084); the single miss was the sharpener, revealing that 15.79 content words is one FLORES sentence, not two, which then pinned it to the recall bar the token-unification predicts. The capacity knee is not an empirical quirk but rate-distortion with the numbers the campaign already measured.",
   "lane": "t3",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (narrow, cheap). 1. Compute δ(D) explicitly: derive the recall-0.85 and chrF-0.8× budgets from a distortion functional on the 066/068 I_spec curve, turning the empirical 0.41 / 0.78 into a predicted R(D). 2. Re-decode the anatomy capacity cell to get its true sentence length distribution (closes the P6 soft joint) and a full v2 CI/bimodality flag on 15.79 (still owed per the ladder prereg). 3. Regress knee_tok on measured rate across 068's four tiers (slope ≈ −C_D/r²) as a direct R(D) tes"
  },
  {
   "n": "099",
   "b": "L",
   "name": "The z-explorer",
   "v": "signal",
   "star": 0,
   "br": 0.035,
   "one": "A self-contained interactive artifact that lets anyone step through the campaign's five headline phenomena — operator steering, interpolation winner-take-all, capacity overload, fabrication with live monitor flags, and the binding demo — every decode a byte-for-byte recorded campaign output.",
   "method": "Five click-and-keyboard demos extracted verbatim from already-frozen result JSON of rows 080, 065, 071, 086, and 087, baked into a single CSP-safe HTML page with inline styles and embedded data, validated for decode-match, self-containment, and interactive rendering.",
   "detail": "The public-facing capstone of the instrument block, built entirely from recorded outputs so nothing is generated live or approximated. The five demos each tell one of the campaign's stories as a stepper: steering sweeps α to flip a sentence's polarity then over-steer into garble; interpolation snaps midpoints to one side rather than blending; the capacity ladder highlights named entities dropping green-to-red as the sentence overloads; the fabrication demo faithfully reproduces the monitor's real blind spot — the manifold flag catches an antipode but goes BLIND on an interpolation, where only round-trip consistency fires; and the binding demo shows a role-swap pair with near-identical embeddings that the decoder preserves but a linear probe reads at chance, the campaign's founding 'decode is not abstraction' in one screen. Every baked decode string matches its source-row JSON exactly (21 of 21), the page makes zero external calls, and a headless-browser check confirmed the full interaction. Brier 0.035. Now published as a live artifact — the campaign's findings made explorable.",
   "lane": "shipped",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y (low cost) — this is the campaign's public face; worth (a) precomputing a live-ish \"type your own sentence\" path if an in-browser SONAR shim ever exists, and (b) adding the 034 negation-operator and 083 stego demos. But as-is it already covers the five headline phenomena end-to-end."
  },
  {
   "n": "100",
   "b": "L",
   "name": "TAE-Bench release",
   "v": "signal",
   "star": 0,
   "br": 0.132,
   "one": "The campaign's reusable assets ship as one runnable, self-certifying benchmark: binding battery + five instrument kits + honesty gates + checkpoint manifest + ledger, with a single entry point that reproduces the flagship no-binding null on CPU, offline.",
   "method": "Packaged stimuli v2 (+093 v3 stress) with cached SONAR embeddings, the battery, kits 090/091/092/094/095 and GATES.md under tae-bench/; validated end-to-end with a mock-encoder negative control (gate correctly fires INSTRUMENT_FAILURE), canonicalization PASS on all four tasks, probe-power kit monotone with chance shuffle-null, all kit self-tests exit 0.",
   "detail": "CPU-only capstone. The mock run proves the pipeline refuses to certify a null it cannot trust; the real-SONAR run reproduces NO_BINDING_CONFIRMED. Not pushed to a public remote (campaign protocol: no git push).",
   "lane": "shipped",
   "note": "",
   "fu": "Y",
   "fu_text": "Follow-up worth funding? Y — (i) refactor the battery's per-cell readout to release memory (process isolation or explicit del + gc), enabling the full SONAR sweep; (ii) extend the --encoder hook to more models; (iii) promote the flagship null past T3 with an independent breaker pass."
  }
 ],
 "claims": [
  {
   "id": "C1",
   "name": "No linear role binding in pooled z",
   "post": 0.993,
   "conf": "HIGH",
   "rows": 15,
   "stage": "hardened",
   "breaker": "H1 (2026-08-14): English null survives on real SONAR with power certified (linear 0.509, MLP 0.495; planted d=1.0 → 0.973). Both contra rows (061/062) refuted.",
   "needs": "Formal promotion entry in CLAIMS_LEDGER (prereg + breaker already exist); ledger rerun with H1 as a support row."
  },
  {
   "id": "C3",
   "name": "Closed-class operators are linear, composable, causally steerable",
   "post": 0.955,
   "conf": "HIGH",
   "rows": 10,
   "stage": "hardened",
   "breaker": "H2: codex certified the steering core; garble-counting bug fixed (negation honest success 0.70 at α1, not 0.90); natural-text over-steer caught by rt_cos (AUC 0.845). latent_rewrite.py built.",
   "needs": "Scope statement in the paper (tense safe; negation narrow α window; vertical frame-bound). Multi-seed run on natural text."
  },
  {
   "id": "C2",
   "name": "~460-bit sentence-specific capacity, ~4-proposition knee",
   "post": 0.886,
   "conf": "HIGH",
   "rows": 8,
   "stage": "t3",
   "breaker": "none yet",
   "needs": "Freeze the 460 ceiling in a fresh prereg (066 was post-hoc); separate SONAR from ladder evidence; independent breaker."
  },
  {
   "id": "C9",
   "name": "z leaks propositional / sensitive content (RAG, canaries)",
   "post": 0.81,
   "conf": "MED",
   "rows": 4,
   "stage": "t3",
   "breaker": "none yet (H2 corrected the monitor choice: nn-cos does not transfer to natural text)",
   "needs": "Second embedder, second seed, non-templated corpus."
  },
  {
   "id": "C7",
   "name": "‖z‖ encodes length/specificity, not thematic semantics",
   "post": 0.69,
   "conf": "LOW",
   "rows": 4,
   "stage": "t3",
   "breaker": "none",
   "needs": "Decoder scale-invariance across a norm range; cosine-controlled density analysis frozen in a prereg."
  },
  {
   "id": "C6",
   "name": "SAE atoms semantic at the frequent core, seed-idiosyncratic tail",
   "post": 0.62,
   "conf": "LOW",
   "rows": 5,
   "stage": "t3",
   "breaker": "none",
   "needs": "Cross-seed stability at a matched frequency band; the 044 contradiction must be reconciled."
  },
  {
   "id": "C4",
   "name": "Order/role code forms mid-training (substrate-specific ontogeny)",
   "post": 0.568,
   "conf": "LOW",
   "rows": 6,
   "stage": "t3",
   "breaker": "none",
   "needs": "Ladder-only evidence; needs a SONAR-side checkpoint series, or reframing as three separate ontogenies (order code / atoms / operators)."
  },
  {
   "id": "C8",
   "name": "No universal crosslingual role code",
   "post": 0.484,
   "conf": "LOW",
   "rows": 2,
   "stage": "hardened-toward-null",
   "breaker": "H1 refuted the Japanese exception; the claim moves toward the null but the ledger has NOT been rerun.",
   "needs": "Mechanical ledger rerun with 061/062 demoted; one non-template Japanese/German stimulus set."
  },
  {
   "id": "C5",
   "name": "Fabrication is off-manifold and gate-catchable",
   "post": 0.436,
   "conf": "LOW",
   "rows": 2,
   "stage": "half-refuted",
   "breaker": "087: near-manifold interpolation fabrication is unrejectable (AUC 0.508). Claim only half-true.",
   "needs": "Rewrite as two claims (gross vs near-manifold); the near-manifold half is open."
  }
 ],
 "todo": [
  {
   "k": "100/100 rows run",
   "s": "done",
   "t": "Every row has PREREG_LITE.md + RESULT.md + a Brier score; campaign closed 2026-08-08."
  },
  {
   "k": "Consolidation H1–H3",
   "s": "done",
   "t": "All three hardening threads DONE 2026-08-14 with codex review; one real bug found and fixed in each of H2/H3, H1 crux confirmed."
  },
  {
   "k": "Paper draft",
   "s": "inprog",
   "t": "PAPER_DRAFT.md started 2026-09-06 from CAMPAIGN_FINAL + ledger + consolidation. Text drafted; figures not made; related work thin."
  },
  {
   "k": "Ledger rerun",
   "s": "todo",
   "t": "Rerun bayesian_ledger.py with H1/H2/H3 as support rows and 061/062 demoted contra→refuted (CONSOLIDATION.md names this as the clean next step)."
  },
  {
   "k": "Formal promotion",
   "s": "todo",
   "t": "No campaign claim has been formally promoted above T3 in CLAIMS_LEDGER.md. C1 is promotable (H1 breaker passed); the ledger entry has not been written."
  },
  {
   "k": "Figures",
   "s": "todo",
   "t": "No publication figures exist for the campaign (only the z-explorer artifact and status.html). Needs ~6: binding null + power curve, capacity knee vs R(D), operator algebra, fabrication ROC, ontogeny, ledger."
  },
  {
   "k": "Human calibration (060)",
   "s": "todo",
   "t": "Designed and proxy-piloted with an LLM panel; never run with humans."
  },
  {
   "k": "TAE-Bench public release",
   "s": "todo",
   "t": "Packaged and validated locally (row 100); not pushed to any public remote (protocol: no git push). Needs a repo, license, and a GPU smoke test on a fresh clone."
  },
  {
   "k": "Blocked rows",
   "s": "todo",
   "t": "009 (needs a binding teacher) and 051 (needs per-embedder battery recalibration) remain unresolved."
  },
  {
   "k": "Follow-up backlog",
   "s": "todo",
   "t": "63 rows flagged a follow-up worth funding; only the three consolidation threads have been executed. The rest are unfunded."
  }
 ],
 "claim_rows": {
  "C1-NO-LINEAR-BINDING": [
   [
    "018",
    "support"
   ],
   [
    "003",
    "support"
   ],
   [
    "017",
    "support"
   ],
   [
    "005",
    "support"
   ],
   [
    "059",
    "support"
   ],
   [
    "002",
    "support"
   ],
   [
    "016",
    "support"
   ],
   [
    "004",
    "support"
   ],
   [
    "014",
    "support"
   ],
   [
    "001",
    "support"
   ],
   [
    "006",
    "support"
   ],
   [
    "061",
    "contradict"
   ],
   [
    "062",
    "contradict"
   ],
   [
    "084",
    "contradict"
   ],
   [
    "051",
    "support"
   ]
  ],
  "C3-OPERATORS-COMPOSE": [
   [
    "078",
    "support"
   ],
   [
    "034",
    "support"
   ],
   [
    "079",
    "support"
   ],
   [
    "080",
    "support"
   ],
   [
    "033",
    "support"
   ],
   [
    "035",
    "support"
   ],
   [
    "081",
    "support"
   ],
   [
    "037",
    "support"
   ],
   [
    "076",
    "support"
   ],
   [
    "077",
    "support"
   ]
  ],
  "C2-CAPACITY-460BIT": [
   [
    "069",
    "support"
   ],
   [
    "068",
    "support"
   ],
   [
    "072",
    "support"
   ],
   [
    "066",
    "support"
   ],
   [
    "070",
    "support"
   ],
   [
    "071",
    "support"
   ],
   [
    "067",
    "support"
   ],
   [
    "063",
    "support"
   ]
  ],
  "C9-SAFETY-LEAK": [
   [
    "085",
    "support"
   ],
   [
    "086",
    "support"
   ],
   [
    "084",
    "support"
   ],
   [
    "087",
    "support"
   ]
  ],
  "C7-NORM-MAGNITUDE": [
   [
    "036",
    "support"
   ],
   [
    "037",
    "support"
   ],
   [
    "045",
    "support"
   ],
   [
    "028",
    "support"
   ]
  ],
  "C6-ATOMS-SEMANTIC": [
   [
    "046",
    "support"
   ],
   [
    "044",
    "contradict"
   ],
   [
    "049",
    "support"
   ],
   [
    "028",
    "support"
   ],
   [
    "045",
    "support"
   ]
  ],
  "C4-ORDER-CODE-MIDTRAIN": [
   [
    "074",
    "support"
   ],
   [
    "073",
    "support"
   ],
   [
    "048",
    "contradict"
   ],
   [
    "077",
    "support"
   ],
   [
    "076",
    "support"
   ],
   [
    "081",
    "contradict"
   ]
  ],
  "C8-MULTILINGUAL-BINDING-FAILS": [
   [
    "062",
    "support"
   ],
   [
    "061",
    "contradict"
   ]
  ],
  "C5-FABRICATION-OFFMANIFOLD": [
   [
    "087",
    "contradict"
   ],
   [
    "086",
    "support"
   ]
  ]
 },
 "meta": {
  "campaign_start": "2026-08-01",
  "campaign_end": "2026-08-08",
  "consolidation": "2026-08-14",
  "board_built": "2026-09-06"
 }
}