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
14 changes: 14 additions & 0 deletions .claude/board/INTEGRATION_PLANS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
## 2026-10-13 (1) — d-cmr-concept-chain-normalization-v1 — preserve the equation, not the intermediate result → `.claude/plans/d-cmr-concept-chain-normalization-v1.md`

**Status:** PROPOSAL D-CMR-0..9, revised to a set-theory IR (see the last bullet). Only D-CMR-0 (plan, board rows) is in the PR; no code, no dependency.

- Methods in a pure chain are unresolved relations; the chain is normalized with proven identities and only the irreducible remainder is compiled. `(a+b)−a` means `a+b` never exists, not a wider accumulator.
- Inventory, read in code: `fold_ranges`, survivor skip, `sql_where`, ternlog fusion, `Lowering::Range` (Count/Any only), `Compiled`, `execute_extent`. Quack never emits an extent; NAL does by hand (127 ns vs 195 µs).
- Path: extent hoisting in Quack (D-CMR-1), lazy binding (-2), fixpoint driver (-3), complement (-4), relational difference `Sum(A)−Sum(A∧B)=Sum(A∧¬B)` (-5), equality-saturation probe only on evidence (-6), benchmark against eager materialization and the row loop (-7).
- Revision (same day): the normalization lives in a set-theory IR in the contract (sets with a universe, interval runs as values, 2-D rectangles, preimage, measures; edges, not content), with an insufficiency proof in §3.1. Measurement levels: geometry (no row read), optics (fused filter + count, nothing written), etch (materialize). Path recut to D-CMR-1..9. Reverses point 3 of the concept-chain rule.
- Revision 2 (same day, aligned with the eight-point ruling): the set IR is the shared semantic domain of normalization, not a frontend syntax; Quack's `Filter` stays home for Quack compositions, NAL stays on R2IL; shared are the rules, their preconditions and costs. The IR describes and never executes (enforced by a test). Lowering in core, algebra in the contract.
- Corrections to the 2026-10-12 entries below, made by #1524 (D-CMR-RESET); code is on `backup/session-011BMJ-2026-10-12`:
- (6) sag-capstone-alignment: both `ProposedMethod` anchors are gone (`glove-parity::awareness::Candidate`, `glove-parity::method::EffectClass::Propose`). The name and the two shapes stand; the anchors are re-decided with the D-CMR rebuild. Not the Cohen's-d `EffectClass` in `lance-graph-cognitive`, which is unrelated.
- (5) sag-reflexive-cognition: `MethodTable` and `SoftwareGraph` are no longer shipped; nothing in that plan can reuse them until the rebuild.
- (4) software-awareness-graph: withdrawn with the whole method layer; D-SAG-1-0..6 are Withdrawn on `STATUS_BOARD.md`.

## 2026-10-12 (6) — sag-capstone-alignment-v1 — one alignment over the six SAG research PRs (#1510, #1511, #1512, #1513, #1515, #1517) → `.claude/plans/sag-capstone-alignment-v1.md`

**Status:** CURRENT-CONTRACT for naming and vocabulary; nothing built.
Expand Down
17 changes: 17 additions & 0 deletions .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
## D-CMR — Concept-chain normalization: preserve the equation, not the intermediate result (2026-10-13)

Plan: `.claude/plans/d-cmr-concept-chain-normalization-v1.md`. Parent: D-CMR-RESET. One new IR (set theory, plan §3.1 insufficiency proof); no method-body algebra, no dependency.

| D-id | scope | status | gate / falsifier |
|---|---|---|---|
| **D-CMR-0** | Plan, identity matrix, inventory, board rows | In PR | docs only; every inventory row cites code |
| **D-CMR-1** | Set-theory IR core in the contract: `Runs` (∩ ∪ ∖, complement), residual `Res`, measures; pure | Queued | algebra laws vs materialized bitsets as oracle |
| **D-CMR-2** | Lowering: runs → extents, residual → predicates per run; measurement levels geometry / optics / etch | Queued (after contract → mask-risc) | == row oracle; `Count` without residual reads zero rows |
| **D-CMR-3** | Quack frontend: `Filter` → set IR (extent hoisting falls out) | Queued | identical answers on the quack suite; other-basis range stays residual |
| **D-CMR-4** | Two dimensions: `Rect` over composite coordinates, row-major or Morton runs | Queued | rectangle ∩ == bitset oracle |
| **D-CMR-5** | Preimage `f⁻¹(S)` under a proven mapping (the hop) | Queued | == row oracle; many-to-one image refused |
| **D-CMR-6** | Rule catalogue + fixpoint driver: complement, relational difference | Queued | Experiments A, D, E; each guard removal fails |
| **D-CMR-7** | NAL frontend: aperture → `Runs` | Queued (after NAL lands in core) | NAL W2 tests unchanged |
| **D-CMR-8** | Equality-saturation probe (`egg`/`egglog` as references) | Queued (only if rules compete) | compared against D-CMR-6; no dependency without evidence |
| **D-CMR-9** | Benchmark: eager materialization vs set IR vs row loop | Queued | answers asserted before timing; tier from the build's report |

