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
61 changes: 61 additions & 0 deletions .claude/board/EPIPHANIES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,64 @@
## 2026-09-02 — E-QUALIA-IS-RANK-INERT-AT-THE-FRONTIER-AND-POPULATION-LOSES-TO-COUNTING-1

**Status:** MEASURED (PROBE-POP-READOUT-1 / D-POP-1, `pop_readout.rs`, whole
KJV, 227,261 candidates, 9 splits x 25 shuffles, deterministic).
**Confidence:** High on findings 1/3/4 (each is a direct measurement with a
size-preserving null or an exact identity); Medium on 2 (a weak effect, real
against its null, on one corpus and one label).

**The pre-registered claim was KILLED.** A population-typicality readout (an
object's Cam96 distance to its subject's own basin centroid) does not improve
the exploration frontier's ranking: mean precision@10 falls 0.289 -> 0.011
against the shipped `FrontierEdge::curiosity`, and lands BELOW its own
label-shuffle null (null p95 0.133). Combining it in is worse than omitting it.

**It is not noise, though.** Controlling for prefix frequency, the readout's
partial Spearman against later recurrence is 0.090 against a null 95th
percentile of 0.020. A weak global trend and a useless top-k coexist, because
the extreme of the readout is degenerate (objects sitting on their own
centroid). Precision@k probes the tail, Spearman the trend; when they
disagree, that disagreement is the result.

**The sharpest finding is about shipped code, not about the hypothesis:
`curiosity_gestalt` cannot reorder a frontier.** Measured
`spearman(curiosity, gestalt_magnitude) = 1.000000` under two deliberately
contrasting `MulAssessment`s. `exploration.rs:180-215` shows why -- the
magnitude is `base * fw * dk * flow * trust * staunen_boost * ground_gate`
and every factor but `base` is per-GRAPH, so all per-edge variation flows
through `curiosity` alone. MUL and qualia rescale the frontier; they never
reorder it. Consequently the operator's framing question, "does population
beat qualia/context alone", had an a-priori answer for any RANKING task:
qualia carries zero ranking information at the frontier as shipped. Whether
that is a defect or an intended global gain is a design question this entry
does not settle -- but a weighting that cannot change an order cannot be
evidence for or against a competing readout either.

**And the control beat everything cognitive.** Plain prefix frequency reaches
precision@10 = 0.756 against curiosity's 0.289, while curiosity is
ANTI-correlated with recurrence (rho ~ -0.27) -- consistent with it working as
designed (prefer the rare and unqueried) rather than failing. The rule this
banks: any future frontier-ranking claim clears the frequency control first,
or it has measured nothing. This is the same lesson
`E-BASIN-WIDTH-IS-N-ARTIFACT-1` banked for held-out reliability, applied to
ranking: a quantity that co-varies with sample count needs a partial, not a
raw correlation. The frequency arm and the partial were a deliberate
STRENGTHENING of the pre-registered design, added before the run and recorded
as such in the plan.

**A survey error, corrected by trying to run it:** the plan named Fisher-z and
`RollingFloor::occupancy` as available ingredients. They are not reachable --
`helix` is not a dependency of `deepnsm-v2`, and adding one pulls the ndarray
git fork into that crate's build. The inventory listed primitives without
checking the dependency edge. Under rank combination Fisher-z is inert anyway
(a monotone transform cannot change a rank), so its disable arm is answered
for a rank readout and open only for a magnitude one.

**Consequence for the six families:** family 3 as a molecule feeding frontier
selection is NOT licensed; a carrier is licensed even less. The vacancy
stands. The readout's plausible home is a basin-level prior on the global
trend rather than a top-k selector -- stated as a question, per the
falsifier-first rule, not as a direction.

## 2026-09-02 — E-SIX-SEMANTIC-FAMILIES-MUST-NOT-IMPERSONATE-EACH-OTHER-1

**Status:** OPERATOR RULING (semantic-family recovery), landed as the
Expand Down
6 changes: 6 additions & 0 deletions .claude/board/LATEST_STATE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
## 2026-09-02 — branch (D-POP-1 result): PROBE-POP-READOUT-1 — INVENTORY DELTA

- ADDED `crates/deepnsm-v2/examples/pop_readout.rs` — the D-POP-1 probe (no library surface, no new type, no tenant). Consumes `Cam96Space::distance`, `basin_self_code`, `partial_spearman` and `lance_graph_contract::exploration::{FrontierEdge, NarsTruth}`; produces a KILL verdict plus three side-findings (plan §6a).
- MEASURED, not added: `FrontierEdge::curiosity_gestalt` is RANK-INERT — its magnitude is a per-graph scalar multiple of `curiosity` (`exploration.rs:180-215`), so MUL/qualia cannot reorder a frontier. Any consumer treating the gestalt magnitude as a distinct ranking key is using a rescale.
- UNCHANGED: no contract type added, removed or re-read. Family 3 remains a vacancy.

