Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
f66f092
plan: DisMech x Causality-V3 rebase report — measured, no code
claude Aug 21, 2026
7dd5eeb
correct §8a: the cascade census measured the FALLBACK reading, not th…
claude Aug 21, 2026
f3e1109
Plan: alpha-channel rung overlay — the empty row of the thinking table
claude Aug 21, 2026
e98828c
Plan revision: two writers, witness-by-reference, the 59..63 axes, Ru…
claude Aug 21, 2026
02cad81
Plan: ogar-loco as the recipe executor, and a window discrepancy I wi…
claude Aug 21, 2026
cdbf1a7
Plan: the 34/31/14/5 ladder measured, MUL, and eigenvalue split in two
claude Aug 21, 2026
1c2a0d9
Fix: contamination invariant is information-flow, not write-authoriza…
claude Aug 21, 2026
046c682
Fix: three unrelated witness surfaces conflated as one family in §3a
claude Aug 21, 2026
c9f9c24
Plan: rail ancestry as epistemic inheritance (D-ACR-12), KJV is a dif…
claude Aug 21, 2026
595c70a
Plan: D-ACR-12 corrected to the mask-native bulk-frontier pattern (la…
claude Aug 21, 2026
4847014
Plan: brutal-honesty audit of book-hydration-as-precondition + episod…
claude Aug 21, 2026
d30f2be
Plan: EpisodicEdges64 mint (ValueTenant=17) closes the 64k-parallel h…
claude Aug 21, 2026
e820a6a
Plan: reading-without-hindsight is a QueryReference::at binding on D-…
claude Aug 21, 2026
8ea1ca3
Merge origin/main into claude/dismech-causality-v3-rebase
claude Aug 21, 2026
416aea2
alpha-channel plan: §3p — the epistemic pothole as reading suspense
claude Aug 21, 2026
2da6f13
Fix 4 codex P2 findings on PR #978
claude Aug 21, 2026
d2c49c7
Handover: alpha-channel plan session (PR #978) + MedCare-rs S3 tier work
claude Aug 21, 2026
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
98 changes: 98 additions & 0 deletions .claude/board/EPIPHANIES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,101 @@
## 2026-08-21 — E-HHTL-IS-MINTED-IN-THE-ARTIFACT-NOBODY-CITES-1 — "zero on every baked row in both production bakes" is precise about the two it names and silent about the third, where the five OBO namespaces are 100% minted

**Status:** FINDING (measured directly on the pinned `.soa` bytes, SHA-256
verified against `MedCare-rs/data/config/bakes.tsv`). **Confidence:** High —
every number is a count over 512-byte rows, tiers read at bytes 4..10.

The board headline (`INTEGRATION_PLANS.md` ARC-B entry) and
`EPIPHANIES.md:899` both state HHTL is **"zero on every baked row in both
production bakes"**, citing `ogar-obo` (68,797 rows) and MedCare's
`join-map.md` (68,797 rows). Both citations are correct. **Both describe the
same artifact set of two.** A third pinned artifact exists:

| artifact | rows | HHTL != 0 |
|---|---:|---:|
| `obo-core.soa` | 68,797 | **0 (0.00%)** |
| `spine.soa` | 7,641 | **0 (0.00%)** |
| `all-lanes.soa` | 770,360 | **164,031 (21.29%)** |

Per lane in `all-lanes.soa`: **MONDO `0x0301` 32,095 rows 100% · HPO `0x0302`
19,836 100% · UBERON `0x0303` 14,975 100% · PATO `0x0304` 1,887 100% ·
ICD-10-GM `0x030F` 16,905 100% · OMIM `0x0319` 18,712 100% · OPS `0x0311`
98.9% · Orphanet `0x0317` 67.6%**; LOINC / CUI / RxNorm / FMA ~0%.

**Why this matters and is not a footnote:** the five 100%-minted namespaces are
exactly the ones a DisMech overlay grounds against. The generalized claim
("HHTL is dormant, the gap is mint + read") licenses a session to skip HHTL
entirely; the measured claim says HHTL is available **if a reader names
`all-lanes.soa`** and unavailable **if it names `obo-core.soa`**. So *which
artifact a consumer reads* is a first-class design decision, not a detail — and
a ladder level claiming "+ HHTL topology" must state its artifact or it is
measuring nothing.

**The generalization error is the transferable part.** Two independent
citations agreeing is evidence about the *rows they counted*, not about the
artifact set. Two sources counting the same 68,797 rows is ONE measurement
reported twice. Before promoting "on every row" from "on these rows", enumerate
the artifacts, not the citations.

**⊘ CORRECTION 2026-08-21 (same day, operator-prompted) — the entry above
measured ONE of TWO readings.** Operator: *"Obo HHTL ist meines Wissens mit
zipper bereits indirekt hydriert."* Correct. The census above counted the
**cascade tiers** (bytes 4..10); `rails::HhtlMode::of_row` PREFERS the
**RailHead** reading and uses Cascade only as the fallback. Measured on the
Zipper rail registers (`rails.rs:130-147`): MONDO **32,094/32,095**, HPO
**19,835/19,836**, UBERON **14,973/14,975** (plus 8,525 `part_of`, the only
lane with mereology), PATO 1,886/1,887 — median logical-DN depths 6/7/8/5, and
264 rows deep enough to use the continuation slab. So the OBO hierarchy IS
hydrated, indirectly, exactly as stated. `obo-core.soa`/`spine.soa` remain zero
on BOTH readings. New in this correction: cascade and rail are **independent** —
Orphanet (14,063 cascade) and OMIM (18,712) carry **zero** rail DN, so a
prefix-containment consumer silently gets depth 0 there. **The lesson compounds
the entry's own:** it is not enough to enumerate the artifacts — a claim about
a field must also name which READING of it was counted, when the accessor
picks between two registers. Full table: plan §8a ⊘ correction.

Cross-ref: `.claude/plans/dismech-causality-v3-v1.md` §8a; ARC-B
`docs/architecture/ARC-B-OWNERSHIP-AND-ADDRESSING-REASSESSMENT.md:23` (regraded
in place: its conclusion holds for `obo-core`/`spine`, needs the `all-lanes`
qualifier); `EPIPHANIES.md:899`.

## 2026-08-21 — E-THE-ORACLE-POPULATION-IS-64-PERCENT-AND-A-GATE-HARDCODES-THE-OTHER-36-1 — a third of the "known intermediates" name no intermediate, and the gate that would have caught it asserts the wrong number

**Status:** FINDING (measured three independent ways on `/workspace/dismech`
@`557e15436`, 1,968 disorder files). **Confidence:** High — the three methods
agree exactly.

The DisMech supervision story rests on `INDIRECT_KNOWN_INTERMEDIATES` being a
population where "the source names the mediators, so they can be hidden and
recovery measured" (`E-DISMECH-CORPUS-CENSUS-1`). Measured, **only 2,449 of
3,825 (64.0%) such edges actually name one.** 1,376 (36.0%) carry the label and
an absent or empty mediator list.

Three methods, agreeing: (a) a line-oriented per-edge walk — **2,449** edges
over **534** disorder files, 3,714 mediator strings; (b) key-occurrence count —
`intermediate_mechanisms:` appears **2,525** times with **0** inline empty
lists, and 2,525 = 2,449 + 74 + 1 + 1, exactly the per-bucket split;
(c) `contract::dismech_evidence.rs:155-176` at the narrower
`pathophysiology[].downstream[]` scope — **1,347 of 3,844 (35.0%)** empty.

**Consequences.** The held-out corpus is **2,449 edges over 534 diseases**, so
a 20% split is ~490 edges / ~107 diseases, not the 774 a 3,869 denominator
implies. And **74 `INDIRECT_UNKNOWN_INTERMEDIATES` edges DO name mediators** —
a source contradiction the four-label taxonomy does not anticipate; they must
be removed from any restraint control or they will read as hallucinated
closure by the benchmark's own definition.

**The gate that should have caught this hardcodes the wrong number.**
`MedCare-rs/.claude/plans/dismech-missing-links-v1.md` Gate W1.1 asserts
`known_links.tsv == 3.869` — unsatisfiable on any corpus revision. Its own
instruction is *"stoppen und melden, nicht die Zahl anpassen"*, so this entry
is the report, not an edit.

**Transferable:** a label that asserts a property and a field that carries it
are two different measurements. Counting the label is not counting the data —
and a supervision corpus sized from the label is oversized by exactly the rows
where the source labelled but did not fill.

Cross-ref: `.claude/plans/dismech-causality-v3-v1.md` §3a; `E-DISMECH-CORPUS-CENSUS-1`.
## 2026-08-21 — E-ABBREVIATION-GREP-MANUFACTURED-AN-ABSENCE-1 — I reported a shipped 15-module subsystem as non-existent because `fn .*ppr` matches `approx`, and a `head` limit hid the real hits

**Status:** FINDING (self-inflicted, caught by the operator pointing at
Expand Down
63 changes: 63 additions & 0 deletions .claude/board/INTEGRATION_PLANS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,66 @@
## 2026-08-21 — ALPHA-CHANNEL RUNG OVERLAY (scraping, not a new arc)

`.claude/plans/alpha-channel-rung-overlay-v1.md` — the design for the ONE
empty row of the thinking table (`hhtl-thinking-tables-le-contract-v1.md`
§2.3, row **Rung ladder**: *"(unassigned) · unminted, undesigned"*), scraped
from an operator brainstorm the same day: the Photoshop **alpha channel** as
an ephemeral layer over the ontology carrying the residue of a search, rung
levels 2-10 as layers, second-order thought at the same address in a separate
thinking table, a mask over the activities, focus of attention.

**Headline: six of the nine pieces already exist or are already planned, and
the plan mints no new type.** `PhaseCensus` (kanban_actor) is the activity
mask, shipped. The five tactics + `ReasoningGap` are the elimination search,
shipped (V1). Rung layers are dialectic **V3**; 64k is dialectic **V4** and
stays behind its own gate (*"only after V0-V3 green at small scale"*). The
residue carrier may be the shipped `attention_mask.rs` -- unaudited, so
D-ACR-0 is an audit before anything is built on it.

**The one genuinely missing primitive is `RowFocusMask`** (S3.1b): named on
this board, absent from every crate (grep hits only `STATUS_BOARD.md` and one
handover). D-ACR-1 is that primitive and everything else queues behind it.

**Two things the plan refuses.** No new address type -- S3.0/PR #973 was closed
at exactly this spot (*"CLOSED -- NOT NEEDED (use `IdentityQuad` / `ClassAddr`
/ V3 rail)"*, the empty column being HYDRATION not ADDRESS), and this overlay
is hydration over existing addresses. No CE64 bit -- 59..63 is
`TRUTH_SHIFT`+`SPARE_SHIFT`, the band set ONLY by an explicit
`with_reasoning_band()` call, and an overlay must not become a fifth
derivation path into it.

**The contamination boundary is not new machinery.** *"Damit der Graph nicht
von Patienten kontaminiert wird"* is the one-writer-per-mailbox rule already
ratified: the overlay's owner is the session mailbox, so a patient-derived
write to an ontology row has no owner that could perform it. The invariant is
one-directional -- the overlay reads the graph, the graph never reads the
overlay -- which is also what makes the residue safe to discard whole.

Graded a **pruner, never a proof**, the same grade `ONTOLOGY_BAKE_STATE.md`
already gives HHTL.

## 2026-08-21 — DISMECH × CAUSALITY-V3 REBASE REPORT (report first, no code)

`.claude/plans/dismech-causality-v3-v1.md` — the operator-required §26
deliverable that gates implementation of the DisMech/Causality-V3 arc. Twelve
sections, every number carrying the command or `file:line` that produced it;
anything not personally measured is labelled *claimed, unverified*.

**Headline:** the expensive substrate really is largely built — AriGraph
(8,750 LOC / 187 tests), CLAM+CHAODA (4,900 / 77), Aerial+ ARM discovery,
HHTL, the OCR+DOM→doc.v1 convergence — but it is **read-rich and write-empty at
four independent layers** (CE64 bits 53-63, `CausalEdgeV3`,
`CausalWitnessFacet`, `dismech_evidence`), all with zero production writers.
Three §0 claims are stale, two are wrong: the oracle population is **64%** of
its label count (`E-THE-ORACLE-POPULATION-IS-64-PERCENT-...-1`), and HHTL is
**100% minted** for the five OBO namespaces in the artifact the board does not
cite (`E-HHTL-IS-MINTED-IN-THE-ARTIFACT-NOBODY-CITES-1`).

**Sequence:** D-CV3-0..2 (pin corpus, freeze splits, Level-0 scorer) must be
green BEFORE D-CV3-3 mints a `HoleV3` tenant — a carrier minted before its
benchmark becomes the fifth EXISTS-UNCALLED entry. `HoleV3` is `ValueTenant =
16` (15 is reserved for `BoardAggregates`), never CE64, which has **zero free
bits**.

## 2026-08-19 — ARC-B OWNERSHIP + ADDRESSING REASSESSMENT (supersedes parts of the plan wave)

Not a plan — the **assessment that corrects the plan wave**, per two
Expand Down
32 changes: 32 additions & 0 deletions .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,38 @@ relations (MedCare-rs commitment #10) — an OGAR/lance-graph classid-mint
capacity question for the operator.

---

### D-CV3-* — DisMech × Causality-V3 (plan `dismech-causality-v3-v1.md`, 2026-08-21)

| D-id | Scope | Repo | Status | Falsifier |
|---|---|---|---|---|
| D-CV3-0 | Pin corpus (`/workspace/dismech` @`557e15436`) + emit 3 frozen TSVs from a typed parse; no new types | MedCare-rs | **Queued** | fresh container reproduces 2,449 / 4,076 / 361 exactly |
| D-CV3-1 | Splits A (random edge) + B (disease-held-out, 534 groups) as committed artifacts | MedCare-rs | **Queued** — gates on D-CV3-0 | group-disjointness; held-out share 15-25% |
| D-CV3-2 | Level-0 scorer: Recall@K + MRR + abstention, structural only | MedCare-rs | **Queued** — gates on D-CV3-1 | non-trivial on BOTH arms; can-fire + can-stay-silent pair |
| D-CV3-3 | `HoleV3` as `ValueTenant = 16`; `awareness_state` orthogonal to `unknown_kind`; NOT in CE64 (0 free bits) | lance-graph | **Queued** — gates on D-CV3-2 green | field-isolation matrix; `ENVELOPE_LAYOUT_VERSION` unchanged; two-axis independence round-trip |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep D-CV3-3 blocked on tenant 15

The detailed plan in this same commit says D-CV3-3 is blocked—not merely benchmark-gated—until the pending BoardAggregates = 15 mint and width are resolved, because tenant descriptors must be contiguous. This board row instead makes D-CV3-2 the only prerequisite, so following the operational status board can schedule an invalid HoleV3 = 16 mint immediately after the benchmark. Record the tenant-15 prerequisite and blocked status here as well.

Useful? React with 👍 / 👎.

| D-CV3-4 | Producer: `dismech_evidence` -> hole rows (its first caller) | lance-graph | **Queued** — gates on D-CV3-3 | populated rows 0 -> 4,076 + 361, else a 5th EXISTS-UNCALLED carrier |
| D-CV3-5 | `Communities` x `EpisodicBasins` cross-validation (the only available unknown-unknown detector) | lance-graph | **Queued** | fires on a synthetic bridge AND stays silent on a coherent graph |
| D-CV3-6 | Call `reciprocal_rank_fusion` in `OsintRetriever::retrieve` (cheapest real integration) | lance-graph | **Queued** — gated on G0 | fused ranking differs from BFS-only on >=1 real query |


### D-ACR-* — Alpha-channel rung overlay (plan `alpha-channel-rung-overlay-v1.md`, 2026-08-21)

Fills `hhtl-thinking-tables-le-contract-v1.md` §2.3's empty **Rung ladder**
row. Mints no type. Six of nine brainstorm pieces already had homes; these are
the rest.

| D-id | Scope | Status | Falsifier |
|---|---|---|---|
| D-ACR-0 | Audit `attention_mask.rs`/`attention_mask_actor.rs`: residue carrier, or a name collision? Report only | **Next** | names a caller, or records EXISTS-UNCALLED |
| D-ACR-1 | `RowFocusMask` — the one missing primitive (S3.1b names it; no crate contains it) | Queued — gates on D-ACR-0 | can-fire AND can-stay-silent on non-trivial input |
| D-ACR-3 | The one-way invariant as a test: no ontology-owned write traces to a patient-tagged read through ANY call path (corrected from write-authorization-only after CodeRabbit found a session-derived value can flow to the ontology owner via a shared parameter/return, then be written as the owner's own act) | Queued — gates on D-ACR-1 | a write whose call graph includes a session-tagged read is the bug, even if the write itself is authored by the ontology owner |
| D-ACR-2 | Mint the Rung-ladder rail | Queued — gates on operator mint decision (HTT §8 Q3) | `rail_carving` gains its first non-default consumer |
| D-ACR-4 | Second-order row at the same address, separate table | Queued | a rung-2 read reconstructs where rung-1 looked, on a fixture with an independent answer |
| D-ACR-5 | 64k lowering | **BLOCKED** — dialectic V4's own gate (V0–V3 green at small scale) | — |

**Not claimed:** that the residue improves recall or finds needles. Graded a
pruner, never a proof.

## preparation-arc plan wave — 2026-08-19 (operator: "integration plans for all open arcs")

Five plans, each PROPOSED (no code — the reset charter's audit-first order
Expand Down
Loading