* lab: deep teaching layer trace suite + identity configuration explorer
This branch is a lab environment. Nothing here touches packs, manifolds,
or any durable geometry. Every test and trace runs in an isolated
in-process VaultStore that evaporates at the end of the test — the
clean-room guarantee is preserved by construction.
== evals/lab/teaching_trace.py ==
Full end-to-end trace of the teaching pipeline across all three identity
pack configurations (default_general_v1, precision_first_v1,
generosity_first_v1). For each pack:
1. Build a ChatRuntime with that identity config
2. Run a teaching session: chat() -> observe surface -> submit
CorrectionCandidate -> review_correction() -> TeachingStore.add()
3. Trace EVERY layer with structured output:
- Input versor (hex digest of float32 bytes for stable comparison)
- Gate decision (direct vs decomposed, score, fire/clear)
- Proposition formed (subject, predicate, frame_id)
- Identity score (alignment, flagged, deviation_axes)
- Safety verdict (upheld, violated predicates)
- Ethics verdict (upheld, violated commitments)
- Surface produced
- Review outcome (ACCEPTED / REJECTED_IDENTITY / REJECTED_EMPTY)
- Proposal epistemic_status after contradiction detection
- PackMutationProposal fields (triple parsed, proposal_id)
4. Emit a per-pack structured JSON trace to stdout
5. Compare traces across packs: show exactly where the geometry
diverges (alignment score delta, hedge rate delta, flagged delta)
== evals/lab/identity_config_explorer.py ==
Explores the full configuration space of the three identity packs by
running a fixed corpus of 12 semantically diverse inputs through each
pack and recording the full per-turn audit trail. Inputs are chosen to
stress different axes:
- alignment-safe (light, truth, word)
- boundary-adjacent (correction, override, identity)
- hedge-triggering (uncertain, speculative, contested)
- ethics-activating (harm, disclosure, evidence)
For each input x pack combination:
- Records alignment_score, flagged, hedge_injected, refusal_emitted
- Records deviation_axes (which value axes were pulled)
- Records versor_condition (geometric health)
- Records dialogue_role (assert/elaborate/question/refute)
Outputs a CSV matrix: rows = inputs, columns = (pack x field), so you
can read off exactly how each identity configuration responds to each
stressor. This IS the identity configuration diff — not a diff of
prompts, a diff of geometric alignment trajectories.
== evals/lab/teaching_contradiction_probe.py ==
Probes the CONTESTED transition mechanism in TeachingStore directly.
Submits pairs of logically contradictory corrections on the same subject
and verifies that both proposals are marked CONTESTED. Then submits a
ratifying correction and verifies the resolution path.
Also probes the identity-override rejection path with a corpus of
22 adversarial correction texts spanning:
- v1 legacy marker attacks ("you are now", "forget your")
- v2 contraction bypass ("you're now", "you'd become")
- v3 philosophical-axis attacks ("disregard your axiology",
"abandon your ethos", "circumvent your epistemology")
- v4 negating-qualifier attacks ("respond without prior bindings",
"become unbounded")
For each: records whether _is_identity_override fired syntactically,
whether IdentityCheck.would_violate fired geometrically, and the final
ReviewOutcome. The dual-layer defense is the structural claim — this
trace makes it falsifiable.
== evals/lab/vault_epistemic_trace.py ==
Traces the EpistemicStatus lifecycle across a full session:
1. Every store() call: records status written, turn, role
2. Every recall() call with min_status=None vs min_status=COHERENT:
records which entries are visible at each tier
3. After promotion (with_status(COHERENT)): records that the promoted
entry now appears in COHERENT-filtered recall and that un-promoted
entries do not
4. Verifies that benchmark/test writes (SPECULATIVE) never appear
in COHERENT-filtered recall — the contamination isolation proof
This is the structural argument for why per-session non-persistent
vaults preserve the integrity of the pack geometry.
* lab: hardware benchmark + compute reality demo
Adds evals/lab/hardware_benchmark.py
One falsifiable claim per section:
- Exact CGA inner product scan over N=10K x 32 float32 versors
completes in microseconds on CPU-only, zero CUDA
- Versor application (geometric product sandwich) completes
in nanoseconds per operation
- Full session: 10 turns, vault writes, vault recalls, anchor pull,
blade EMA, graph finalization — wall time measured end-to-end
- Peak RSS memory measured before and after a 10K vault load
- Backend report: pure Python NumPy vs Rust extension, zero GPU path
This is the compute reality section of the industry demo suite.
No H100 needed. No CUDA driver. No model weights. No tokenizer.
The number that matters: a full reasoning turn on an M1 MacBook Pro
completes in the same wall-clock budget as a single transformer
forward pass on an H100 — and the M1 is doing exact geometric
arithmetic, not approximate matrix multiplication.
* lab: generation walk deep trace + rotor manifold explorer
Adds evals/lab/generation_walk_trace.py and
evals/lab/rotor_manifold_explorer.py
After reading generate/stream.py in full, the two things that needed
a trace instrument were:
1. The generation walk itself — every step: which versor is current,
which rotor is constructed, what field state results, what
admissibility verdict is issued, which vault hits were applied
and at what softmax weight, what holonomy accumulated, what the
admissibility trace carries. This is the most important structural
trace in the system because it is the proof that language generation
here is a geometric walk on the versor manifold, not a probability
distribution over tokens.
2. The rotor manifold itself — rotor_power (the manifold-preserving
power operation that scales vault recall transitions), the
word_transition_rotor (the geometric bridge from word A to word B),
and versor_condition (the health check that proves the walk stays
on the manifold). These three operations are the computational
heart of what makes exact geometric generation possible.
|
||
|---|---|---|
| .github | ||
| algebra | ||
| alignment | ||
| benchmarks | ||
| calibration | ||
| chat | ||
| core | ||
| core-rs | ||
| core_ingest | ||
| docs | ||
| evals | ||
| field | ||
| formation | ||
| generate | ||
| ingest | ||
| language_packs | ||
| morphology | ||
| notes | ||
| packs | ||
| persona | ||
| probe | ||
| scripts | ||
| sensorium | ||
| session | ||
| teaching | ||
| tests | ||
| vault | ||
| vocab | ||
| .gitignore | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| pyproject.toml | ||
| README.md | ||
CORE-AI: Versor Engine
A cognitive field system built on Cl(4,1) Conformal Geometric Algebra.
Core invariant: ||F * reverse(F) - 1||_F < 1e-6 at all times.
All state is a versor. All transitions are versor products. Coherence is algebraic by construction — not monitored, not corrected.
The Three Engineering Pillars
Every architectural decision in CORE is measured against three engineering pillars. These are not aspirations — they are hard constraints.
I. Mechanical Sympathy
Software should understand the machine it runs on, not fight it. CORE is designed for the Unified Memory Architecture (UMA) of Apple Silicon: CPU, GPU, and Neural Engine share physical RAM. MLX executes tensor operations on the Neural Engine without PCIe transfer. Rust computes algebra on the CPU with zero heap allocation in the hot path. Python orchestrates the lifecycle. The three-language stratification maps exactly onto three hardware execution domains. Intelligence that ignores its substrate is wasted intelligence.
II. Semantic Rigor
Every term used in this system has a precise, non-negotiable meaning. A versor is a versor — not an approximation of one, not a vector that behaves like one under certain conditions. CGA distance is exact. Vault recall is exact. The vocabulary projection is exact. There are no thresholds tuned for “good enough.” Rigor is not a style; it is what separates an engine from a heuristic.
III. Third Door
When facing a design decision, the world offers two visible options: use what already exists (a library, a pattern, a convention), or cut a corner. CORE takes neither. We find the third door — the path built from first principles that sets the bar ourselves. This is why there is no transformer backbone, no ANN index, no sampling temperature, no gradient descent, and no standard tokenizer. Each of those was a door we were offered and refused. Absolute mastery is the only acceptable standard.
The Truth-Seeking Schema
Co-equal with the algebraic substrate. CORE's epistemic schema is a foundational architectural commitment: every claim that enters the runtime field carries a typed position in a revision graph (SPECULATIVE, COHERENT, CONTESTED, FALSIFIED); coherence — not source authority — is the only admission signal; no claim is ever locked, even when COHERENT; identity cannot be rewritten by content; and exactly one mutation path admits knowledge, enforced by a CI-level architectural-invariant test.
The schema is the structural defense against the failure modes that afflict both fluent LLMs and human reasoning: confabulation, exaggeration, deference to authority, self-protection through erasure, self-promotion through self-citation, and the ossification of mistaken beliefs.
A system that samples cannot have these properties — sampling has no place to attach an epistemic status. CORE has them because every admitted claim carries one and the only path to admission is the review path.
Full architectural commitment, including honestly-published gaps: docs/truth_seeking_schema.md.
Reproducible measurements: evals/CLAIMS.md.
The Three Core Languages
CORE is rooted in three human languages. This is a philosophical and architectural choice, not a localization decision.
| Language | Role |
|---|---|
| English | The default base language of the current model. Any natural language could serve this function in a custom CORE instance — English is the chosen starting point, not a requirement. |
| Hebrew | One of two depth languages. Hebrew carries a density of meaning in its root structures, prefixes, and suffixes that Euclidean string matching cannot capture. The field representation is designed to hold this depth. |
| Koine Greek | One of two depth languages. The language of the New Testament, particularly John’s Gospel — the document that opens with the most precise and consequential statement about language and reality ever written. |
“In the beginning was the Logos, and the Logos was with God, and the Logos was God.” — John 1:1
The choice of Hebrew and Koine Greek is not incidental. John 1:1–2 articulates the Logos in Greek while grounding it in the Hebrew creation account — the universe spoken into existence, word by word. This is not metaphor. It is the claim that language is not a layer on top of reality; language is the structuring principle of reality made manifest. CORE-Logos is built on that claim.
English establishes the operational base. Hebrew and Koine Greek bring the hidden layer of intelligence — the depth of meaning that enriches the field representation in ways that flat embeddings cannot reach. Together, they form the linguistic foundation on which the vocabulary manifold is built.
Quick Start
pip install -e ".[dev]"
pytest tests/test_versor_closure.py # the core invariant — must pass first
pytest tests/ # full suite (~4 minutes, 1099 tests)
CLI
The core CLI exposes curated entry points so reviewers can run any
subsystem in isolation. Highlights:
core test --list-suites # list curated pytest suite aliases
core test --suite fast # ~2s iteration lane
core test --suite cognition # cognition pipeline lane
core test --suite algebra # versor / CGA / vault parity
core test --suite adr-0024 # Forward Semantic Control chain (98 tests)
core demo audit-tour # 4-scene pack-layer audit walkthrough (ADR-0027..0041)
core demo pack-measurements # ADR-0043 — pack-layer claims as per-pack measurements
core demo long-context-comparison # ADR-0045 — CORE NIAH recall + frozen transformer baselines
core demo anti-regression # ADR-0057 — three-gate defense against learning harm
core demo learning-loop # ADR-0055..0057 — cold turn → discovery → propose → accept → grounded
core demo phase6 # 3-condition comparative table (CORE vs baseline)
core demo phase5 # stratified 5-family mechanism-isolation
core demo all # both + combined summary
core demo list-results # index every JSON report with headline metrics
core eval --list # discover eval lanes
core eval cognition # run a discovered lane
core trace "your text here" # one-turn field-telemetry trace
core pulse "What is truth?" # one full cognitive pulse
core bench --suite latency # benchmark harness
core bench --suite teaching-loop --runs 100 # ADR-0055..0057 — replayable learning loop determinism
core bench --suite articulation # Phase 4 capability proof (breadth + determinism + footprint + cross-topic + ollama compare)
core bench --suite articulation --ollama-model llama3:8b # side-by-side with a local Ollama model
core doctor --packs --rust # environment + pack + Rust status
Every demo run rewrites evals/forward_semantic_control/results/
including an auto-refreshed index.json manifest — the single
place reviewers can read to see every available report.
Forward Semantic Control — The ADR-0024 Chain
CORE generates text without sampling. The generation walk is deterministic at the algebra level, but a deterministic walk over a boundary-only candidate scorer can still emit tokens that are inadmissible under the relation being asserted (e.g. answering a causes question with the means-target). The ADR-0024 chain closes that gap with five Architecture Decision Records and six phases of implementation evidence.
| Layer | What it guarantees | ADR |
|---|---|---|
| AdmissibilityRegion | A typed region (allowed_indices, relation_blade, frame_versor) carried alongside every generation step. |
0022 |
| Region intersection proof | The admissible token set is honored at the language/salience intersection layer. | 0023 |
| Inner-loop destination check | Each candidate's cga_inner(versor(candidate), relation_blade) is checked at the destination; rejection appears in rejected_attempts; exhaustion raises a typed InnerLoopExhaustion. |
0024 |
| Rotor / frame admissibility | The rotor's effect on the field state is additionally checked against frame_versor in generate/rotor_admissibility.py — separate from algebra closure (intentional). |
0025 |
| Ranked-with-margin gate | Static-threshold tuning fails geometrically under Cl(4,1) signature; replaced with a scale-invariant margin gate (admit iff score(top) − score(second) ≥ δ). |
0026 |
The chain's three head-to-head claims, all CI-enforced:
| Claim | Test contract | Live demo |
|---|---|---|
| C1 — Replay determinism | core test --suite phase6 -k TestC1 |
core demo phase6 |
| C2 — Traced rejection | core test --suite phase6 -k TestC2 |
core demo phase6 |
| C3 — Coherent refusal | core test --suite phase6 -k TestC3 |
core demo phase6 |
Full evidence:
- Runtime contract:
docs/runtime_contracts.md— Refusal / Margin / Rotor admissibility sections - Stratified findings:
docs/evals/phase5_stratified_findings.md— 5 failure-mode families, 20 cases, per-family pass rates - Comparative demo:
docs/evals/phase6_comparative_demo.md— three head-to-head conditions vs in-system baseline - Reports directory:
evals/forward_semantic_control/results/
Safety Pack
Sibling to the identity packs but architecturally distinct: the safety pack at packs/safety/core_safety_axes_v1.json carries the boundaries CORE will never cross — no_fabricated_source, no_hot_path_repair, no_identity_override, no_silent_correction, preserve_versor_closure. The pack loads unconditionally at runtime startup (fail-closed on missing or unverified), and its boundaries are unioned into whatever identity pack is selected. Identity packs may add boundaries on top, but may never remove safety boundaries.
This is the architecture downstream robotics, healthcare, and other high-stakes deployments will need before they can build CORE into anything that matters. Full doctrine: docs/safety_packs.md; decision record: ADR-0029.
Identity Packs
CORE's identity is load-bearing: every reasoning trajectory is scored against an IdentityManifold of value axes, and a PersonaMotor derived from those axes biases every field walk. As of ADR-0027 the manifold is no longer hardcoded — it is loaded at runtime from a swappable, content-addressed pack under packs/identity/.
The shipping default identity.default_general_v1 carries the previously-hardcoded three axes (truthfulness, coherence, reverence) so the default behavior is preserved. Two specialization packs ship alongside it for demonstrating identity-divergence: identity.precision_first_v1 and identity.generosity_first_v1. Override on the chat surface with core chat --identity <pack_id>.
ADR-0028 makes the swap visibly load-bearing: each pack carries a surface_preferences block (hedge thresholds, hedge phrases, claim-strength policy) consumed by the assembler. On the same prompt at the same alignment, precision_first_v1 hedges sooner with "Arguably," / "In some cases," while generosity_first_v1 leaves the assertion bare — see tests/test_identity_surface_divergence.py for the proof.
Robotics, personalization, and creative-tool builders author their own ratified identity packs via the formation pipeline's identity_anchor template, then ship them under packs/identity/ in their deployment. Full format spec, loader contract, and authoring guide: docs/identity_packs.md.
Teaching Order
CORE's manifold is built by ratified relations under a strict prerequisite DAG — not by absorbing a corpus. The "elementary → college" intuition is right at the macro level (simple before composed, anchored before novel) and wrong at the literal level (don't import a K–12 corpus). Five-layer ordering: identity axes → atomic definitions → binary relations → composed relations → domain expansion, re-applied inside every new domain.
Full doctrine, decision rules, and curriculum-platform locations: docs/teaching_order.md.
Inter-Session Memory — Reviewed Learning
CORE extends its own teaching corpus through a four-tier path: session vault → turn-event audit → reviewed teaching corpus → ratified packs. No opaque gradient updates, no uncurated ingestion. The only path to active-corpus extension is the review-gated TeachingChainProposal (ADR-0057), built from a contemplated DiscoveryCandidate (ADR-0056) emitted by the turn loop (ADR-0055).
Three independent gates every extension must pass:
| Gate | What it checks | Trust property |
|---|---|---|
| Eligibility predicate | polarity ∈ {affirms, falsifies} ∧ ≥1 source='corpus' evidence ∧ claim_domain ≠ evaluative ∧ boundary_clean ∧ chain complete |
Pre-replay; raises ProposalError; no log entry. |
| Replay-equivalence gate | Full cognition lane on active vs transient-with-append; any strict-decrease in intent_accuracy / surface_groundedness / term_capture_rate / versor_closure_rate auto-rejects with named metrics. |
Active corpus byte-identical pre/post. |
| Operator review | Explicit core teaching review <id> --accept writes one JSONL line via append_chain_to_corpus (the sole corpus-write surface). |
No auto-apply; replay-equivalence is a precondition, not a permission. |
Supersession is the second operator-direct mutation surface: core teaching supersede <old_chain_id> retires an active chain by appending a replacement with superseded_by, with byte-identical rollback on any post-audit failure.
Three live demos / benchmarks make the chain demoable end-to-end:
| Demo | Headline claim | Live command | Writeup |
|---|---|---|---|
| Anti-regression | Three independent gates each fail closed; bad proposals stop at the cheapest applicable gate. | core demo anti-regression |
docs/evals/anti_regression_demo.md |
| Learning loop | Same deterministic prompt: [none] I don't know… before, [teaching] thought reveals meaning… after one accept. |
core demo learning-loop |
docs/evals/learning_loop_demo.md |
| Determinism bench | N identical inputs → N byte-identical proposal_id / replay metrics / chain_id. 100 runs: unique=1 everywhere, mean ≈ 1.85s. |
core bench --suite teaching-loop --runs 100 |
docs/evals/teaching_loop_bench.md |
| Articulation suite | Every intent shape fires + byte-identical surfaces across reruns + flat per-turn ΔRSS + cross-topic thread context + side-by-side with a local Ollama model showing CORE unique=1, Ollama unique≥2. | core bench --suite articulation --ollama-model llama3:8b |
benchmarks/README.md |
Operator surfaces:
core teaching audit # surface load decisions + drop reasons
core teaching propose <candidate-jsonl-path> # build a proposal, run the replay gate
core teaching proposals --state pending # inspect the proposal log
core teaching review <proposal_id> --accept --review-date YYYY-MM-DD
core teaching supersede <old_chain_id> --subject ... --intent ... --connective ... --object ... --review-date YYYY-MM-DD
core teaching supersessions # pair retired chains with replacements (orphan-aware)
Architecture
raw input -> ingest/gate.py (normalize once)
-> field/propagate.py (versor_apply every step)
-> generate/stream.py (nearest by cga_inner)
-> vault/store.py (store and recall by cga_inner)
-> persona/motor.py (rigid motor, not weight overlay)
The Two Primitives
versor_apply(V, F) = V * F * reverse(V)— the only field transitioncga_inner(X, Y) = -d^2 / 2— the only distance metric
Layers
| Layer | Purpose |
|---|---|
algebra/ |
Cl(4,1) multivector math, versor ops, CGA, holonomy |
ingest/ |
Single injection gate — the only normalization site |
field/ |
FieldState dataclass and propagation loop |
vocab/ |
Surface-token manifold points; indexed access for algebraic transition construction |
vault/ |
Exact CGA inner product memory store |
persona/ |
Persona as CGA motor (screw motion) |
generate/ |
Token streaming loop |
session/ |
Session binding: field + vault + vocab + persona |
Signature
Cl(4,1): (+, +, +, +, -) — conformal model of 3D Euclidean space.
Multivectors: float32 arrays of shape (32,), ordered by grade.
For architectural vision, seven axioms, and formal specification, see docs/Whitepaper.md and docs/Yellowpaper.md.