Skip to content

V3 substrate convergence: probes P0–P5 prove one palette across distance/edge/causality/discovery/reasoning#624

Merged
AdaWorldAPI merged 16 commits into
mainfrom
claude/v3-substrate-migration-review-o0yoxv
Jul 1, 2026
Merged

V3 substrate convergence: probes P0–P5 prove one palette across distance/edge/causality/discovery/reasoning#624
AdaWorldAPI merged 16 commits into
mainfrom
claude/v3-substrate-migration-review-o0yoxv

Conversation

@AdaWorldAPI

@AdaWorldAPI AdaWorldAPI commented Jul 1, 2026

Copy link
Copy Markdown
Owner

What this is

The static half of the OSINT-substrate convergence roadmap, proven against shipped code as a ladder of small, integer-exact #[test] probes. Each probe converts a previously-black-box "we think this converges" claim into a green assert — de-blackboxing the accumulated-wishlist substrate back into its two real layers: deepnsm (the Semantic Transformer) + OGAR (the transpiler).

Zero production-dep changes. One arm-discovery dev-dep on lance-graph-osint, one local type rename, five test files, board entries. Nothing on any hot path moved.

The probe ladder (all green)

Probe Claim pinned Tests
P0 thinking-engine's local CausalEdge64 shadowed the canonical causal_edge::CausalEdge64 → renamed CascadeChannels8; canonical is now the sole CausalEdge64 cargo check -p thinking-engine
P1 deepnsm f32 subspace_distance_table → quantize → one palette → SpoDistances::s_dist (planner) MatrixDistance::distance (arm-discovery), byte-exact / 4096 pairs 2
P2 CausalEdge64::pack_v2 round-trips s/p/o + mask + freq/conf; causal_distance of two edges = plane sum pass
P3 causal_edge::CausalMask causal_distance mask byte (S=100,P=010,O=001); PO < SPO = do-calculus confounder projection pass
P3b all_projections = 8 Pearl questions from 3 cached reads (Morton-tile 2³ amortization); Association vs Intervention rank the same candidates oppositely — questions and candidates inherently 3
P4 Aerial+ ARM mines militaryUse⟹impact with exact ppm (500k/1M), deterministic no-seed, arm_to_truth_u8 → CausalEdge64 3
P5 is_a(A,B)∧is_a(B,C) ⊢ is_a(A,C) via syllogize — deduction truth exact (f=255,c=163), mantissa +1 4

Proven claim: the V3 256×256 palette is one integer-exact metric across five vertices — distance sources, edge carrier, causal-mask semantics, ARM discovery, and multi-hop NAL reasoning. The only float is the deepnsm source, collapsed before any consumer sees it (the "NARS edge").

Architecture recordings (board, append-only)

  • E-RUNG-LADDER-IS-A-DEPENDENCY-STACK — the 0–9 RungLevel ladder gates higher reasoning on grounded lower rungs (rung elevates on sustained BLOCK, bottom-up); P1–P5 are the per-rung capabilities; D-ARM-7 Jirak floor is the stack guard.
  • E-SPO-2CUBE-GIVES-QUESTIONS-AND-CANDIDATES — V3-stack capstone; the 2³ projection is the atom every layer shares.
  • E-RIG-DISCOVERY-MEMBRANE + E-6x2x8-EXACT-CENTROID — rig as the cold RAG/LLM template-discovery membrane; the 6×(8:8) tenant can double as an exact-centroid distance code ([S] conjecture, probe named).
  • E-RIG-ARIGRAPH-FEEDBACK-LAYERING — the rig/rs-graph-llm/surrealdb/AriGraph-V3 stack is a hot-loop + cold-projection split; the feedback round-trip is UNTESTED and honestly blocked (P9-class, AriGraph write-back needs protoc).
  • E-SUBSTRATE-IS-DEEPNSM-PLUS-OGAR — the strategic frame: probes = de-blackboxing; standing rule "no new substrate claim without a green probe".
  • TD-RUNGLEVEL-DUPRungLevel duplicated in thinking-engine vs the canonical contract (deferred dedup).

What's NOT in scope (honest edge)

The runtime loop (rig → CausalEdge → AriGraph V3 → next cycle) is asserted, not proven — gated on wiring AriGraph write-back through the protoc boundary (probes P6–P9). This PR is the static substrate only.

Verification