## 2026-09-02 — branch (cleanup, no PR yet): semantic-family recovery — CONTRACT INVENTORY DELTA

- ⊘ REMOVED `lance_graph_contract::epistemic_bassin` (all of it: `EpistemicBassin24`, `AxisState`, the Belnap masks, `sweep_ternlog`/`eval_ternlog`, `info_gain_u4`, `sigma_tension_u4`, `loco_band`, `axes`) and `lance_graph_contract::basin_lanes` — operator semantic-family ruling 2026-09-02 (`E-SIX-SEMANTIC-FAMILIES-MUST-NOT-IMPERSONATE-EACH-OTHER-1`). The 2026-09-01 inventory rows below are regraded ⊘ in place; nothing they named reached a tenant, a layout version or a producer.
Expand Down
15 changes: 15 additions & 0 deletions .claude/board/PR_ARC_INVENTORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,21 @@
> census §8.3 trap 10: read the body FIRST, then open for write — never
> inline both in one expression.

## 2026-09-02 — lance-graph branch `claude/medcare-rs-continue-6nhbxn` (D-POP-1 result PR, after #1135) — PROBE-POP-READOUT-1

- **Added:** `crates/deepnsm-v2/examples/pop_readout.rs` (probe only, no library
surface); plan §6a RESULT; EPIPHANIES entry; LATEST_STATE delta; STATUS_BOARD
D-POP-1 -> Shipped (KILL).
- **Measured:** VERDICT KILL on the pre-registered claim; `curiosity_gestalt`
rank-inertness at rho = 1.000000 over 227,261 candidates; frequency control
p@10 = 0.756 vs the shipped ranker's 0.289; population partial rho 0.090 vs
null p95 0.020.
- **Deferred:** the Fisher-z and RollingFloor legs (helix unreachable from
deepnsm-v2); any population carrier, tenant, ClassView or axis set -- the
vacancy stands and this result narrows rather than widens it.
- **Confidence:** High for the KILL and the two identity/control findings;
Medium for the weak non-null trend (one corpus, one label).

## 2026-09-02 — lance-graph branch `claude/medcare-rs-continue-6nhbxn` (survey PR, opened after #1134) — post-teardown buildup survey v1

