Skip to content

Commit cc08ecb

Browse files
committed
docs(board): PR #512 + #513 board hygiene — retroactive batch update
Two lance-graph PRs merged this evening, both touching the standalone perturbation-sim crate: #513 (merged 20:27:59 UTC, 8a3e335) — +1009/-2: - §0 promotion gate: GuardrailVerdict::RatifiedReuse for inertia_buffer (takes ResidueEdge INERTIA_SLOT=5, reuses existing tenant, no new axis → passes by reuse not waiver) - Probe 1: CAKES + CHAODA-lite over HHTL basins - Probe 2: witness arc as standing wave via Parseval (particle == wave to 0.00e0; O(N)-per-arc read-many amortization) - Probe 3: per-bus inertia (H) ingest path #512 (merged 20:33:00 UTC, 1e23c41) — +591/-5: CODE FIXES (review of #511): - calibrate.rs: divide-by-zero guard on degenerate grid (CodeRabbit Major) - basin_lambda2: assert_eq!(keys.len(), grid.n, …) precondition, promoting silent corruption to loud panic (CodeRabbit Major) - TECH_DEBT.md MD018 reflow (CodeRabbit Minor) DOCTRINE (the structural delivery, NEW to this session): - .claude/knowledge/core-first-transcode-doctrine.md (218 LOC, mandatory-read) - 3 specialist agent cards: core-first-architect, core-gap-auditor, adapter-shaper - BOOT.md + README.md wires - EPIPHANIES entry (24 LOC) - CLAUDE.md doctrine wire-up (+21 LOC, content unread by this thread) The core-first doctrine is likely directly aligned with the ontology-first stance the operator locked in on odoo-rs this session (Odoo's ontology runs natively in SurrealDB, codegen is the deferred "cut tail"). Cross-doctrine reconciliation between core-first-transcode-doctrine.md and the existing lab-vs-canonical spine not yet inspected here — flagged in PR_ARC entry confidence line. Retroactive batch hygiene — both merges landed before the same-commit rule could fire. PR_ARC prepend (newest #512 above #513 above #511) + LATEST_STATE dated bullets + recent-shipped rows. https://claude.ai/code/session_01Xzyc27Nx3f8WC5KzwfWfjx
1 parent ee3acac commit cc08ecb

2 files changed

Lines changed: 61 additions & 0 deletions

File tree

.claude/board/LATEST_STATE.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@
1010
1111
---
1212