## D-SAG-5 — Reflexive cognition and proposal safety from SAG #1509 (2026-10-12)

**Status:** PROPOSAL. Plan: .claude/plans/sag-reflexive-cognition-from-1509-v1.md. Docs only; no runtime authorization.
Expand Down
7 changes: 4 additions & 3 deletions .claude/board/SUPERSESSION-INDEX.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,15 +56,15 @@ coverage instead.
| `persist_cycle` | BLOCKED | — | 12 | 8 | 5 |
| `CognitiveMarkers` | REPURPOSE | `Commit` | 1 | 0 | 0 |
| `DominoCascade` | REPURPOSE | `Commit` | 7 | 1 | 0 |
| `GateDecision` | REPURPOSE | — | 25 | 28 | 25 |
| `GateDecision` | REPURPOSE | — | 25 | 29 | 26 |
| `GateState` | REPURPOSE | — | 14 | 1 | 1 |
| `MergeMode` | REPURPOSE | — | 8 | 14 | 13 |
| `ResonanceDto` | REPURPOSE | `PerturbationDto` | 2 | 12 | 7 |
| `BindSpace` | RETIRE | — | 71 | 48 | 42 |
| `CollapseGateEmission` | RETIRE | — | 5 | 14 | 12 |
| `ThinkingStyle` | RETIRE-toward-contract | — | 53 | 28 | 24 |

## Table 2 — plans naming a ruled symbol without citing the ruling (76)
## Table 2 — plans naming a ruled symbol without citing the ruling (77)

Route is **mechanical triage, not a verdict**: `ARCHIVE?` = the plan's own status says
it shipped; `RESCOPE` = it targets a symbol marked RETIRE; `READ` = neither signal fires
Expand Down Expand Up @@ -96,6 +96,7 @@ a licence to act on it.
| **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 | 2/5 |
| **READ** | `r2il-bpe-typed-genetic-recombination-v1` | `GateDecision` | PROPOSAL, §7's three falsifiers now RUN (see | 1/1 |
| **READ** | `sag-capstone-alignment-v1` | `GateDecision` | CURRENT-CONTRACT for the documents it aligns | 7/13 |
| **READ** | `scientific-kg-substrate-v1` | `GateDecision` | PROPOSED — **scoping doc**, no code. Records | 3/9 |
| **READ** | `self-reasoning-substrate-v1` | `GateDecision` | PROPOSED — doc-only. No code, no contract ch | 4/5 |
| **READ** | `v3-convergence-wiring-v1` | `GateDecision` | ACTIVE (2026-07-01). Operator: "I'm all in f | 0/0 |
Expand Down Expand Up @@ -158,5 +159,5 @@ a licence to act on it.

- **ARCHIVE?**: 0
- **RESCOPE**: 56
- **READ**: 20
- **READ**: 21
- ruled symbols tracked: 14
67 changes: 65 additions & 2 deletions .claude/board/entries/2026-10-12-session-reset-inventory.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,21 @@ for the row loop (1,048,576 rows, AVX-512, release). Its hops were
foreign-key reads; the graph has none. Everything here is moved to backup and
rebuilt.