- **Added:** `.claude/plans/post-teardown-buildup-survey-v1.md` (survey,
Expand Down
2 changes: 1 addition & 1 deletion .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
| D-id | deliverable | status |
|---|---|---|
| D-POP-0 | the survey itself: six-family inventory, atom/operator inventory, family×operator legality matrix, molecule candidates, gap list (plan §§1–5) | **Shipped (plan-only, this PR)** |
| D-POP-1 | PROBE-POP-READOUT-1: composed population readout (Cam96 centroid distance → Fisher-z → occupancy bucket) vs `curiosity` / `curiosity_gestalt` at predicting later-confirmed frontier edges on the KJV stream; size-preserving shuffle null; PASS/KILL pre-registered in plan §6 | **Queued**needs the `v0.1.0-cam96-data` + Gutenberg #10 fetch; one example binary, no new types |
| D-POP-1 | PROBE-POP-READOUT-1: composed population readout (Cam96 centroid distance → Fisher-z → occupancy bucket) vs `curiosity` / `curiosity_gestalt` at predicting later-confirmed frontier edges on the KJV stream; size-preserving shuffle null; PASS/KILL pre-registered in plan §6 | **ShippedVERDICT KILL** (`pop_readout.rs`, 2026-09-02; `E-QUALIA-IS-RANK-INERT-AT-THE-FRONTIER-AND-POPULATION-LOSES-TO-COUNTING-1`, plan §6a). Population readout degrades frontier p@10 0.289 -> 0.011, below its own shuffle null; real partial rho 0.090 vs null p95 0.020 (weak but non-null global trend). Side-findings: `curiosity_gestalt` is rank-inert (rho = 1.000000 vs `curiosity` over 227,261 candidates, two assessments); plain frequency p@10 = 0.756 beats every cognitive arm; helix (Fisher-z / RollingFloor) is not reachable from deepnsm-v2, so those legs are NOT RUN |
| D-POP-2 | contradiction write-back producer (`elect_peers` → `WitnessLens::write_register`) — the one cheap gap that unblocks the contradiction-driven-revision molecule (plan §4) | **Queued** — not before D-POP-1 reports |

## dismech-causal-replay-v1
Expand Down
2 changes: 1 addition & 1 deletion .claude/board/SUPERSESSION-INDEX.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ a licence to act on it.
| **READ** | `mul-consumer-census-v1` | `GateDecision` | MEASUREMENT COMPLETE — 2026-08-27. Measureme | 1/2 |
| **READ** | `mul-ewa-trust-propagation-v1` | `GateDecision` | PROPOSED — PLAN/BOARD ONLY. Measure-before-c | 1/3 |
| **READ** | `persistence-artifact-backed-commit-v1` | `persist_cycle` | RATIFIED (operator ruling 2026-08-09). Phase | 0/0 |
| **READ** | `post-teardown-buildup-survey-v1` | `StepMask` | SURVEY, read-only, plan-only (no code, no te | 3/4 |
| **READ** | `post-teardown-buildup-survey-v1` | `StepMask` | SURVEY, read-only, plan-only (no code, no te | 4/4 |
| **READ** | `r2il-bpe-typed-genetic-recombination-v1` | `GateDecision` | PROPOSAL, §7's three falsifiers now RUN (see | 1/1 |
| **READ** | `scientific-kg-substrate-v1` | `GateDecision` | PROPOSED — **scoping doc**, no code. Records | 8/9 |
| **READ** | `self-reasoning-substrate-v1` | `GateDecision` | PROPOSED — doc-only. No code, no contract ch | 5/5 |
Expand Down
28 changes: 28 additions & 0 deletions .claude/knowledge/never-truncate-a-file-you-still-need-to-read.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,34 @@ correctness or ordering — a same-length corruption passes this check.
A non-blocking PreToolUse guard (`.claude/hooks/anti-pattern-matching.sh`)
injects this rule when a Bash command matches the write-while-reading shape.

## Recurrence — 2026-09-02, EPIPHANIES.md, 25,172 -> 61 lines

The rule fired again, in a session that had this file's own prohibition in its
context. A board-hygiene pass prepended a new entry with
`open(p,'w').write(E + open(p).read())` -- the exact prohibited shape --
inside a Python heredoc that ALSO carried two CORRECT prepends
(`b = open(p).read()` first, then `open(p,'w')`) for LATEST_STATE and
PR_ARC_INVENTORY. Writing the safe form twice in the same script did not
prevent writing the unsafe form once.

What caught it: the mandatory post-write `wc -l` comparison against
`origin/main`, printed for every touched board file in the same command. The
line `EPIPHANIES.md main=25172 now=61` was unmissable, and restoration was a
`git checkout` plus a re-prepend, because the destruction happened in the
working tree and was never committed.

Two lessons this recurrence adds:

1. **The guard has to be in the same breath as the write.** The rule as
stated is a prohibition an author must remember; the `wc -l` check is a
detector that runs whether or not they remembered. Print the before/after
line counts in the SAME command that writes, every time, and never commit a
board pass without reading that output.
2. **Mixed-safety scripts are the dangerous shape.** A heredoc containing
several prepends is where this hides: the correct ones make the script
look reviewed. Prefer one helper used for every prepend in a pass over
three hand-written ones.

## Cross-reference / retrieval footer

- Restore PR: lance-graph **#1082** (merge `82679c3a`); prohibition PR **#1083**
Expand Down
94 changes: 94 additions & 0 deletions .claude/plans/post-teardown-buildup-survey-v1.md
Original file line number Diff line number Diff line change
Expand Up @@ -241,3 +241,97 @@ name as storage.
held-out figures are 0.766 / 0.624.
- The tracers reported the working-tree HEADs as `f3eb2f6` (lance-graph) and
`1eb2ddb` (OGAR); both are the trees the merges `20eaf7f` / `954fc52` carry.

---

## 6a. PROBE-POP-READOUT-1 — RESULT: **KILL** (measured 2026-09-02)

Shipped as `crates/deepnsm-v2/examples/pop_readout.rs`. Deterministic; 89 s on
the whole book. Inputs: `bible_wave --export` (70,393 triples over 31,102
verses) plus the trained `v0.1.0-cam96-data` codebook (12,543 words, 12 axes).
9 split points × 25 shuffles; 227,261 candidates pooled.

```
cargo run --manifest-path crates/deepnsm-v2/Cargo.toml --example bible_wave -- pg10.txt --export spo.tsv
cargo run --manifest-path crates/deepnsm-v2/Cargo.toml --example pop_readout -- spo.tsv
```

| arm | mean p@10 | mean p@25 | mean p@100 | ρ vs label |
|---|---|---|---|---|
| A0 `curiosity` (shipped ranker) | 0.289 | 0.173 | 0.249 | ≈ −0.27 |
| A1 `curiosity_gestalt` (assessment A) | 0.289 | 0.173 | 0.249 | ≈ −0.27 |
| A1B `curiosity_gestalt` (assessment B) | 0.289 | 0.173 | 0.249 | ≈ −0.27 |
| **AF frequency (control)** | **0.756** | **0.751** | **0.674** | **+0.27** |
| AP population readout alone | 0.011 | 0.036 | 0.076 | +0.09 |
| A2 = A0 + AP (rank mean) | 0.011 | 0.022 | 0.069 | −0.06 |
| A3 = A1 + AP (rank mean) | 0.011 | 0.022 | 0.069 | −0.06 |

Decisive statistics:

| quantity | value |
|---|---|
| real partial ρ(AP, label \| freq) | **0.090** |
| null partial ρ — mean / 95th pct | −0.018 / 0.020 |
| mean(A2 p@10) − mean(A0 p@10) | **−0.278** |
| mean(A2 p@10) vs its null mean / 95th pct | 0.011 vs 0.031 / 0.133 |
| mean(AP p@10) vs its null mean / 95th pct | 0.011 vs 0.034 / 0.144 |

Pre-registered rule: PASS iff (a) real partial ρ > null p95 + 0.02 **AND**
(b) Δp@10 ≥ 0.05 and A2 p@10 above its null p95. **(a) passes, (b) fails
decisively → VERDICT KILL.**

### The four findings

1. **KILL on the pre-registered claim.** The population readout does not
improve frontier ranking; it degrades it, 0.289 → 0.011 at p@10, and lands
*below its own shuffle null* (0.011 vs a null p95 of 0.133). Combining it
into the ranking is worse than not having it.
2. **The signal is nevertheless real and null-surviving.** Controlling for
frequency, "typical for its subject" carries partial ρ = 0.090 against a
null p95 of 0.020. A weak global monotone trend and a useless top-k coexist:
the extreme of `−pop` is degenerate (objects sitting essentially *on* their
centroid) while the overall ordering still leans the right way. Precision@k
probes the tail; Spearman probes the trend; they disagree here, and the
disagreement is the finding, not an error.
3. **Qualia is rank-inert at the frontier — measured, not argued.**
`spearman(A0, A1) = 1.000000` and `spearman(A0, A1B) = 1.000000` pooled over
227,261 candidates under two deliberately contrasting `MulAssessment`s.
Reading `exploration.rs:180-215` says why: `magnitude = base · fw · dk ·
flow · trust · staunen_boost · ground_gate`, and every factor except `base`
is per-GRAPH, identical for every candidate. `curiosity_gestalt` can
rescale a frontier; it can never reorder one. So "does population beat
qualia/context alone" had an a-priori answer for any ranking task: qualia
contributes exactly zero ranking information at the frontier today.
4. **Plain counting dominates every cognitive arm.** Prefix frequency reaches
p@10 = 0.756 against the shipped ranker's 0.289 — 2.6× — and the shipped
ranker is *anti*-correlated with recurrence (ρ ≈ −0.27). That is consistent
with `curiosity` working as designed (it prefers the rare and unqueried, and
rare things do not recur) rather than being broken; but it means the
frontier ranker is not selecting for what the corpus goes on to confirm, and
any future ranking claim must clear the frequency control first.

### Honest limits

- One corpus (KJV), one label (exact-triple recurrence), one basin definition
(a subject's outgoing objects). This KILLs "a population readout improves
frontier ranking on the recurrence label"; it does not show population
geometry is useless, and recurrence is not what `curiosity` is built to
maximise.
- The codebook is Bible-vocabulary and held-out ρ 0.766
(`E-CAM96-REVIEW-CORRECTIONS-1`; never cite the crate doc's in-sample 0.828).
- The Fisher-z and `RollingFloor`-occupancy legs the plan named were **NOT
RUN**, for a reason the survey missed: `helix` is not a dependency of
`deepnsm-v2`, and adding one pulls the ndarray git fork into this crate's
build. Under a rank-based combination Fisher-z is analytically inert anyway
(a strictly monotone transform cannot change a rank), so the plan's
Fisher-z disable arm is answered for a rank readout and remains open only
for a magnitude-valued one.

### Consequence

Family 3 as a **molecule feeding frontier selection** is NOT licensed by this
measurement — and a carrier is licensed even less than before. The vacancy
stands. What the result does license is a narrower next question, stated as a
question and not a direction: the readout's honest home may be the global
trend (a basin-level prior) rather than a top-k selector, and any such probe
must carry the frequency control and the shuffle null from the start.
Loading
Loading