13+
> **2026-06-16 — MERGED #512** (perturbation-sim review fixes + **core-first transcode doctrine**): +591/-5 across 11 files. **Code fixes (review of #511):** `examples/calibrate.rs` divide-by-zero guard on degenerate grid; `src/hhtl.rs::basin_lambda2` `assert_eq!(keys.len(), grid.n, …)` precondition (silent corruption→loud panic); `TECH_DEBT.md` MD018 reflow. **Doctrine (the structural delivery):** new mandatory-read `core-first-transcode-doctrine.md` (218 LOC) + 3 new agent cards (`core-first-architect`, `core-gap-auditor`, `adapter-shaper`) + `BOOT.md`/`README.md` wires + EPIPHANIES entry + CLAUDE.md (+21 LOC, doctrine wire-up — NEW content unread by this session). Likely directly aligned with the ontology-first stance the operator locked on odoo-rs. Branch `claude/happy-hamilton-0azlw4`, merge `1e23c410`. 75 lib tests + clippy + fmt clean.
14+
>
15+
> **2026-06-16 — MERGED #513** (perturbation-sim: inertia §0 promotion gate + CAKES/CHAODA + witness standing-wave + H ingest): +1009/-2 across 10 files. Disjoint from #512 by design. **(1) §0 gate** — `GuardrailVerdict::RatifiedReuse`: `inertia_buffer` takes `ResidueEdge` `INERTIA_SLOT = 5`, reuses an existing tenant, invents no new axis → passes §0 by **reuse, not waiver**. Topology stays HHTL-OGAR GUID key; the buffer is one more value, orthogonal by key/value split. **(2) Probe 1 CAKES + CHAODA-lite** over HHTL basins: per-basin `[λ₂, size, inertia]` features; `CHAODA_FLAG=0.75` mirrors ndarray::clam's flag; example `chaoda` flags planted brittle block (basin 1.1.0, score 1.000). Full `ClamTree` ensemble path gated on local ndarray sibling. **(3) Probe 2 witness arc as standing wave** (METHODS §11): `particle == wave` via Parseval (`Hᵀ·H = N·I`), agreement to **0.00e0**; `witness_from_spectrum` is the O(N)-per-arc read-many amortization win. **(4) Probe 3** per-bus inertia (H) ingest path opened. Branch `claude/perturbation-sim-inertia-clam`, merge `8a3e335b`. Does NOT touch `canonical_node`.
16+
>
1317
> **2026-06-16 — MERGED #511** (perturbation-sim: substrate calibration + calibrated SoA member spec): **+886/-0 additive**. New `examples/calibrate.rs` (318 LOC) runs the ICC(2,1) + Spearman + Pearson + Cronbach α battery against perturbation-sim as ground truth; new `src/columns.rs` (177 LOC, spec only) names the calibrated `SoaMemberSpec` set; new `src/hhtl.rs` + `examples/hhtl_grid.rs` + `CLAM_CHAODA_FRAMING.md`. **Findings:** all 5 contingency factors certify by VALUE at 2-bit linear (ICC ≥ 0.96) — existing palette/turbovec tenants already suffice, §10 "statistics survive the encoding" CONFIRMED; α preserved within Δ ≤ 0.02 at ≥4-bit; cross-axis ρ wobbles ±0.15 at N=24 → read ≥6-bit. **Self-correction:** `d_lambda2`'s ICC=0 was variance-guard underflow at ~1e-7 magnitude (not heavy-tail / not near-constant — both prior guesses retracted); normalized storage fixes to 1.00 at 2-bit. **Locked:** 5 factors → existing tenants (no new columns for contingency axes); the **one genuinely additive member is `inertia_buffer`** — orthogonal to topology (`Spearman(λ₂, buffer) ≈ 0` per PR #509), spec only, promotion gated by §0 anti-invention guardrail. Significance per Jirak n^(p/2−1) (I-NOISE-FLOOR-JIRAK). Does NOT touch the operator-locked `canonical_node`. Branch `claude/perturbation-sim-calibrate-soa`, merge commit `c3dddfc9`. 71 lib tests + clippy + fmt clean.
1418
>
1519
> **2026-06-16 — MERGED #510** (surreal_container seam falsifier — IN-direction): `crates/surreal_container/tests/scheduler_seam.rs` — **+125/-0, one new file, zero source change**; first integration-test file in `surreal_container`. Five kill-condition-first tests pin the `SurrealMailboxView → NextPhaseScheduler::on_version → KanbanMove` contract end-to-end: legal-successor walk over the full Rubicon arc, absorbing-column guard (Commit/Prune schedule no advance), `-550_000µs` Libet-anchor pinned to the Planning→CognitiveWork Σ-commit crossing, lowering-determinism, ExecTarget-rides-onto-move. Branch `claude/sleepy-cori-aRK2x`, merge commit `0e6452c8`. **Out of scope (explicit, deferred):** the OUT-direction = planner-emit `KanbanMove` (`CognitiveCycle` sequencer + §9 LOCKED from #496) — `D-MBX-A6-P3` remains the next unblock. This PR proves the downstream half; the upstream half is still hand-rolled. Test bench is also the template the planner-emit half will be verified against once it lands. `surreal_container` is excluded from CI, so the suite runs locally/on-demand (standing CI-coverage-gap follow-up — CI tests 4 of ~30 crates).
@@ -42,6 +46,8 @@
4246

