From 7e9b4b742903f3c54de1ae207881c11f6cb56864 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 13 Aug 2026 14:52:26 +0000 Subject: [PATCH 1/3] CORRECTION: two B7 tallies were wrong -- 9/19 and 19/19, not 10/16 and 16/16 Found while re-counting the committed JSON to write the product-lead update. Both denominators in D-WXS-8's bar-B7 report were wrong. written actual B7 control (per-var must LOSE) 16/16 19/19 B7 primary (rho >= 0.9996) 10/16 (63%) 9/19 (47%) per season (primary) -- winter 2/9, spring 4/5, summer 3/5 There are 19 cross-unit pairs, not 16 (winter 9 + spring 5 + summer 5); the same-unit pairs (KxK, m/s x m/s) are informational and correctly excluded from the bar, and I dropped them from the denominator inconsistently. The direction matters, not just the arithmetic. 10/16 reads as "mostly passing, six close misses". 9/19 reads as "the strict bar fails on a MAJORITY of cross-unit pairs". Both describe the same measurements -- every per-pair rho was carried correctly -- but only the second is what the data says. The KILL-gated control is unaffected and in fact better at 19/19, so NO conclusion reverses; what changes is that the primary bar's shortfall was under-reported. The failures also concentrate in winter (2/9), the only season carrying mean_sea_level_pressure -- visible in the corrected per-season split, invisible in the aggregate I first wrote. The diagnosis is narrower than "check your figures". Every number the program COMPUTED AND PRINTED -- 56 verdicts, 42 pass / 14 fail, every individual rho -- was carried into the writeup correctly. The only two wrong numbers are the ones I produced by counting rows in terminal output by eye. The pipeline was sound; the tally was not. A figure you tallied yourself is a DERIVED figure, and a derived figure needs the artifact exactly as much as a measured one does. "The audit must terminate at an artifact" is usually applied to CITING a number. This is its narrower and easier-to-miss form: PRODUCING a number by counting, summing or eyeballing a listing is itself an unverified derivation, even when every input to it is verified. Mechanical fix now in use: any count, rate or ratio that appears in a writeup is computed from the committed artifact in the same command that prints it -- never transcribed from a previous run's stdout, never tallied by reading a list. Reach: the error went to main via PR #950 in four places -- the plan's W3 RUN section, the STATUS_BOARD D-WXS-8 row, the EPIPHANIES entry, and the PR body. The first two are corrected in place (not append-only ledgers). EPIPHANIES gets a PREPENDED correction entry per the storno rule, leaving the wrong entry standing beneath it. The merged PR body cannot be corrected -- #950's body carries the superseded figures and the new entry is authoritative. Board: EPIPHANIES prepend E-A-FIGURE-YOU-TALLIED-YOURSELF-IS-A-DERIVED-FIGURE-1 (suffix-verified); plan W3 RUN carries the same correction note inline. Doc-only. No measurement re-run, no bar changed, no code touched. Co-Authored-By: Claude Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi --- .claude/board/EPIPHANIES.md | 63 ++++++++++++++++++++++++++++ .claude/board/STATUS_BOARD.md | 2 +- .claude/plans/weather-soa-bake-v1.md | 42 +++++++++++++++---- 3 files changed, 98 insertions(+), 9 deletions(-) diff --git a/.claude/board/EPIPHANIES.md b/.claude/board/EPIPHANIES.md index b9bff00a..834b9fe9 100644 --- a/.claude/board/EPIPHANIES.md +++ b/.claude/board/EPIPHANIES.md @@ -1,3 +1,66 @@ +## 2026-08-13 — E-A-FIGURE-YOU-TALLIED-YOURSELF-IS-A-DERIVED-FIGURE-1 + +**Status:** FINDING `[G]` — corrects two figures in +`E-THE-REAL-GATE-RAN-AND-QUALIFIED-NOT-RETRACTED-THE-CLAIM-1` (below) and in +PR #950's plan/board/PR-body text. **Confidence:** High. Append-only +correction; the wrong entry is left standing beneath this one, per the +storno rule. + +**The wrong figures.** `D-WXS-8`'s bar-B7 tallies were written as +*control 16/16 PASS, primary 10/16 PASS (6 FAIL)*. Counted from the committed +`probes/weather-p1/fixture/fidelity_probe_results.json`: + +| | written | **actual** | +|---|---|---| +| B7 control (per-variable floor must LOSE) | 16/16 | **19/19** | +| B7 primary (ρ_shared ≥ 0.9996) | 10/16 (63 %) | **9/19 (47 %)** | +| per season (primary) | — | winter **2/9**, spring **4/5**, summer **3/5** | + +There are **19** cross-unit pairs, not 16 (winter 9 + spring 5 + summer 5); +the same-unit pairs (K×K, m/s×m/s) are informational and correctly excluded +from the bar, and I dropped them from the denominator inconsistently. + +**Why the direction matters, not just the arithmetic.** 10/16 reads as +*"mostly passing, six close misses."* 9/19 reads as *"the strict bar fails on +a **majority** of cross-unit pairs."* Both describe the same measurements — +the per-pair ρ values were all carried correctly — but only the second is +what the data says. The KILL-gated control is unaffected and in fact better +(19/19), so **no conclusion reverses**; what changes is that the primary bar's +shortfall was under-reported. + +**The precise diagnosis, and it is narrower than "check your figures".** +Every number the program *computed and printed* — 56 verdicts, 42 pass / +14 fail, every individual ρ — was carried into the writeup correctly. The +**only** two wrong numbers are the ones I produced by **counting rows in +terminal output by eye**. The pipeline was sound; the tally was not. + +> **A figure you tallied yourself is a DERIVED figure, and a derived figure +> needs the artifact exactly as much as a measured one does.** "The audit must +> terminate at an artifact" is usually applied to *citing* a number. This is +> its narrower and easier-to-miss form: **producing** a number by counting, +> summing, or eyeballing a listing is itself an unverified derivation, even +> when every input to it is verified. + +**Mechanical fix, now in use:** any count, rate, or ratio that appears in a +writeup is computed from the committed artifact in the same command that +prints it — never transcribed from a previous run's stdout, and never +tallied by reading a list. + +**Reach.** The error reached `main` through PR #950 in four places: the plan's +W3 RUN section, the `STATUS_BOARD` `D-WXS-8` row, the epiphany below, and the +PR body. The first three are corrected (in-place for the plan and board, which +are not append-only ledgers; by this prepended entry for `EPIPHANIES`). **The +merged PR body cannot be corrected** — treat #950's body as carrying the +superseded figures and this entry as authoritative. + +**Cross-ref:** `E-THE-REAL-GATE-RAN-AND-QUALIFIED-NOT-RETRACTED-THE-CLAIM-1` +(the entry corrected), `E-A-FIGURE-CITED-TWICE-IS-NOT-CONFIRMED-ONCE-1` (the +citing form of the same rule), `E-A-DISABLE-PROBE-CAN-ITSELF-BE-VACUOUS-1` +(same session, the verification layer), `.claude/plans/weather-soa-bake-v1.md` +W3 RUN (the corrected block, carrying the same ⊘ note). + +--- + ## 2026-08-13 — E-THE-REAL-GATE-RAN-AND-QUALIFIED-NOT-RETRACTED-THE-CLAIM-1 **Status:** FINDING `[G]` — measured, real live-fetched grid data, 3 seasons, diff --git a/.claude/board/STATUS_BOARD.md b/.claude/board/STATUS_BOARD.md index e2e245e7..d764c3f3 100644 --- a/.claude/board/STATUS_BOARD.md +++ b/.claude/board/STATUS_BOARD.md @@ -19,7 +19,7 @@ with a control that can lose and a stay-silent twin. | D-WXS-5 | statics bake — separate classid, separate dataset, exactly ONE version | 1 | Queued | bar B4; avoids ~1.3 PB of rewritten constants | | D-WXS-6 | version-range read (`QueryReference::at(v,rung)` + `deinterlace`) + version-count scaling measurement | 2 | Queued | bar B5; KILL if growth is superlinear at 92,044 versions | | D-WXS-7 | **D-WXA-5 re-homed and RE-SPECIFIED** — ρ(code_dist, field_dist) via `jc::reliability::spearman` over whole-grid pairs. (a) ρ ≥ 0.9996; (b) shuffled-codebook control < 0.98; (c) 16/64/256-level ladder must be MONOTONE before any verdict | 3 | **RUN 2026-08-13 — 12/12 PASS, all 3 real seasons.** `crates/weather-poc/examples/fidelity_probe.rs` (jc as dev-dep) against real live-fetched ARCO-ERA5 grid data (200k pairs/comparison). K×K ρ256 = 0.999909/0.999895/0.999684 — **does not replicate** the earlier smaller-scale near-miss (0.999556); shuffle ρ collapses to 0.02–0.024; ladder strictly monotone all 3 | poc-v2's ρ≥0.98 concern did not fire at grid scale — the earlier near-miss was fixture-scale, not grid-scale | -| D-WXS-8 | cross-variable comparability at grid scale (≥4 variables, ≥2 units, ≥3 seasons); per-variable-floor control must LOSE | 3 | **RUN 2026-08-13 — mixed, reported in full.** Control (per-var must lose) **16/16 PASS** — KILL does not fire, ρ_pervar 0.245–0.939 vs ρ_shared 0.9987–0.9999 on identical pairs. Primary (ρ_shared≥0.9996) **10/16 PASS**, 6 close misses (0.9987–0.9996), skewed toward wind/pressure pairs. Stay-silent twin: `\|diff\|≤0.0001` PASS at spring/summer, FAIL at winter (0.000174); **zero-empty-buckets FAILS all 3 seasons** (38/39/45 of 256) — the literal "zero" from the small-fixture claim does not hold at grid scale | P2 (0.9997 vs 0.857–0.875) **CONFIRMED at grid scale, 3 seasons, 16 pairs** — the directional claim holds; the exact thresholds do not hold universally | +| D-WXS-8 | cross-variable comparability at grid scale (≥4 variables, ≥2 units, ≥3 seasons); per-variable-floor control must LOSE | 3 | **RUN 2026-08-13 — mixed, reported in full.** ⊘ **Figures corrected same day** (first written as control 16/16, primary 10/16 — both denominators wrong; there are **19** cross-unit pairs, counted from the JSON not from stdout by eye). Control (per-var must lose) **19/19 PASS** — KILL does not fire, ρ_pervar 0.245–0.939 vs ρ_shared 0.9987–0.9999 on identical pairs. Primary (ρ_shared≥0.9996) **9/19 PASS / 10 FAIL** (winter 2/9, spring 4/5, summer 3/5) — close misses (0.9987–0.9996) but **failing on a majority** of cross-unit pairs, concentrated in winter (the only season with `mean_sea_level_pressure`). Stay-silent twin: `\|diff\|≤0.0001` PASS at spring/summer, FAIL at winter (0.000174); **zero-empty-buckets FAILS all 3 seasons** (38/39/45 of 256) — the literal "zero" from the small-fixture claim does not hold at grid scale | P2 (0.9997 vs 0.857–0.875) **CONFIRMED at grid scale, 3 seasons, 19 cross-unit pairs** — the directional claim holds; the exact thresholds do not hold universally | | D-WXS-9 | ζ = ∂v/∂x − ∂u/∂y as a substrate read (neighbour-key stencil) + the differencing-amplifies-quantisation falsifier, reported per ζ-magnitude decile | 4 | Queued | bar B8; KILL ⇒ ζ becomes its own baked lane | | D-WXS-10 | **D-CZ-8 re-homed** — ζ-percentile regime bands over the WHOLE grid + coverage-matched donors + range-normalised `L`; shuffled-ζ control; same-band stay-silent twin | 4 | Queued | the grid buys CONTROL of the §7.9 confound, NOT its dissolution; KILL if `L̄`~range ρ≈1.0 survives matching | | D-WXS-11 | MEASURE a full-grid bake wall time; state the ~8.1 s serial extrapolation as the prior and confirm/correct it in the same artifact | 5 | Queued | replaces an extrapolation from ONE cycle (514 ms / 65,536 owners); D-KIA-A2 still unbuilt | diff --git a/.claude/plans/weather-soa-bake-v1.md b/.claude/plans/weather-soa-bake-v1.md index 8775e533..8cd62347 100644 --- a/.claude/plans/weather-soa-bake-v1.md +++ b/.claude/plans/weather-soa-bake-v1.md @@ -765,21 +765,47 @@ was measured on a real, smaller fixture and is left as-is — but it is no longer read as "the substrate's fidelity is marginal"; at grid scale, on this data, it is not. -**`D-WXS-8` (bar B7) — control 16/16 PASS; primary 10/16 PASS; twin 2/6 PASS.** +> **⊘ FIGURE CORRECTION 2026-08-13, same day, found by re-counting the +> committed JSON while writing the product-lead update.** This block first +> read *"control 16/16 PASS; primary 10/16 PASS, 6 FAIL"*. **Both denominators +> were wrong and the primary pass-rate was overstated.** Counted from +> `fixture/fidelity_probe_results.json` rather than by eye from the runner's +> stdout: there are **19** cross-unit pairs, not 16 (winter 9, spring 5, +> summer 5 — the same-unit pairs K×K and m/s×m/s are informational and +> correctly excluded from the bar). Corrected below. +> +> **The direction of the error matters:** primary was written as 10/16 (63 %) +> and is actually **9/19 (47 %)** — the strict bar fails on a **majority** of +> cross-unit pairs, not a minority. The control is 19/19, not 16/16 — better +> in absolute terms, and its KILL still does not fire. +> +> **Diagnosis, precise:** every figure the program *computed and printed* +> (56 verdicts, 42 pass / 14 fail, every ρ) was carried correctly. The two +> wrong numbers are exactly the ones I derived by **counting rows in terminal +> output by eye** instead of counting the artifact. Same session, same rule +> the arc keeps restating — *an audit must terminate at an artifact* — and +> this is its narrowest form yet: **a figure you tallied yourself is a derived +> figure, and derived figures need the artifact too.** The error reached +> `main` via PR #950 (plan, `STATUS_BOARD`, `EPIPHANIES`, PR body); the first +> three are corrected here, the merged PR body cannot be. + +**`D-WXS-8` (bar B7) — control 19/19 PASS; primary 9/19 PASS; twin 2/6 PASS.** Reported in full, nothing filtered: -- **Control (per-variable floor must LOSE) — 16/16 PASS, at every cross-unit +- **Control (per-variable floor must LOSE) — 19/19 PASS, at every cross-unit pair, every season.** Per-variable ρ ranges **0.245–0.939**; shared-floor ρ is **0.9987–0.9999** on the identical pairs. This is the KILL-gated claim — *"if the shared floor loses to per-variable on ANY cross-unit pair, §4 policy (a) is refuted"* — and it does not lose once. **The KILL does not fire.** -- **Primary (cross-unit ρ_shared ≥ 0.9996) — 10/16 PASS, 6 FAIL.** Every - failure is a close miss, not a collapse: `0.998681`–`0.999611`, all still - ≥ 0.9986 and all still dramatically ahead of per-variable. The 6 failing - pairs skew toward wind and pressure (`10m_u/v_component_of_wind`, - `mean_sea_level_pressure`) rather than temperature — a pattern, not - reported as a proven cause. +- **Primary (cross-unit ρ_shared ≥ 0.9996) — 9/19 PASS, 10 FAIL** (winter + **2/9**, spring **4/5**, summer **3/5**). Every failure is a close miss + rather than a collapse — `0.998681`–`0.999591`, all still ≥ 0.9986 and all + still dramatically ahead of per-variable — but **the strict bar fails on + more cross-unit pairs than it passes**, which the earlier 10/16 phrasing + obscured. The failures concentrate in **winter**, the only season carrying + `mean_sea_level_pressure`, and skew toward wind and pressure rather than + temperature — a pattern, not reported as a proven cause. - **Stay-silent twin — the two halves diverge, and only one holds.** `|ρ_shared − ρ_pervar| ≤ 0.0001`: PASS at spring (0.000044) and summer (0.000025), **FAIL at winter** (0.000174 — 1.7× the tolerance). **Zero From dfec73507d01dd60d9e1091af7e614c1b4b54a4d Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 13 Aug 2026 14:59:46 +0000 Subject: [PATCH 2/3] Product-lead doc: fold in the codec results and name the next steps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `probes/weather-p1/SUBSTRATE_FORMULA_MATRIX.md` is the product-lead surface for the weather arc (referenced from LATEST_STATE, STATUS_BOARD and PR_ARC_INVENTORY). It was last refreshed before the substrate crate and the D-WXS-7/8 gate existed. This brings it current and adds what it never had: an ordered next-steps section. What changed - §0 UPDATE 2026-08-13 — the four things that moved since the last refresh, with a rating-movement table so a reader sees which cells changed and why. - §1b — five new encoding rows. E15 the grid-scale shared floor (A [G], 12/12 at the pre-registered bar, rho256 0.9999 on all three seasons); E16 shared-vs-per-variable, which splits A/C rather than winning outright; E17 the 38-45 empty buckets of 256 (D, and its cost is not yet measured); E18 the L4 lane; E19 quantize-on-non-finite as a named hazard. - §1c — three new geometry rows. G16 the HEEL/HIP key (A, tile-row-major locality measured); G17 Morton with no unambiguous win at box scale; G18 the CONTROL-BAD arm that proves the locality metric can lose. - §4 — four apparatus lessons (10-13), each already carrying its own EPIPHANIES entry: derived figures, vacuous disable probes, total-function corruption being worse in an instrument than in a store, and a blocker being an artifact-checkable claim like any other. - §5 — the cross-swap and CAL-FISHERZ gaps close; the geometry gap is restated as structurally unreachable (needs 2,550,409 points, the global 0.25 grid has 1,038,240) rather than merely unfunded. - §7 NEXT STEPS — three tiers. Tier 1 is a single item: the classid mint, operator-gated, OGAR-side, blocking the bake and everything downstream. Tier 2 is runnable today with no mint. Tier 3 waits, and says why. Plus an explicit "not next" list so the recorded-but-unproven priors (Morton, the per-pair rho threshold) do not get acted on. Every figure in the new sections was recomputed from the committed JSONs in the same command that printed it, per lesson 10 — no tallies by eye. Board: STATUS_BOARD D-MTX-5 moves Queued -> DONE (its trigger, the C2-C6 cross-swap runs, is satisfied); D-MTX-6 added for the next-steps section. Co-Authored-By: Claude Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi --- .claude/board/STATUS_BOARD.md | 3 +- probes/weather-p1/SUBSTRATE_FORMULA_MATRIX.md | 246 +++++++++++++++++- 2 files changed, 237 insertions(+), 12 deletions(-) diff --git a/.claude/board/STATUS_BOARD.md b/.claude/board/STATUS_BOARD.md index d764c3f3..b05e20fd 100644 --- a/.claude/board/STATUS_BOARD.md +++ b/.claude/board/STATUS_BOARD.md @@ -56,7 +56,8 @@ weather arc (#920–#946) actually put under a pre-registered bar. | D-MTX-2 | Two-scale rating (fitness A/B/C/D/V × evidence `[G]`/`[H]`/`[S]`), 56 rows across physics / encodings / geometries / instruments | **DONE** | reading comfort zones off instead of arguing them | | D-MTX-3 | Known-effect vs discovered-explanation pairing (14 pairs, K1–K14) | **DONE** | separates prior art from what this arc added — incl. 4 cases where measurement went AGAINST the prior | | D-MTX-4 | Figure verification against source JSONs (28 headline figures + circular/CT set) | **DONE — 0 mismatches**, 1 rounding fixed (Rayleigh p 0.689 → 0.688) | the audit-terminates-at-an-artifact rule, applied to this document itself | -| D-MTX-5 | Refresh after the cross-swap matrix runs (C2–C6) | Queued | every off-diagonal cell is still unmeasured; §5 says so explicitly | +| D-MTX-5 | Refresh after the cross-swap matrix runs (C2–C6) | **DONE 2026-08-13** — §0 UPDATE + 5 new encoding rows (E15–E19) + 3 geometry rows (G16–G18) + lessons 10–13 + §5 gap closures | the off-diagonal cells are measured; §5's cross-swap and CAL-FISHERZ gaps are closed, the geometry gap is re-stated as structurally unreachable | +| D-MTX-6 | §7 NEXT STEPS — three tiers, with N1 (the classid mint) named as the single blocker and an explicit "explicitly NOT next" list | **DONE 2026-08-13** | the product-lead read: the codec is measured, the substrate is built and gated, one operator decision separates it from a running bake | **Why a "C" tier exists.** The arc's founding result is that most substrate formulas are neither good nor bad — they have homes. Fisher-z alone carries diff --git a/probes/weather-p1/SUBSTRATE_FORMULA_MATRIX.md b/probes/weather-p1/SUBSTRATE_FORMULA_MATRIX.md index 31d078cf..afaeadbb 100644 --- a/probes/weather-p1/SUBSTRATE_FORMULA_MATRIX.md +++ b/probes/weather-p1/SUBSTRATE_FORMULA_MATRIX.md @@ -18,6 +18,67 @@ --- +## §0 UPDATE 2026-08-13 — what changed, and what it costs the ratings + +> The document below was built 2026-08-12 against PRs #920–#946. Since then +> PRs **#947–#950** landed and moved four things. This block is the delta; +> the sections below carry the detail. Same provenance rule throughout — +> every figure here was **recomputed from the committed JSON in the same +> command that printed it**, not transcribed (see the new apparatus lesson +> A10, which exists because that rule was broken once on this very update). + +**1. The cross-swap matrix is no longer a gap — it RAN, and the hypothesis +lost.** §5 listed *"no off-diagonal cell has ever been computed"* as the +arc's largest hole. D-CZ-2..7 (PR #947) computed them. + +- **C1c PASSES** — the regimes differ in correlation *structure*, not only in + gradient magnitude. R4/R1 ratios: decay length **0.882**, Gini **0.709**, + tail ratio **0.385** (all ≥ 20 % from 1, as pre-registered). +- **C3 and C4 both FAIL, and reverse.** `L̄` per regime is + **0.011 / 0.309 / 0.671 / 0.690** (R1→R4), monotone increasing, **62.5×** + from calm to storm — the bar required storm to be *lower*. C4's RMSE delta + is **+1.29 / +1.11 / +0.46 / +10.78 Pa**: no sign flip, and the absolute + encoding's margin *grows* under turbulence. +- **⚠ but the ladder is confounded** — see item 2. + +**2. The regime ladder measured RANGE, not turbulence — the arc's most +consequential correction.** `L̄` tracks each regime's own value width and +saturation almost perfectly (regime-level Pearson **+0.921**, and see plan +`substrate-comfort-zones-v1.md` §7.9 for the *cell*-level figures the +confound argument actually rests on — a different and larger population than +the four regime means recomputed here). R4's off-diagonal saturation is +**0.969** against R1's **0.667**. **Consequence for the ratings below:** the +regime ladder (G-tier rows) is demoted from "a turbulence axis" to "a range +axis that correlates with turbulence." Any row whose evidence is *"it behaved +differently across R1→R4"* now carries that qualifier. The withdrawn claim is +"monotone reversal proves storms are less forgiving"; what survives is "the +hypothesis is not supported." + +**3. A real substrate exists now, and its codec passed the gate.** +`crates/weather-poc` (workspace-EXCLUDED, zero-dep) shipped key codec, floor, +manifest and L4 lane; **`D-WXS-7` (bar B6) passed 12/12** across three real +seasons on live-fetched grid data, computed with `jc::reliability::spearman`. +The shuffled control collapses to **0.020–0.024**. This is the first +**A-tier, grid-scale, real-data** rating the arc has for the quantiser. +`D-WXS-8` is mixed — its KILL-gated control holds **19/19**, its strict +primary fails **10 of 19** cross-unit pairs (see §5). + +**4. Two silent-corruption paths were found in the shipped codec, by review +and by following review into its class.** Neither is a rating change; both +are apparatus (A9) and both were live on real data, not hypothetical. + +### Rating movements + +| row / claim | was | now | +|---|---|---| +| the off-diagonal cross-swap matrix | **NOT RUN** (§5's largest gap) | **RUN** — C1c pass, C2 pass, C3+C4 fail-and-reverse | +| the regime ladder as a *turbulence* axis | implicit `[H]` | **demoted** — range-confounded, `[G]` only as a *range* axis | +| the 256-level linear floor, grid-scale fidelity | untested at scale | **A `[G]`** — 12/12, 3 real seasons, real data | +| shared canonical floor beats per-variable, cross-unit | `[H]` (1 timestep, 3 vars) | **`[G]` directionally** — 19/19 control, 3 seasons, 19 cross-unit pairs; *exact* thresholds NOT universal | +| Morton vs the shipped whole-byte key layout | not a question yet | **closed by KILL** — no unambiguous win in key space; no migration | + +--- + ## How to read the ratings Two scales, deliberately **not** merged into one score. @@ -80,6 +141,11 @@ no information about the hypothesis at all. | E12 | **Carve B** (all 12 rings, no dipole rail) | **D** | `[G]` | R² **0.635 / 0.294** — collapses to the axisymmetric model | the dipole rail is load-bearing | | E13 | **Global vs per-storm codebook** | **A** | `[G]` | storm-2's codebook on storm 1: **620.79 Pa** vs shared **4.48 Pa** → **139× penalty** | one table read, globally — the carrier's whole point | | E14 | **CAL-ABS (own-calibration absolute) vs CAL-RANK (window-local)** | **C** | `[G]` | ρ both **> 0.99996** (indistinguishable); RMSE ratio **3.96 / 1.85 / 1.14 / 1.49** across calm→storm | absolute wins RMSE; margin **shrinks** as the field activates | +| E15 | **256-level linear floor** (`weather-poc::floor`, percentile-trimmed 0.4–99.6, re-expressed from `helix::RollingFloor`) — **grid-scale fidelity** | **A** | `[G]` | bar B6, **12/12** across 3 real seasons on live-fetched ERA5: ρ(L256) **0.999909 / 0.999895 / 0.999684**; ladder strictly monotone (L16→L64→L256) every season; shuffled-decode control collapses to **0.020–0.024** | the arc's first A-tier real-data rating for the quantiser. **Supersedes** the fixture-scale near-miss (K×K 0.999556) — that did **not** replicate at grid scale | +| E16 | **Shared canonical floor vs per-variable floors, cross-unit** | **A** (direction) / **C** (exact threshold) | `[G]` | control **19/19** — per-variable loses on *every* cross-unit pair, ρ_pervar **0.245–0.939** vs ρ_shared **0.9987–0.9999**. But the strict ρ ≥ 0.9996 primary passes only **9/19** (winter 2/9, spring 4/5, summer 3/5) | the KILL does **not** fire ⇒ the shared-floor design stands. The *exact* bar does not hold universally — failures cluster in winter, the only season carrying `mean_sea_level_pressure` | +| E17 | **"Zero empty buckets" under a shared floor** (carried verbatim from a 1-timestep/3-variable fixture) | **D** | `[G]` | fails at **all three** seasons: **38 / 39 / 45** of 256 buckets empty (15–18 %) | a percentile-trimmed *pooled* window necessarily leaves slack for any one variable's narrower spread. Direction unsurprising; the literal "zero" had simply never been re-verified at scale | +| E18 | **L4 `6×(8:8)` lane** — pack/unpack one 16-byte facet against a ClassView-side manifest (`weather-poc::lane`) | **A** (as built) | `[G]` | 34 crate tests; 4 disable-verified bars (lo/hi swap, hard-coded slot, version-guard bypass, unmapped-slot emission) each kill exactly the expected tests | slot purity as *code*: the lane names no ERA5 variable in its own source. **Not** a fidelity claim — that is E15/E16 | +| E19 | **`quantize` on non-finite input** (the codec's own total-function behaviour) | **D — hazard confirmed** | `[G]` | `NaN` → bucket **0**, `-inf` → **0**, `+inf` → **255**; `f64::clamp` *propagates* NaN, then the float→int cast saturates. All three are legitimate buckets, indistinguishable from a real reading | **live, not hypothetical**: ARCO-ERA5 404 = all-NaN = valid store semantics, and 5 W1-set variables 404 at the arc's own fixture timestep. Guard at the boundary, never in the hot primitive (A9) | ### 1c. Sampling geometries / address generators @@ -100,6 +166,9 @@ no information about the hypothesis at all. | G13 | **Golden-spiral sampling of a storm disk at fixed budget** | **B** | `[G]` | RMSE spiral / grid / random = **234.5 / 269.0 / 319.4** (N=64), **119.1 / 123.3 / 164.2** (N=256), **58.9 / 59.9 / 84.2** (N=1024) — spiral ≤ grid ≤ random at every budget | low-discrepancy sampling earns its keep | | G14 | **…and its "ripple" claim** (spiral order gives a low-entropy 1-D signal) | **D** (inverted) | `[G]` | spiral-order Δ-entropy **7.128 bits** vs raster-order **5.947** — spiral order is **higher** entropy, the opposite of the claim | the sampling wins; the *ordering* story does not | | G15 | **…and its axisymmetry premise** | **D** | `[G]` | E1 **0.639** vs the 0.70 bar; off-center control **0.005** (index can fail) | the 36 % azimuthal residual is exactly what P1's dipole then explains | +| G16 | **HEEL/HIP whole-byte-per-axis key** (`weather-poc::key`) — a lat/lon grid as the literal-x/y case of the 3×4 cascade | **A** | `[G]` | exhaustive **1 038 240**-cell round-trip, collision-free; a tile-aligned box is **exactly 1** contiguous range; ragged last tiles (721 = 11·64+17; 1440/64 = 22.5) round-trip without padding; seam-crossing box returns a range **set**, never one range | the arc's hand-picked 16° boxes **are** HEEL values — a box read is a prefix scan, zero value decode. Needs 5–6 of 12 available quaternary levels/axis | +| G17 | **Morton (nibble-interleaved) vs the shipped whole-byte layout** | **C — no unambiguous win** | `[G]` | Morton wins neighbour locality **16 vs 32** (2×) but loses range count **212.50 vs 140.00** on the median non-tile-aligned box. Bar required *both* ⇒ **KILL fires, no migration** | the shipped order is tile-row-major then row-major *within* a tile — already blocked, not flat row-major. Morton's win is on exactly the metric a ζ stencil would spend; that is a **prior for half B**, not a result | +| G18 | **CONTROL-BAD (axis bytes reversed)** — the locality control | **A** (as a control) | `[G]` | **3100** ranges and neighbour distance **15862**, vs 140/212 and 32/16 for the real arms | a control that can lose, and does, by ~20×. Without it the G17 comparison would be unreadable | ### 1d. Statistical instruments (the apparatus itself) @@ -216,8 +285,9 @@ cycles** to overtake. Below that, closure beats irrationality. ## §4 THE APPARATUS LESSONS (why these ratings are trustworthy at all) -Nine rules, each bought with a measured failure in this arc. They are the -reason the D's and V's above can be believed alongside the A's. +Thirteen rules — nine from the probe half, four added 2026-08-13 — each +bought with a measured failure in this arc. They are the reason the D's and +V's above can be believed alongside the A's. 1. **A control that cannot lose is no control** — and one that cannot *differ* is the same defect. W2s-a's no-ties test: ties = 0 for **both** @@ -249,6 +319,42 @@ reason the D's and V's above can be believed alongside the A's. stranded stratum was **structurally empty**: `displacement ≥ 250 km/6 h` implies `|v| ≥ 11.57 m/s`, so a `|v| < 8 m/s` stratum could never exist. +**Added 2026-08-13 — four more, each bought the same way:** + +10. **A figure you tallied yourself is a DERIVED figure.** Every number the + D-WXS-8 runner *computed and printed* was carried correctly; the only two + wrong ones were tallied by **counting rows in terminal output by eye** + (`10/16` and `16/16`, actually **9/19** and **19/19** — and the direction + mattered: the strict bar fails on a *majority* of pairs, not a minority). + Rule now in force: **any count, rate or ratio in a writeup is computed + from the artifact in the same command that prints it.** This is the + narrow form of lesson 8 — that one is about *citing* a number, this one + is about *producing* one. +11. **A disable probe can itself be vacuous.** Three verification probes in + one session did not probe: a wrong symbol name (the substitution aborted + and the run reported green on **unmodified** code — the dangerous one), a + dead-code insert that bound nothing, and a probe aimed at a path the loop + could never reach. **Signature: a disable that kills ZERO tests is more + likely a broken probe than a missing guard.** Every substitution now + asserts it applied. +12. **A total function that cannot refuse is a corruption path — and it is + worse in an INSTRUMENT than in a store.** `quantize` maps every input to a + valid-looking bucket (E19). The store-side hole (`pack_facet`) writes one + wrong row; the instrument-side hole (`saturation_of`, bar B2's own + measuring device) would have scored an all-NaN field as **1.0 = "fully + saturated"** when the truth is "no data". A bad value is one wrong row; a + bad instrument is every conclusion drawn with it. **When a finding lands + on a total function, check its measurement call sites before its storage + call sites.** Silently *dropping* invalid input is the other half of the + same mistake — report it (`SaturationScore {fraction, finite, non_finite}`). +13. **A blocker is an artifact-checkable claim like any other.** `D-WXS-7` + was reported as gated behind the classid mint **four times** without once + being checked against its own bar. It never was — bar B6 needs real + values, the shipped quantiser, a control and a Spearman; no Lance dataset, + no classid. "On the substrate" described *scale and source*, not + persistence. **An unverified blocker is more expensive than an unverified + figure, because it prevents work rather than merely describing it wrongly.** + --- ## §5 HONEST GAPS — what is NOT rated, and why @@ -256,9 +362,13 @@ reason the D's and V's above can be believed alongside the A's. | gap | status | |---|---| | **CT-F17** — the fresh-sample directional verdict | **NOT RUN.** Gated on an independent adversarial spec audit. The directional claim (P2) stays *not established*. | -| **The full cross-swap matrix** (comfort zones C2–C6) | **NOT RUN.** Only the diagonal exists; **no off-diagonal cell has ever been computed**, so transfer loss `L` is defined but never measured. | -| **CAL-FISHERZ arm** | **NOT RUN.** Designed, never measured in D-CZ-0/1. | -| **Geometry axis** (GEO-GOLDEN-HI/LO, TEMPERED, GRID) | **NOT RUN.** | +| ~~**The full cross-swap matrix** (comfort zones C2–C6)~~ | ✅ **CLOSED 2026-08-13 (PR #947).** C1c/C2 pass, C3+C4 fail-and-reverse, C6 matrix delivered. **But** see §0 item 2 — the ladder is range-confounded, so the matrix measures transfer under *width* mismatch, which is not the same question as transfer under *turbulence*. | +| ~~**CAL-FISHERZ arm**~~ | ✅ **CLOSED** — run in D-CZ-2..7 as a degenerate row (`L ≡ 0` by construction, same as CAL-RANK: levels re-derived in-window). Measured, and measured to be structurally uninformative for this comparison. | +| **Geometry axis** (GEO-GOLDEN-HI/LO, TEMPERED, GRID) | **STILL NOT RUN, and now known to be structurally unreachable at box scale.** C5's floor needs N ≥ F(17)² = **2 550 409**; a 16° box holds **4 225**. Even the *full global grid* (1 038 240) is short by **~2.5×**. Needs a different construction or a finer grid — not more budget. | +| **`D-WXS-8`'s strict primary bar** | **PARTIALLY MET, and reported as such.** 9/19 cross-unit pairs. The KILL-gated control (19/19) is what licenses the shared-floor design; the exact ρ ≥ 0.9996 threshold is **not** established universally. Anything needing the number *per pair* must treat this as open. | +| **Bar B6's ladder for cross-unit pairs** | **NOT RUN** — the 16/64/256 resolution ladder was computed for the K×K pair only. | +| **A 4th+ season / the wind-pressure skew** | **NOT RUN / OBSERVED-NOT-TESTED.** The primary failures cluster in winter and toward wind+pressure; that is a pattern seen, not a hypothesis tested. | +| **`D-WXS-2a` half B** (Morton vs shipped under the ζ stencil) | **NOT RUN**, gated on `D-WXS-9` → `D-WXS-0`. Half A closed by KILL; half B carries a stated prior (Morton ≈ 2× on locality) that is **a prior, not a result**. | | **EV-1 … EV-10** | **ALL TEN NOT RUN.** Every v1 spec was ruled not-sound; the current specs are v2 rewrites awaiting execution. EV-5 is **blocked** — its fixture cannot exist at the pinned timestep. | | **Five excluded land candidates** in the regime preflight | **UNREPRODUCIBLE.** Their box centres were never recorded anywhere. No coordinates were invented to fake the rows. | | **W5 at n_idx = 19/21** | **NOT RUN** — iteration count scales ~2V/h², orders of magnitude more expensive. Mechanism stated, not silently dropped. | @@ -296,9 +406,123 @@ reason the D's and V's above can be believed alongside the A's. - **naive `round(frac·q)`** strides anywhere. **The single most valuable thing this arc produced** is not on either list. -It is the **apparatus**: nine rules in §4, each bought with a measured -failure, which is why a "D" in this document can be trusted as much as an -"A". Most of the entries here are negative results, and they were expensive -to get right — an arc that only reported its wins would have shipped the -36-parameter compression figure, Fisher-z as the universal axis, the -sign-test headline, and a stride-11 "golden" walk. +It is the **apparatus**: the rules in §4 — nine at first writing, **thirteen** +as of 2026-08-13 — each bought with a measured failure, which is why a "D" in +this document can be trusted as much as an "A". Most of the entries here are +negative results, and they were expensive to get right — an arc that only +reported its wins would have shipped the 36-parameter compression figure, +Fisher-z as the universal axis, the sign-test headline, a stride-11 "golden" +walk, a codec that writes missing data as plausible measurements, and an +instrument that scores an absent field as fully saturated. + +--- + +## §7 NEXT STEPS (2026-08-13) — what to do, in order, and why + +> Ordered by **what unblocks the most**, not by effort. Every item names its +> gate and its kill condition, because an item without one is a wish. + +### The situation in one paragraph + +The arc has turned from *probing a hypothesis in Python* to *a substrate with +a measured codec*. `crates/weather-poc` exists, is zero-dep, and its quantiser +passed the real gate at grid scale on real data (E15, 12/12). The +comfort-zone hypothesis that motivated the earlier half **lost** — cleanly, +with its own controls holding — and the ladder it lost on turned out to be +range-confounded, which is the more useful finding. What remains is not +"more measurement of the same thing"; it is **one blocked step that gates +everything downstream**, and a small number of genuinely open questions. + +### Tier 1 — the one real blocker + +**N1. `D-WXS-0` — mint the weather-cell + statics classids.** OGAR-side, +operator-gated; **cannot be resolved from this repo.** + +- **Blocks:** `D-WXS-4` (the bake), `D-WXS-5` (statics), and transitively + `D-WXS-6` (version-range read), `D-WXS-9`/`D-WXS-10` (ζ, the vorticity + work), and `D-WXS-2a` half B. +- **Why it cannot be worked around:** the bake writes rows; a row needs a + routable classid. Writing under `0x0000_0000` produces a dataset + indistinguishable from a bootstrap row — the zero-fallback ladder owns that + value. The bake is coded to **refuse to write** until this resolves, and + that refusal is correct, not a gap. +- **What it needs:** a `domain:appid` assignment (`0x0F = Geo` exists; the + appid/classview half is open). One decision, then W1 finishes and W2/W4 + open. +- **Cost of leaving it:** everything below Tier 2 stays unreachable + indefinitely. This is the highest-leverage item in the document. + +### Tier 2 — runnable now, no mint needed + +**N2. Close bar B6's ladder for the cross-unit pairs.** The 16/64/256 +resolution ladder was computed for the K×K pair only; the 19 cross-unit pairs +have a single-resolution number each. + +- **Why it matters:** the ladder is the *can-it-differ* half. Without it, a + cross-unit ρ of 0.9995 vs 0.9996 is a number with no scale attached, and + the 10 primary failures cannot be read as "close" with confidence. +- **Cost:** small — the prep stage already emits the arrays; it is one more + loop in `fidelity_probe_prep.py` and its reader. +- **Kill:** if 16 levels is indistinguishable from 256 on cross-unit pairs, ρ + is decorative *for that comparison* and bar B7 must move to a physical-unit + metric before any per-pair claim is made. (This is bar B6(c)'s own kill, + applied to the pairs it was never run on.) + +**N3. Test the wind/pressure skew as a hypothesis, or drop it.** The 10 +primary failures concentrate in winter (2/9) and toward wind + pressure. +Right now that is **an observation, not a finding** — and this document's own +rules say an unlabelled pattern is a liability. + +- **Cheapest honest form:** add a 4th and 5th season (the HEAD-sweep script + already finds them) and check whether the skew survives. If it does, the + next question is whether it is a *variable* property or a *season* property + — winter is the only season carrying `mean_sea_level_pressure`, so the two + are currently confounded, exactly like the regime ladder was. +- **Kill:** if the skew does not replicate across more seasons, delete the + observation rather than leaving it as folklore. + +**N4. Decide what to do about E17 (the empty-bucket gap).** 38–45 of 256 +buckets empty under the shared floor, at every season. The direction is +unsurprising; the question is whether it *costs* anything. + +- **The measurement that would settle it:** does the empty-bucket fraction + degrade cross-unit ρ, or is it free? Correlate per-season empty count + against per-season primary pass rate. n = 3 is too small to conclude — so + this rides on N3's extra seasons rather than being run alone. +- **Design option if it does cost:** a per-variable *offset* with a shared + *width* (the coverage lesson from §7.9 — width alone was never the driver). + +### Tier 3 — real, but should wait + +**N5. `D-WXS-2a` half B — Morton vs shipped under the ζ stencil.** Gated on +N1. Carries a stated prior (Morton ≈ 2× on neighbour locality) that is +explicitly **not** a result. Do not migrate on the prior. + +**N6. Re-ask C3/C4 as a turbulence question.** The original comfort-zone +hypothesis is not dead — it was never properly *asked*, because the ladder +measured range. Doing it properly needs ζ (hence N1) **and** coverage-matched +donor selection, both of which the full grid makes possible and four hand- +picked boxes did not. + +**N7. The geometry axis (C5).** Structurally unreachable at any scale this +arc currently has — the golden index floor needs 2 550 409 points and the +global 0.25° grid has 1 038 240. Either a finer grid (0.1° would clear it) or +a different construction. **Not** a budget problem; do not queue it as one. + +### Explicitly NOT next + +- **A second product-lead document.** This one is the surface; a roadmap file + that drifts from it is worse than no roadmap. +- **Migrating the key layout to Morton.** G17's kill fired. The prior is + recorded; acting on it before half B would be exactly the "re-reading a + split as a win" failure the arc has a rule against. +- **Any claim resting on `D-WXS-8`'s exact ρ ≥ 0.9996 threshold.** The + directional claim is established; the per-pair threshold is not. +- **Beating a learned model (claim C4).** Out of scope, unchanged, quarters + of cost. + +### The one-line read for a product decision + +> **The codec works at grid scale and is measured. The substrate is built and +> gated. Exactly one operator-side decision — the classid mint — separates it +> from a running bake, and nothing downstream of that can start without it.** From 5e3773a0e158cd672f2abbc4eb35c8937eb4e12d Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 13 Aug 2026 15:09:01 +0000 Subject: [PATCH 3/3] Review fixes: the bake is unwritten, N4's design is confounded, three test counts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three findings from the PR #951 reviews, all checked against the tree before acting. All three were right. codex P2 (1) -- the product read understated the engineering. It said the classid mint was the ONLY thing separating this from a running bake. Checked: `D-WXS-4` has no implementation at all -- no row assembler, no Lance writer, and `weather-poc/src/lib.rs` says so in its own header. The mint is the only EXTERNAL blocker; it is not the only remaining work, and a product decision resting on the shorter sentence would have been made on a false premise. Fixed in three places: Tier 1 now carries a correction note and a new N1b (write the bake) with what exists vs what does not; the "the bake is coded to refuse to write" bullet is corrected to a design obligation, since there is no writer to carry a guard; the one-line read now names the bake as unwritten and adds the two estimates a product decision needs and this document does not have. Same defect class as apparatus lesson 13 -- an unverified claim about what stands between here and a result. codex P2 (2) -- N4's proposed measurement cannot settle its own question. `fidelity_probe_prep.py:177` sets `v0 = varlist[0]` and records `shared_empty_buckets` for that one variable only, while the pass rate aggregates several cross-unit comparisons over season-specific variable sets. Correlating the two is confounded by variable composition and season together, and more seasons only adds n to a confounded design -- the exact mistake the regime ladder made. N4 now says the obvious form does NOT settle it and names the prep-script change that must land first. E17 stays D with its cost unmeasured. CodeRabbit minor -- three different crate-test counts across two files. Real count recomputed: 35, not the row's 34 or the board's 33. All three were true when written (33 at D-WXS-3b's landing, 34 after the first non-finite guard, 35 after the second). The board rows are append-only records of their own moment, so the E18 row is now the one that tracks HEAD and says so. Also, from the same review's terminology note: "19 cross-unit pairs" was loose. Recounted from the verdicts array -- 19 is (season x variable-pair) comparisons over 14 DISTINCT variable pairs. Corrected at all five sites. One more caught while verifying rather than by a reviewer: N1b cited "§0's corrected budget", which is in the plan, not in this document's §0. Now cites `weather-soa-bake-v1.md` §0.4 and the contract assertion it rests on, with the arithmetic inline (480 - 188 = 292 B free = 18 facets = 216 payload bytes). Co-Authored-By: Claude Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi --- probes/weather-p1/SUBSTRATE_FORMULA_MATRIX.md | 90 +++++++++++++++---- 1 file changed, 72 insertions(+), 18 deletions(-) diff --git a/probes/weather-p1/SUBSTRATE_FORMULA_MATRIX.md b/probes/weather-p1/SUBSTRATE_FORMULA_MATRIX.md index afaeadbb..0f459549 100644 --- a/probes/weather-p1/SUBSTRATE_FORMULA_MATRIX.md +++ b/probes/weather-p1/SUBSTRATE_FORMULA_MATRIX.md @@ -61,7 +61,7 @@ seasons on live-fetched grid data, computed with `jc::reliability::spearman`. The shuffled control collapses to **0.020–0.024**. This is the first **A-tier, grid-scale, real-data** rating the arc has for the quantiser. `D-WXS-8` is mixed — its KILL-gated control holds **19/19**, its strict -primary fails **10 of 19** cross-unit pairs (see §5). +primary fails **10 of 19** cross-unit comparisons (see §5). **4. Two silent-corruption paths were found in the shipped codec, by review and by following review into its class.** Neither is a rating change; both @@ -74,7 +74,7 @@ are apparatus (A9) and both were live on real data, not hypothetical. | the off-diagonal cross-swap matrix | **NOT RUN** (§5's largest gap) | **RUN** — C1c pass, C2 pass, C3+C4 fail-and-reverse | | the regime ladder as a *turbulence* axis | implicit `[H]` | **demoted** — range-confounded, `[G]` only as a *range* axis | | the 256-level linear floor, grid-scale fidelity | untested at scale | **A `[G]`** — 12/12, 3 real seasons, real data | -| shared canonical floor beats per-variable, cross-unit | `[H]` (1 timestep, 3 vars) | **`[G]` directionally** — 19/19 control, 3 seasons, 19 cross-unit pairs; *exact* thresholds NOT universal | +| shared canonical floor beats per-variable, cross-unit | `[H]` (1 timestep, 3 vars) | **`[G]` directionally** — 19/19 control, 3 seasons, 19 cross-unit comparisons (14 distinct variable pairs × the seasons each appears in); *exact* thresholds NOT universal | | Morton vs the shipped whole-byte key layout | not a question yet | **closed by KILL** — no unambiguous win in key space; no migration | --- @@ -142,9 +142,9 @@ no information about the hypothesis at all. | E13 | **Global vs per-storm codebook** | **A** | `[G]` | storm-2's codebook on storm 1: **620.79 Pa** vs shared **4.48 Pa** → **139× penalty** | one table read, globally — the carrier's whole point | | E14 | **CAL-ABS (own-calibration absolute) vs CAL-RANK (window-local)** | **C** | `[G]` | ρ both **> 0.99996** (indistinguishable); RMSE ratio **3.96 / 1.85 / 1.14 / 1.49** across calm→storm | absolute wins RMSE; margin **shrinks** as the field activates | | E15 | **256-level linear floor** (`weather-poc::floor`, percentile-trimmed 0.4–99.6, re-expressed from `helix::RollingFloor`) — **grid-scale fidelity** | **A** | `[G]` | bar B6, **12/12** across 3 real seasons on live-fetched ERA5: ρ(L256) **0.999909 / 0.999895 / 0.999684**; ladder strictly monotone (L16→L64→L256) every season; shuffled-decode control collapses to **0.020–0.024** | the arc's first A-tier real-data rating for the quantiser. **Supersedes** the fixture-scale near-miss (K×K 0.999556) — that did **not** replicate at grid scale | -| E16 | **Shared canonical floor vs per-variable floors, cross-unit** | **A** (direction) / **C** (exact threshold) | `[G]` | control **19/19** — per-variable loses on *every* cross-unit pair, ρ_pervar **0.245–0.939** vs ρ_shared **0.9987–0.9999**. But the strict ρ ≥ 0.9996 primary passes only **9/19** (winter 2/9, spring 4/5, summer 3/5) | the KILL does **not** fire ⇒ the shared-floor design stands. The *exact* bar does not hold universally — failures cluster in winter, the only season carrying `mean_sea_level_pressure` | +| E16 | **Shared canonical floor vs per-variable floors, cross-unit** | **A** (direction) / **C** (exact threshold) | `[G]` | control **19/19** — per-variable loses on *every* cross-unit comparison, ρ_pervar **0.245–0.939** vs ρ_shared **0.9987–0.9999**. But the strict ρ ≥ 0.9996 primary passes only **9/19** (winter 2/9, spring 4/5, summer 3/5) | the KILL does **not** fire ⇒ the shared-floor design stands. The *exact* bar does not hold universally — failures cluster in winter, the only season carrying `mean_sea_level_pressure` | | E17 | **"Zero empty buckets" under a shared floor** (carried verbatim from a 1-timestep/3-variable fixture) | **D** | `[G]` | fails at **all three** seasons: **38 / 39 / 45** of 256 buckets empty (15–18 %) | a percentile-trimmed *pooled* window necessarily leaves slack for any one variable's narrower spread. Direction unsurprising; the literal "zero" had simply never been re-verified at scale | -| E18 | **L4 `6×(8:8)` lane** — pack/unpack one 16-byte facet against a ClassView-side manifest (`weather-poc::lane`) | **A** (as built) | `[G]` | 34 crate tests; 4 disable-verified bars (lo/hi swap, hard-coded slot, version-guard bypass, unmapped-slot emission) each kill exactly the expected tests | slot purity as *code*: the lane names no ERA5 variable in its own source. **Not** a fidelity claim — that is E15/E16 | +| E18 | **L4 `6×(8:8)` lane** — pack/unpack one 16-byte facet against a ClassView-side manifest (`weather-poc::lane`) | **A** (as built) | `[G]` | **35/35 crate-wide** (`cargo test -p weather-poc`, 2026-08-13). *Three counts exist and all were true when written* — the board's `D-WXS-3b` row says 33/33 (its landing), an earlier draft of this row said 34 (after the first non-finite guard), and 35 is current (after the second). The board rows are append-only records of their own moment; **this row is the one that tracks HEAD.** 4 disable-verified bars (lo/hi swap, hard-coded slot, version-guard bypass, unmapped-slot emission) each kill exactly the expected tests | slot purity as *code*: the lane names no ERA5 variable in its own source. **Not** a fidelity claim — that is E15/E16 | | E19 | **`quantize` on non-finite input** (the codec's own total-function behaviour) | **D — hazard confirmed** | `[G]` | `NaN` → bucket **0**, `-inf` → **0**, `+inf` → **255**; `f64::clamp` *propagates* NaN, then the float→int cast saturates. All three are legitimate buckets, indistinguishable from a real reading | **live, not hypothetical**: ARCO-ERA5 404 = all-NaN = valid store semantics, and 5 W1-set variables 404 at the arc's own fixture timestep. Guard at the boundary, never in the hot primitive (A9) | ### 1c. Sampling geometries / address generators @@ -365,7 +365,7 @@ V's above can be believed alongside the A's. | ~~**The full cross-swap matrix** (comfort zones C2–C6)~~ | ✅ **CLOSED 2026-08-13 (PR #947).** C1c/C2 pass, C3+C4 fail-and-reverse, C6 matrix delivered. **But** see §0 item 2 — the ladder is range-confounded, so the matrix measures transfer under *width* mismatch, which is not the same question as transfer under *turbulence*. | | ~~**CAL-FISHERZ arm**~~ | ✅ **CLOSED** — run in D-CZ-2..7 as a degenerate row (`L ≡ 0` by construction, same as CAL-RANK: levels re-derived in-window). Measured, and measured to be structurally uninformative for this comparison. | | **Geometry axis** (GEO-GOLDEN-HI/LO, TEMPERED, GRID) | **STILL NOT RUN, and now known to be structurally unreachable at box scale.** C5's floor needs N ≥ F(17)² = **2 550 409**; a 16° box holds **4 225**. Even the *full global grid* (1 038 240) is short by **~2.5×**. Needs a different construction or a finer grid — not more budget. | -| **`D-WXS-8`'s strict primary bar** | **PARTIALLY MET, and reported as such.** 9/19 cross-unit pairs. The KILL-gated control (19/19) is what licenses the shared-floor design; the exact ρ ≥ 0.9996 threshold is **not** established universally. Anything needing the number *per pair* must treat this as open. | +| **`D-WXS-8`'s strict primary bar** | **PARTIALLY MET, and reported as such.** 9/19 cross-unit comparisons — 19 = (season × variable-pair), over **14 distinct variable pairs**; recounted from the verdicts array, not the pair list. The KILL-gated control (19/19) is what licenses the shared-floor design; the exact ρ ≥ 0.9996 threshold is **not** established universally. Anything needing the number *per pair* must treat this as open. | | **Bar B6's ladder for cross-unit pairs** | **NOT RUN** — the 16/64/256 resolution ladder was computed for the K×K pair only. | | **A 4th+ season / the wind-pressure skew** | **NOT RUN / OBSERVED-NOT-TESTED.** The primary failures cluster in winter and toward wind+pressure; that is a pattern seen, not a hypothesis tested. | | **`D-WXS-2a` half B** (Morton vs shipped under the ζ stencil) | **NOT RUN**, gated on `D-WXS-9` → `D-WXS-0`. Half A closed by KILL; half B carries a stated prior (Morton ≈ 2× on locality) that is **a prior, not a result**. | @@ -430,10 +430,22 @@ passed the real gate at grid scale on real data (E15, 12/12). The comfort-zone hypothesis that motivated the earlier half **lost** — cleanly, with its own controls holding — and the ladder it lost on turned out to be range-confounded, which is the more useful finding. What remains is not -"more measurement of the same thing"; it is **one blocked step that gates -everything downstream**, and a small number of genuinely open questions. - -### Tier 1 — the one real blocker +"more measurement of the same thing"; it is **one externally-blocked step +that gates everything downstream, plus the bake itself, which is unwritten** +— and a small number of genuinely open questions. + +### Tier 1 — the blocker, and the work behind it + +> **⊘ CORRECTION (codex P2, PR #951, applied before merge).** An earlier +> draft of this section said the mint was the *only* thing separating this +> work from a running bake. That is wrong and was checked against the tree: +> `D-WXS-4` has **no implementation** — `crates/weather-poc` has no row +> assembler and no Lance writer, and `lib.rs` says so in its own header +> ("Wave W1 is under construction… this crate never writes a version"). The +> mint is the only **external** blocker; it is not the only remaining work. +> Recording it, because a product read that understates the engineering is +> the same defect class as lesson 13 — an unverified claim about what stands +> between here and a result. **N1. `D-WXS-0` — mint the weather-cell + statics classids.** OGAR-side, operator-gated; **cannot be resolved from this repo.** @@ -444,18 +456,41 @@ operator-gated; **cannot be resolved from this repo.** - **Why it cannot be worked around:** the bake writes rows; a row needs a routable classid. Writing under `0x0000_0000` produces a dataset indistinguishable from a bootstrap row — the zero-fallback ladder owns that - value. The bake is coded to **refuse to write** until this resolves, and - that refusal is correct, not a gap. + value. So the bake **must refuse to write** until this resolves; that is a + constraint on the writer, and since the writer does not exist yet (N1b), it + is a design obligation rather than a shipped guard. Do not read it as one. - **What it needs:** a `domain:appid` assignment (`0x0F = Geo` exists; the appid/classview half is open). One decision, then W1 finishes and W2/W4 open. - **Cost of leaving it:** everything below Tier 2 stays unreachable indefinitely. This is the highest-leverage item in the document. +**N1b. `D-WXS-4` — write the bake.** Unwritten. Real engineering, and what +the mint *unblocks* rather than what the mint *replaces*. + +- **What exists and is tested:** the four pieces the bake calls — `key.rs` + (`encode_key` / `box_ranges`), `floor.rs` (`calibrate` / `quantize`), + `manifest.rs` (the 42-row slot map), `lane.rs` (`pack_facet`). **35/35** + (`cargo test -p weather-poc`, run 2026-08-13 — the board's `D-WXS-3b` row + says 33/33, which was true at that row's landing and predates the two + non-finite guards). +- **What does not exist:** the row assembler (122 fields → the 18 free facets + of a 512-byte `NodeRow` — 480 − 188 used = **292 B free = 18 facets = 216 + payload bytes**, plan `weather-soa-bake-v1.md` §0.4 against + `canonical_node.rs`'s `value_tenants_contiguous_within_slab`), the + 1 038 240-row + sweep, and the Lance version writer. **No file in the crate writes a row.** +- **How much is mint-gated vs merely unwritten:** row assembly is testable + today — `encode_key` takes the classid as a *parameter*, so a placeholder + exercises every path. Only the **committed dataset** needs the real mint. + N1b can therefore start now; it must not *land* a dataset until N1 + resolves. +- **Kill:** none. This is construction, not a hypothesis. + ### Tier 2 — runnable now, no mint needed **N2. Close bar B6's ladder for the cross-unit pairs.** The 16/64/256 -resolution ladder was computed for the K×K pair only; the 19 cross-unit pairs +resolution ladder was computed for the K×K pair only; the 19 cross-unit comparisons have a single-resolution number each. - **Why it matters:** the ladder is the *can-it-differ* half. Without it, a @@ -486,9 +521,21 @@ buckets empty under the shared floor, at every season. The direction is unsurprising; the question is whether it *costs* anything. - **The measurement that would settle it:** does the empty-bucket fraction - degrade cross-unit ρ, or is it free? Correlate per-season empty count - against per-season primary pass rate. n = 3 is too small to conclude — so - this rides on N3's extra seasons rather than being run alone. + degrade cross-unit ρ, or is it free? +- **The obvious form of that measurement does NOT settle it** (codex P2, PR + #951 — checked against the script). `fidelity_probe_prep.py:177` sets + `v0 = varlist[0]` and records `shared_empty_buckets` for **that one + variable only** — temperature, in every season. Correlating a single + variable's occupancy against a pass rate aggregated over several + cross-unit pairs, whose variable sets differ by season, is confounded by + variable composition and by season together. **More seasons does not fix + it** — it adds n to a confounded design, which is the exact mistake the + regime ladder made (§0 item 2). +- **What it actually needs first:** per-variable (ideally per-pair) + occupancy recorded alongside each ρ, matched to the pair that produced it. + That is a prep-script change, cheap, and it must land **before** any + correlation is read. Until then E17 stays **D with its cost unmeasured**, + which is what the row already says. - **Design option if it does cost:** a per-variable *offset* with a shared *width* (the coverage lesson from §7.9 — width alone was never the driver). @@ -523,6 +570,13 @@ a different construction. **Not** a budget problem; do not queue it as one. ### The one-line read for a product decision -> **The codec works at grid scale and is measured. The substrate is built and -> gated. Exactly one operator-side decision — the classid mint — separates it -> from a running bake, and nothing downstream of that can start without it.** +> **The codec works at grid scale and is measured. The pieces a bake calls — +> key, floor, manifest, lane — are built and tested. The bake itself is not +> written, and the one thing that cannot be worked on from this repo at all +> is the classid mint: an operator-side decision that gates the committed +> dataset and everything downstream of it.** + +Two engineering estimates a product decision needs, and this document does +**not** have: how long N1b takes, and how long a full-archive bake runs at +92 044 timesteps. Both are unmeasured. Ask for them; do not infer them from +the 12/12 codec result, which measures a different thing.