knowledge: neurosymbolic + RLVR + causal learning-layer curriculum (v1) — 8 papers, 5-PR roadmap, governance only#373
Merged
Conversation
8-paper synthesis composing Schölkopf SCMs + MIT BPL + LINC + GRPO into a 5-PR roadmap for the stack's missing self-improvement loop. Governance only — no code changes. Doc + 2 board PREPENDs per CLAUDE.md Mandatory Board-Hygiene Rule. ## What this composes Eight papers, four tiers, ~6 hours total reading load: Tier 0 (doctrinal frame): - Causal de Finetti (Guo+Schölkopf 2022, arXiv:2203.15756) — ICM principle, AriGraph SPO-G grouping doctrine - Executable Counterfactuals (Vashishtha 2025, arXiv:2510.01539) — Pearl 2³ trainable verbs, RL>SFT for OOD Tier 1 (method substrate): - LINC (Olausson+Solar-Lezama+Tenenbaum 2023, arXiv:2310.15164) — Σ9-Σ10 classical-prover dispatch - GRPO/DeepSeekMath (Shao 2024, arXiv:2402.03300) — RLVR algorithm spec Tier 2 (closed-loop generation): - LPN (Bonnet 2024, arXiv:2411.08706) — StyleVectors test-time gradient - TextGrad (Yuksekgonul 2024, ~arXiv:2406.07496) — textual-gradient prompt optimizer - Opt-Sym (Yeo+Solar-Lezama 2026, ID pending) — symbolic-space adaptive data generation Tier 3 (safety/calibration): - Conformal CFG (Farzaneh 2026, arXiv:2601.20090) — calibrated bounds for L4 planner outputs ## Stack mapping (5 live components, 4 missing modules) Live: AriGraph SPO-G quads (PR #372) · StyleVectors (cache::triple_model) · Σ9-Σ10 → L4 dispatch shell · MUL gate · Pearl 2³ in nars_engine Missing: NARS Intervention/Counterfactual verbs · ICM-invariance column · TextGrad-style style_synthesize · GRPO trainer · LINC bridge ## 5-PR roadmap (each ~200-800 LOC, sequential, PR-LL-1..LL-5) PR-LL-1: NARS Intervention/Counterfactual InferenceType variants + AriGraph ::intervene_on — closes Pearl 2³ dispatch gap PR-LL-2: ICM-invariance BindSpace column (1 bit/row, gated through CollapseGate per I1) + lance-graph-planner::data_gen module (Opt-Sym generator targeting Σ-tier as difficulty axis, with NARS+Chapman-Kolmogorov deterministic verification stronger than Opt-Sym's LLM verifier) PR-LL-3: Hybrid TextGrad/LPN style_synthesize — numerical autograd on StyleVector + textual gradient on rendering prompt — closes THINKING_ORCHESTRATION_WIRING.md Gap 1 (12 vs 36 ThinkingStyle) PR-LL-4: crates/lance-graph-trainer/ — GRPO loop with NARS confidence ∈ [0,1] as graded reward (strictly stronger than Opt-Sym binary). Backed by candle or burn for the Qwen3 head fine-tune. ~2 weeks separate prep work for the head-via-candle wiring. PR-LL-5: crates/linc-bridge/ — Z3 SMT prover + Farzaneh-style conformal counterfactual wrap. SMT theories (arithmetic, bitvectors, arrays) match stack queries better than pure FOL. Required for MedCare-rs / q2 high-stakes safety. ## 6 Open Questions (ratify before sprint fan-out) OQ-LL-1 reward shape (graded NARS confidence vs binary) OQ-LL-2 TextGrad optimizer location (local Qwen3 vs frontier API) OQ-LL-3 prover choice (Z3 vs Prover9 vs HOL Light) OQ-LL-4 style-pool location (contract vs separate learned_styles pool) OQ-LL-5 ICM-invariance update protocol (when does invariance bit clear?) OQ-LL-6 Σ-tier-as-difficulty probe (hot-path latency check) ## Iron rule audit (all 6 satisfied) I-SUBSTRATE-MARKOV: synthesized trajectories pass Chapman-Kolmogorov in PR-LL-2 verify step I-NOISE-FLOOR-JIRAK: PR-LL-5 conformal calibration uses Jirak bounds (not classical Berry-Esseen) — counterfactual rollouts share latent abduction, classical bounds underestimate variance I-VSA-IDENTITIES: style_synthesize produces identity fingerprints, not content I1: IcmInvarianceColumn writes through CollapseGate::bundle, never raw assignment Method-on-carrier: all 4 new capabilities are methods on existing carriers (AriGraph, StyleVector, Student, Query) AGI-as-glove SoA: synthesized styles land in StyleColumn extension; no new layer ## Blast radius - 2 new crates: lance-graph-trainer + linc-bridge (~1400 LOC total) - 3 crates modified: lance-graph-planner, causal-edge, lance-graph-contract - Zone 3 surface UNCHANGED - ndarray side UNCHANGED (curriculum stays thinking-side of doctrinal split) - External deps gated behind features: z3-rs (PR-LL-5), candle/burn (PR-LL-4) ## Files changed - NEW: .claude/knowledge/neurosymbolic-rlvr-causal-curriculum-v1.md (~620 lines, 12 sections, 5-PR roadmap + 6 OQs + iron-rule audit) - PREPEND: .claude/board/EPIPHANIES.md (E-LL-CURRICULUM-1) - PREPEND: .claude/board/INTEGRATION_PLANS.md (plan-index entry) 3 files changed. Pure plan + board hygiene. No code. ## Predecessor / successor Predecessor: PR #371/#372 (causaledge64-mailbox-rename-soa-v1) substrate — this curriculum is the learning loop on top of that substrate Successor: PR-LL-1 through PR-LL-5 (the curriculum is the spec for the sequential implementation wave; each PR fan-outs via the established CCA2A 12-worker pattern)
This was referenced May 15, 2026
AdaWorldAPI
added a commit
that referenced
this pull request
May 28, 2026
…ulum knowledge: neurosymbolic + RLVR + causal learning-layer curriculum (v1) — 8 papers, 5-PR roadmap, governance only
AdaWorldAPI
pushed a commit
that referenced
this pull request
May 28, 2026
Sprint manifest for the NARS Intervention/Counterfactual verbs fleet (first PR in the learning-layer curriculum sequence from PR #373). Per-worker file ownership + wave ordering documented. OQ-LL-1 and OQ-LL-5 autoresolved per "autoattended" directive (graded NARS confidence, clear ICM bit on counterfactual contradiction). Worker outputs land via tee -a AGENT_ORCHESTRATION_LOG + per-agent reports under .claude/board/sprint-log-LL1/agents/agent-W{N}.md. Meta synthesizes after all 6 workers report; commit of .rs changes happens at the meta-review step.
AdaWorldAPI
pushed a commit
that referenced
this pull request
May 28, 2026
Closes the Pearl 2³ named-but-not-dispatched gap from the neurosymbolic+RLVR+causal curriculum (PR #373 §6.1). Two new NARS inference variants land as first-class verbs in the stack; AriGraph gains an intervene_on() method producing counterfactual SPO-G tagged with ContextTag::Intervention. ## Worker outputs (6 agents + main-thread coordination) W1 — `lance-graph-planner/src/thinking/nars_dispatch.rs`: - NarsInferenceType::Intervention (Pearl rung 2, conf_modifier=0.85) - NarsInferenceType::Counterfactual (Pearl rung 3, conf_modifier=0.70) - Doc comments cite Vashishtha 2025 (arXiv:2510.01539) + ICM - Extended route(), detect_from_query(), confidence_modifier() - Bridged 2 downstream exhaustive-match sites (nars/inference.rs, orchestration_impl.rs) to Abduction semiring as stopgap W2 — `lance-graph-planner/src/cache/nars_engine.rs`: - Local Inference enum: Intervention=7, Counterfactual=8 added - nars_infer() routes Intervention → Abduction × 0.85, Counterfactual → Deduction × 0.70 - New style vectors: intervention_style() weights MASK_PO, counterfactual_style() weights MASK_SPO - inference_to_pearl_mask() + inference_to_style() dispatch helpers - to_causal_edge() updated to map local 7/8 → W3's protocol enum - 4 new tests covering confidence ordering, mask routing, weights, roundtrip W3 — `causal-edge/src/edge.rs`: - Reclaimed Reserved5 → InferenceType::Intervention (slot 5) - Reclaimed Reserved6 → InferenceType::Counterfactual (slot 6) - from_bits() decoder updated - No bit-layout change beyond renaming; binary compat preserved W4 — `lance-graph/src/graph/arigraph/triplet_graph.rs`: - pub enum ContextTag { Observation, Intervention } — SPO-G "G slot" at the AriGraph data layer (raw_g()=0xFF for Intervention) - pub struct CounterfactualSpoG { triplet, context } - TripletGraph::intervene_on(subject, predicate, new_object) — Pearl rung-2 do-calculus, original graph NOT mutated W5 — NEW `lance-graph/tests/intervene_counterfactual.rs` (274 lines): - 8 integration tests covering all 4 worker outputs end-to-end - 7 pass; 1 marked #[ignore] (three_step_counterfactual_chain — depends on abduction substrate wiring, target of PR-LL-4) - clippy::cloned_ref_to_slice_refs fixed in main-thread cleanup W6 — governance (backfilled by main thread due to permission snapshot): - EPIPHANIES.md PREPEND: E-LL-1-INTERVENE entry - AGENT_ORCHESTRATION_LOG.md appended W6 coordination line - knowledge/causal-edge-64-spo-variant.md "Recent additions" section ## Verification - `cargo check --workspace` exits 0 (W1's downstream patches kept it green) - `cargo test -p lance-graph --test intervene_counterfactual` — 7/8 pass (8th #[ignore] for PR-LL-4) - Clippy lint fixed in W5's test (cloned_ref_to_slice_refs) - AGENT_ORCHESTRATION_LOG records all 6 worker entries ## OQ ratifications (autoresolved per "autoattended" directive) - OQ-LL-1: graded NARS confidence ∈ [0,1] (chosen) - OQ-LL-5: clear ICM bit on counterfactual contradiction (deferred to PR-LL-2 where IcmInvarianceColumn lands) ## Predecessor / successor Predecessor: PR #373 (curriculum v1) + PR #372 (causaledge64 substrate) Successor: PR-LL-2 (ICM-invariance column + Opt-Sym generator) consumes the new G slot tagging
AdaWorldAPI
pushed a commit
that referenced
this pull request
May 28, 2026
Branch-retirement audit for 4 stale claude/* branches whose content was absorbed into main via parallel paths (PR #364/#365/#366 sprint-7 cycle and related). Verification: per-file content diff confirmed all 4 branches have either zero-byte diff vs main (3 branches) or formatting-drift-only diff (1 branch: phase-3b-witness-to-splat had nominal 18-file/+3943/-1 diff that proved to be rustfmt-1.95.0 whitespace re-alignment plus a stale "Last updated" metadata line). Remote deletions executed via GitHub REST API DELETE /repos/AdaWorldAPI/lance-graph/git/refs/heads/{branch} since the in-process git server rejected `git push --delete` with "remote end hung up unexpectedly". All 4 branches deleted with HTTP 204. Retired branches: - claude/supabase-subscriber-wire-up - claude/splat-osint-ingestion - claude/teleport-session-setup-wMZfb - claude/phase-3b-witness-to-splat Locked: empty-diff branch retirement requires REST API not push --delete; `git diff --shortstat` is necessary but not sufficient for branch lifecycle judgment — must follow with per-file diff to distinguish content from formatting drift. Deferred: Cargo.toml workspace.lints 1.95-backlog block (separate PR); PR_ARC backfill for #373..#378 hygiene gap (separate task); PR #377 EPIPHANIES merge-conflict resolution (separate). https://claude.ai/code/session_01UwJuKqP828qyX1VkLgGJFS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
8-paper curriculum + 5-PR roadmap for the stack's missing self-improvement loop. No code changes — plan + board hygiene per CLAUDE.md Mandatory Board-Hygiene Rule (
new integration plan → INTEGRATION_PLANS.md PREPEND + .claude/knowledge/<name>-v<N>.md + EPIPHANIES.md PREPEND).What this composes
The substrate landed in PR #372 (causaledge64-mailbox-rename-soa-v1) — AriGraph SPO-G + CausalEdge64 v2 + Σ-tier router + MailboxSoA. What this curriculum adds is the learning loop on top of that substrate — the verbs that turn the existing
Thinkstruct into a system that trains itself.8 papers in 4 reading tiers (~6 hours total):
Stack mapping (5 live, 4 missing)
Live (PR #372): AriGraph SPO-G quads · StyleVectors · Σ9-Σ10 → L4 shell · MUL gate · Pearl 2³ in NarsEngine
Missing (this curriculum's PR roadmap fills): NARS Intervention/Counterfactual verbs · ICM-invariance column · TextGrad-style style_synthesize · GRPO trainer · LINC bridge + conformal CFG
5-PR sequencing
lance-graph-planner::data_gen(Opt-Sym generator)crates/lance-graph-trainer/(GRPO loop)crates/linc-bridge/(Z3 prover + conformal CFG)Sequential. PR-LL-4 requires ~2 weeks separate prep for the Qwen3-head-via-candle wiring.
Doctrinal claims worth flagging
6 Open Questions (ratify before sprint fan-out)
learned_styles) — recommendation: separate pool, contract exposesStylePoolProvidertraitIron rule audit (all 6 satisfied)
style_synthesizeproduces identity fingerprints, not contentIcmInvarianceColumnwrites viaCollapseGate::bundleStyleColumnextension, no new layerBlast radius
lance-graph-trainer+linc-bridge(~1400 LOC)lance-graph-planner,causal-edge,lance-graph-contractz3-rs(PR-LL-5),candle/burn(PR-LL-4)Files changed
.claude/knowledge/neurosymbolic-rlvr-causal-curriculum-v1.md(~620 lines, 12 sections).claude/board/EPIPHANIES.md(E-LL-CURRICULUM-1).claude/board/INTEGRATION_PLANS.md(plan-index entry)3 files changed, +617 lines. Zero code.
Test plan
What this PR does NOT touch
.rs/Cargo.tomlchanges.Predecessor
PR #372 (causaledge64-mailbox-rename-soa-v1) — the substrate this curriculum builds the learning loop on top of. Without PR #372's SPO-G quads, MailboxSoA, and Σ-tier router, the curriculum has nothing to wire into.
Generated by Claude Code