4347
| PR | Merged | Title | What it added |
4448
|---|---|---|---|
49+
| **#512** | 2026-06-16 | perturbation-sim review fixes + **core-first transcode doctrine** + 3 new agent cards | **+591/-5 across 11 files**. Fixes from #511 review: `examples/calibrate.rs` divide-by-zero guard on degenerate grid; `src/hhtl.rs::basin_lambda2` `assert_eq!(keys.len(), grid.n, …)` precondition (silent-corruption → loud panic); `TECH_DEBT.md` MD018 reflow. **The structural delivery:** new mandatory-read `core-first-transcode-doctrine.md` (218 LOC) + 3 specialist agents (`core-first-architect`, `core-gap-auditor`, `adapter-shaper`) + EPIPHANIES entry + CLAUDE.md (+21 LOC) wire-up. Likely aligned with the ontology-first / codegen-as-cut-tail doctrine the operator just locked on odoo-rs. 75 lib tests + clippy `-D warnings` + fmt clean. Branch `claude/happy-hamilton-0azlw4`, merge `1e23c410`. |
50+
| **#513** | 2026-06-16 | perturbation-sim: inertia §0 promotion gate + CAKES/CHAODA + witness standing-wave + H ingest | **+1009/-2 across 10 files**, disjoint from #512 by design. **§0 promotion gate** for `inertia_buffer`: `GuardrailVerdict::RatifiedReuse` — takes `ResidueEdge INERTIA_SLOT = 5`, reuses existing tenant, invents no axis → **passes by reuse, not waiver**. **Probe 1 CAKES + CHAODA-lite** over HHTL basins (`CHAODA_FLAG=0.75` mirrors ndarray::clam; example flags brittle block 1.1.0 score 1.000). **Probe 2 witness arc as standing wave** — Parseval proves `particle == wave` to 0.00e0; `witness_from_spectrum` is the O(N)-per-arc read-many amortization. **Probe 3** per-bus inertia (H) ingest path. Does NOT touch `canonical_node`. Branch `claude/perturbation-sim-inertia-clam`, merge `8a3e335b`. |
4551
| **#511** | 2026-06-16 | perturbation-sim: substrate calibration (study as ground truth) + calibrated SoA member spec | **+886/-0 additive across 9 files** — `examples/calibrate.rs` (new, 318 LOC, ICC/Spearman/Pearson/Cronbach battery), `src/columns.rs` (new, 177 LOC, **spec only**), `src/hhtl.rs` (new, 175 LOC), `examples/hhtl_grid.rs` (new, 81 LOC), `CLAM_CHAODA_FRAMING.md` (new, 75 LOC). Calibrates the SoA value tenants against perturbation-sim's deterministic study as ground truth: **all 5 contingency factors certify by VALUE at 2-bit linear** (ICC ≥ 0.96), the §10 "statistics survive the encoding" claim **CONFIRMED**; α preserved within Δ ≤ 0.02 at ≥4-bit; read ≥6-bit for cross-axis orthogonality. The **one additive member** named: **`inertia_buffer`** — orthogonal to topology per PR #509's `Spearman(λ₂, buffer) ≈ 0`, spec only, promotion gated by §0 guardrail. Self-correction: two prior guesses on `d_lambda2`'s ICC=0 (heavy-tail / near-constant) **retracted** — it was a variance-guard underflow at ~1e-7. Significance per Jirak `n^(p/2−1)`. Does **NOT** touch `canonical_node` (operator-locked). Branch `claude/perturbation-sim-calibrate-soa`, merge commit `c3dddfc9`. |
4652
| **#510** | 2026-06-16 | test(surreal_container): additive seam falsifier — SurrealMailboxView → VersionScheduler → KanbanMove | **`crates/surreal_container/tests/scheduler_seam.rs`** — additive: **+125/-0, one new file, zero source change**; first integration-test file in the crate. Five kill-condition-first tests pin the **IN-direction** of the surreal↔kanban↔scheduler wiring against the real `SurrealMailboxView` (not the in-crate `FakeView`): full Rubicon arc → legal successors, absorbing-column no-advance guard, Libet `-550_000µs` anchor at the Planning→CognitiveWork Σ-commit crossing, lowering-determinism, ExecTarget-survives-lowering. **Out of scope (deferred, explicit):** OUT-direction = planner-emit `KanbanMove` (`CognitiveCycle` sequencer + §9 LOCKED from #496) — `D-MBX-A6-P3` remains the next unblock. Branch `claude/sleepy-cori-aRK2x`, merge commit `0e6452c8`. CI-invisible (crate excluded). |
4753
| **#459** | 2026-06-03 | feat(helix): golden-spiral Place/Residue codec (zero-dep + optional ndarray-hpc) | **`crates/helix`** — new standalone codec realising the Place/Residue `KNOWLEDGE.md` (HHTL = PLACE, helix = orthogonal RESIDUE). `HemispherePoint` (√u equal-area placement) → `CurveRuler` (stride-4-over-17) → `Similarity` (Fisher-Z/arctanh) → `RollingFloor` (256-palette; occupancy-drift + version stamp) → 3-byte `ResidueEdge` + `DistanceLut` (metric-safe 256×256 L1) + `prove()` (2-D discrepancy companion to `jc::weyl`). Zero-dep default (empty `[workspace]`, root `exclude`); optional `ndarray-hpc` = batch Fisher-Z via `simd_ln_f32`. 63 unit + 6 doctests green both configs; clippy/fmt clean. ~80% clean-room overlap with CERTIFIED primitives (E-HELIX-OVERLAP / TD-HELIX-OVERLAP-1). Merge commit `ef35ff1`. Branch `claude/gallant-rubin-Y9pQd`. |

