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
4 changes: 4 additions & 0 deletions .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ Plan: `.claude/plans/kanban-64k-inverted-awareness-v1.md` (operator anchors a/b;
| D-KIA-C5 | cohort-statistic witness type under the ELEVATED carve-out + held-out anti-circularity gate | lance-graph | Queued | plan W4 |
| D-KIA-D1 | observer/observed as two Locus categories over one arena (cheapest-first) | lance-graph | Queued | plan W5 |
| D-KIA-C2 | Name the dichotomous statistics correctly (Pearson->phi, alpha->KR-20, kappa NOT a renamed ICC, Spearman dropped on binaries). AUDIT RESULT 2026-08-04: the jc reliability battery has exactly 4 consumers (style_table_agreement, rung_divergence_reliability, partof_isa_vs_palette256, l9_loci_real_text) and NONE is dichotomous — style columns, rung levels 1-10, palette/taxonomy distances, i4 loci offsets are all continuous/ordinal, so Pearson/alpha/ICC are correctly named at every existing call site and there is ZERO rename work today. The discipline binds PROSPECTIVELY at the first binary-criteria witness (D3). Surfaced instead: TD-STATS-DEGENERACY-CONTRACT-DIVERGENCE | lance-graph | Audited (no rename work; binds at D3) | plan W0/C2 |
| D-BLW-1 | One 64k KJV SoA + the four-stance lens body wired into cycle_driver's 5.4 pluggable thought seam; Outcome round-trips via emit_bootstrap_intent. Reuses P4a/P4b/P4c falsifiers at KJV scale | lance-graph | Queued | plan cycle-driver 12 |
| D-BLW-2 | The four stances (Hegel/Nietzsche/Kant/Wittgenstein) as READS over the sealed version, not four bakes. Discrimination twin: pairwise binary_association must show lenses can differ AND can agree; report counts + both marginals, never bare kappa | lance-graph | Queued | plan cycle-driver 12 |
| D-BLW-3 | Horizontverschmelzung as a measured trajectory across the sealed series, under a-priori (single-version filter) and hindsight (version-range cascade) reads. KILL: flat kappa regrades the claim to four independent stance reads — not Gadamer | lance-graph | Queued | plan cycle-driver 12 |
| D-BLW-4 | 64k concurrent thought bodies at KJV scale. Inherits W2's pre-registered thresholds (median of 5+ runs, 2x at 4096+ owners, 100us bodies). KILL: regrades to 64k-scale SEQUENTIAL sparse cycles | lance-graph | Queued (scale) | plan cycle-driver 12 |
| D-KIA-D3a | DESCRIPTIVE binary overlap: contingency counts + BOTH marginals + observed/expected agreement + kappa + phi, via jc::stats::binary_association. Claim ceiling is overlap / disagreement / marginal asymmetry / redundancy-or-complementarity CANDIDATE. No fusion or validity claim | lance-graph | Queued (unblocked) | plan W6 |
| D-KIA-D3b | HELD-OUT fusion falsifier — BLOCKED until an external criterion and a criterion-appropriate scoring rule are chosen. Continuous criterion: pre-registered delta-R-squared = R2(A+B) - max(R2(A),R2(B)). Binary criterion: a proper held-out score, NOT R-squared forced onto it. Reliability is not validity (plan C3) | lance-graph | Blocked (needs external criterion) | plan W6 |

Expand Down
97 changes: 97 additions & 0 deletions .claude/plans/cycle-loop-closure-driver-v1.md
Original file line number Diff line number Diff line change
Expand Up @@ -502,3 +502,100 @@ The desired result is a straight railway track, not a grand unification:
**contract defines · planner proposes and seals · supervisor owns and applies ·
shader thinks · Lance persists**; adjacent crates observe, adapt, or provide
optional capabilities.

---

## 12. Arm BLW — the Bible lens wave: 64k thoughts firing at once, four stances, measurable Horizontverschmelzung

> **Status:** PLANNED / CONJECTURE. Operator-directed 2026-08-04. Adds **no new
> subsystem** — the lens is a thought body in the §5.4 pluggable seam, the
> corpus is the shipped KJV bake, the four stances are the shipped B6 panel, and
> the fusion read is `temporal.rs`'s existing version-range surface. §7's
> exclusions hold verbatim: `persist_sink.rs` and `temporal.rs` are **not
> modified**, only consumed.

### 12.1 The shape, and the one architectural decision

**ONE 64k SoA bake of the whole Bible. Not 1+1+4.**

The operator offered two shapes — six parallel SoAs (base + Gadamer + four
lenses), or one sealed series read as a time series. **The six-SoA shape is
rejected, and not on cost grounds:** four lens SoAs would be *copies of the same
64k verse rows* differing only in which stance reads them. A stance read is a
**projection**, not a cross-input derivation of a higher KIND, so the zero-copy
law's ELEVATED carve-out (the `Locus::Quorum` precedent) does **not** cover it —
the `zero-copy-warden` verdict for that shape is **MATERIALIZES**. The 6× memory
is the smaller objection; the law is the real one.

So:

```
one KJV bake → 64k verse-owners in ONE MailboxSoA
cycle Vn: sparse sealed transition set (§3) — 17 dirty, not 64k
CognitiveWork body (§5.4 seam) = apply stance L to the owner's slice
Outcome → owner_adapter::emit_bootstrap_intent → cast into Vn+1
seal Vn ────────────────────────────────────────────┐
FOUR STANCES ARE FOUR READS OF THE SEALED SERIES, NOT FOUR BAKES
Hegel(Aufhebung) · Nietzsche(genealogy-flip) · Kant(critique) ·
Wittgenstein(meaning-as-use) — all shipped in probe_eyes_opened.rs
```

The lens does not own a mailbox, does not add a node type, and does not change
the stride. It is a function over an owner's arena slice, dispatched through the
seam the driver already exposes.

### 12.2 Gadamer, mechanically: a priori and hindsight are the SAME data, two reads

Horizontverschmelzung needs no third mode. The sealed version series supports
both readings the operator named, and `temporal.rs` already distinguishes them:

| Gadamer | mechanically | temporal.rs surface |
|---|---|---|
| **a priori** — *Vorurteil*, the prejudice that is the **condition** of understanding, not its defect | the horizon is the **prior sealed version `Vn`**, read at plan-evaluation time and fed into cycle `Vn+1`'s thought | single-version read, `QueryReference::at(Vn, rung)` — **filter** |
| **hindsight** — *wirkungsgeschichtliches Bewusstsein*, fusion recognised after the fact | the horizon is a **version RANGE** `Vn..Vm`, deinterlaced at read time | range read + deinterlace — **cascade** |

**Nothing is chosen at bake time.** One series, two reads, per
`E-MARKOV-TEMPORAL-STREAM-1` (the trajectory lives on the sorted stream; any
width, per-reader rung, replayable, zero copies). This is why the time-series
shape is not merely cheaper than 1+1+4 — it is the only one where the a-priori
and hindsight readings are *the same object*.

### 12.3 Deliverables

| ID | Deliverable | Falsifier (what input makes it fail) |
|---|---|---|
| **D-BLW-1** | **one 64k KJV SoA + the lens body in the §5.4 seam** — verse-owners registered in one `MailboxSoA`; `CognitiveWork` dispatches a stance over the owner's slice; Outcome round-trips via `emit_bootstrap_intent`. | Reuse P4a/P4b/P4c verbatim at KJV scale: N casts → **one** WAL write + **one** version; only the sealed sparse set advances (**anti-vacuity:** assert the untouched remainder is byte-identical, not merely that the dirty set moved); an Outcome cast in `Vn` is collected and applied in `Vn+1`. |
| **D-BLW-2** | **the four stances as reads over the sealed version** — Hegel / Nietzsche / Kant / Wittgenstein each produce a per-verse binary verdict from `at(Vn)`. | **The discrimination twin — the gate most likely to fail.** Pairwise `jc::stats::binary_association` over verses: (a) *can-discriminate* — at least one lens pair has κ materially **below** 1 on a non-trivial share of units; (b) *can-agree* — at least one pair has κ materially **above** 0. Four lenses that rank everything identically carry exactly as much information as one (the `closed_class_guess` 150/150 defect); four that agree nowhere are noise, not perspectives. **Report the full table — counts + BOTH marginals + `p_o`/`p_e` — never bare κ** (`BinaryAssociation` exists precisely because κ and φ are uninterpretable without marginals). |
| **D-BLW-3** | **Horizontverschmelzung as a measured trajectory** — pairwise lens agreement tracked across the sealed series `V1..Vn`, under both the a-priori (single-version) and hindsight (range) reads. | **Fusion must MOVE.** If pairwise κ between two lenses is flat across the series, no horizons merged and the word is decoration. **Kill condition:** flat κ ⇒ the claim regrades to *"four independent stance reads over a shared corpus"* — still true, still useful, **not Gadamer**. The two reads must also be compared: if the a-priori and hindsight trajectories are identical, the distinction is not doing work and should be dropped rather than narrated. |
| **D-BLW-4** *(scale)* | **64k concurrent thought bodies** — the parallelism claim, at KJV scale. | Inherits W2's **pre-registered, non-adjustable** thresholds: median of ≥5 runs after one discarded warm-up; ≥2× speedup at ≥4,096 owners with ≥100 µs bodies. **Kill:** failure regrades claim (a) to *"64k-scale **sequential** sparse cycles"* — still true, different claim. |

### 12.4 Claim ceiling (carried from the D3a/D3b split — do not re-cross it)

κ and φ between two lens projections measure **overlap**, not validity. A
Horizontverschmelzung measured this way is a **reliability-class** statement:
*these two horizons agree more (or less) than chance, and that agreement moved.*
It is **not** evidence that the fusion produced *better* understanding — that is
D3b, and D3b stays blocked on an external criterion and a criterion-appropriate
held-out score. Reliability is not validity (plan C3); the #888 board correction
exists because this exact line was crossed once already.

**Significance:** `jc::stats` p-values are classical **independent-sample**
p-values. Verses within a book are domain-correlated, so they do **not** apply
unmodified here — any significance claim over this corpus needs its own
justified dependence model, named at the claim site (C4, as corrected).

### 12.5 What this arm must NOT do

- **No sixth SoA, no lens-owned mailbox, no stance node type.** A lens is a read.
- **No modification of `persist_sink.rs` or `temporal.rs`** (§7) — the range read
uses the surface that already exists.
- **No new statistics.** `binary_association` / `cohen_kappa` / `phi` ship in
`jc::stats`; the `jc` additive constraint continues to hold — those functions
are the independent reference frame this arm is measured against, and are not
to be "improved" while being used as the oracle.
- **No fusion or validity claim** before D3b (§12.4).