Each probe runs via cargo test --manifest-path crates/lance-graph-osint/Cargo.toml --test <name> (osint is a standalone/excluded crate). P0 via cargo check -p thinking-engine. All green on branch HEAD.

🤖 Generated with Claude Code


Generated by Claude Code

Summary by CodeRabbit

  • New Features

    • Added broader validation for distance, edge, and reasoning behavior, including deterministic checks across multiple palette-based workflows.
  • Bug Fixes

    • Improved edge packing and naming consistency to avoid confusion between similar representations.
    • Strengthened round-trip and symmetry checks so results are more reliable and consistent.
  • Refactor

    • Standardized internal channel-based transition handling and aligned related documentation/comments with the updated naming.

claude added 10 commits July 1, 2026 18:32
The local 8-channel Bach-counterpoint cascade accumulator in layered.rs was
named CausalEdge64, colliding with the canonical causal_edge::CausalEdge64 that
the same file imports (aliased SpoEdge). domino.rs re-exported the local shadow.
Rename the local type to CascadeChannels8 (8 packed u8 channels); the to_spo /
from_spo collapse still targets the canonical edge unchanged. After this, the
identifier CausalEdge64 in thinking-engine refers ONLY to the canonical type.

Pure rename, zero behavior change. cargo check -p thinking-engine green.
First code delta of the OSINT-substrate convergence roadmap (OGAR
docs/OSINT-SUBSTRATE-REUSE-MAP.md P0); precondition for the P1 distance-identity
probe. Board: EPIPHANIES E-CE64-NAME-COLLISION-DEDUP (same commit, hygiene rule).

Co-Authored-By: Claude <noreply@anthropic.com>
…scovery

The V3 'one causal-distance format' claim, pinned to shipped code. One f32
source (deepnsm subspace_distance_table) → a fixed quantizer → the u16 palette,
read byte-identically by both integer consumers: SpoDistances::s_dist (planner
nars_engine) and MatrixDistance::distance (arm-discovery oracle). For 4096
deterministic index pairs: nars u16 == arm u32 == quantized deepnsm entry, plus
symmetry, plus causal_distance(mask=0b111) == plane sum. Integer-exact; the only
float is the deepnsm source, collapsed before either consumer sees it.

deepnsm already ships the 6×256 CAM-PQ shape, so no re-bake was needed — the
roadmap's 'fix deepnsm→6×(8:8)' hedge is already satisfied upstream.

Adds lance-graph-arm-discovery as an osint dev-dep (path, the third source).
Test: crates/lance-graph-osint/tests/p1_distance_identity.rs (2 passed).
Board: EPIPHANIES E-P1-DISTANCE-IDENTITY-GREEN (same commit, hygiene rule).

Co-Authored-By: Claude <noreply@anthropic.com>
P2: OSINT palette indices → CausalEdge64::pack_v2 → s_idx/p_idx/o_idx/causal_mask/
frequency/confidence all round-trip; causal_distance of two edges' heads == the
per-plane palette sum (edge and distance engine index the same palette).

P3: causal_edge::CausalMask and SpoDistances::causal_distance's mask byte are the
SAME 3-bit convention (S=0b100,P=0b010,O=0b001) — each mask keeps exactly its
planes (S→s, PO→p+o, SPO→s+p+o, None→0); Level-2 Intervention (PO) is strictly
less than Level-3 Counterfactual (SPO) when the Subject term is non-zero, i.e.
Pearl's do-calculus ladder is a mask over palette planes.

Integer-exact, deterministic, no new deps. Test: p2_p3_edge_pearl.rs (3 passed).
Board: EPIPHANIES E-P2-P3-EDGE-PEARL-GREEN (same commit, hygiene rule).

Co-Authored-By: Claude <noreply@anthropic.com>
… wire

OSINT dual-use fixture (militaryUse ⟹ impact, perfect correlation over 1000
rows) mined by arm-discovery's AerialProposer over a MatrixDistance oracle:
(1) exact integer evidence — support_ppm=500000, confidence_ppm=1000000;
(2) determinism — two mines byte-identical, no seed;
(3) edge join — arm_to_truth_u8 → TruthU8{255,254} → CausalEdge64::pack_v2
    round-trips freq/conf. Discovery output IS the edge wire.

Live-SpoStore promotion stays gated on D-ARM-7 (Jirak floor). In-memory
mine→truth→edge path only. Test: p4_discovery_edge.rs (3 passed).
Board: EPIPHANIES E-P4-DISCOVERY-EDGE-GREEN (same commit).