.claude/board/PR_ARC_INVENTORY.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,61 @@
3535
3636
---
3737

38+
## #512 perturbation-sim: degenerate-grid + key-cardinality guards + core-first-transcode doctrine (review #511 + #513)
39+
40+
**Status:** MERGED 2026-06-16 20:33 UTC (merge commit `1e23c410`), branch `claude/happy-hamilton-0azlw4`. **+591/-5 across 11 files** — addresses the open review findings from #511 (which merged before they resolved) AND introduces the **core-first-transcode** doctrine + 3 new agent cards.
41+
42+
**Added (code fixes):**
43+
- **CodeRabbit Major fix**`examples/calibrate.rs` divide-by-zero on a degenerate grid: `k = 24.min(m)` is `0` when `m == 0` so `m / k` panics; `eigenvector(1)` / `m - 1` also break for `n < 2`. Up-front guard exits cleanly with a message.
44+
- **CodeRabbit Major fix**`src/hhtl.rs::basin_lambda2` silent corruption: a `keys` slice whose length ≠ `grid.n` silently produced wrong basin groupings + λ₂. Added `assert_eq!(keys.len(), grid.n, …)` precondition at the API boundary (loud-fail, all profiles).
45+
- **CodeRabbit Minor fix**`TECH_DEBT.md` MD018: reflowed the wrapped `#507` so it stops parsing as an ATX heading.
46+
47+
**Added (doctrine — the structural delivery):**
48+
- **`.claude/knowledge/core-first-transcode-doctrine.md` (218 LOC)** — new mandatory-read knowledge doc establishing the core-first transcode posture. Likely directly aligned with the ontology-first stance the operator just locked in on `odoo-rs` (Odoo's ontology runs natively in SurrealDB, codegen is the "cut tail").
49+
- **3 new agent cards:** `core-first-architect.md` (91 LOC), `core-gap-auditor.md` (91 LOC), `adapter-shaper.md` (80 LOC). Wired into `.claude/agents/BOOT.md` (+3) and `.claude/agents/README.md` (+33).
50+
- **`.claude/board/EPIPHANIES.md`** prepend (+24 LOC) — the originating finding.
51+
- **`CLAUDE.md`** workspace charter (+21 LOC) — assumed to wire the core-first doctrine into the top-level read list (NEW content not yet inspected this session).
52+
53+
**Not changed (with stated reason):**
54+
- **Codex P2 (`infight` width)** already fixed before merge — `columns.rs` carries `spec("infight", 4, …)` (certified 4-bit per the §10 note), tests assert. Thread left open without code change.
55+
- **CodeRabbit Major (TECH_DEBT.md append-only governance)** — the 2026-06-16 addendum sits mid-entry instead of as a prepended dated entry. Valid governance observation; the compliant fix is a 31-line board reorganization that belongs in a focused hygiene pass, not churn inside a code-fix PR. Flagged on the thread, deferred to the entry owner.
56+
57+
**Locked:** the core-first doctrine and its 3 specialist agents are now part of the workspace mandatory-read set (`core-first-transcode-doctrine.md`). The `assert_eq!` precondition on `basin_lambda2` formalises the key-cardinality contract — degraded silent output is now a panic.
58+
59+
**Deferred:** TECH_DEBT.md append-only repositioning (separate hygiene PR). Cross-doctrine reconciliation between `core-first-transcode-doctrine.md` and the existing `lab-vs-canonical-surface.md` / `encoding-ecosystem.md` knowledge spine has not been inspected this session.
60+
61+
**Docs:** see above — 218-LOC new knowledge doc, EPIPHANIES entry, CLAUDE.md wire-up, 3 new agent cards. AGENT_LOG/LATEST_STATE updated in **this** retroactive-hygiene commit.
62+
63+
**Confidence (2026-06-16):** code-fix portion working (`fmt` + `clippy -D warnings` + `test` green; 75 lib tests on perturbation-sim). Doctrine portion **unverified this session** — the new `core-first-transcode-doctrine.md` content is unread by this thread and may impact the odoo-rs ontology-first design when next loaded.
64+
65+
## #513 perturbation-sim: inertia §0 promotion gate + CAKES/CHAODA + witness standing-wave + H ingest
66+
67+
**Status:** MERGED 2026-06-16 20:27 UTC (merge commit `8a3e335b`), branch `claude/perturbation-sim-inertia-clam`. **+1009/-2 across 10 files**. Disjoint files from #512 (no `calibrate.rs`, no `basin_lambda2` body, no `TECH_DEBT.md`) by design. Four additive deliverables continuing the resilience arc after #511.
68+
69+
**Added (1) — `inertia_buffer` §0 promotion gate (`33d66ca9`):** flips the anti-invention guardrail review for the one additive SoA member (operator sign-off 2026-06-16) and makes it real:
70+
- `GuardrailVerdict { Proposed, RatifiedReuse }` + `INERTIA_PROMOTION`. **Verdict = RatifiedReuse**: `inertia_buffer` takes `ResidueEdge` slot `INERTIA_SLOT = 5`, reuses an existing value tenant, invents no new axis → **passes §0 by *reuse*, not waiver**. Topology stays the HHTL-OGAR GUID key; the buffer is one more value, orthogonal by the key/value split.
71+
- `study_slot_assignments()`: the 6 members → ResidueEdge slots 0..6, collision-free.
72+
- `buffer::inertia_buffer_column()`: the computed producer (per-bus `impulse_buffer`, normalized to [0,1], degenerate-safe).
73+
74+
**Added (2) — Probe 1, CAKES + CHAODA over HHTL basins (`8d87ef0e`):** the CLAM-family similarity (attraction) / anomaly (repulsion) pair applied to grid resilience:
75+
- HHTL = the family basin; **CAKES** (`cakes_neighbors`) = "who are my relatives"; **CHAODA** (`chaoda_scores` / `anomaly_ranking`) = per-basin kNN-distance anomaly = the fail-first compartment (`CHAODA_FLAG = 0.75` mirrors `ndarray::clam`'s flag).
76+
- `resilience_basin_features`: per-basin `[λ₂, size, inertia]` rows (topology / scale / buffer — the three orthogonal axes).
77+
- Self-contained CHAODA-lite; `ndarray::clam`'s full `ClamTree` ensemble is the gated production path (no local ndarray sibling here). Example `chaoda` flags the planted brittle block (basin 1.1.0, score 1.000).
78+
79+
**Added (3) — Probe 2, witness arc as standing wave (`006d2322`, METHODS §11):** proves `particle == wave`. A witness arc walked hop-by-hop (`O(hops)` pointer-chase) equals its Walsh-pyramid evaluation via **Parseval** (`Hᵀ·H = N·I`): `⟨field, arc⟩ = (1/N)·⟨Ĥ·field, Ĥ·arc⟩`.
80+
- `witness_particle` (the walk) / `field_spectrum` (transform once) / `witness_from_spectrum` (read many arcs, `O(N)` each — the amortization win) / `witness_wave` / `particle_equals_wave`.
81+
- Example `witness` runs it on the inertia-buffer field; particle vs wave agree to **0.00e0**. The contract `witness_table` evaluator remains a separate gated step (SoA spine = additive-only behind iron rules).
82+
83+
**Added (4) — Probe 3, per-bus inertia (H) ingest path (`723472a9`):** real H is not in PyPSA/OSM topology; this PR opens the ingest path so per-bus inertia becomes observable. Source: `crates/perturbation-sim/src/inertia_data.rs` (183 LOC, new) + `examples/inertia_ingest.rs` (66 LOC, new). [PR body truncated in fetch — full payload details TBC on next session.]
84+
85+
**Locked:** (1) **§0 RatifiedReuse precedent** — additive SoA members can be ratified by *reuse of an existing value tenant* rather than a §0 waiver, when the topology stays in the HHTL-OGAR GUID key and the new member rides an existing tenant. (2) `INERTIA_SLOT = 5` carved in `ResidueEdge`. (3) Particle/wave duality via Parseval is the canonical pattern for witness-arc evaluation at scale (read-many amortization).
86+
87+
**Deferred:** (1) Production CHAODA/CAKES path through `ndarray::clam::ClamTree` (gated on local ndarray sibling). (2) Contract-side `witness_table` evaluator (the SoA spine surface that consumes Probe-2's math). (3) Full inertia ingest API documentation (truncated PR body).
88+
89+
**Docs:** standalone crate, no `.claude/board/*` updates landed in this PR (the doctrine work landed separately in #512). This entry + LATEST_STATE row + AGENT_LOG entry land in **the same commit** as the #512 entry above (retroactive batch hygiene).
90+
91+
**Confidence (2026-06-16):** working — `fmt` + `clippy -D warnings` + `test` green on the standalone perturbation-sim crate; particle-equals-wave numeric agreement at machine epsilon; CHAODA-lite correctly flags the planted brittle block.
92+
3893
## #511 perturbation-sim: substrate calibration (study as ground truth) + calibrated SoA member spec
3994

4095
**Status:** MERGED 2026-06-16 19:01 UTC (merge commit `c3dddfc9`), branch `claude/perturbation-sim-calibrate-soa`. **Additive: +886/-0 across 9 files**`examples/calibrate.rs` (new, 318 LOC), `src/columns.rs` (new, 177 LOC, spec only), `src/hhtl.rs` (new, 175 LOC), `examples/hhtl_grid.rs` (new, 81 LOC), `CLAM_CHAODA_FRAMING.md` (new, 75 LOC), small wires in `Cargo.toml`/`src/lib.rs`, plus `.claude/board/TECH_DEBT.md` (+32) and `.github/workflows/rust-test.yml` (+16). Does **NOT** touch the operator-locked `canonical_node`.

0 commit comments

Comments
 (0)