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
43 changes: 43 additions & 0 deletions .claude/board/AGENT_LOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,46 @@
## 2026-08-21 — 5+3 council: D-ACR-7 (the 59..63 reading contract) — RATIFIED

**Run shape:** Phase 0 spec (main thread) → 5 savants parallel (all Sonnet:
prior-art-savant, iron-rule-savant, code-truth via general-purpose,
cascade-impact-savant, creative-explorer-savant) → consolidate to draft v2 →
3 reviewers parallel on v2 ONLY (Sonnet: overclaim-auditor,
dilution-collapse-sentinel, firewall-warden) → Phase-4 fixes → v3 ratified.
**Incident:** reviewers 1+3 lost to a container restart (no notification,
`ListAgents` empty) and recast against the surviving draft v2 — verdicts were
never invented in the gap.

**Verdict counts:** savants 39 findings (code-truth 6/6 CONFIRMS — the
inventory held). Reviewer 2: 8 PASS, 1 FIX(P2). Reviewer 3: 6 PASS, 1
BLOCK(P0), 1 FIX(P1). Reviewer 1: 4 PASS, 2 BLOCK(P0), 2 FIX(P1), 1 FIX(P2).
**3 BLOCKs raised, 3 resolved in Phase 4, none argued away, none needing a
Phase-0 re-spec.**

**v1→v2:** dual-carrier scope (operator: CE64 = muscle memory, CausalEdgeV3 =
granularity — a gap no savant could catch, the v1 spec never named V3);
Result-vs-total split (total `ClassView::band_reading` lookup / fallible
`BandReading::project`); `Option<BandReading>` for the opted-out-vs-never-
considered audit; writer-side `admits()`; G3′/G4′ can-stay-silent halves; G9
(AP1 watch), G10 (carrier parity).