Co-Authored-By: Claude <noreply@anthropic.com>
is_a(A,B) ∧ is_a(B,C) ⊢ is_a(A,C) via CausalEdge64::syllogize: Figure::Chain,
middle term consumed, deduction truth composes exact (f=255, c=163), mantissa +1,
Pearl mask SPO&SPO=SPO. Negative cases: no shared term ⇒ None; identical (S,O) ⇒
None (revision, not syllogism); syllogize is pure/deterministic. The part_of/is_a
ontology chaining OSINT needs, entirely on the palette. Test: p5_syllogize.rs
(4 passed). Board: EPIPHANIES E-P5-SYLLOGIZE-GREEN.

Co-Authored-By: Claude <noreply@anthropic.com>
Records the operator's 1-9 RungLevel reminder as an invariant: the contract's
RungLevel (0 Surface=observation .. 6 Counterfactual .. 9 Transcendent) is a
dependency stack, not a menu — ShaderDispatch.rung 'elevates on sustained BLOCK'
bottom-up, so counterfactual rests on grounded observation+hypothesis rungs. Maps
the P1-P5 convergence probes onto the rungs they ground (P1=observation,
P3/P4=hypothesis, P3-SPO/P5=counterfactual), with the D-ARM-7 Jirak floor as the
stack guard. Reframes P6 (awareness rollover) as THE rung-elevation mechanism.
Flags RungLevel duplication (thinking-engine vs contract) as TD-RUNGLEVEL-DUP.

EPIPHANIES E-RUNG-LADDER-IS-A-DEPENDENCY-STACK; TECH_DEBT TD-RUNGLEVEL-DUP.

Co-Authored-By: Claude <noreply@anthropic.com>
…erently

all_projections reads 3 per-plane palette cells for one (a,b) pair and produces
all 8 Pearl projections by masked summation — 3 cache reads -> 8 causal questions
(the Morton-tile 2^3 all-at-once amortization). Proven un-redundant: (1) the
8-vector is a pure function of the 3 scalar plane distances; (2) monotone ladder,
SPO upper-bounds every sub-question; (3) the SAME two candidates rank OPPOSITELY
under Association (SO) vs Intervention (PO) — 8 real retrievals, not one distance
in 8 hats. Test: p3b_spo_questions_amortized.rs (3 passed).

Capstone: records the assembled V3 stack (AriGraph/CausalEdge/thinking-style/rung/
OGAR-AST-transpile ClassView+bitmask-as-focus+askama-ERB) and the two closed
rabbit holes (SoA-first migration; rs-graph-llm replayable orchestration on OGAR).
Board: EPIPHANIES E-SPO-2CUBE-GIVES-QUESTIONS-AND-CANDIDATES.

Co-Authored-By: Claude <noreply@anthropic.com>
…denda

A (correction, [G]): rig = the RAG + LLM-API template-discovery membrane on the
cold/external side (with spider + rs-graph-llm); templates flow cold->hot as
compiled deterministic reflexes, LLM never on the hot path. Completes the V3-stack
capstone which had omitted rig.

B (conjecture, [S]): 6x2x8bit 'exact' centroid = 6x palette256^2 (12B, 65536
positions/subspace) vs CAM-PQ 6x256 (6B, quantized). The OSINT 6x(8:8) identity
tenant ALREADY has this shape, so the semantic axes double as the exact-centroid
distance code (no separate CAM-PQ code); preserves the one-distance-format
(Pearl-maskable palette sums). Marked CONJECTURE, needs PROBE-6x2x8-vs-CAMPQ
(fidelity + storage/cache) before any adoption over CAM-PQ.

Board: EPIPHANIES E-RIG-DISCOVERY-MEMBRANE + E-6x2x8-EXACT-CENTROID.

Co-Authored-By: Claude <noreply@anthropic.com>
…ested feedback loop

Grounded in on-disk maturity (not doctrine alone): graph-flow-action-ogar is
shipped (rs-graph-llm <-> OGAR Do arm, contract-only); AriGraph V3 is a commit
contract with an untested round-trip; rig is unwired; surrealdb kv-lance is a
scaffold (8 TODOs). Decision: it's a layering not an OR — hot reasoning path =
rs-graph-llm + rig-cold-membrane + AriGraph-V3-tissue (Option 2, doctrine-aligned);
cold projection = AriGraph V3 -> Lance SPO-G -> lancedb now / surrealdb-kv-lance
later (Option 1, beside not between). Untested = the feedback round-trip
(PROBE-RIG-ARIGRAPH-FEEDBACK, stubbed LLM, no network), blocked P9-class on
AriGraph write-back needing lance-graph core/protoc. Testing only the decision
half would be a manufactured green.