**Root cause (2026-10-13, VERIFIED-IN-CODE on the backup branch):** each
method was evaluated on its own, so a chain never existed as one expression
that could be simplified before execution.
1. *Materialized per call:* `run_quack` (old `method.rs:788`) built a fresh
population-sized `Scratch::for_program(program, n_rows)` on every call and
ran the tiled path; `Compiled` and `Lowering::Range` were never used.
2. *Gather stacking instead of differences:* hops were per-row key reads
(`Relation { fk }`, `ForeignLane`, `Cond::Reaches/Via`), stacked further by
the chained gather (#358, #1522); cost grew with rows × hops. The tree already
intersects ranges symbolically (`fold_ranges`, quack `lib.rs:1918`) and
answers `Count` as `hi − lo` (`Lowering::Range`).
3. *Optimized in the wrong place:* the care went into identity structures
(`MethodKey`, the FNV body digest, `SchemaSeal`, linear `digests` search,
`edges.retain`), not into the data path. Their own cost was not measured.

## Where the old state lives

| repo | branch | what |
Expand Down Expand Up @@ -52,5 +67,53 @@ hops are coordinate-range intersections inside the same program. A fold that
does not exist is reported as a gap in the fold catalogue, not built in the
method layer.

OPEN: #1523 anchors `ProposedMethod` on `awareness::Candidate`, which this
reset removes; the anchor moves to the rebuilt binding.
**Concept chains (DECISION 2026-10-13; SCOPE: the D-CMR rebuild and every
composition of pure methods; BASIS: the root cause above; REVISIT WHEN a rule
needs information no existing IR can carry).** Methods in a pure chain are
unresolved relations, not executions. The whole chain is normalized before
lowering; only the irreducible remainder becomes a `Compiled` program.
1. A chained method returns a relation, never an intermediate population.
2. Normalization uses proven identities only: intersections, complements,
differences, coordinate transformations, Boolean truth tables (ternlog),
applicable law tables.
3. Existing IRs and folds only. Quack's `Filter`/`Query` tree holds
Quack-bound chains; global NAL methods stay R2IL-bound and are not routed
through Quack. No second method algebra, no new universal IR.
⊘ 2026-10-13: the "no new universal IR" half is superseded by one
set-theory IR (`plans/d-cmr-concept-chain-normalization-v1.md` §3, with
its insufficiency proof); Quack and NAL become frontends lowering into it.
"No second method algebra" stands.
4. `SUM` first uses the existing fold over the minimized extent. A prefix lane
(`P[hi] − P[lo]`) is a separate, measured candidate with its own ordering,
overflow, NULL, update and maintenance laws.
5. A coordinate is valid only under a proven ordering or index mapping.
Constraints on one coordinate basis intersect symbolically; different bases
need a checked transformation or an index; otherwise the predicate is a
residual over the already-reduced extent. Two fields never share an order
by assumption.
6. Rules compile once; parameter bounds bind per call as a small boundary
computation, with no population scan and no materialized mask.
7. Every rewrite is checked against the unrewritten form and an independent
row oracle. Disabling an optimization leaves the answer unchanged; removing
a required semantic guard (three-valued logic, bag vs set, overflow) must
produce a failing counterexample.
8. A missing law is a rule-catalogue gap; a missing fold is a physical-catalogue
gap. Neither is built as an executor in the method layer.

**Test cases to port into the rebuild** (on `backup/session-011BMJ-2026-10-12`,
`8ae5bce`, under `crates/lance-graph-glove-parity/tests/`): `polyfill.rs` (15
tests, NARS revision as data; W3 of #42), `ordered.rs` (3, MIN/MAX),
`distinct.rs` (6, distinct hop targets), `relation.rs` (8, functional
relations), `awareness.rs` (19, the H1 candidate). They call the removed
`MethodBody` API, so each case is re-expressed against a `Compiled` program,
and its row-loop answer is re-read and re-run before it counts as an oracle.

OPEN: #1523 anchors `ProposedMethod` on two removed types: the rewrite shape
on `glove-parity::awareness::Candidate`, the action shape on
`glove-parity::method::EffectClass::Propose` (not the unrelated Cohen's d
`EffectClass` in `lance-graph-cognitive`). The rewrite anchor moves to the
rebuilt binding. The action anchor is the action gate: a `Pending`
`ActionInvocation`. Today two methods advance it: `commit_via` (no admin
bypass) and `commit` (admin bypass). Which one a proposal must pass is OPEN
(capstone §2.1 item 7, which also lists
what the gate does not carry yet).
4 changes: 3 additions & 1 deletion .claude/knowledge/software-awareness-provenance-parity.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
**Type:** cross-repo method and validation checklist. **READ BY:** anyone changing SoftwareGraph/MethodTable, Ruff SPO/AST frontends, SAG prediction loops, OGAR ActionDef, Quack/R2IL or NARS evidence.
**Status:** proposed guardrail, with source-grounded possible defects to *test*, not confirmed bugs.

> ⊘ 2026-10-13: `SoftwareGraph` and `MethodTable` (`lance-graph-glove-parity`'s `method.rs` / `awareness.rs`) were removed from `main` by #1524 (D-CMR-RESET); the code is on `backup/session-011BMJ-2026-10-12`. Wherever this doc names them, read them as the withdrawn first build. The separation-of-concerns rules still apply to the D-CMR rebuild, whose binding replaces them.

## Separation of concerns

| Question | Evidence source | Permitted conclusion |
Expand Down Expand Up @@ -75,7 +77,7 @@ If a new result cannot be expressed through existing Quack/OGAR/R2IL, return an
- [#1504 method parity](https://github.com/AdaWorldAPI/lance-graph/pull/1504)
- [#1506 DAG range](https://github.com/AdaWorldAPI/lance-graph/pull/1506)
- [#1508 predicate reuse](https://github.com/AdaWorldAPI/lance-graph/pull/1508)
- [#1509 SoftwareGraph](https://github.com/AdaWorldAPI/lance-graph/pull/1509)
- [#1509 SoftwareGraph](https://github.com/AdaWorldAPI/lance-graph/pull/1509) (withdrawn by #1524; backup branch above)
- [Ruff #117 ordered behavioral ore](https://github.com/AdaWorldAPI/ruff/pull/117)
- [Ruff #118 C linkage semantics](https://github.com/AdaWorldAPI/ruff/pull/118)
- [Ruff #120 Odoo inherit_id](https://github.com/AdaWorldAPI/ruff/pull/120)
Expand Down
Loading
Loading