**v2→v3 (the fixes):** §6′ board-hygiene commitment restored (firewall BLOCK —
Phase 2 had dropped Savant 4's answer entirely); `V3Register` redefined as a
caller assertion after `from_v1`'s provenance-agnostic bit copy falsified
"V3's bytes were never temporal" for populated instances (overclaim BLOCK);
G5 split G5a/G5b + tautological G10a deleted, G10b (lift-fidelity test in
`causal-edge`, a measured missing test) kept (overclaim BLOCK); L6 bullets
given file:line rigor; `admits()`-"cannot" grounded in
`causal-edge/Cargo.toml:20-23`; the 319-322 citation actually applied.

**Post-ratification operator addendum:** all V3-generation carriers confirmed
unwired/planned; the temporal doctrine (implicit in the epistemic pothole via
Lance versions; explicit ONLY in Rubikon revision / CausalEdgeV3 TE byte /
future attention-v3; `EdgeProvenance` is layout epoch, never time).

**Artifacts:** `.claude/plans/dacr7-band-reading-contract-v1.md` (v1+v2+v3
ledgers, single file). Board: EPIPHANIES
E-FROM-V1-DROPS-PROVENANCE-…-1, STATUS_BOARD D-ACR-7 → Spec RATIFIED.
Implementation (the `band_reading` module + gates G1..G10b) is the next unit.

## 2026-08-19 — oracle-boundary reassessment sweep (6 agents, workflow, orchestrator-consolidated)

Operator-directed after two superseding architecture rulings (the
Expand Down
132 changes: 132 additions & 0 deletions .claude/board/EPIPHANIES.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,138 @@ a hard, loud cap on one side**. D-ACR-1 must state its basis and its
composition operator before composing, or it inherits one of two accidents:
loud refusal past 256 (borrowing the wide cap) or silent truncation past 64
(borrowing the narrow rule).
## 2026-08-21 — E-FROM-V1-DROPS-PROVENANCE-AND-THE-COUNCIL-CAUGHT-THE-CONTRACT-ABOUT-TO-TRUST-IT-1 — three BLOCK(P0)s in one 5+3 run, and the sharpest one falsified the spec's own asymmetry claim against the code it cited

**Status:** FINDING (D-ACR-7 council, spec ratified as
`.claude/plans/dacr7-band-reading-contract-v1.md`; every claim verified at
source in Phase 4). **Confidence:** High.

The D-ACR-7 reading contract (which lens wrote CE64 bits 59..63 —
`TrustTexture` vs `CausalTopology` on 59-60, `ReasoningBand` presence on
61-63) went through the full 5+3 council. Three BLOCK(P0)s were raised and all
three survived verification; none was argued away.

**BLOCK 1 (overclaim, the consequential one): "V3's bytes were never temporal"
is false for populated instances.** `CausalEdgeV3::from_v1(e, target)`
(`edge_v3.rs:117`) has **no provenance parameter** and copies truth/spare as a
raw bit copy (`:138-139`). The reassuring comment above it — "under the v1
layout every one of these accessors is a documented zero stub" — is a
**compile-time feature condition, not a runtime provenance guarantee**: a CE64
of v1/unknown provenance (bits 61-63 aliasing `temporal >= 512`) lifted under
a v2 build carries the stale bits into V3 byte 9, and the result is
**indistinguishable from a clean register**. The draft had declared
`EdgeProvenance::V3Register` "always readable" — the exact plausible-wrong-
answer the contract exists to refuse, at its own core. Resolution:
`V3Register` means *"the caller asserts this register was minted clean"*,
never *"V3 registers are clean"*; unstated origin = `Unknown` = refuse; the
`from_v1` provenance drop is filed as a `causal-edge` follow-up, not patched
from the contract side. The v1 trap thus applies to BOTH carriers — on CE64
directly, on V3 **transitively through the lift**.

**BLOCK 2 (overclaim): a gate contradicted the fix that preceded it, and
another gate was a tautology.** After the council split the resolver
(total `ClassView::band_reading` lookup / fallible `BandReading::project`),
G5's carried-forward text ("an undeclared one errors") contradicted the total
half — split into G5a (total: zero-fallback, no error) / G5b (fallible:
`Err(UndeclaredClass)` must fire). And G10a ("project is a pure function of
its arguments") fed the same input to the same function twice — the
vacuous-assertion house pattern, deleted. Only G10b survives: compare
`CausalEdge64::truth()` vs `CausalEdgeV3::truth_raw()` on the same edge
post-`from_v1` — which tests the exact bit-copy site BLOCK 1 indicted, is
hosted in `causal-edge` (both crates' zero-dep postures hold — measured:
BOTH refuse the other as a dependency, `causal-edge/Cargo.toml:20-23`
explicitly), and closes a **measured missing test**: `edge_v3.rs`'s module doc
claims truth/spare survive the round trip byte-exact, and no test asserts it.

**BLOCK 3 (firewall): the consolidation dropped board hygiene entirely.**
Draft v2 contained zero occurrences of any board file — Savant 4 had answered
the hygiene question in full, and Phase-2 consolidation lost the finding. The
loss-prevention phase lost a finding; recorded as such, restored as the spec's
§6′ commitment table.

**Meta-catch worth keeping:** the same reviewer caught the fix ledger claiming
a citation correction it had not applied ("fixed in §2.5" while §2.5 still
read the old span) — the draft's own "measured, not assumed" standard applied
to the draft. And the council's scope itself was corrected mid-flight by the
operator (CE64 = muscle memory, `CausalEdgeV3` = granularity), a gap **no
savant could have caught** because the v1 spec never mentioned V3 and savants
answer only their question sets — the spec-writing phase is the only place
scope errors can be prevented, which is why Phase 0 is "where the real work
happens."

Sibling finding folded in rather than given its own id: `TrustTexture` is a
**×4 homonym with three arities** (4/4/5/3 — `causal-edge/layout.rs:141`,
`contract/mul.rs:82`, `planner/mul/trust.rs:30` with `Dissonant`
unrepresentable in 2 bits, `arigraph/orchestrator.rs:114`), against
`TYPE_DUPLICATION_MAP.md:9`'s stale "×2"; lines 9, 16 and 19 of that doc must
change together.

## 2026-08-21 — E-THE-ATTENTION-ATOM-WAS-ALREADY-SHIPPED-WHAT-WAS-MISSING-WAS-A-COMPOSITION-THAT-IS-NOT-OR-1 — D-ACR-1's basis is a reuse, and the only real gap was that every set operation in the crate is a bitset union

**Status:** FINDING (D-ACR-1, implemented; 14 new tests green, 1194 contract
tests green, clippy clean). **Confidence:** High — the atom's existence is a
read of `facet.rs`; the container's absence is a stated grep.

D-ACR-1 was written as *"the one missing primitive"*. Half of that is right,
and the half that is wrong is the more useful half.

**The atom already existed, exactly.** `contract::facet::FacetCascade` is
`facet_classid(4) | 6×(8:8) = 16 B` with `CascadeShape::G6D2` — literally the
`6 × 2 × u8` shape D-ACR-1 needed, with `index`/`group_of`/`level_of`/`shift`
shipped, `tier_bytes()` ordered coarse-first (`[t0.hi, t0.lo, …]`), and two
existing readings to copy the pattern from (`awareness_facet::SpoFacet`,
`tekamolo_facet::TekamoloFacet(pub FacetCascade)`). **Zero new bytes were
needed and none were added.** Proposing a new 12-byte type here would have been
the "type that already exists" rediscovery tax `CLAUDE.md` §Consult names.

**What was genuinely absent is narrower and sharper: a composition that is not
a bitset union.** Measured — every `union`/`intersect` in the contract crate is
a bit operation over *field positions*: `FieldMask` (u64, `MAX_FIELDS = 64`),
`WideFieldMask` (u8 positions, capped at 256 with a loud
`UniverseExceedsSocCap`), `StepMask` (u64), `rbac`. **Not one of them composes
addresses.** And a bit-OR of two addresses is not a coarser focus — it is a
*third address neither side ever visited*. That is the defect the container had
to avoid, and it is now a test (`composition_is_not_a_blind_or`: OR-ing
`0b01` and `0b10` yields `0b11`, and the union must NOT contain it).

**The composition that IS right was already in the canon, one type over.**
`NiblePath::is_ancestor_of` is coarse→fine prefix containment with an
**explicit** depth field. Reusing that rule on the 12-unit ladder gives
`covers`, and reusing its explicit-depth discipline avoids a real trap:
inferring the wildcard boundary from zero bytes would collide with the
zero-fallback ladder, where `0` is a legitimate *dormant tier*, not a
terminator. So `depth` lives OUTSIDE the 12 bytes and the wire shape stays
exactly `6 × 2 × u8`.

**This is also the answer to ">256 rows".** The `u8` per level bounds *axis
resolution* (256 centroids), never population: one shallow facet is a wildcard
over an unbounded subtree. Measured in a test — a depth-2 focus covers 65,536
addresses across only the two units varied, and a container holds 1000 distinct
entries where `FieldMask` would stop at 64 and `WideFieldMask` at 256. **The
container does not index rows at all**, which is why neither cap transfers.

**Content-blindness had to be defended twice in one deliverable.** A first
draft named the axes `Heel/Hip/Twig/Leaf/Family/Identity` — baking the cascade
reading into the low-level type, which is exactly what `FacetCascade`'s own
contract forbids (*"only the CONSUMER projects meaning onto the bytes"*). The
operator caught it while raising a second candidate reading (six **ontology
scopes**: disease/anatomy/process/substance/evidence/context). Both readings
now live only in a test, over byte-identical input, proving the projection is
free — and `FocusAxis` is `Axis0..Axis5`, a position. The general lesson is the
one this arc keeps paying for: **the moment a second plausible reading appears,
any name in the substrate is a premature commitment to the first.** Four
homonym collisions (witness / nibble / hydration / attention-mask) were the
expensive form of this; naming the axes would have been the fifth, minted by
us rather than inherited.

**Deferred, named rather than silently absent:** `RowFocusMask::difference`
keeps a partially-overlapped entry whole. Subtracting a subtree from a prefix
requires enumerating siblings — inventing addresses the focus never visited —
so splitting waits for a real consumer that needs it. `D-ACR-1`'s scope line
also asks for composability with `WideFieldMask`; per D-ACR-0's measurement
that is a **cardinality mismatch** (positions ≤ 256 vs an unbounded population)
and remains §6 **Y2**'s parked basis collision — this deliverable states its
own basis and does not cross into the other.

## 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

Expand Down
56 changes: 56 additions & 0 deletions .claude/board/INTEGRATION_PLANS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,59 @@
## 2026-08-21 — D-ACR-7 BAND-READING CONTRACT (council-ratified spec)

`.claude/plans/dacr7-band-reading-contract-v1.md` — the 59..63 reading
contract, ratified through a full 5+3 council (3 BLOCK(P0) raised and
resolved; run details in AGENT_LOG same date). One contract, TWO carriers:
`CausalEdge64` (muscle memory) and `CausalEdgeV3` (granularity — whose own
module doc states the problem the contract solves: *"which lens the ordinal
was written through is the producer's knowledge, not the conversion's"*).
Design: total `ClassView::band_reading` declaration lookup (sibling-consistent
with `rail_carving`/`edge_codec_flavor`) + fallible `BandReading::project`
(mismatch and stale-v1 bits must FAIL, never return a plausible value).
Headline finding: `from_v1` drops provenance, so the v1 temporal trap reaches
V3 transitively — `V3Register` is a caller assertion, never an inference.
Gates G1..G10b pre-registered. Implementation next.

## 2026-08-21 — KNOWN-UNKNOWN HANDOVER NETWORK (the connective plan, not a new arc)

`.claude/plans/known-unknown-handover-network-v1.md` — the operator's framing
the same day: *"an awareness to hand over missing links in a 6×2×8bit growing
BNN network as a self-organizing AGI-aspiring network … that includes expanding
CE64 59..63 as a known-unknowns exploring brain plasticity."* Scraped onto
existing homes; **mints no type**.

**Headline: the loop's links are individually shipped or individually designed,
except exactly one — handover.** `D-ACR-16` (nested kanban cascade) is NOT
DESIGNED with zero shipped precedent, and this plan's contribution is naming
what handover IS so it has a shape to be designed against: **a Hole is a kanban
card for a missing link — an owned row moving between mailboxes**, never a
message and never a shared log (`E-CE64-MB-4` one-writer;
`E-AGENT-LOG-SHARED-SINK-ANTIPATTERN-1`). Self-organization follows from
existence-not-command (`E-PROGRESSION-IS-EXISTENCE-NOT-COMMAND-1`), not from a
scheduler.

**The fence, measured twice:** *"expanding 59..63"* **cannot** mean widening.
`causal-edge/src/layout.rs:93-111`'s `_LAYOUT_COVERAGE` const-asserts all 64
bits covered exactly once, and `dismech-causality-v3-v1.md:503` states verbatim
*"Not in CE64 — it has zero free bits."* So `↑n` is **stacking** — the canon's
*"scale is the next cascade level, never field-widening"* applied to the
awareness axis. Three stages, none of them a bit: readable (D-ACR-7's reading
contract, spanning CE64 **and** `CausalEdgeV3`) → discriminating (`WitnessKind`
→ Hole) → granular (`HoleV3`).

**Hard blocker recorded as such:** `HoleV3 = ValueTenant 16` is blocked on
`BoardAggregates = 15` resolving, because the discriminant→`VALUE_TENANTS`
index requires contiguous descriptors — a prerequisite, not a queue position.

**Ground truth stated honestly:** the public DisMech corpus marks its own gaps,
but only **27** named intermediates match an actual graph node (113 have a real
2-hop path) — so a supervised evaluation has 27–113 usable cases, not
thousands. The gap count says how much work exists; the match count says how
much is checkable today.

Deliverables D-KUH-1..4. Only **D-KUH-1** (handover design) is unblocked.
Grade discipline inherited from the parent plan: **a pruner, not a proof**;
"AGI-aspiring" names a direction, not a property any deliverable asserts.

## 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
Expand Down
Loading
Loading