Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .claude/board/LATEST_STATE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
## 2026-08-11 — lance-graph #921 (MERGED) — the wind reuse, measured: the prescribed bearing-encode is 10× worse than the direct one

### Current Contract Inventory — no new types (one committed measurement, one doc section, board hygiene)

- **`crates/helix/tests/bearing_encode_paths.rs`** — the two candidate `bearing → Signed360` encodes, measured at N=65536. Runs **only by hand** (`helix` is root-workspace-excluded and in no CI workflow `[G-absence]`).
- **The invention/reuse line `[G]`:** *invention* = asserting structure the code already answers; *reuse* = applying the shipped codec to a new domain, which is what the normalized substrate exists for. **A missing entry point for a designed reuse is a plumbing gap, not a design refusal.** This corrects #920 §12.12, which declined to build the bearing-encode on the wrong grounds.
- **The finding the reuse surfaced `[G]`:** `helix-cartesian-vs-fisher2z.md` prescribes *nearest spherical-Fibonacci `(n, sign)`* for encoding a direction — **and it does not fit weather.** Horizontal bearings measure **1.9–2.7°** via nearest-`n` vs **0.000°** via a direct `(polar, azimuth)` write (mean over 24 cases: **0.972° vs 0.097°, 10×**). The golden spiral couples latitude and azimuth through ONE index, so a bearing at the horizon cannot be chosen independently; and the lattice is equal-area on the **disk**, giving latitude density ∝ `sin(2·lat)` — sparsest exactly at the equator. Normals spread over the sphere and never hit this; wind always does.
- **Rule locked:** **a doctrine written for one domain is not automatically right for the next one that reuses it.** The doc's prescription is correct *for normals* and should carry its case rather than be read as universal.
- **`[S]` — no public `from_bearing` minted.** The measurement settles which path; the API shape is an operator call and must not be built on before it is made.

## 2026-08-11 — lance-graph #920 (MERGED) — the probes ran; the doc that queued them was falsified in four places

> **⊘ This entry CORRECTS two claims in the #917 entry below it.** (1) **"helix360" is not a symbol** — the type is **`Signed360`**; pickaxe over full history returns 12 blobs, all authored by that session, zero deletions `[G-absence]`. (2) **The "2 × 24-bit hemispheres = wind in/out" reading of the `HelixResidue` lane is WRONG.** Per `.claude/knowledge/helix-cartesian-vs-fisher2z.md` — the doctrine doc with a `READ BY:` header naming exactly that kind of session, which the arc never opened — **one 6-byte `Signed360` is a complete full-sphere direction**: the `polar` sign-partition completes the sphere, so there is no second hemisphere to pair. `ResidueEdge`/`rim` is the **METRIC** carrier (`DistanceLut`, L1); `(polar, azimuth)` is the **render** carrier. The `Pair48` mint is **WITHDRAWN, not deferred**. Nothing below is deleted; it is read through §12.12 of the weather knowledge doc.
Expand Down
10 changes: 10 additions & 0 deletions .claude/board/PR_ARC_INVENTORY.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
## 2026-08-11 — lance-graph #921 (MERGED) — the reuse IS the process: the wind bearing-encode measured, and the doctrine that does not fit it

- **Added.** `crates/helix/tests/bearing_encode_paths.rs` — a committed measurement of the two candidate `bearing → Signed360` encodes at N=65536. `.claude/knowledge/weather-normalized-substrate.md` §12.13. Board hygiene for #920 (its own arc + `LATEST_STATE` entries, plus the `Correction`/`Confidence` pair on #917).
- **Locked.** **The invention/reuse line, drawn properly.** *Invention* = asserting structure the code already answers (a bit budget, a lane reading, `Pair48`, a round-trip API `continuous_field.rs` disclaims). *Reuse* = applying the shipped, proven codec to a new domain — **what a normalized substrate is FOR**. **A missing entry point for a designed reuse is a plumbing gap, not a design refusal**; #920's §12.12 filed the bearing-encode under *invention* and declined to build it, which was an over-correction (generalizing "don't invent structure the code determines" into "don't implement the intended reuse"). **And a doctrine written for one domain is not automatically right for the next one that reuses it** — the rule this PR is really for.
- **Measured `[G]`** (`bearing_encode_paths.rs`, N=65536). `encode_signed` derives **all three** direction-bearing fields from `n` alone (`residue.rs:182-204`). `helix-cartesian-vs-fisher2z.md` prescribes *nearest spherical-Fibonacci `(n, sign)`*; **that prescription does not fit weather.** Horizontal bearings 0°/90°/270°: **1.933° / 2.706° / 1.897°** via nearest-`n` vs **0.000°** each via a direct `(polar, azimuth)` write; mean over 24 bearing×elevation cases **0.972° vs 0.097° — 10×**. *Mechanism:* the golden spiral couples latitude and azimuth through ONE index — reaching `y ≈ 0` needs `n ≈ N−1`, and those few `n` have azimuth already fixed at `n·φ`, so **a bearing at the horizon cannot be chosen independently**; compounding it, the lattice is equal-area on the **disk**, so latitude density ∝ `sin(2·lat)` — sparsest exactly at the equator. Surface normals (the doc's own case) spread over the sphere and never hit this; wind clusters at the horizon and always does. The direct write is licensed by the doc's **own** split (rim = metric carrier, `(polar, azimuth)` = direction, place-independent), at the stated cost that the two halves no longer share one `n`.
- **Deferred.** **No public `from_bearing` was minted** — deliberately. The measurement says which path is right; the API shape (does the bearing write go through `ResidueEncoder`? where does `rim`'s `n` come from?) is an operator call, `[S]`. Also still open: the saturation-window widening; a citable per-variable noise floor; the U-shaped-variable falsifier. Filed-not-fixed: the `Signed360::sign()` dormant-lane defect.
- **Docs.** §12.13; EPIPHANIES `E-THE-REUSE-IS-THE-PROCESS-AND-IT-EXPOSED-A-FIT-PROBLEM-1`, which corrects `E-THE-DOCTRINE-DOC-EXISTED-AND-I-NEVER-READ-IT-1`'s "deliberately not built" framing while keeping its three surviving findings (`Signed360`-is-complete, the `Pair48` withdrawal, the mandatory `READ BY:` rule).

**Confidence (2026-08-11):** merged. The 10× is `[G]` — a committed, re-runnable test, not a one-off. `helix` is excluded from the root workspace and in no CI workflow `[G-absence]`, so it runs **only by hand**. The API shape is `[S]` and must not be built on before an operator decides it.

## 2026-08-11 — lance-graph #920 (MERGED) — the probes RAN, and they falsified the doc that queued them: evaluation frame, Fisher-Z economics, and the helix regrade

- **Added.** `probes/weather-p1/` — 8 re-runnable Python probes over real ARCO-ERA5 (`fetch.py`/`fetch_bg.py` chunk retrieval with Zarr-v2 fill semantics, `p1_probe.py`, `p1_ci_vs_floor.py`, `p2_probe.py`, `verify_apparatus.py`, `export_for_jc.py`, `p1_noise_floor.py` [superseded, kept for provenance]) + README + 4 result JSONs + `jc_input.bin`. `crates/jc/examples/weather_substrate_reliability.rs` — Pearson / Spearman / Cronbach α / ICC over the probe export, with header validation and a `--shuffle` negative control. `crates/helix/tests/signed360_claims.rs` — 3 tests, each disable-verified red-then-green. `.claude/knowledge/weather-normalized-substrate.md` §12 (12 correction subsections, ~500 lines).
Expand Down