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
20 changes: 20 additions & 0 deletions .claude/board/AGENT_LOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,23 @@
## [Main thread / Opus] D-ARM-14 Phase 2 — rebased onto post-#442 main + swapped inline nibble → real contract::hhtl::NiblePath

**Branch:** claude/jolly-cori-clnf9-darm14-p2 (rebased onto main 415971a, #442 merged) | **Files:** `tests/wikidata_landing.rs` (inline `np_*` helpers + inline FieldMask union → real `NiblePath::{root,child,basin,is_ancestor_of,depth,packed}` + `FieldMask::inherit`), STATUS_BOARD (D-ARM-14 row: swap done).

**Cargo:** rebase clean (no conflicts); default **42/42** + clippy clean; `--features landing` `wikidata_landing` green + clippy clean — now landing on the REAL merged `contract::hhtl::NiblePath`. Output shows real depths (person 0x1 d2 → human 0x12 d3), 6→5 collapse holds.

**Outcome:** DONE. User: "442 merged please rebase." #442 put `contract::hhtl::NiblePath` + `FieldMask::inherit` + `ontology::wikidata_hhtl` on main, so the rebase also unlocked the promised inline→real swap (the "swap on #442 merge" remaining item). The worked example now lands on the canonical 16ⁿ router, not a stand-in. Force-push follows (rebase rewrote the 3 P2 commits onto new main). PR #443 updated.

---

## [Main thread / Opus] D-ARM-14 Phase 2 — proposer→hub landing (dolce_id emit + worked Wikidata example)

**Branch:** claude/jolly-cori-clnf9-darm14-p2 (off main a77e119) | **Files:** `crates/lance-graph-arm-discovery/src/aerial/ontology.rs` (+`OntologyProjector::dolce_id`, `DolceCategory::from_index`, `is_dolce`), `Cargo.toml` (+`landing` feature + optional `lance-graph-contract` dev-dep), `tests/wikidata_landing.rs` (NEW, gated) + STATUS_BOARD (D-ARM-14 Phase 2).

**Cargo:** DEFAULT (zero-dep) → **42/42** + clippy `-D warnings` clean. `--features landing` → the `wikidata_landing` worked example green + clippy clean (lands on REAL `lance-graph-contract` types).

**Outcome:** Phase 2 DONE. User: "how to use aerial + the 10000² splat + add the ontology to land on Wikidata-shaped HHTL?" → built the answer. **(a) The OD-DOLCE alignment #442 deferred to my lane:** `OntologyProjector::dolce_id()` emits the stable `dolce_id` u8 (= basin nibble, already matching `dolce_id::{ENDURANT=0,..}`) — the proposer hands the hub the enum-free routing key, the IRI becomes a late-resolvable label (resolve-through-cache). **(b) The worked end-to-end example** (`tests/wikidata_landing.rs`, `--features landing`, opt-in `dev-dep lance-graph-contract` exactly like jc's bridge examples — lib stays zero-dep): splat top-k → `extract_rules` recovers all 6 DOLCE basins → lands each on the REAL `contract::class_view::FieldMask` (presence) + `hash::fnv1a_str` (StructuralSignature value); `NiblePath` 16ⁿ routing inlined (annotated, swap on #442 merge since contract::hhtl isn't on main yet). CONFIRMED on data: corpus collapses 6→5 families (film Q11424 ≡ tv Q5398426, sig 0xad7fade7), human⊂person inherits path + mask-as-delta, basin preserved down the subclass path. Respects the firewall (lib never imports the hub; the test bridges both to prove the `(ClassId, signature, FieldMask)` triple + `dolce_id` u8 seam). NOT pushed yet — awaiting confirm (prior branch merged). Map: `splat-codebook-aerial-wikidata-compression.md`.

---

## [Main thread / Opus 4.7] odoo-classes-bitmask-render-v1 — authored bounded-weekend plan + 10-agent A2A wave split (pre-council)

**Branch:** claude/activate-lance-graph-att-k2pHI | **Files (additive only):**
Expand Down
13 changes: 13 additions & 0 deletions .claude/board/EPIPHANIES.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,19 @@
**#438 council verdict (4f381a8):** no code action items — it reviewed a `discovery_origin` byte-grammar plan, not the crate; fixed a stale Wave-1 citation, escalated 2 spec decisions (tier-set + proposer-id width) to ISSUES, queued D-CHESS-BRINGUP-1.

**Cross-ref:** #441 (D-CLS), #438 (D-ARM-14 P1), 67903a8 (proposer-layering), b31464d (OD-DOLCE), `splat-codebook-aerial-wikidata-compression.md`, `wikidata-hhtl-load.md`, `contract::hhtl`.
## 2026-05-31 — FINDING: ANY OWL/DOLCE domain compartmentalizes into the same 16ⁿ HHTL, fed by aerial — the class-meta-DTO is the universal substrate; domains differ in content, never structure (D-ARM-14 Phase 2)

**Status:** FINDING (per-layer domain-independence is shipped/proven on 2 domains; full-scale universality is CONJECTURE — each new domain is a falsifier). Doc: `owl-dolce-hhtl-compartments-aerial-fed.md`. PR: D-ARM-14 Phase 2 (`claude/jolly-cori-clnf9-darm14-p2`).

**The generalization (the user's "potential"):** medicine (SNOMED/FMA), finance (FIBO), geography, law, Odoo, and all of Wikidata are NOT bespoke loaders — each yields the SAME four things and lands as the SAME `(ClassId, StructuralSignature, FieldMask)` row: a **basin** (DOLCE `dolce_id` 0..3), a **nibble path** (`NiblePath`, P279 subClassOf descent), a **`FieldMask`** (property presence), a **`StructuralSignature`** (FNV-1a shape-family). Domain enters only as *content* (the property-id set + the corpus), never as *structure*. This is `cognitive-risc-classes.md` N4 operationalised — "chess + Odoo + Wikidata-anatomy through one Class+SoA+HHTL+CAM, no special-case."

**Why it holds (proof chain, not hope):** every layer is domain-agnostic by construction — `NiblePath` takes a `basin: u8` with zero DOLCE knowledge (#442); `FieldMask` is one-bit-per-property (#441); `StructuralSignature` is label/QID/domain-independent (Odoo #441 + Wikidata #442 BOTH collapse structurally-identical classes to one family); `ClassView` is a trait both `RegistryClassView` (Odoo) and `WikidataClassView` (Wikidata) impl unchanged. DOLCE is resolved late from the cache (`basin = dolce_id`, no enum). The **aerial feed** is the part that makes each domain self-populating: similarity is an injected integer `CodebookDistance` (the 10000² splat, jc-certified), so a new domain is fed by pointing aerial at (a) a domain splat codebook + (b) a domain row corpus — `tests/wikidata_landing.rs` is the template; swap the fixture, **no new hub code**. Phase 2 proved this end-to-end (splat → recover 6 DOLCE basins → land on real `FieldMask`+signature; film≡tv collapse, human⊂person inherit).

**Compartmentalization rule:** ONE tree axis (Abstammung/P279), DOLCE facets seed root nibbles 0x0..0x3 (0x4..0xF reserved). The DOMAIN is an ORTHOGONAL compartment (namespace/facet tag), NOT a second path — cross-domain multi-typing is a facet bit in the same `FieldMask`, like bat = mammal-path + flight-bit. Open: reconcile the OGIT *byte*-basins (0x10..) with the `NiblePath` *nibble*-basin before a multi-domain load.

**Scale-freezes (carry from the #442 review):** `NiblePath` silent truncation at depth-16 (deep medical/bio chains collide), `StructuralSignature` u32 (birthday-collision among shape-families across many domains), the DOLCE nibble/byte addressing. None bites the 2 curated domains; all bite at full multi-domain scale — name each as a conscious freeze before the load that needs it. Gated on D-ARM-7 (`jc::jirak`) before any domain's feed writes the store.

**Cross-ref:** `owl-dolce-hhtl-compartments-aerial-fed.md`, `wikidata-hhtl-load.md`, `ogit-owl-dolce-ontology-compartments.md`, `splat-codebook-aerial-wikidata-compression.md`; #441 (D-CLS), #442 (Wikidata-HHTL), #438 + Phase 2 (aerial feed); the D-CLS↔D-ARM-14 convergence FINDING; `cognitive-risc-classes.md` N4.

## 2026-05-31 — FINDING (research): arm-discovery is a PROPOSER that FEEDS the SPO-AST, not the SPO-AST itself — using it AS the AST would conflate proposer↔hub + push similarity into addressing

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 @@ -645,7 +645,7 @@ The missing UPSTREAM discovery leg. Today's proposers (curated L-docs + AST-extr
| D-ARM-11 | `style_recipe.rs` rule 8 — ArmDiscovered backing adds `DAtom::Compute` weight 2 (provisional) | lance-graph-ontology::style_recipe | 80 | MED | **Queued** | depends on D-ARM-1 |
| D-ARM-12 | End-to-end pipeline test + bench (synthetic Odoo feed → all 5 stages → council micro-batch) | lance-graph-arm-discovery::tests + benches | 400 | MED | **Queued** | depends on Waves 1-6; informs OQ-ARM-2 + OQ-ARM-7 |
| D-ARM-13 | **Aerial+ Rust transcode — deterministic codebook-probe backend** (float-free). The paper's `f32` denoising autoencoder is REPLACED by an integer `CodebookDistance` oracle (palette256 distance, ρ=0.9973 vs cosine): the reconstruction probe is a codebook top-k, not a softmax over float weights. Integer evidence counts + ppm gates + `TruthU8` (= CausalEdge64 wire). `AerialProposer` impl of `Proposer`. Count loop is a row-bitset SoA (`RowMasks`) → AND+popcount, routed through `ndarray::simd::U64x8` under the `ndarray-simd` feature. | lance-graph-arm-discovery::aerial | ~1.1K | HIGH | **Shipped (branch)** | branch `claude/jolly-cori-clnf9`; standalone zero-dep crate (excluded); **33/33** tests + clippy `-D warnings` clean on BOTH default (scalar) and `--features ndarray-simd`; **zero f32 in the discovery path** (audit), float only at the `TruthValue`/`Triple` serialization edge. Bitwise-deterministic ⇒ joins the trunk; the nondeterminism firewall + D-ARM-9 IPC rationale are moot. SIMD target-cpu caveat: real AVX-512/AMX kernels need `-C target-cpu=native`/`x86-64-v4`. v1 (autoencoder) superseded per the user's no-float directive. |
| D-ARM-14 | **Splat-codebook oracle + Wikidata skeleton discovery** — wire the certified jc splat codebook into aerial as the `CodebookDistance` oracle, discover OWL/DOLCE+ SPO HHTL classes + basins, drive the `wikidata-hhtl-load.md` deterministic compression (skeleton + basins + CAM-dedup + thin rows). | lance-graph-arm-discovery::aerial + crates/jc + wikidata loader | ~? | MED | **In progress** | **Phase 1 (branch `claude/jolly-cori-clnf9-darm14`):** the two aerial-side seams — `aerial::TopKDistance` (the sparse splat-top-k `CodebookDistance` the 10000² BLASGraph splat actually emits; top-k per node, not a dense table) + `aerial::ontology::{DolceCategory, OntologyProjector}` (DOLCE 4-facet skeleton → `rdfs:subClassOf`/`rdf:type` SPO). End-to-end test: splat top-k → aerial discovers `occupation→DOLCE-class` → projects the skeleton triple. 41/41 + clippy clean (default + `ndarray-simd`), zero-dep. Float still OFFLINE in jc only (`ewa_sandwich`+`sigma_codebook_probe` ρ=0.9973+`pflug` Lε); aerial online path integer. **Remaining:** real jc/blasgraph splat producing the lists; Wikidata loader; gated on D-ARM-7 (`jc::jirak`). Map: `splat-codebook-aerial-wikidata-compression.md`; E-ARM-JC-RESOLVES-BOTH-SEAMS. |
| D-ARM-14 | **Splat-codebook oracle + Wikidata skeleton discovery** — wire the certified jc splat codebook into aerial as the `CodebookDistance` oracle, discover OWL/DOLCE+ SPO HHTL classes + basins, drive the `wikidata-hhtl-load.md` deterministic compression (skeleton + basins + CAM-dedup + thin rows). | lance-graph-arm-discovery::aerial + crates/jc + wikidata loader | ~? | MED | **In progress** | **Phase 1 (branch `claude/jolly-cori-clnf9-darm14`):** the two aerial-side seams — `aerial::TopKDistance` (the sparse splat-top-k `CodebookDistance` the 10000² BLASGraph splat actually emits; top-k per node, not a dense table) + `aerial::ontology::{DolceCategory, OntologyProjector}` (DOLCE 4-facet skeleton → `rdfs:subClassOf`/`rdf:type` SPO). End-to-end test: splat top-k → aerial discovers `occupation→DOLCE-class` → projects the skeleton triple. 41/41 + clippy clean (default + `ndarray-simd`), zero-dep. Float still OFFLINE in jc only (`ewa_sandwich`+`sigma_codebook_probe` ρ=0.9973+`pflug` Lε); aerial online path integer. **Phase 2 (branch `claude/jolly-cori-clnf9-darm14-p2`):** the proposer→hub landing. (a) `OntologyProjector::dolce_id()` — emits the stable `dolce_id` u8 (= basin nibble) the hub routes by, NOT a hardcoded IRI (the OD-DOLCE alignment #442 deferred to this lane; basin ordering already matches `dolce_id::{ENDURANT=0..}`). (b) gated worked example `tests/wikidata_landing.rs` (`--features landing`, opt-in `dev-dep lance-graph-contract` à la jc): splat top-k → aerial recovers all 6 DOLCE basins → lands each on the REAL merged `contract::hhtl::NiblePath` (16ⁿ router, #442) + `class_view::FieldMask` (+`inherit`) + `hash::fnv1a_str` signature. CONFIRMED on data: corpus collapses 6→5 families (film≡tv-series twin), human⊂person inherits path + mask-as-delta, basin preserved. 42/42 default (zero-dep) + landing test green, clippy clean both. Rebased onto post-#442 main; the inline-nibble stand-in swapped for the real `NiblePath`. **Remaining:** real jc/blasgraph splat producing the lists; the ndjson→`WikidataClass` loader; gated on D-ARM-7 (`jc::jirak`). Map: `splat-codebook-aerial-wikidata-compression.md`; E-ARM-JC-RESOLVES-BOTH-SEAMS. |
| D-ARM-SYN-1 | Add `Implies`/`CoOccursWith` to `ruff_spo_triplet::Predicate` closed vocabulary (+ `Provenance` tier) so ARM rules load through the same `parse_triples` ndjson path as the static extractor | ruff/ruff_spo_triplet | 40 | MED | **Queued** | council-gated (deliberate ontology change); blocks SYN-2; see `.claude/knowledge/aerial-arm-ruff-spo-codegen-synergies.md` §1 |
| D-ARM-SYN-2 | `CandidateRule → ruff_spo_triplet::ModelGraph` adapter so the Aerial runtime-data leg joins the `ruff_python_dto_check` static-AST leg in one graph before `expand()` | lance-graph-arm-discovery + ruff_spo_triplet | 120 | MED | **Queued** | depends on SYN-1; synergy doc §2 |
| D-ARM-SYN-3 | Calibrate `ProvenanceTier::ArmDiscovered` `(f,c)` below the `op_emitter` ratification gate + below static `Inferred (0.85,0.75)` so un-ratified ARM truth is council-visible but codegen-filtered | lance-graph-contract + lance-graph-ontology::op_emitter | 30 | MED | **Queued** | depends on D-ARM-1 + SYN-1; synergy doc §3/§4 |
Expand Down
Loading
Loading