Board: EPIPHANIES E-RIG-ARIGRAPH-FEEDBACK-LAYERING.

Co-Authored-By: Claude <noreply@anthropic.com>
…; probes = de-blackboxing

Records the operator's strategic frame: the substrate accumulated as a black-box
wishlist that buried the two real layers (deepnsm = Semantic Transformer, OGAR =
transpiler). The P0-P5 convergence probes ARE the cure — each converts a wishlist
claim into an integer-exact green assert (P1 de-blackboxed the Semantic
Transformer itself; P2-P5 proved everything rides the palette). Names what's
still black box (the untested rig->AriGraph runtime loop) and the standing rule:
no new substrate claim enters canon without a green probe, else entropy
re-accumulates.

Also documents what the LangGraph work gave rs-graph-llm: graph-flow (stateful
execution + interrupt/resume) + graph-flow-kanban (Rubicon envelope carrying
thinking-style + Rung depth, advancing on Flow/Block/Hold) + graph-flow-action(-ogar).

Board: EPIPHANIES E-SUBSTRATE-IS-DEEPNSM-PLUS-OGAR.

Co-Authored-By: Claude <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@AdaWorldAPI, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 1 minute

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ee75572a-3264-469f-97e8-6b013b7e9993

📥 Commits

Reviewing files that changed from the base of the PR and between 20b5d0d and ef5aaaa.

📒 Files selected for processing (5)
  • .claude/board/EPIPHANIES.md
  • .claude/board/ISSUES.md
  • crates/lance-graph-osint/tests/common/mod.rs
  • crates/lance-graph-osint/tests/p1_distance_identity.rs
  • crates/lance-graph-osint/tests/p2_p3_edge_pearl.rs
📝 Walkthrough

Walkthrough

Documentation entries were added/updated in EPIPHANIES.md and TECH_DEBT.md describing probe (P0-P5) validation results and a duplicated-enum debt ticket. Five new integration test files were added to lance-graph-osint validating distance, edge, projection, discovery, and syllogism invariants. In thinking-engine, the local CausalEdge64 type was renamed to CascadeChannels8 across implementation, wiring, tests, and comments.

Changes

Board documentation updates

Layer / File(s) Summary
Strategic frame and stack entries
.claude/board/EPIPHANIES.md
Adds strategic-frame, feedback-layering, and addendum entries on the probe/substrate framework.
Capstone and probe results, tech debt
.claude/board/EPIPHANIES.md, .claude/board/TECH_DEBT.md
Updates SPO 2³ capstone, rung-ladder, and P0-P5 probe result entries; adds a duplicated-RungLevel tech-debt ticket.

OSINT probe test suite

Layer / File(s) Summary
P1 distance identity
crates/lance-graph-osint/Cargo.toml, crates/lance-graph-osint/tests/p1_distance_identity.rs
Adds dev-dependency and tests verifying palette distances match across planner and arm-discovery consumers.
P2/P3 edge round-trip and Pearl mask
crates/lance-graph-osint/tests/p2_p3_edge_pearl.rs
Tests CausalEdge64 packing round-trips and Pearl mask distance-drop invariants.
P3b amortized projections
crates/lance-graph-osint/tests/p3b_spo_questions_amortized.rs
Tests all_projections as a pure function of three plane reads, monotonicity, and ranking inversion.
P4 discovery-to-edge mining
crates/lance-graph-osint/tests/p4_discovery_edge.rs
Tests deterministic ARM mining and packing mined truth into CausalEdge64.
P5 syllogize chain
crates/lance-graph-osint/tests/p5_syllogize.rs
Tests chained syllogism conclusions, rejection cases, and determinism.

CausalEdge64 to CascadeChannels8 rename

Layer / File(s) Summary
Core type and transcoder
crates/thinking-engine/src/layered.rs
Renames the packed-edge struct, constructors, channel/strength helpers, and to_spo/from_spo transcoder methods.
Engine wiring
crates/thinking-engine/src/layered.rs
Updates TierEngine::emit_causal_edges/apply_edges and LayeredEngine::process to use CascadeChannels8.
Domino usage and comments
crates/thinking-engine/src/domino.rs, crates/thinking-engine/src/engine.rs, crates/thinking-engine/src/qualia.rs
Updates Transition field, classify_transition, and related documentation comments.
Unit test updates
crates/thinking-engine/src/layered.rs
Updates existing unit tests to construct/assert against CascadeChannels8.

