|
| 1 | +## 2026-08-11 — E-THE-DOCTRINE-DOC-EXISTED-AND-I-NEVER-READ-IT-1 |
| 2 | + |
| 3 | +**Status:** FINDING `[G]` (operator-directed; authority is |
| 4 | +`.claude/knowledge/helix-cartesian-vs-fisher2z.md`, in this repo, with a |
| 5 | +`READ BY:` header naming this exact kind of session). |
| 6 | + |
| 7 | +**Corrects E-A-CORRECTION-IS-A-CLAIM-AND-CARRIES-A-CLAIM-S-BURDEN-1 (below) — |
| 8 | +the third link in that same chain, and the entry it corrects is its own rule |
| 9 | +firing again.** The `Pair48` successor shape that entry recommends is |
| 10 | +**WITHDRAWN, not deferred.** Full regrade: |
| 11 | +`.claude/knowledge/weather-normalized-substrate.md` §12.12. |
| 12 | + |
| 13 | +**The doctrine doc for orientation codecs exists in `.claude/knowledge/`, its |
| 14 | +`READ BY:` header says *"ANY session that encodes/decodes/renders an |
| 15 | +orientation, normal, or direction"*, and the entire helix arc never opened it** — |
| 16 | +not before the design, not during the envelope audit, not through four |
| 17 | +successive corrections. Reading the primary source (`crates/helix/src/*.rs`) was |
| 18 | +mistaken for reading the doctrine. `residue.rs` states the byte layout |
| 19 | +truthfully; it does **not** say which field is metric and which is render, nor |
| 20 | +that the sign already completes the sphere. That is precisely what the knowledge |
| 21 | +doc carries, and what a `READ BY:` header is *for*. `CLAUDE.md` § *Consult, |
| 22 | +don't guess* already orders it: card → **knowledge doc** → board → *then* source. |
| 23 | + |
| 24 | +**What the doc settles, against the audit's inferences (the FACTS all stood; the |
| 25 | +INFERENCES were wrong):** |
| 26 | + |
| 27 | +1. **`Signed360` alone is a COMPLETE full-sphere direction** — *"you do NOT need |
| 28 | + a second 'pos' helix to complete it"* (`helix-cartesian-vs-fisher2z.md:77-82`); |
| 29 | + the sign partition is what makes it whole. Hence no pair lane, hence the |
| 30 | + withdrawal. |
| 31 | +2. **`ResidueEdge` / `rim` is the METRIC carrier, not a render input** — *"never |
| 32 | + run the rim's atanh/tanh to recover a direction"* (`:83-86`). Direction lives |
| 33 | + in `(polar, azimuth)`. The operator said this first: *"ResidueEdge is |
| 34 | + turbovec, nobody was asking you to use turbovec."* |
| 35 | +3. **The crate's *"no free 2-DOF direction codec"* means no *helper*, not no |
| 36 | + *capacity*.** `azimuth` is *"`n·φ mod 2π` mapped to `[0, 65536)` over the |
| 37 | + full 360°"* (`residue.rs:85`). What is genuinely absent is `from_normal`; |
| 38 | + encoding is a **nearest spherical-Fibonacci search** with a worked reference |
| 39 | + pair (`:90-93`, q2 `scratch-fma/helixbake`). |
| 40 | +4. **The metric hazard I "found" is crate-documented, not a discovery** — |
| 41 | + `distance_heuristic` names its own failure mode as *"the raw-azimuth 2π |
| 42 | + wrap"* and forbids it for CAKES bounds (`residue.rs:52-59`). The real shape |
| 43 | + is a **split, not a defect**: rim = L1-metric (`DistanceLut`, triangle |
| 44 | + inequality); azimuth = circular render carrier, deliberately not L1. My error |
| 45 | + was routing a bearing through the *metric* field, then reporting the |
| 46 | + consequence as a property of the codec. |
| 47 | + |
| 48 | +**Also settled — the name.** `helix360` **does not exist and never did** |
| 49 | +`[G-absence]`: pickaxe over full history (all refs + unreachable objects) returns |
| 50 | +12 blobs, all authored by that session, **zero deletions, zero blast radius**; |
| 51 | +ndarray and the `lance-graph2` backup carry none. The symbol is **`Signed360`**. |
| 52 | +A hunt for a deleted artifact that was only ever a mis-remembered name. |
| 53 | + |
| 54 | +**What still stands from the entry below:** the no-per-value-lane-reading-selector |
| 55 | +finding (`[G-absence]`, 15 hits / zero writers / zero decoders), the |
| 56 | +`Signed360::sign()` all-zero dormant-lane defect (still filed, still unfixed), |
| 57 | +and — sharpened by this entry — its own **rule**. |
| 58 | + |
| 59 | +**Rule (unchanged, now three links deep):** a correction is a claim and carries a |
| 60 | +claim's burden. **Extension:** before correcting a domain claim, check whether |
| 61 | +the domain already has a `READ BY:` doc. If it does, that doc is a **mandatory |
| 62 | +read, not a suggestion** — four corrections written without it were four |
| 63 | +corrections written blind. |
| 64 | + |
| 65 | +## 2026-08-11 — E-THE-TRANSFORM-MUST-MATCH-THE-DISTRIBUTION-SHAPE-1 |
| 66 | + |
| 67 | +**Status:** FINDING `[H]` (measured on real ERA5, one timestep — re-runnable at |
| 68 | +`probes/weather-p1/`; needs a second variable + season before `[G]`). |
| 69 | + |
| 70 | +**Fisher-Z DEGRADES a weather-anomaly palette.** Real ERA5 `2m_temperature`, |
| 71 | +1,038,240 gridpoints, both paths into the same 256 buckets over the same |
| 72 | +0.4–99.6 percentile window: **linear MAE 0.0684 K, 0 empty buckets, 115.7 |
| 73 | +effective buckets** vs **Fisher-Z MAE 0.2168 K, 76 empty buckets, 28.1 effective |
| 74 | +buckets** — 3.2× worse error, 228 of 256 buckets burned. |
| 75 | + |
| 76 | +**Mechanism, measured on this sample:** `arctanh` is ≈identity near 0 and |
| 77 | +explodes near ±1, so it moves resolution *toward the bounds*. The tested ERA5 |
| 78 | +`2m_temperature` anomaly (one timestep, 2021-06-15 12:00 UTC) has 77 % of mass |
| 79 | +inside |s|<0.25 (**excess** kurtosis +3.30, mass in the MIDDLE); a |
| 80 | +correlation-like control `tanh(N(0,1.5))` has 32.7 % beyond 0.9 (mass at the |
| 81 | +BOUNDS). **CONJECTURE `[S]`, generalizing beyond the tested sample: the |
| 82 | +transform must match the input distribution's shape.** The *measured* claim is |
| 83 | +narrower — for THIS field at THIS timestep, Fisher-Z costs address economy. |
| 84 | +Promotion to a general rule needs the second variable and season named below. |
| 85 | + |
| 86 | +**Terms:** *effective buckets* = `exp(Shannon entropy)` of the 256-bin occupancy |
| 87 | +histogram (how many addresses actually carry data); *drift score* = `max|occ−μ|/σ` |
| 88 | +under a multinomial null, exactly as `crates/helix/src/quantize.rs:119-146`. Fisher-Z is right for correlation-like inputs and for |
| 89 | +helix's own `r = √u` (equal-area placement concentrates toward the rim BY |
| 90 | +CONSTRUCTION) — nothing about the helix crate is impugned. What is falsified is |
| 91 | +generalizing its transform to bell-shaped geophysical fields, which is exactly |
| 92 | +what `weather-normalized-substrate.md` §1.2 did. "One shared transform ⇒ one |
| 93 | +comparable substrate" does not survive; the shared palette + LUT may. |
| 94 | + |
| 95 | +Also measured: ARCO-ERA5 has **no `wind_speed` variable** (exhaustive, all 52 |
| 96 | +arrays), so §6.5's Jensen-gap measurement cannot have come from the Phase-A |
| 97 | +store; blosc is variable-dependent — **1.794×** (`2m_temperature`), **1.771×** |
| 98 | +(`2m_dewpoint_temperature`), **1.248×** (`10m_u_component_of_wind`), each one |
| 99 | +chunk `[1,721,1440]` at t=547476, blosc/lz4 as stored — not one 1.27×; |
| 100 | +the BF16 anomaly gain reproduces in DIRECTION only (74.9× under a zonal-mean |
| 101 | +climatology proxy vs the doc's unreproduced 97×). |
| 102 | + |
| 103 | +## 2026-08-11 — E-A-CORRECTION-IS-A-CLAIM-AND-CARRIES-A-CLAIM-S-BURDEN-1 |
| 104 | + |
| 105 | +**Status:** FINDING `[G]` on the code facts and on its own rule; **its `Pair48` |
| 106 | +successor recommendation is WITHDRAWN and several of its INFERENCES are |
| 107 | +regraded** — see `E-THE-DOCTRINE-DOC-EXISTED-AND-I-NEVER-READ-IT-1` (top of |
| 108 | +file) and `weather-normalized-substrate.md` §12.12. Read that first. |
| 109 | + |
| 110 | +**A correction written in the same breath as the error it replaces has had no |
| 111 | +independent gate — and one of ours was wrong.** The helix arc's ledger entry C2 |
| 112 | +recorded rejecting a 12-byte `FacetSchema::Pair48` for wind from/to, on the |
| 113 | +ground that "the 6 B `HelixResidue` lane is already 2×24 in/out by |
| 114 | +construction", citing `canonical_node.rs:963`. That line is a **comment** |
| 115 | +stating a **width identity (48 = 2×24) plus coverage**, never a structural |
| 116 | +in/out claim. **The rejected 12-byte `Pair48` was the structurally correct |
| 117 | +answer** — C2 replaced a right answer with a wrong one and banked the wrong one |
| 118 | +as a lesson, i.e. the failure mode compounding inside the ledger built to catch |
| 119 | +it. |
| 120 | + |
| 121 | +The audit falsified the whole premise: `Signed360` is ONE signed orientation |
| 122 | +(`rim(3)+polar(1)+azimuth(2)`, `residue.rs:76-116`); `ResidueEdge` **cannot carry |
| 123 | +a hemisphere sign at all** (`sprite_replay.rs:56-63` — `Sign::Neg` reconstructs |
| 124 | +as `Sign::Pos`, *"a real, measurable structural error"*); it has **no azimuth**, |
| 125 | +the only angular field in the lane; and the crate states twice, unprompted, that |
| 126 | +**no 2-DOF direction codec exists** (`sprite_replay.rs:47`, |
| 127 | +`continuous_field.rs:31-43`) and that inventing one is the "invented round-trip |
| 128 | +API" it warns against. Also: `end_idx` is monotone in `n` (`residue.rs:258-266`, the |
| 129 | +`end_idx_monotonic_in_n` test) ⇒ **non-circular**, so a wrapped bearing puts |
| 130 | +359° and 1° at maximum L1 distance; `DistanceLut`'s triangle-inequality |
| 131 | +guarantee (`distance.rs:22-33`, regression `:87-105`) is about a **linear** |
| 132 | +index order and does not survive being re-purposed as an angular one |
| 133 | +(`residue.rs:53-55` names this failure mode for `distance_heuristic`). |
| 134 | + |
| 135 | +**Structural finding worth keeping regardless of weather:** there is **no |
| 136 | +per-value-lane reading selector in the contract at all** — `ReadMode` has three |
| 137 | +axes (tail / value_schema / edge_codec), none of which selects a *reading* of a |
| 138 | +value lane; `EdgeCodecFlavor` covers `EdgeBlock`, a different region. Exhaustive |
| 139 | +grep (`HelixResidue`, all `**/*.rs`, unbounded): 15 hits, **zero writers, zero |
| 140 | +decoders**. Correct successor shape if a pair is needed: a NEW 16-byte facet |
| 141 | +lane read as `Pair48 = [Signed360; 2]`, codec in `crates/helix`, lane in the |
| 142 | +zero-dep contract, discriminant **16** — `15` is reserved for `BoardAggregates`. |
| 143 | + |
| 144 | +**Pre-existing defect found in passing:** `Signed360::sign()` decodes an |
| 145 | +all-zero, never-written lane as a definite `Sign::Neg` (`residue.rs:109-115`), |
| 146 | +where sibling lanes `Tekamolo` / `CausalWitness` explicitly define all-zero as |
| 147 | +*unaddressed* / *unbound*. Violates the CANON zero-fallback ladder. Filed, not |
| 148 | +fixed. |
| 149 | + |
| 150 | +**Rule:** route corrections through the same gate as originals. "I was wrong |
| 151 | +before" is not evidence the new version is right. |
| 152 | + |
1 | 153 | ## 2026-08-11 — E-HELIX360-IS-THE-NORMALIZED-SUBSTRATE-NOT-A-BIT-BUDGET-1 |
2 | 154 |
|
3 | 155 | **Status:** FINDING `[G]` for every code fact (file:line in the doc); the weather |
4 | | -mapping is `[H]`; the floor policy is `[S]` pending probes. |
| 156 | +mapping is `[H]`; the floor policy is `[S]` pending probes. **⊘ Two corrections: |
| 157 | +"helix360" is this session's coinage — the symbol is `Signed360`, no `helix360` |
| 158 | +exists in any repo `[G-absence]`; and the "2×24 = from AND to" reading below is |
| 159 | +FALSE — one `Signed360` is already a complete full-sphere direction. See |
| 160 | +`E-THE-DOCTRINE-DOC-EXISTED-AND-I-NEVER-READ-IT-1` (top of file).** |
5 | 161 |
|
6 | 162 | **The finding, in one line:** helix360 is a Fisher-2z-hydratable golden-spiral |
7 | 163 | projection — two 24-bit equal-area hemispheres glued at the equator (Poincaré |
|
0 commit comments