Estimated code review effort: 2 (Simple) | ~15 minutes

Possibly related issues

Poem

A rabbit hopped through channels eight,
Renamed a shadow, sealed its fate.
Probes P1 through P5 turned green and true,
Integer-exact, no wishlist glue.
🐇✨ Hop on, the substrate's clear anew!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the PR’s main theme: V3 substrate convergence validated by P0–P5 probes across distance, edge, discovery, and reasoning.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 20b5d0d20f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +55 to +59
let path = std::env::temp_dir().join(format!(
"p1_osint_codebook_{}_{}.bin",
std::process::id(),
bytes.len()
));

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 Make the synthetic codebook temp path unique

When p1_distance_identity runs under Rust's default parallel test harness, both tests call synth_codebook() in the same process and derive the same temp filename from only process::id() and bytes.len(). One test can remove or truncate this file while the other is still writing/loading it, making Codebook::load_binary intermittently fail or read a partial file; include a per-call unique component or use a tempfile to isolate concurrent tests.

Useful? React with 👍 / 👎.

Both tests in p1_distance_identity run concurrently under the parallel harness
and each removes its codebook file after loading; the pid+len-only temp path
collided, so one test could truncate the other's load mid-read (intermittent
load_binary failure). Add a per-call AtomicU64 sequence to the filename so each
call gets a unique path. Deterministic content unchanged; 2 tests still green.

Addresses codex review comment on PR #624.

Co-Authored-By: Claude <noreply@anthropic.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
crates/lance-graph-osint/tests/p2_p3_edge_pearl.rs (1)

26-32: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Duplicate splitmix64 helper.

Identical to the one in p1_distance_identity.rs. As more P-series probes are added (P4/P5 already exist), consider hoisting shared test PRNG/helpers into a tests/common/mod.rs to avoid this spreading further.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/lance-graph-osint/tests/p2_p3_edge_pearl.rs` around lines 26 - 32, The
splitmix64 helper is duplicated here and matches the implementation in
p1_distance_identity.rs, so shared test PRNG code should be centralized. Move
splitmix64 into a common test utility such as tests/common/mod.rs and update
p2_p3_edge_pearl.rs to use that shared helper instead of keeping a local copy,
so future P-series tests can reuse the same function.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@crates/lance-graph-osint/tests/p1_distance_identity.rs`:
- Around line 43-64: The synthetic temp file path in synth_codebook is not
unique across parallel test runs, causing write/load/remove races between the
tests that call it. Update synth_codebook to generate a per-call unique path
instead of using only process::id and byte length, while keeping the
deterministic bytes unchanged. Use the existing synth_codebook and
Codebook::load_binary flow, and ensure the temporary file name cannot collide
when tests execute concurrently.

---

Nitpick comments:
In `@crates/lance-graph-osint/tests/p2_p3_edge_pearl.rs`:
- Around line 26-32: The splitmix64 helper is duplicated here and matches the
implementation in p1_distance_identity.rs, so shared test PRNG code should be
centralized. Move splitmix64 into a common test utility such as
tests/common/mod.rs and update p2_p3_edge_pearl.rs to use that shared helper
instead of keeping a local copy, so future P-series tests can reuse the same
function.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1b37e27a-0867-425b-8312-32bfc588807e

📥 Commits

Reviewing files that changed from the base of the PR and between b56deab and 20b5d0d.

⛔ Files ignored due to path filters (1)
  • crates/lance-graph-osint/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (12)
  • .claude/board/EPIPHANIES.md
  • .claude/board/TECH_DEBT.md
  • crates/lance-graph-osint/Cargo.toml
  • crates/lance-graph-osint/tests/p1_distance_identity.rs
  • crates/lance-graph-osint/tests/p2_p3_edge_pearl.rs
  • crates/lance-graph-osint/tests/p3b_spo_questions_amortized.rs
  • crates/lance-graph-osint/tests/p4_discovery_edge.rs
  • crates/lance-graph-osint/tests/p5_syllogize.rs
  • crates/thinking-engine/src/domino.rs
  • crates/thinking-engine/src/engine.rs
  • crates/thinking-engine/src/layered.rs
  • crates/thinking-engine/src/qualia.rs

Comment thread crates/lance-graph-osint/tests/p1_distance_identity.rs
claude added 5 commits July 1, 2026 19:35
…oss-repo arc

lance-graph-ogar tracks OGAR main by branch and carries a compile-time COUNT_FUSE
(mirror::CODEBOOK.len() == ogar_vocab::class_ids::ALL.len()). OGAR #145's osint
mint (+2 to ALL) will break the fuse in every consumer the instant it merges,
because the contract mirror (65 rows) has no osint concept rows yet. Can't
pre-add them to #624 (would break its own CI vs unmerged OGAR main). Tracked with
the coordinated-arc resolution + a merge-ordering decision flagged to the operator.

Co-Authored-By: Claude <noreply@anthropic.com>
…itpick #624)

p1 and p2_p3 each carried an identical splitmix64; move it to a shared
tests/common/mod.rs so it doesn't spread as more P-series probes land. p3b/p4/p5
don't use it. Both tests still green.

Addresses coderabbit review comment on PR #624.

Co-Authored-By: Claude <noreply@anthropic.com>
…ds off)

Operator correction: classid = (V3-substrate 0x1000)(domain 0x07)(app_prefix 01);
0x1000 is the V3 marker (not q2's app prefix), and 0x0701 is domain:app (not a
flat concept) — the 64k dynamic-class space (256 domains x 256 app-classes ->
ClassView x bitmask). The human-readable form 0x07:01::1000 is a DELIBERATE
post-V3 reorder, postponed to protect the little-endian byte contracts P1-P5 are
built on. Hands off: do not reorder classid bytes or rewrite codebook rows toward
the human-readable form; that's a later, deliberately-triggered arc with its own
LE round-trip probe. Orthogonal to ISS-OGAR-OSINT-MIRROR-PENDING (row count).

Board: EPIPHANIES E-CLASSID-HUMANREADABLE-REORDER-DEFERRED.

Co-Authored-By: Claude <noreply@anthropic.com>
… directive)

When the substrate impl starts, route all classid field extraction through ONE
split-order abstraction ((before)::Domain:appid::(after)) so the deferred
human-readable reorder (0x1000_0701 <-> 0x07:01::1000) is a one-place flag flip
with a single round-trip probe, not an N-site migration that can desync
(I-LEGACY-API-FEATURE-GATED trap). Flag defaults to the current stored order.

Board: EPIPHANIES E-CLASSID-SPLIT-ORDER-IS-A-FLIP.

Co-Authored-By: Claude <noreply@anthropic.com>
…y contract (keep it)

Operator ruling: the two repos are one coupled pair moved together every session;
the COUNT_FUSE is the INTENTIONAL dependency contract enforcing that parallel
movement, not a break to engineer away. Corrects my earlier rev-pin recommendation
(option 1 REJECTED). OSINT mirror resolution: keep the fuse, land the 2 mirror rows
+ domains_agree arm in parallel with OGAR #145 (option 2, brief transient red is
fine). Target design: same-binary compile -> lance-graph plug-and-play; when the
contract clicks, OGAR emits the vocab (build-time codegen) -> hand-mirror + fuse
retire. Ready patch documented in ISS-OGAR-OSINT-MIRROR-PENDING.

Board: EPIPHANIES E-OGAR-LANCEGRAPH-MOVE-IN-PARALLEL; ISSUES status updated.

Co-Authored-By: Claude <noreply@anthropic.com>
@AdaWorldAPI AdaWorldAPI merged commit 2f13861 into main Jul 1, 2026
5 checks passed
AdaWorldAPI pushed a commit that referenced this pull request Jul 1, 2026
…s the reserved root slot

Surfaced when merged OGAR #145 + lance-graph #624 met: OGAR shipped osint_system
at 0x0700 (CC==0x00, the reserved domain-root slot per canon), which the mirror's
in-tree zero-slot test forbids — so the parallel-mirror is blocked on a remap
decision (Option A: move to 0x0702 + q2 update; Option B recommended: 0x0700 is
the OSINT domain-root/default class, drop from the concept CODEBOOK, mirror only
osint_person 0x0701). lance-graph main CI is green (fuse is in the excluded
lance-graph-ogar); consumers vendoring lance-graph-ogar are the exposure.

Board: ISSUES ISS-OSINT-SYSTEM-ROOT-SLOT-VIOLATION (blocks ISS-OGAR-OSINT-MIRROR-PENDING).

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants