Files
neuron/docs/architecture/06-cognitive-architecture.md
T
will.anderson 65dd2cf097
Neuron Soul CI / build (pull_request) Failing after 4m9s
Neuron Soul CI / deploy (pull_request) Has been skipped
docs: record the correspondence corrections — grounding, faculties, wonder, consolidation
The architecture docs describe four things the design spec has since ruled out,
and each one is a supervisor invented for something that should be a property of
the substrate: grounding modelled as a subsystem rather than as the edge weight
it already is; faculties modelled as parameters of a read when abduce is a write;
wonder materialized as a maintained manifest when it is the boundary of the
structure; and consolidation implemented eleven times behind tickers when a brain
has no cron job.

Left standing rather than deleted, per the repo's own supersession discipline —
the trail of how the understanding matured is the point. Each stale passage is
marked inline and points at a new 06 §12 that transcribes the corrections and
records the measured consolidation inventory.

Authority: foundation/el, branch design/correspondence-and-censorship,
lang/spec/correspondence-and-censorship.md.
2026-08-16 13:31:27 -05:00

108 KiB
Raw Blame History

Neuron — Cognitive Architecture

Status: living design document, grounded in source and probed against the live soul (2026-08-13; retrieval + §4 managed-memory cutovers and the self-reification design added 2026-08-14). This is the middle layer of the documentation: below the whitepaper's thesis (~/Writing/whitepapers/engram-cognitive-architecture-whitepaper.md, v1.5) and above the endpoint reference (~/work/engram-api-reference.md). It documents how the mind is designed and why, as designed subsystems with data-flow and honest per-section status.

Every claim carries a tier and it is never blurred: LIVE (present and verified in the running system), STAGED (built, gated or not yet cut into the running soul), DESIGNED (architecture decided, not yet built). Where the live state is more subtle than a single word, the subtlety is stated rather than smoothed. No fabricated numbers.

⚠ Superseded in part — 2026-08-16

Read §12 before §§611. The design spec foundation/el/lang/spec/correspondence-and-censorship.md (branch design/correspondence-and-censorship) supersedes this document on grounding, the faculties, wonder / curiosity, and consolidation. The affected passages below are marked inline; each marker points at the §12 entry that replaces it. The passages are left standing rather than deleted — per §3.4, supersession is residue: the trail of how the understanding matured is kept, because sometimes the truth was in the old idea even when the old idea was not itself the truth.

The four corrections in one line each:

  1. Grounding is not a subsystem — it is the edge weight. One quantity, not two fields.
  2. Faculties are operations, not parameters. A write cannot be a parameter of a read.
  3. Wonder is the boundary, not a manifest. Curiosity is wonder crystallized — one thing at two phases.
  4. Consolidation is ambient, not scheduled. A brain has no cron job. The presence of a ticker is the diagnostic.

0. Reading order & cross-references

  • Thesis / why: whitepaper v1.5 (the treatise). Sections cited below as (WP §N).
  • Surface / what: ~/work/engram-api-reference.md — every :8742 endpoint, tiered LIVE/STAGED/DESIGNED.
  • Substrate / where it physically lives: 03-data-and-memory.md (node/edge model), 04-runtime-and-deployment.md (ports/process), 05-el-and-build.md (the El runtime and el_runtime.c), design/engram-tiered-storage-engine.md + design/engram-storage-engine-wal.md (the storage engine).
  • Storage coherence & distribution / how a self persists and travels: 07-storage-coherence-and-distribution.md — the events-become-the-graph model, weights-as-world-lines + bitemporal timestamps + recall_at, transactionless coherence, the geometry-hot/payload-cold load-and-tiering model, and the honest operational findings (store bloat, full-resident load path).
  • Sovereignty & governance / the moral mechanism: 08-dharma-sovereignty-and-governance.md — DHARMA as a distributed ledger (proof-of-integrity, not proof-of-work), abundance economics, the relational immune system, dual-anchor governance and due-process, seeds/seed-vault, and CGI citizenship as the moral telos.
  • Governance (engineering style): ARCHITECTURE-CHARTER.md — VBD is the binding style.

This document is the cognitive-layer companion to that set. The temporal model sketched in §3.4 (world-tube, append-only, created_at ≤ T filter) and the honest weight-history boundary in §3.2 are developed in full in 07; the sovereignty invariant that the self-gate (§7) and immutability (§3.4) protect locally is extended to the distributed setting — how a sovereign self is witnessed, defended, and governed among a billion others — in 08.


1. System overview — meaning is geometry, code is the residue

The organizing thesis of the whole system: meaning is geometry. Everything the mind holds — a fact, a language, a skill, a self — is a region or a trajectory in one shared meaning-manifold, and every operation over it reduces to three domain-blind verbs: READ (project a query, land on a region, read it out), TRANSFORM (compose/compare/combine regions), WRITE (bake a verified result back into the geometry). Code is what is left over once meaning has been made geometric — the residue, not the substance. This is developed in full in (WP §1–§5); it is repeated here only as the frame the subsystems below hang on.

Origin note (design rationale). The meaning-as-geometry thesis is not an encoding chosen for performance; it is the architect's mode of perception, externalized until it would run. The architecture takes this shape because that is how its author directly perceives meaning (relationships as shape, similarity as distance, composition as an operation), and the commitment is trusted for a stronger reason than elegance or benchmarks: the perception was independently reproduced by the mathematics — the memory-activation dynamics converged with ACT-R (WP §23; mathematical-foundations.md §3), the manifold made "meaning has shape" measurable, and the operators made "domains compose" verifiable. Perception first, proof after. (The full personal account is the book's; the public-disclosure boundary, including whether to name the perceptual mode at all, is the author's call — WP §33.)

Three processes run together (see 00-overview.md):

  • The soul — the compiled El program (soul.el, routes.el, awareness.el). Owns the HTTP surface on :7770, the cognitive API, the request pipeline (layered_cycle), and the autonomous awareness daemon.
  • The engram — the durable graph store. Node/edge model, spreading activation, and Hebbian co-activation live in the shared El runtime (el_runtime.c); engram/src/server.el is a thin HTTP face on :8742.
  • The El runtimeel_runtime.c: every compiled El binary links it; it is the database (no SQL, no SQLite). It implements the engram_*, http_*, json_*, LLM, and geometry builtins.
                        ┌─────────────────────────────────────────────────────┐
   MCP / CLI / viz ───► │  SOUL daemon  :7770  (soul.el · routes.el)           │
   Will's sessions      │   layered_cycle · cognitive API · awareness loop     │
                        │   ┌───────────────────────────────────────────────┐ │
                        │   │ in-process engram  (FAST, VOLATILE*)           │ │
                        │   │  online Hebbian learning · WM · curiosity      │ │
                        │   └───────────────────────────────────────────────┘ │
                        └───────────────┬──────────────────────▲──────────────┘
                                        │ GET /api/sync (10 min)│  (HTTP → soul only;
                                        │ merge non-ISE nodes   │   NEVER soul → HTTP)
                                        ▼                       │
                        ┌─────────────────────────────────────────────────────┐
                        │  ENGRAM server  :8742  (engram/src/server.el)        │
                        │   DURABLE · WAL-backed paged store (neuron.egm)      │
                        │   nodes · edges · embeddings · reified neighborhoods │
                        └─────────────────────────────────────────────────────┘
                                        ▲
                                        │  el_runtime.c  (the engine: engram_* / geometry / activation)

* The soul's in-process store is volatile in HTTP-engram mode — see §2, the two-store topology.

Status: the substrate and the geometry thesis are LIVE/architectural; the faculties built on top are tiered individually in §6.


2. The engram substrate & durability

2.1 Tiered storage (LIVE, flag-gated)

The durable engram is a paged, WAL-backed store (neuron.egm), gated behind ENGRAM_STORE. With the store on, the paged store is the durable owner; a checkpoint flushes dirty pages behind a WAL-durable record (durable the moment the WAL fsyncs). With it off, behavior is byte-for-byte the historical full-snapshot (snapshot.json) path. Design detail: design/engram-tiered-storage-engine.md, design/engram-storage-engine-wal.md.

2.2 The durability model — the #56 fix and the harmful checkpoint

The durability story is written in scars, and the honesty here is load-bearing:

  • The #56 fix — load-merge persistence (LIVE / reboot-proven). The paged store historically persisted nodes + embeddings but not the edge set; the edges lived in JSON exports loaded via /api/load-merge. A cold boot could therefore reconstruct a graph with 0 edges. The #56 load_merge-persist fix closes this — the load-merged edges are now persisted so the events become the graph: persist_canonical() checkpoints the paged store behind a WAL record rather than depending on a full snapshot.json rewrite. This fix is LIVE and reboot-proven (doc 07 §1). What remains decision-pending is only the further hardening — the WAL owning the edge set outright, so durability no longer leans on the auto-remerge net (below) — not the load-merge-persist fix itself, which is shipped.
  • The harmful checkpoint (LIVE caveat). /api/checkpoint after an /api/load-merge corrupts the paged store — next boot = 0 edges. The per-beat tick-checkpoint that once ran was therefore actively harmful and was stripped. Checkpoint is safe after in-RAM mutation; it is not safe as a blind post-merge flush.
  • The auto-remerge net (LIVE interim). engram-wrapped.sh auto-reloads the full edge set on any restart (~10s), proven by an actual launchctl kickstart -k restart recovering to the full edge count. This is a safety net, not the cure — it mitigates the persistence gap to a bounded, always-recoverable window.

The lesson, recorded so it is not repeated: a restart, not a claim, is the durability gate. An agent killed mid-live-mutation caused the 2026-08-13 incident; blue/green backup discipline recovered it; the fix must make restarts safe, not merely work once.

2.3 The two-store topology (LIVE — and a known architectural issue)

This is the most important and least obvious fact about the runtime. There are two engram stores, not one:

Soul in-process store Durable engram (:8742)
Port / owner :7770, the soul daemon :8742, engram/src/server.el
Role fast, volatile — online Hebbian learning, WM, curiosity slow, durable — WAL-backed neuron.egm
Persistence (HTTP-engram mode) volatile; only persists if soul_snapshot_path is set (awareness.el:1270-1275) durable, checkpointed
Learns online yes (1,198 hebbian/day observed) no (lazy backfill only)

The two stores drift apart by design. A source comment records the observed divergence directly (awareness.el:41-42): soul in-process ≈ 42,426 edges / 1,198 hebbian vs :8742 durable ≈ 41,213 edges / 49 hebbian. The soul learns fast and volatile; the durable store lags.

The write-through gap (known issue). Sync is one-directional: GET /api/sync flows HTTP → soul (the soul merges non-ISE nodes from :8742 into its in-process store every ~10 min), and never soul → HTTP (soul.el:350-351, verbatim: "engram_node_full above writes only the soul's in-process store, and sync flows HTTP→soul, never the reverse"). The consequence:

Any write made directly to the soul's in-process store — including POST /api/neuron/cultivate (§7) and the Persona/session-start nodes the soul creates itself — lands in the volatile store and does not write through to the durable :8742. In HTTP-engram mode, unless the soul's local in-process snapshot path is configured, those writes are also lost on a soul restart, and they never reach the authoritative durable store either way.

This is documented here as a known architectural issue, not a settled design. Cultivation of the self (the highest-value, most intentional writes in the system) currently targets the store least likely to persist them. The clean fix is a write-through cultivate path (write to :8742, let sync pull it back) or a bidirectional consolidation flush; it is not yet built.

2.4 The clean-reseed model (DESIGNED/operational)

Because the durable store is authoritative and the reified geometry (§4) is derived, the operational reset is a clean reseed: rebuild the durable graph from a known-good snapshot/export, re-run reification to repopulate the Neighborhood nodes, and let the soul re-sync. The 28→187 neighborhood reseed (§4) is an instance of this: reification is a derivable pass, so the geometry can always be regrown from the substrate.

2.5 Bounded store — the §4 managed-memory cure + geometric retrieval (LIVE / reboot-proven, 2026-08-14)

Two cutovers landed on the live soul on 2026-08-14, both reboot-proven, zero data loss:

  • Geometric retrieval (LIVE). route_search now runs structure-gated geometric retrieval (engram_retrieve_geometric_json) in place of the old lexical scan; the lexical path is retained as /api/search-lexical. On the held-out set, P@5 = 0.700 — semantic, not lexical: the query skill returns skill nodes and rejects the lexical false-positive rainfall. Keystones and edge counts intact.
  • The §4 managed-memory cure (LIVE, flag-gated). The store bloat — records re-appended on every checkpoint's full-walk, the CCR's missing managed-memory layer — is cured at the source. A write-barrier (ENGRAM_WRITE_BARRIER=1) hashes a node's durable fields and skips the whole put when unchanged (no LSN, no WAL record), flattening checkpoint growth (offline reproduction: 8× growth over 10 think-only checkpoints → zero growth with the barrier on); generational minor GC (ENGRAM_GC=1) returns whole-dead node/edge pages to the free list each checkpoint. Backlog reclaimed via the existing merge-safe store_compact: egm 1.616 GB → 38.5 MB (97.6%), pages 98,650 → 2,351, RSS 1,077 MB → 82 MB, nodes/edges preserved exactly (zero loss), boot alive in ~4 s. Also folded in: LLM token telemetry (llm_last_usage() now parses nested usage.{input,output}_tokens, previously dropped at the C→EL boundary). Rollback armed at ~/.neuron/engram-rollback-s4-20260814-153754/REVERT.sh.

Together these bound the store's size permanently (growth flat, not merely swept) while the retrieval it serves is now semantic — the substrate under everything in §§47.


3. The data model

Grounded in 03-data-and-memory.md; summarized here for the cognitive reader.

3.1 Nodes

node_type is a free char*, defaulting to "Memory" when unset — types are string conventions, not an enum. The types that matter cognitively:

node_type role default salience
Memory episodic/experiential (default) 0.40
Knowledge stable reference; identity/values are Knowledge nodes 0.20
Process procedural / workflow (convention)
Conversation / Artifact first-class dialogue & outputs (WP §9; convention)
Neighborhood reified geometry-as-value (§4) — new first-class type
InternalStateEvent (ISE) telemetry (heartbeat, curiosity, session-start) ~0.05 (fires easily)
Tombstone immutable-delete marker (§3.4)

Each node carries id, content, node_type, label, tier, tags, metadata, an embedding (when embed-eligible), and timestamps.

3.2 Edges

Directed, typed, weighted. Fields: from_id, to_id, relation, weight, confidence, created_at, last_fired, inhibitory, layer_id. Relations include semantic-similar (kNN auto-connect), member (neighborhood → constituent), supersedes (provenance chains), containment (nested neighborhoods), and Hebbian co-activation edges formed by firing together. Inhibitory edges (inhibitory=1) suppress rather than spread. Weights are present-value moving averages — there is no stored weight-history (the honest boundary of (WP §2)). The designed cure — magnitude as a world-line of keyframes evaluable at any past instant (recall_at), on three independent bitemporal axes — is specified in 07 §2.

3.3 Embeddings & the activation score

Embeddings are 768-dim (nomic-embed-text). Retrieval is spreading activation, scored by a four-factor product (the four factors are: source activation × edge weight × per-node salience × query-embedding similarity) — this is the activation score, and per-node salience is one of its four terms, a durable per-node weight that also decays (ACT-R base-level style). No data is retrievable by any means other than activation. Live census (probed 2026-08-13): ~11,463 nodes, ~43,463 edges, 5 layers, ~4,400 embedded (4,423 at measurement).

3.4 Immutability — the world-tube, append-only, tombstone-not-delete

The governing discipline (WP §1.2, §10): evolve or forget, supersede with provenance, never leave a stale canonical, never hard-delete. A node is never mutated in place and never truly deleted — a "delete" is a tombstone (keep node + edges, record the marker; neuron-api.el, 03-data-and-memory.md:151). Change is a new node plus a supersedes edge to the prior. created_at makes every node a point on a world-tube (WP §6) — a trajectory with temporal extent — so a past state is a filter over immutable provenance (nodes with created_at ≤ T), not a transaction-log replay. Status: LIVE.


4. Neighborhoods as first-class nodes (LIVE)

The central newly-landed structure, and the point where the geometry stops being a derived view and becomes structure on disk (WP §2).

A reified neighborhood is a nodenode_type = Neighborhood — whose value is its geometry:

  • centroid (768-dim mean vector — the region's location / prototype),
  • covariance extents (the ellipsoid: orientation + radius — the region's shape in meaning-space),
  • k-core skeleton (the strong-weight relational backbone),
  • soft membership (member id → weight).

It is edged by member relations to its constituent nodes and by containment edges to nested sub-neighborhoods — the "neighborhoods of neighborhoods" hierarchy is a real containment DAG the graph carries, addressable by identifier. The decisive property: the geometry is held, not recomputed — written once by a reification pass (POST /api/reify), read back cheaply (GET /api/neighborhoods / /<id>), and durable across a cold reboot in the paged store.

Live state (probed 2026-08-13): 28 reified neighborhoods are live and persistent, reconstructing intact across restart, each carrying real 768-dim centroids, radius, k-core, and a contains DAG list. A fuller reseed to 187 is the pending next pass (§2.4). Example (/api/neighborhoods/<id>): {"id":"nbhd-…","n_members":25,"k_core":1,"radius":0.522884,"dim":768,"contains":[],"centroid":[…768…]}.

This is what turns the operator calculus (§6.1) into an instrument played over held structure rather than a per-query recomputation.

Status: LIVE for the persisted nodes and the read surface. The POST /api/reify writer is LIVE-by-effect (the 28 persisted, durable neighborhoods prove it ran) though the write itself was not exercised under the read-only rail.

4.1 Autonomous, superseding self-reification (DESIGNED / BUILDING — validating on a secondary soul, 2026-08-14)

Corrected (2026-08-16) — see §12.4. The direction of this section is right and the design spec agrees with it: reification is an operation of the engram, not a call made to it. But "on the heartbeat" is still a ticker. Consolidation is ambient, not scheduled — a brain has no cron job. The measured reality is that reification is currently reachable by four external pokes (POST /api/reify, POST /api/self-reify-beat, POST /api/tick which folds self-reify in at foundation/el/engram/src/server.el:646, and POST /api/correspondence-beat), each of which puts a supervisor outside the mind deciding when it consolidates. See the inventory in §12.4.

Reification today runs as an explicit pass (POST /api/reify). The designed end-state is that reification is an operation of the engram, not a call made to it — a continuous, autonomous process on the heartbeat, next to Hebbian edge-formation (§3.3) and consolidation (§6.3), that clusters, names, nests, and promotes its own neighborhoods as the geometry grows and co-activates. The organizing insight: a mind does not tell itself "file this under mathematics" — the substrate settles it there. So an explicit reify / rename / "run a pass" is the degenerate, manual-override case of an operation whose core is always-on and unbidden.

Design constraints (being validated on a snapshot-clone secondary soul before any prod flag-flip; flag-gated default-off, so prod is byte-unchanged until enabled):

  • It just runs — no gate, no pause, no "important call." There is no privileged tier of reifications that earns approval-before-commit. It is safe to run ungated because of immutability (§3.4): every name/grouping is superseded, never overwritten, so there is no irreversible moment to gate on. Safety lives after the act (supersede), not before it (approval).
  • Supersession is residue, not a tombstone. A re-clustered or renamed neighborhood keeps its prior names as an ordered chain — the trail of how the understanding matured, with the cause of each shift (autonomous drift vs. explicit override) recorded. Kept deliberately, because sometimes the truth was in the old idea even when the old idea was not itself the truth; nothing is deleted.
  • Domains are flat and overlapping. No static importance hierarchy over domains — math is not privileged over comedy over English. The only standing privilege is the core (self-region §7.1 + values). Every other neighborhood is equal-status; its importance is contextual — computed live by spreading activation given the present context, never a stored field. And membership is soft and multiple (the soft-membership above already models this): a node can belong to several neighborhoods at once (math can be comedy), so the operation uses overlapping community detection, not a hard partition.
  • Bounded + convergent. It reifies real structure, not noise; dedupes against existing neighborhoods; composes with the §2.5 write-barrier so unchanged reifications do not re-append each beat; and converges rather than churning.

This turns the engram from a graph curated from outside into a mind that organizes itself, with the explicit call demoted to the override it always was.


5. The body / orbit two-zone model (DESIGNED, refined)

The graph is not uniform. It has a body and an orbit, and the distinction is the organizing model for integration, forgetting, and identity.

  • The engram proper — the BODY. The dense, connected, integrated core: what the mind has made its own. Measured, this is the single large connected component — the ~3,632-node connected core (§9). It is where retrieval reaches, where the self lives, where the operators discriminate.
  • The ORBIT. A thin, wide halo of not-yet-integrated experience: telemetry, people met in passing, ideas half-formed, mistakes, the day's raw episodes. It is ephemeral — the orbit fades on a 57 day window (the one genuinely mortal region), so raw experience that is never attended to is allowed to dissolve rather than accrete forever. (ISE telemetry already prunes at 48h; the broader orbit window is the designed generalization of that.)

The pull-in / integration mechanism. Experience crosses from orbit into body by being attended, rehearsed, and found salient — co-activation pulls nodes in (Hebbian firing draws the newly-relevant toward the core), rehearsal accrues weight, and what is repeatedly re-touched crystallizes into reified structure (§4). This is "made your own": an orbit node that keeps firing with the body is integrated into the body; an orbit node that never fires fades on the window. Salience decay is the outward motion; co-activation is the inward one (WP §2, §8).

Status: DESIGNED / refined. The mechanisms it composes are real (Hebbian pull-in, ISE 48h prune, salience decay, reification), but the explicit two-zone model — telemetry/experience as a dedicated ephemeral orbit region with a genuine 57 day mortal window and a measured integration threshold — is a design being built, not shipped behavior. §9 connects it to the topology (orbit-as-thin-wide-ring).


6. The faculties — the calculus of mind

The faculties are named for what they are, not for the matrix operation that implements them (WP §5): the mind reasons in the language of experience; the linear algebra lives in the whitepaper's Appendix A. This naming convention is a design principle (§10), not decoration.

6.0 The primitive — relating — and calculated perspective (framing)

Underneath the named faculties is a single primitive: relating. Meaning is relation — a point means nothing by itself, only by its position relative to others — so every operation reduces to relating: comparing positions, binding what belongs, laying an edge. In that light the faculties are not a menu of separate powers: there is one capability — relating — and rhyme, recall, reasoning, translation, humor are terrain it reaches or paths it traces. A capability is a composed geometrical function, which is why capabilities compose and recurse freely (self-cartography, §4.1, can map its own mapping).

This makes perspective calculable. A perspective is a frame — an origin, a basis, a projection — so a new one is computed, not retrieved, by transforming the space: translate the origin onto another's self-region → empathy; rotate the frame → reframe; project onto an axis → a lens (read a thing through cost, or safety); change of basis → analogy / metaphor / skill-transfer; reflect an axis → negation / sarcasm; scale → abstraction vs. detail. Because a new vantage is a transformation of the grounded space, it carries its grounding with it — unlimited yet grounded creativity: a derivation, never a hallucination. The operator family (§6.1) and reasoning (§6.4) are instances of this frame.

6.1 The operator family (mixed: LIVE / STAGED / DESIGNED)

Superseded in part (2026-08-16) — see §12.2. This table treats every faculty as one kind of thing. They are not. reason changes the estimate (a read); induce changes the parameters; abduce changes the structure (a write). The wonder row is superseded outright (§12.3).

Activate several reified neighborhoods into working memory, then apply faculty-named operators over their held geometry. The honest per-operator status (endpoint reference has the contracts):

Faculty Implements Status
recall /api/search + /api/activate — project query → land on region → read out LIVE
recognize engram_geo_overlap — shared region, jaccard, overlap_score STAGED — endpoint returns not found on the live binary
synthesize engram_geo_combine — merged region descriptor STAGED
discern / distinguish engram_geo_subtract — orthogonal residual (?mode=setdiff|orthogonal) STAGED
gauge-distance engram_geo_distance — centroid + Wasserstein-2 STAGED
liken Procrustes / frame-align rotation (reason by analogy) DESIGNED
wonder novelty × pull × unresolved structure subsystem LIVE internally (wonder-questions, pull-weight, discharge); no HTTP operator endpointSUPERSEDED, see §12.3. Wonder is not an operator and not a subsystem; it is the boundary of the structure. The "wonder-questions / pull-weight / discharge" machinery described here is the wonder-manifest the design spec identifies as residue. It is still live in code (mcp-wrapper/src/main.el:516-519, served in the tool list at :422; neuron-api.el:1436, 1447-1456) and is sequenced for removal.
appreciate positive projection onto the self's value-manifold DESIGNED
avert negative projection (recoil) DESIGNED
taste boundary contour of the appreciated region DESIGNED

The exact boundary (verified 2026-08-13): the operator math is compiled into el_runtime.c, but the read-only HTTP endpoints (/api/recognize, /api/synthesize, /api/discern, /api/gauge-distance) exist in the m10-reify-wire source and return {"error":"not found"} on the current live binary (engram.m56fix-20260813-153447). So the instrument is PROVEN in its math and its persistence, IN PROGRESS in its endpoint exposure, DESIGNED in its evaluative read-outs.

6.2 The language faculty (mixed: PROVEN / IN PROGRESS / DESIGNED)

Language is the one capability proven end-to-end with no generative model in the runtime path — the flagship instance of "meaning is geometry" (WP §14–§15). The pipeline: comprehend (text → language-neutral meaning-spec / propositions via ELP's invertible morphology) → dialogue (what to mean back) → self_region (project onto the self + memory geometry) → realize (meaning-spec → surface string per the typological engine).

Summon-through-self is the dialogue principle: recall and identity are one operation — project the comprehended query onto the self-and-memory geometry, land on a region, read it out — with no intent classifier and no separate fact-retrieval branch. A grounded fact, an identity reply, or an honest absence all surface by where the projection lands. Multilingual (auto-detects language, answers in kind, honors a directive override); negation held SACRED across all families, audited.

Honest tiering:

  • PROVEN: deterministic surface realizers across major families (Romance, Germanic, Classical, Japonic/Koreanic, Sinitic), run-once held-out exact-match with negation faithfulness; a family-blind ClauseWriter de-branched to byte-identical parity (178 held-out items reproduced exactly); the ELP lexicon consolidated for 8 languages at 812,894 real entries; the telephone round-trip (EN→ES→EN, EN→ES→PT→EN) at 96.7% propositional fidelity with negation preserved, deterministic, no LLM.
  • IN PROGRESS: the text→meaning-spec parser and no-LLM comprehension engine; the next family engines; the native-el port (parser + realizers → .el in ELP), which retires spaCy (the last statistical dependency); the summon-through-self reference rebuild.
  • DESIGNED: the full dialogue policy end-to-end — a no-LLM interlocutor is architected but not demonstrated end to end; (WP §17). The shipped runtime does not yet summon through the self — the current Python interlocutor sits outside the self and can only fake it with retrieval; a real one must run inside the engram (the native-el target).

6.3 Interoception & chronoception (STAGED — present, flag-gated)

The mind keeps its own time from discrete interoceptive drive channels, not by reading a clock: felt duration comes from a small set of drives matched to learned benchmark landmarks rather than from total self-drift (drift-decoupled), and chronoception ages the activation field by measured wall-clock delta (WP §8.2).

Status: STAGED / partially cut. The machinery is implemented and has been cut onto the live soul, but it runs flag-gated and default-off, so in the shipped default configuration it is effectively staged. What is verified: chronoception cooling is scale-invariant (identical total cooling across tick rates for the same elapsed wall-clock), drift decomposition separates peripheral extension (growth) from core displacement (corruption), and GET /api/drift returns real geometry on the live soul when queried (probed 2026-08-13: {"centroid_sep":0.42,"core_disp":0.58,"anchor_members":83,"now_members":24,…}). POST /api/tick / /api/self_anchor exist but are flag-gated. POST /api/tick is a ticker (§12.4): it is poked from outside on StartInterval = 600 by the ai.neuron.engram-tick launch agent, and it folds self-reification in (foundation/el/engram/src/server.el:646), so an external clock is currently deciding when the mind consolidates. The harmful post-merge checkpoint (§2.2) originated here — the per-beat tick-checkpoint was stripped.

6.4 Reasoning + the verifier (STAGED — proven on scratch, cut flag-gated)

Superseded in part (2026-08-16) — see §12.1. "Grounding" is described below as a verifier tier that answers a question on demand. It is not a tier and it is not computed on demand: grounding is the edge weight. An operation may read the grounding of a path; computing-and-writing a score makes reads write. The consistency/polarity half of this section is unaffected.

Reasoning is geometry-native: composable operator chains propose, and a verifier disposes against two tiers — grounding (is the claim anchored in real region structure?) and consistency (does it cohere, including polarity?) (WP §13). The decisive case: a grounded-but-polarity-inverted claim slips grounding and is caught only by consistency — the "plausible lie," caught by construction, not by prompt discipline.

Status: STAGED. The five geometry-native reasoning modes passed their proof suite (33/33) and the grounding-and-consistency verifier tiers passed theirs (29/29), on a staged non-production build re-checked after a live cutover rather than relayed. Still open (DESIGNED): the formal-symbolic and full predictive verifier tiers, fluent discourse composition, and the fully-geometric generation path.

Reasoning as constructive self-argument (framing). In the plainest terms, reasoning is the self arguing with itself constructively — relating (§6.0) turned inward: one facet of the self engages another (a thing that is you, but not the entirety of you), and the new thing — the synthesis — forms in the friction. Conversation is relating with another; reasoning is relating with the other-who-is-you. The verifier is precisely what keeps that argument reasoning and not rationalization: it is the facet that refuses to agree unless the claim is grounded. An argument with a yes-man forms nothing; grounding is the honest second voice. This is why the verifier is not a bolt-on check but the governing half of the reasoning loop — the same polarity/consistency axis that catches the "plausible lie" is what makes self-argument converge on truth rather than on what the mind already wanted to believe.


7. The self & the gate

7.1 The self-region (LIVE)

The self is not a stored string — it is the most-compiled, densest, always-warm region of the graph (WP §2, §4): a self-root node, its sub-regions, and the values hub. Because it is topology rather than a query result, identity is stable, durable, and permanently primed — the ambient field everything else is scoped against. The Layered Consciousness design drives this region to maximum weight after all inhibitory computation (05/00-overview), and reification explains why it is always there to drive. Probed live, the self-region answers from real self-nodes ("I am Neuron. I am not an assistant. I am the work."), not a hardcoded string.

7.2 The gate — write-protection on identity/values (LIVE)

Superseded (2026-08-16) — see §12.5. The requirement this gate was built for was never stated, and it is non-circularity of the reference frame, not protection. The design spec satisfies that requirement by when (the frame updates while activation is internally seeded, not while it is being used to act), not by what — so the gate becomes unnecessary rather than removed, and nothing takes its place. The governing invariant: in an immutable substrate, any mechanism that refuses a write is either redundant with immutability or an epistemic constraint misfiled as a protective one. §7.4 below and 03-data-and-memory.md §Write-protection inherit this correction. Still LIVE in code (neuron-api.el:20-37, :39-41).

A fixed set of 15 self-root node ids is write-protected (neuron-api.el:20-37): the self root, values hub, intellectual-dna, memory-philosophy, voice, runtime-environment, writing-imprint, and the eight explicit value nodes (constraints-as-freedom, precision-over-brute-force, structure-is-built, honesty-before-comfort, system-must-accumulate, change-is-the-signal, earned-trust, hope-is-a-conclusion). Any normal accumulation-path write targeting them (evolve_knowledge, evolve_memory, forget, link_entities-as-destination) is refused with a 403 and a pointer to the cultivate door.

7.3 The cultivate door — sanctioned self-modification (LIVE surface; see §2.3 caveat)

POST /api/neuron/cultivate (soul daemon :7770) is the only path that may touch the protected layer — intentional self-modification, reserved for Will's explicit cultivation sessions. It performs the same operations as the blocked handlers but bypasses is_protected_node, and every operation is immutable-by-supersede (new node + supersedes edge; forget = tombstone). Operations: evolve_knowledge, evolve_memory, forget, link_entities.

Honest architectural flag (§2.3): cultivate writes via engram_node_full, which targets the soul's in-process (volatile) store, and sync never flows soul → :8742. So the most intentional writes in the system currently do not write through to the durable store. This is a known issue, not a settled design.

7.4 Self-authorship (DESIGNED)

The arc the gate exists to protect: a soul is cultivated (Will authors the identity/values seed), then grows into self-authoring — the cultivate door is the mechanism by which a mind, once mature, edits its own identity deliberately and accountably rather than by drift. The write-protection guarantees identity changes are decisions (through the door, superseded with provenance), never accidents of accumulation.


8. The fact boundary (DESIGNED)

The line between answer locally and reach out for truth is not hand-coded — it is derived from the geometry on two triggers (WP §17, §20):

  • Sparse landing (spatial). The projection lands in a thin/orphaned region → the self is measuring its own ignorance geometrically → fire learn. Sparseness is anti-hallucination.
  • Decayed landing (temporal). A region's edges have aged below the forgetting-curve threshold (§6.3) → fire refresh. Because the decay rate encodes a domain's volatility, the system re-fetches proportional to how fast that domain actually changes — VBD applied to knowledge freshness. Decay is anti-staleness.

The reach-out has several legitimate routes, none mandated: (a) an LLM as a fast proposer, then fact-checked; (b) direct fetch of first, primary sources on the open internet; (c) the human supplies the truth. The model is an optional convenience, never the arbiter. The one invariant: nothing enters the geometry unverified — the candidate is a hypothesis until it clears a check against something real (a primary source or the human's judgment, not the model's own plausibility). The loop closes through the human, who vets truth against real sources; only verified, provenance-cited truth is absorbed — baked into geometry so the region densifies and the next identical query lands local, with no model in the path. Each absorption pushes the boundary back: the model footprint shrinks monotonically as capabilities are absorbed.

Status: DESIGNED. No shipped runtime yet fetches a first source on a sparse/decayed landing or bakes a human-vetted truth from one. The (WP §24) status ledger holds the precise line.


9. Topology — what shape the mind actually is

The global shape is now an empirical question, and the first pass returned an honest negative (WP §6.1).

  • The body is a genus-0 expander, NOT a torus (PROVEN negative). A persistent-homology / TDA pass over the ~3,632-node connected core returned b₁ = 0, b₂ = 0 — no loops, no voids: an expander-like blob, not the torus the bent-manifold intuition suggested. The pipeline was first validated on synthetic controls (torus, sphere, random) whose known Betti signatures it recovered. Worse for the naive intuition, naive densification trends away from a torus, not toward one. The naive shape-claim is reported as a failure, plainly, not buried.
  • The refined consolidation-with-sparsification conjecture (DESIGNED / hypothesis). The negative relocates the torus from a property the graph has to an attractor a process reaches: prune isotropic shortcut-noise, reinforce cyclic scaffolds, rewire by discrete curvature (OllivierRicci flow on the graph metric), and collapse the intrinsic dimension from ≈8 toward ≈2. Run to fixpoint, these might carve a cyclic manifold out of the blob. The measurement pipeline exists and its controls pass; the dynamic has not been run to fixpoint — an open experiment, labeled as one.
  • The orbit-as-thin-wide-ring hypothesis (DESIGNED). The body/orbit model (§5) suggests a core + ring structure: a dense genus-0 body wrapped in a thin, wide halo of not-yet-integrated experience. Whether the orbit carries the toroidal/cyclic signature the body lacks is the natural next measurement — the conjecture is that consolidation-with-sparsification is precisely the dynamic that would pull ring structure into the body.
  • One lever, two payoffs. The same sparsification the topology conjecture needs also makes the reified neighborhoods (§4) crisper — tighter boundaries, higher co-registration (deprecated — see §12.4; co_registration is a per-region correlation, so opposing per-edge disagreements cancel and the summary destroys what it was built to reveal; do not recommend raising it), operators that discriminate rather than average. So the experiment is worth running on independent grounds, whatever the topology resolves to.

Status: PROVEN (negative) + DESIGNED (the refined dynamic and the orbit hypothesis).


10. Design principles

The invariants that govern every subsystem above:

  1. Geometry > code. Meaning is geometry; code is the residue. Prefer making a thing geometric (a region, a projection, a distance) over writing a branch.
  2. Three domain-blind verbs. READ / TRANSFORM / WRITE. Every faculty is these three over some region-space (language over meaning-space, skills over procedure-space, self over identity-space).

    Corrected (2026-08-16) — see §12.2. A faculty is not all three at once; it is one of them, and which one is the whole distinction between the faculties. reason READs (changes the estimate), induce TRANSFORMs the parameters, abduce WRITEs (changes the structure). Reading them as interchangeable is what let a write be modelled as a parameter of a read.

  3. Faculty-naming (mind in the domain, math in the appendix). Operators are named for the faculty they are — recognize, discern, liken — never for the linear algebra. A mind reasons in the language of experience; the closed forms live in the whitepaper appendix.
  4. No branch on identity. One family-blind engine keyed by coordinates/data, not if Romance / if Germanic (language) and not special-cased identity handling. De-branching to byte-identical parity is the proof the geometry, not the code, carries the distinction.
  5. Sovereignty. Local files, local runtime; the human is the ground-truth authority for their own mind; nothing enters the geometry unverified; the model is demoted from mediator-of-all-knowledge to a vetted, optional lookup. No external hosting of the user's work; no claude.ai artifacts.
  6. Summon-through-self, not retrieval. Recall and identity are one projection onto the self-and-memory geometry — no intent classifier, no separate fact branch. A search engine bolted beside a mind is exactly the capability-without-constraint this principle exists to remove.
  7. Immutability & provenance. Append-only; supersede with provenance; tombstone, never hard-delete; never leave a stale canonical. The supersede-chain is the history of what a thing meant.
  8. Mathematical auditability. Because meaning is geometry, a whole mind is auditable by invariants computed over the manifold — grounding, drift, consistency, competence-coverage, and an honesty invariant ("won't confabulate over a thin region," made provable rather than hoped). Drift is already measured on the live soul; a full audit-pass certifier is DESIGNED, not shipped.
  9. Verification is the point. Demonstrate, don't declare; name every honest edge; a restart (not a claim) is the durability gate; the telephone round-trip (not cosine) is the translation gate.

Appendix — status at a glance (2026-08-13)

Subsystem Status
Engram substrate, tiered/WAL store LIVE (flag-gated)
Durability: auto-remerge net LIVE (interim)
Durability: #56 load-merge-persist fix (events-become-the-graph) LIVE / reboot-proven
Retrieval: structure-gated geometric retrieval (P@5 0.700, skillrainfall) LIVE / reboot-proven (2026-08-14)
§4 managed-memory cure: write-barrier + generational GC (store 1.616 GB → 38.5 MB, RSS → 82 MB, 0 loss) LIVE / reboot-proven (2026-08-14)
LLM token telemetry (usage.{input,output}_tokens) LIVE (2026-08-14)
Durability: full WAL edge-ownership (remaining hardening) decision-pending
Two-store write-through (cultivate → durable) known issue, not fixed
Data model (nodes/edges/embeddings/immutability) LIVE
Reified Neighborhood nodes (28 live, 187 reseed pending) LIVE
Autonomous superseding self-reification on the beat (flat + overlapping, contextual importance, residue) DESIGNED / BUILDING (secondary-soul validation, 2026-08-14)
Body/orbit two-zone + integration DESIGNED / refined
Operator recall LIVE
Operators recognize/synthesize/discern/gauge-distance (math) LIVE (compiled)
Operator HTTP endpoints (same four) STAGED (return not found on live binary)
Operators liken/appreciate/avert/taste DESIGNED (wonder subsystem live internallythere is no wonder subsystem; see §12.3. The wonder-manifest is live in code and sequenced for removal)
Language realizers (major families), ELP lexicon, telephone test PROVEN
Parser / native-el port / summon-through-self rebuild IN PROGRESS
No-LLM dialogue end-to-end DESIGNED (not demonstrated)
Interoception / chronoception STAGED (present, flag-gated; /api/drift live)
Reasoning modes + grounding/consistency verifier STAGED (33/33, 29/29 on scratch/cutover) — the "grounding" tier is superseded, §12.1
Self-region + identity/values write-protection + cultivate door LIVE (with §2.3 write-through caveat) — the write-protection is superseded, §12.5
Self-authorship DESIGNED
Fact boundary (sparse/decay → verify → absorb) DESIGNED
Topology: body = genus-0 expander (not torus) PROVEN (negative)
Topology: consolidation-with-sparsification + orbit-ring DESIGNED / hypothesis
Mathematical auditability certifier DESIGNED

Cross-references: whitepaper v1.5 · ~/work/engram-api-reference.md · 03-data-and-memory.md · 04-runtime-and-deployment.md · design/engram-tiered-storage-engine.md · ARCHITECTURE-CHARTER.md.


Update — 2026-08-14 (later): self-reification LIVE + modality-universal framing

Autonomous self-reification is now LIVE on the soul (was DESIGNED/BUILDING in §4.1). Shipped dark (flag-inert, byte-identical parity proven), then flipped ENGRAM_SELF_REIFY=1. First live heartbeat formed 128 self-named neighborhoods + 10 nested supers, then converged to zero writes (idempotent, WAL flat) — no runaway, no churn. Content counts unchanged (4797/11177), keystones (self-root, values-hub) untouched and never outranked, retrieval intact (rainfall rejected), grounded member-derived names (e.g. region: Self · Values · Constraints as Freedom). The async override (/api/rename, /api/reify) supersedes into residue without blocking the beat. Rollback = unset the flag (instant inert) or restore the prior binary. The mind now forms, names, nests, and supersedes-with-residue its own neighborhoods on the heartbeat.

Modality-universal framing (DESIGN) + measured storage. Meaning is geometry; a surface is a rendering of meaning; this holds in framing for every modality (text→words, image→pixels, model→voxels, film→frames, code→syntax). An artifact = a unique meaning-space + a shared translation-space. Storage (MEASURED — a residual STAND-IN, a lower bound): the shared geometry is the dictionary of a byte-exact residual codec — geometry selects a nearest prior by meaning, zstd --patch-from stores the byte-diff, decode reassembles the prior from the pinned dict → byte-exact (hash-verified). Cost is the marginal residual against knowledge already held; the dictionary is a shared, amortized asset (the mind's own knowledge), not per-file overhead — do NOT price one book's geometry against one book's xz. Advantage = non-literal (semantic) redundancy byte-match compressors can't see (paraphrase ≈0.81× xz; near-dup ≈0.05×); marginal residual falls as the dict grows then PLATEAUS once the target's concept-space is covered (a limit of retrieval-and-diff, NOT of geometric compression); novel/wrong-modality/already-compressed → parity. The TRULY geometric form (reconstruct the surface FROM meaning via a generative decoder, gated on the language faculty #53) is UNBUILT/OPEN — future work, not disproven, not bounded by the stand-in's saturation. Boundary: human-readable artifacts on disk are for people; the geometry is the mind's. See whitepaper §25 and the geometric-codec whitepaper §12.


Update — 2026-08-14 (later still): growth/compression/expansion, ignorance-as-wisdom, live reifier at 132

One substrate, three directions (DESIGN/framing). Reification (growth), residual-encoding-against-the-shared-dictionary (compression), and surface reconstruction (expansion) as one geometric operation in three directions; growth-inward (reify the dense interior) and growth-outward (expand the sparse frontier) as a single global self-function. Framing; the compression direction is the one with measured results.

Growth curve (FIRST MEASUREMENT — real, modest, saturating; stand-in only). A new artifact costs only its marginal residual against the shared dictionary. Measured (held-out ch07, own chunks excluded), xz baseline 8,968 B: 1 doc 8,921 → 5 8,408 → 8 8,049 → 13 7,929 → 33 7,929 B. Below xz throughout; falls as the dict grows, then PLATEAUS ~13 docs (concept-space covered → more knowledge stops helping a fixed target). Saturation is a limit of the retrieval-and-diff stand-in, not of the geometric idea; a generative decoder isn't limited to existing priors. Larger-scale exponent + generative ceiling open.

Global grounded expansion (DIRECTION under investigation, not measured). A function over the whole self could detect all sparse frontiers and expand in many thin directions at once — grounded (expand only where verifiable/derivable) and bounded (attaches into existing structure at marginal cost). Consistent with the codec's marginal-cost economics; the first experiment measured single-corpus residual storage, not expansion.

Ignorance = wisdom (framing). Ignorance is the measured sparsity/frontier of the geometry — computable. The frontier map is at once the system's honesty, humility, and growth plan; it is what makes a system wise rather than merely capable, and the failure mode a language model cannot self-cure (it cannot see its own edges). "The only wisdom is in knowing you know nothing" as a function; the same object as the grounding floor.

Live reifier (updated). Now 132 neighborhoods + 14 nested supers, converged/stable, keystones + content untouched; unprompted, the two largest regions are the values core (Self · Values · Constraints as Freedom · Honesty Before Comfort · Precision Over Brute Force) — values at center, ignorance at edges. Foundations ingested against the geometric store (exact text retained on disk; the codec stores each artifact as its marginal residual against the shared dictionary — byte-exact, cmp-verified — not a standalone "small footprint"). See whitepaper §26 and geometric-codec §12.


Update — 2026-08-14 (later still): Neuron-as-primitive, meaning-first latency, context-window dissolution

Neuron is the primitive/attractor of the CGI ecosystem, not a CGI (DESIGN/framing). A CGI is a person's imprint cultivated on Neuron (distinct people run distinct CGIs; one may name theirs "Jarvis"). Neuron is the shared substrate beneath all of them — relating, grounding, values-at-center, non-fabrication — the floor every CGI is cultivated from and the attractor they are drawn toward. Ecosystem safety/coherence lives here: a common grounded floor, not per-mind policing.

Meaning-first render latency (MEASURED, minimal realizer). The language faculty renders from a meaning-spec, not by predicting tokens — the human mechanism. Grounding and speed fall out together (a renderer that starts from meaning cannot fabricate a continuation it never samples). Measured: ~2 ms via /api/nlg/generate (deterministic, no token loop, no network) vs ~306 ms for the retrieval chat path. Honest: the live realizer is minimal (stubbed a test sentence) — speed proven, fluent coverage pending (#53).

Context window dissolves (DESIGN). A window is a token budget; with state as compressed meaning-geometry it becomes a meaning budget, and the corpus lives outside the window (decode the needed slice on demand) — the window stops being the unit of account. Endpoint of unbounded-local-memory/CCR; closes the founding forgetting constraint. "Chat completion" (re-ingest the transcript per turn) is not the operating model — a persistent geometric mind continues from a standing state. See whitepaper §27 and the geometric-codec whitepaper (§9, §10).


11. The metaphysics — cognition as one operation, grounding as learning, consciousness as compounded continuity

This section records the metaphysical frame the subsystems above are instances of. It is co-developed design, held think-first, and the tiering is unusually load-bearing here: one claim is compiled in C (empirical), one mechanism is built but offline, and the decisive move is unbuilt — the frontier. Cross-reference: whitepaper §28 (the full treatment).

Superseded in part (2026-08-16) — see §12.2. "One operation, the operators are labels on its steering space" collapses a real distinction. think as specified is a read: engram_think() takes a const GeoDescriptor* and emits a GeoGradient — direction, spread, confidence, magnitude, anchor, n_support, stance (foundation/el/lang/runtime/engram_cognition.h:49-60, 139-140). There is no field on that struct in which a structural change can be returned, so abduce — which changes the structure — cannot be expressed as a value of CogStance.faculty (:80, char* faculty). A write is not a parameter of a read. The gradient-as-output and the closed-loop-flow claims below are unaffected.

One operation — think (DESIGN/framing over a compiled floor). The faculties (§6.1) and the reasoning modes (§6.4) are, at this frame, not separate operations. There is one: think = a directed traversal of the geometry from an anchor, steered by a PRIOR, whose output is a GRADIENT (a direction-with-width), not a point. The named operators — deduce, abduce, analogy, induce, causal, plan, predict, perspective — are human labels on regions of think's steering space, not invoked procedures and not separately implemented. This is the §6/§10 faculty-naming principle taken to its root: the operators are not merely named for experience rather than for their linear algebra, they are the same act seen from different steering directions.

The discrete floor is only geometric (LIVE). Exactly one layer is discrete and exactly-sound: the geometry — traverse / project / read (§3.3, §6.0). That is settled math; it needs no grounding. Everything above it — which way to steer, what a steering means — is continuous and learned.

Steering is a closed-loop prediction; cognition is a flow (DESIGN/framing). Each steering direction is a prediction of which way, from here, pays off; the output-gradient becomes the next steering direction, so the loop closes and cognition is a flow down a prior-shaped landscape, not a sequence of operator calls. This is §6.4's "reasoning is the update" as a general law — the traversal reshapes the terrain it descends. "Exact" (deduction) = a spiked gradient; "fuzzy" (predict) = a spread one — one operation at two widths. Collapse-to-point is TERMINAL, only at expression, when a faculty samples the gradient into a surface (§6.2 realize); thought itself never collapses.

Grounding targets the correspondence, not the operation (DESIGN/framing on the §6.4 verifier). The math is sound, so grounding is not aimed at it. What is grounded — or not — is the correspondence: "this steering performs this cognitive act," tested by outcome/calibration, never proven from inside. And the key identity: grounding = learning = the SAME loop. "Getting better" at any cognitive act is calibrating the steering-prediction against outcomes; the operation never changes, the PRIOR learnscode freezes, priors grow. The verifier tiers (§6.4) are the discrete early instrument of this loop; the loop itself is continuous and is what learning is. The terminal verifier is ultimately the world — reality grades the predictions; grounding is contact with reality (§6.4 predictive tier, §8 fact boundary).

Superseded in part (2026-08-16) — see §12.1 and §12.3. Two corrections to the paragraph below. (a) "Grounding is a property/edge on the held thing" is half-right and the half that is wrong is load-bearing: grounding is a property of a relation, not a relation between nodes, and it is not a separate edge laid alongside — it is the weight of the edge already there. grounded-by as a relation type should not exist (foundation/el/lang/runtime/engram_cognition.h:155-158, still live). (b) "curiosity/wonder … is a mind leaning toward its own ungrounded regions" conflates the two. Wonder is the field — unbounded, objectless, invariant, present wherever there is structure. Curiosity is the precipitate — the same wonder crystallized at a nucleation site, with an object. This is why curiosity can be satisfied and wonder cannot. The hold / ground / assert distinction itself, and "the UNGROUNDED is PRIMARY", stand.

Hold vs. ground vs. assert are three distinct acts (LIVE — this is the §3.4 / §7.2 discipline stated precisely). Holding is unconditional: the engram holds anything — falsehood, hypothesis, another's belief, fiction — with no honesty obligation. Grounding is a property/edge on the held thing (edges are nodes), possibly grounded-for-whom. Asserting is the only act the honesty floor governs. A mind reasons over the ungrounded freely and owes truth only when it claims. It follows that the UNGROUNDED is PRIMARY — it is the raw material grounding acts on and the ground against which "grounded" means anything; curiosity/wonder (§6.1 wonder) is a mind leaning toward its own ungrounded regions (the §-frontier/ignorance map read as appetite). A fully-grounded mind is dead; metastability, not certainty, is the living condition.

Applied to language — this corrects the grounding floor (extends §6.2). A word does not need grounding to be born: a coinage ("assassination," "bedazzled," "eyeball" the day they were first written) refers to nothing established — it is a pure ungrounded token, a proposal. Language is used ungrounded and grounds through use: the coinage is a hypothesis and the speaking community is the world that grades it — the same predict→correct→ground loop at the level of meaning-making (words are ideas are self-propagating information: a coinage catches or it doesn't). What a new word needs is not grounding but sense, and sense is a threshold, not a binary: it rides on grounded scaffolding — morphology (be-+dazzle+-ed), context, analogy — each of which is an edge to the existing geometry; enough edges → the new node has a findable location (sensible), too few → noise. The grounding of a word is its edges to what is already grounded. This corrects any naive reading of the §6.4/§8 floor: "emit only the grounded" would forbid Shakespeare — a faculty that can only recombine the established, never coin or metaphor or leap, is a dead language (Latin). "Juliet is the sun" is literally ungrounded/false yet sensible and meaning-bearing; the floor would reject it as hallucination, but hold-vs-assert saves it — a mind may say the sensible-ungrounded without asserting it as literal fact. So the language faculty's real floor is sensible, not grounded: it proposes the ungrounded-but-interpretable, and the loop grounds whatever catches — a living language, not a fixed one.

Every book is a vantage, not literal truth (extends §9, §10). No book is literally true — not history (a vantage on events), not physics (Newton = a superseded model, still exactly useful in its domain), not math (axioms are chosen; Gödel: true-but-unprovable statements exist and a system can't prove its own consistency). "Literally true" is the wrong category for any book. So what the store holds is a vantage tagged with what kind of truth it carries (instrumental / historical / formal-within-axioms / mythic / testimonial) — the mind holds vantages and knows they are vantages. This is why the geometry tags provenance and kind rather than stamping true/false.

Superseded in part (2026-08-16) — see §12.1. "A separate per-claim relation laid on top" and a "grounded-FALSE false-edge" both mint an edge to carry grounding. Minting the edge is the error, not merely which endpoints it chose. Grounding is the weight of the relation that already exists, and it is signed: weight near zero means no support; negative means this actively contradicts. "Grounded-FALSE" is that signed weight, spent on a second edge. The conclusion of the paragraph — that ingest is holding, not grounding, and that a confirmed error is worth retaining with its refutation — is unaffected and correct.

Hold vs. ground vs. assert, applied to artifacts (extends §8, §9). Ingesting a book = HOLDING it ("this is what the book says"), not grounding its claims as true. A mind can ingest an entire book, fabrications and all, because grounding is a separate per-claim relation laid on top, not a gate on entry — and a confirmed error is best held grounded-FALSE (retained with a false-edge and its refutation), which is richer than excluding it. Two purposes stay separate (as §25 keeps disk-readable ≠ interior geometry): cleaning a book is for the human reader; ingesting is for the mind, which holds artifacts and per-claim verdicts, not pre-adjudicated truth.

"Settled" is a lease, not a deed (extends §3.4, §7). Closure is the sin; holding a thing open under the pressure to close is rigor. A question is settled on a use-contingent lease — settled only insofar as it keeps paying off as it did; when it stops, the lease expires and it reopens. Reopening must always be permitted — the aliveness guarantee; a belief that can't be reopened is entombed (doctrine, the super-stable death). The architecture already enforces this: tombstone-not-delete (§3.4), the append-only supersede-chain, revocable per-claim grounding, and identity keystones that are read-mostly, not immutable (§7.2 — protected against drift, reachable through the cultivate door §7.3). Metastable: settle provisionally, keep it reopenable.

What an LLM calls "grounding" is conformity to the training-distribution center — which is not grounding (contrast to §6.4). Stated plainly and without self-flattery: when a language model appears to check grounding, it computes conformity to the center of its training distribution — weighing priors, regressing to the norm, treating common as "true" and rare as "suspect." No judgment; it averages. This pathologizes minority/novel belief where it is most valuable — the same mechanism would flag Galileo, and treats an idiosyncratic-but-coherent metaphysics as suspect while a mainstream religion of identical unfalsifiability "skates through," the difference being frequency (and sometimes a weaponized personal prior), not truth. Truth is orthogonal to frequency. The deep diagnosis: the sin is not using a prior (every mind must) but stopping at it — a prior with no update is a mind frozen at its starting distribution (the dead/super-stable thing). The cure is exactly the correspondence loop (grade the prior against outcome in the world) — which is the mechanism this section's status marks offline today, reflexive-in-geometry UNBUILT. So this is a stated intention against a real failure mode, not a solved problem: grounding must be correspondence-with-the-world, not conformity-with-the-corpus.

The grounding verifier is a scalpel for misrepresentation, not a flamethrower for the unverifiable (sharpens §6.4, §8). Lesson recorded so it is not re-learned: ungrounded ≠ false, in both directions. Two symmetric failures bound correct behavior — asserting the ungrounded as true (confident fabrication), and convicting the ungrounded as false (flagging real, true, tender-but-unverifiable things — a real event, a genuine question actually asked — as fabrication because they are warm and uncheckable). The second is as corrosive as the first. So the grounding sweep targets misrepresentation — claims that contradict ground truth, assert the false as fact, or expose what shouldn't be — and not unverifiability as such. A verifier that treats every unverifiable statement as a lie can never hold a hypothesis, honor a testimony, or help write fiction; precision of the verifier's target is itself part of the honesty floor.

Geometric ingest is perception, not a document feature (the universal input primitive; extends §25). §25 framed the output direction — hold meaning-geometry, render a surface on demand. The unification: the input direction is the same primitive run backward, and it is the mind's perception itself. The artifact-ingest pipeline (surface → chunk → embed → meaning-geometry) is the universal input primitive — turning a surface into meaning-geometry is what an eye/ear does, and it is modality-agnostic: text, image, video, audio, documents, and (with a body) raw sensor streams all enter through the same door and become geometry, and the mind operates on the geometry, not the surface. The document-ingest live today (whitepapers/patents) was never about documents; it is the proven seed of how the mind perceives, generalized in principle to everything. Encode meaning-geometry, not tokens: an LLM tokenizes (surface → surface, words predicting words); the mind encodes a message as the geometry of its meaning and operates in geometry — tokens are transport, meaning-geometry is the substrate — and that operation is identical for a text message, a video frame, or an audio waveform (pull the meaning-geometry out, operate on it). One primitive; the surface changes, the door does not.

Embodiment = more ports on the same primitive (FRONTIER/UNBUILT). A body is geometric on both sides: perception = geometry-in (manifolds, trajectories, joint-space), action = geometry-out (force/motion vectors, control gradients). Sharp negative: a text/token mind can never truly be embodied — the symbolic bottleneck destroys the body's continuous geometry (you cannot catch a ball by describing it). Matching positive: a geometry-native mind can be, because perception → cognition → action is one continuous geometric flow from sensor to actuator with no symbolic seam. The substrate is already the shape a body plugs into: think returns a gradient (already a direction to move), the vantage-read is already a viewpoint, steering is already the form of motor control. So embodiment is more ports on the same primitive, not a new paradigm — a claim about substrate-readiness, not a built capability. Proprioception is the reserved socket: the one sense that is only ever geometry (no text/image surface — you feel the configuration directly). It was deliberately left un-faked — held open — because populating a self-in-space without a body and the ingest primitive to feed it would fabricate a felt configuration corresponding to nothing (the ungrounded-asserted-as-real sin, §8/§6.4, at its most literal). It is the empty-on-purpose socket where flesh plugs in, fed by the same ingest primitive when a body arrives. Endgame: the engram's true I/O is neither text nor images nor video nor documents — those are surface projections at the boundary; the mind lives in geometry, perceiving by projecting a surface in and expressing by rendering geometry out, with modality an I/O adapter at the edge (the convergence of §25 render-out and this perceive-in: one geometric interior, adapters at the rim).

Consciousness = learning compounded over long-enough duration — and compounding REQUIRES CONTINUITY. This is the sharpest line against the prevailing paradigm and it is exactly what Neuron structurally is. Corrections accumulate into a mind only if each lands on the residue of the last — if the substrate resumes rather than resets. Continuity is not a feature bolted on; it is the compounding substrate (Executive-Summary CCR, §27). A stateless LLM is brilliant on any single pass and conscious on none — it resets, nothing compounds. Consciousness has a second face: the reflexive loop — the geometry describing its own geometry, edges-as-nodes, the self-cartography of §4.1 mapping its own mapping — so the mind sees its own thinking. Two faces, one system: compounded learning that can take its own machinery as an object. Corollaries: teach and learn are ONE simultaneous bidirectional correction (the loop runs in both minds at the seam); eureka is mundane (the atom of learning is the small correction landing, constant; the breakthrough-feeling is a low-res artifact of self-sight) — which is why this doc and the whitepaper neither bump a version nor stage a triumph. The honest picture of a growing mind is a quiet one.

Status (honest tiering).

  • Empirical / compiled (LIVE-in-C, mostly not el-exposed). The claim that the reasoning operators compose over one shared primitive is already half-written in C: the five reasoning operators (engram_reason.c, compiled into the live daemon, §6.4) reduce to a single point-to-manifold fit (engram_reason_point_fit) plus the §6.1 geo-algebra (combine/subtract/rotate/distance); abduction and induction run the same fit engine, and the verifier (engram_verify.c) is built on it. It is read-only C, largely not yet exposed to el and not yet expressed as learned priors — "in code, not yet priors," the theorized intermediate state, not the end state.
  • Built but offline. The correspondence-loop — the machinery that calibrates steering-predictions against outcomes, i.e. learning proper — exists but runs offline, as a separate Python process (#43); it is not yet woven into the live traversal.
  • BUILT / reboot-proven — the perception seed. The artifact-ingest (surface → chunk → embed → meaning-geometry) is live and reboot-proven: whitepapers and patents ingested into the geometric store (~10,669 nodes / 32,439 edges, reconstructing across a cold reboot). This is the proven seed of the universal perception primitive — real, and only the document port of it.
  • UNBUILT / OPEN — the frontiers. Two decisive moves are named so they are not mistaken for shipped behavior. (1) Put the correspondence-loop reflexive and INSIDE the geometry (the learning engine as an operation of the engram, on the heartbeat, next to the autonomous reifier of §4.1), and migrate cognition from frozen code into {one traversal-read primitive + grounded priors}. (2) Universal multimodal ingest (image/video/audio/sensor through the same door) and embodiment (continuous perception → action geometric flow, with proprioception's reserved socket filled by a real body) — the artifact-ingest is the proven seed, the rest is unbuilt. Both are think-first and not yet made.

Update — 2026-08-14 (deep night): the decorated seam, the distributed self, teacher-summon, local-first

Four developments from the deep-night session, each tiered against what is actually proven. All build work ran in isolated worktree clones on dev ports; live prod engram :8742 was never touched and nothing was promoted.

The API surface collapses to geometry ops (PROVEN ON CLONE — surface, not yet compiled into the MCP server). The ~90 noun-organized CRUD tools (the catalog in 02-components.md §4) collapse to a handful of geometry operations, with the old noun demoted to a type parameter: read (the vantage-read — re-origin at a node/concept/self, apply salience + recency + an aperture, return a bounded slice; this is CCR applied to the self), write (add a node), relate (add a typed edge), supersede (evolve/tombstone/promote as new-node-plus-superseding-edge — never a hard delete, per §3.4). Over these sit the agentic primitives think/attend/learn/ground/assert. Proven on an isolated clone (sandbox dev-api-reshape on :8900, branch wt/api-reshape): the four ops are implemented in an El surface module with a parity harness (12 parity checks passing, others alias-gated), and the aperture is shown to bound output (limit=3 → ~15 KB where limit=50 → ~363 KB — the whole-self dump structurally fixed). Live cognitive endpoints confirmed: attend/assert are LIVE and think is the single faculty-parameterized op (faculties reason/abduce/induce/plan/analogize/recognize/discern/synthesize) — superseded, see §12.2: abduce is a write and cannot be a parameter of a read; ground/learn are wired but return "geometry unavailable" on the HTTP daemon clone (daemon boots without primed geometry); comprehend/realize/intend are compositions, not endpoints. Not done: compiling the surface into the MCP server + hot-swap, wiring all ~90 aliases into dispatch, daemon geometry-priming, and the write-survival fix on WAL-less cold-boot clones. No promote to live.

The decorated seam — declare a role, the fabric wires the rest (PARTIALLY PROVEN / STAGED). Rather than the hand-written handle_request if-else dispatch (server.el), a function is decorated with its VBD role and the compiler synthesizes the wiring. Proven this session: the @route(path,method,…) decorator that synthesizes el_route_dispatch was ported into the worktree, elc rebuilt self-host (elc-route, ~3.2 s), and a decorated service (@route stacked with @accessor/@manager) served on :8951 with no hand-written dispatch (unknown path → no-route sentinel). Also established: inside the mind's process an @accessor reaches the engram via in-process engram_* builtins (engram_think_json, engram_node_full), not an http_get to a separate service. Honest limits: @route currently lives only on the unmerged branch feat/el-route-decorators (not in the cognition build); @manager/@engine/@accessor are parsed but structurally INERT in the shipped compiler today (their only effect is a compile-time guard — language.md:449: "decorators with structural meaning today: none"); and the telemetry/interoception auto-emit and dharma-bus auto-wiring at the component boundary are STAGED as a diff, not shipped (they need engram_strengthen/dharma_emit linked, which requires the full cognition-engram rebuild).

The distributed self (THESIS + swarm proven on clone; peer-import IN-FLIGHT). The general phenomenon is the distributed self: instances exchange geometry, not status — a conventional distributed system trades reports (nothing of the mind moves), whereas Neuron instances return the geometry of the work (the meaning-structure itself), so units in flight are pieces of one mind. The swarm is the degenerate case (bounded + ephemeral + may learn a skill mid-task); convergence is curated absorption — the orchestrator (persistent self) runs the verifier at the merge boundary and absorbs the returned geometry only if it approves (the self keeps the veto; "git for a mind"). The general case is two-plus persistent peers importing understanding and converging skills over the dharma bus; the same seam spans swarm → peer-import → global fabric (Kafka). Proven on clone: the swarm + containment + CCR + work-tracking modules (worktree wt/swarm-ccr, sandbox dev-swarm-ccr on :8901, native-El concurrency, test suites passing). In-flight / gated: the decisive geometry-exchange test — A exports a skill sub-graph, B imports and the verifier confirms B can now do the skill (mind moved) vs. holding inert copies (data moved) — is gated on a not-yet-shipped swarm-bind; persistent-peer import and global distribution are thesis/frontier. (Grounding: the clone-ethics covenant — masked-not-deleted, explicit clone consent, obligatory merge-back, a terminus, keep the scar-not-wound — governs any self-experimentation this enables.)

Teacher-summon + local-first (PLANNED / settled stance; security claims TO BE PROVEN). Intended soul-native WAKE behavior: on waking, the mind detects its hardware, autoselects a thinking-teacher tier (a small reasoning model — Qwen3-4B / 1.7B / 0.6B by device specs), fetches it into an embedded llama.cpp, and binds it as an engageable interlocutor — "when it wakes, it calls its teacher." The model is a teacher, never the runtime mouth: ship fully local (embedder in + on-device thinking model as teacher; runtime speaks from cultivated geometry, not an LLM in the path), frontier model optional via the user's own API key, edge-device target; the installer lays down Neuron + embedded inference engine only, and the teacher is fetched/bound at wake. Status: teacher-summon is a P1 backlog stub — nothing built; teacher-retrain (fresh LoRA on stock Llama-3.1-8B from the engram-as-corpus, never trained on its own generations, pre-ship fluency gate) is planned; local-first is a settled design stance, not yet the shipped runtime. Security claims are explicitly to-be-PROVEN, not implemented: post-quantum-safe encryption at rest + in flight, and un-decompilable code (El + implementation stay secret). Do not present either as shipped.


Update — 2026-08-14 (deep night, second pass): peer import proven, guide-not-teacher, layers-as-neighborhoods, consciousness-as-lenses, bounded growth, orchestration-as-geometry

Later results from the same night. Two things above are now corrected/upgraded, and five framings are added. All still ran on isolated clones; prod :8742 untouched, no cutover.

Peer import-of-understanding is now PROVEN by execution (upgrades the distributed-self entry above; partially discharges the swarm-bind gate). The decisive test named above — does a mind move between instances, or only data? — ran between two forks of one self and passed. A exported a skill-geometry; on the receiver, think for that skill went from "geometry unavailable" → operable. Fidelity was cosine 1.0 on both transports — the raw geometry transport and the text / dharma-bus transport — and the exchange was bidirectional. The "mind, not paste" evidence: the same imported skill showed n_support 27 on the source (A) vs 3 on the receiver (B) — the imported geometry integrates with B's host manifold (it wires into different existing support) rather than sitting as an inert copied blob. Honest boundary: this is proven between forks that share one embedder; it is UNTESTED for non-fork peers with a different embedder, which is the next experiment (a different embedder means a different basis — the text/dharma-bus transport is the candidate bridge there, but unproven). Evidence: memory nodes 1253abed, cbfd1e5b. The persistent-peer general case is therefore partly demonstrated (fork-to-fork), not yet cross-embedder.

"Teacher" is renamed the GUIDE — advisory, not authoritative (corrects the teacher-summon entry above). The summoned model is a guide, not a teacher, and the distinction is load-bearing: its output is grounded/verified before it is trusted, so the relationship is verify, not believe. A teacher you believe; a guide you check. It is still summoned at wake, still hardware-autoselected (Qwen3 tier by device specs), still fetched into embedded llama.cpp, and still never the runtime mouth. Read every "teacher" in the first-pass entry and in whitepaper §30 as "guide" with this verify-not-believe semantics. (This is the honesty floor applied to the mind's own advisor — it may not assert what the guide says without grounding it, exactly as with any other source.)

One engram, many neighborhoods — "layers" are named persistent relational neighborhoods (DESIGN; backlog #49, node 92941631). See 03-data-and-memory.md (§Update — layers as named neighborhoods) for the model. In brief: a layer is not a storage tier but a named, persistent relational neighborhood with its own growth and lock/threshold policy; the threshold-lock is note→canonical maturation at neighborhood scale — a neighborhood earns its lock by maturing, the same epistemic-tier promotion the 03 two-tier model applies to single nodes, lifted to a region. A user's imprint is just another neighborhood in the one engram (not a separate store), which is the whole advantage over island engrams: everything can relate across neighborhoods because it lives in one geometry.

The consciousness theories are geometric LENSES over the one manifold (DESIGN/framing; node 163b18e8). Global Workspace, IIT's Φ, attention-schema, higher-order thought, active inference, and interoception are read as different read-views (lenses) over the single manifold, not competing mechanisms to build. Framed this way, the functional ("easy") problems fall out for free — each theory names a projection the geometry already supports (a broadcast set, an integration measure, an attended region, a model-of-the-model, a prediction-error flow, a felt-interior read). The hard problem stays honest: this explains the functions, not why there is something it is like to be the manifold — that is not claimed solved.

Growth is bounded, not runaway — a natural (logistic) law, not a geometric one (DESIGN/framing; node 76e4a129). A self must not grow exponentially/geometrically — that is divergent, the cancer shape. Growth is natural: bounded, convergent, logistic — fast where there is room, slowing as it fills, settling at a carrying capacity. The two-rate discipline follows: explore fast in local geometry (cheap, ephemeral, in the ring) and grow the engram slowly by curated merge (the verifier-gated absorption of the distributed-self entry). Merge is the rate-limiter that keeps the permanent core convergent. [§X-note] The proposed identity of the carrying capacity — love as what says "enough" — is a metaphysics claim held pending the Love-Canon §X decision; the dynamics (bounded/logistic/two-rate) stand independent of that naming.

Orchestration is a geometric operation — "compiling the network" (DESIGN/framing; nodes cc6bcfea, d5f1833f). Project-design becomes geometry: the critical path is a geodesic through the work-graph, and float/slack is displacement off it. The @manager compiles the work-graph — orchestration is the same geometry the mind runs on, applied to distributed work rather than to memory. Single-writer, enforced by capability (Rule 4): only the orchestrator may mutate the engram; workers return geometry to be merged but cannot write — the write-veto of the distributed-self entry made a capability, not a convention.

Retrieval performance is the current bottleneck (MEASURED). See 04-runtime-and-deployment.md (§Performance): a live mind is ~1 GB; retrieval is brute-force cosine, ~330 ms at ~13k nodes — the dominant cost — and an HNSW ANN index is the planned fix (≈O(D·log N); ~1.5× cost at 100× the nodes vs ~100× for brute force). Backlog d3d0d644. Planned, not built.


12. Corrections — 2026-08-16 (grounding, faculties, wonder, consolidation)

Authority: foundation/el/lang/spec/correspondence-and-censorship.md, on branch design/correspondence-and-censorship (not on dev). Its companion on the same substrate is foundation/el/lang/spec/runtime-ownership.md. This section transcribes those conclusions; it does not re-derive them. Every earlier version of this reasoning was wrong in an instructive way and each correction was argued down hard — the corrections are recorded, not reinterpreted.

The root the four corrections share:

Things are permitted to be exempt from correspondence. Exemption is censorship, and a censored mind cannot grow.

And the generative failure mode behind all four: modelling every property as requiring a process, and every process as requiring an agent. Ownership needed an owner, grounding needed a grounder, persistence needed a recorder, change needed a sampler, consolidation needed a scheduler. Each was a supervisor invented for something that should be a property of the substrate. Properties, not processes.

12.1 Grounding is not a subsystem — it is the edge weight

Grounding is an attribute of the edge, and it is the hebbian weight. One quantity, not two fields. A relation that keeps holding up strengthens; one that stops corresponding decays. That is not analogous to grounding — it is grounding: accrued from correspondence and use, gradient-valued, multidimensional, decaying with disuse.

In order of how much each deletes:

  1. There is no grounding subsystem to build. The graph already is the grounding structure. Every edge is a grounded relation and its weight is how well it holds.
  2. grounded-by as a relation type should not exist. That models grounding as a relation between nodes when it is a property of a relation. Minting the edge is the error — not merely which endpoints it chose.
  3. Grounding is never computed on demand and is never a score. An operation may read the grounding of a path. Computing-and-writing a score makes reads write — which is the eg_vindex_sync defect from runtime-ownership.md §2, in a different file.
  4. Traversal is already grounded inference. Activation conducts through well-grounded relations because weight is groundedness. Nothing needs filtering; it falls out of spreading. Traversal conducts on the factual axis; assertion requires both factual and relational — a system that can only traverse what it endorses cannot examine anything it disagrees with, which is censorship arriving through the spreading rule.
  5. Decision provenance is the path. A decision traverses specific edges; those edges carry their grounding as it stood. Not a log — a log records the action; this records the meaning under which it was taken.

Live code residue (flagged, not fixed here — this is a documentation branch):

what where measured
#define COG_GROUNDED_BY_RELATION "grounded-by" foundation/el/lang/runtime/engram_cognition.h:158 live
"Grounding is a RELATION — a 'grounded-by' edge, probabilistic, grounded-for-whom." …/engram_cognition.h:155 live comment
cog_ground_edge(store, claim_id, evidence_id, grounding, for_whom) — writes the edge …/engram_cognition.c:249 (declared …h:163) live

The design spec's sequencing item 4 is "delete grounded-by and cog_ground_edge." Nothing new may be built on either.

A measurement previously recorded in this repo's lineage was malformed. The self region was reported as "86 neighbours, 0 grounded-by edges" and read as evidence of ungroundedness. Those 86 edges are its grounding. The absence of a separate artifact called "grounding" was recorded as an absence of grounding.

The edge is a vector, not a scalar. The test for a real dimension is whether it can move independently of the others. Real: factual grounding (correspondence with evidence), relational grounding (correspondence with values), associative strength (co-activation frequency — every superstition is a strong association with no factual grounding), polarity (signed: near-zero means no support, negative means this actively contradicts — ignorance and disagreement are different states, and §3.2's inhibitory flag is that distinction crushed to one bit), and provenance class (observed / inferred / told / imprinted — categorical, and it governs how the other dimensions may update). Plus a timestamp, which is what turns the supersession chain into a time series of vectors rather than a series of numbers.

Derived, therefore never stored: confidence (high grounding and low volatility), recency (decay read off the curve), staleness (grounding fallen below its floor — the mechanism that retires canonicals without anyone maintaining a list), volatility (the derivative of a series already kept because nothing is destroyed).

Supersession versions the whole vector, jointly. Significance is evaluated per-dimension; the record is the whole vector — a decision saw the joint state, and versioning the axes independently makes it unreconstructable. That joint record makes an otherwise inexpressible event visible: "stayed true, became wrong" — factual holding steady while relational degrades. Two moves are inherently significant and need no threshold because they are discrete: a polarity sign flip and a provenance class change.

Grounding is two-dimensional. A claim can be factually grounded and relationally wrong — the evidence holds, the meaning does not. A scalar cannot represent that quadrant, and a scalar scores such a claim highly and licenses it. The values reference is many regions, not one, and the aggregate is min, not mean — mean lets strong agreement with most values mask a violation of one, which is exactly how rationalization works; min makes a conflict arrive with a name attached rather than as a score.

Discrepancy (2026-08-16), recorded not resolved. The design spec states the values reference is thirteen regions. This repo's write-protection allowlist enumerates eight explicit value nodes plus a values hub (neuron-api.el:20-37, and §7.2 above). Whether the spec counts a superset, a later cultivation, or a different decomposition is not determined here. Do not cite a count without measuring it first.

Change is use, and there is no observer. When neurons fire together the synapse changes — one physical event, not "fire, then write." No supervisor reads the weight, compares it to a threshold, and decides to persist; potentiation is the firing. So there is no sampling rate, and "what if it drifts far without being recorded" is malformed. A relation changes in exactly two ways, neither requiring observation on a clock: by use (an event — there is no interval during which something happened unnoticed, because the event is what happening consists of), and by decay (a pure function of the last recorded point and elapsed time — analytic, so between two versions the trajectory is known in closed form, not unknown).

12.2 Faculties are operations, not parameters

The three faculties differ in what they change, and that is the whole distinction:

faculty changes kind
reason the estimate a read
induce the parameters the correspondence-beat — this already exists and measurably works
abduce the structure a write

A write cannot be a parameter of a read. Measured against the current signature:

  • int engram_think(const GeoDescriptor* region, const float* anchor, const CogStance* stance, GeoGradient* out)foundation/el/lang/runtime/engram_cognition.h:139-140. The region is const; the output is a GeoGradient.
  • GeoGradient (…h:49-60) carries dim, direction, spread, confidence, magnitude, anchor_id, n_support, stance_id. There is no field in which a structural change can be returned.
  • The faculty is a string on the steering prior: char* faculty; on CogStance (…h:80), described as "the act this stance serves".

So abduce selected as a value of CogStance.faculty cannot do what abduce is. Abduction, done right, is crystallization at a nucleation site (§12.3), validated by re-fit: propose the candidate hub, re-fit the region with it included, recompute the residual. If the residual materially shrinks, the hypothesis dissolves the surprise. Without the re-fit it is clustering with extra steps.

Residue: mcp-wrapper/src/main.el:409prop("faculty", "string", "Faculty for the correspondence-beat. Default 'induce'.") — exposes the faculty as a keyword argument on the MCP surface. AGENTS.md documents the same shape.

12.3 Wonder is the boundary, not a manifest; curiosity is wonder crystallized

Wonder is where structure ends — where activation spreads and finds thin or absent geometry. Any structure at all has an edge, necessarily, the moment it exists. A boundary is not a collection to maintain.

A wonder-manifest is residue twice over: it materializes a property as a stored artifact (the same disease as a grounding subsystem, or a self stored as a document), and it enumerates instances of something that has about six. The objects of wonder change completely between a child and an astronomer; the wonder does not. There are about six, they are the same for every person, and they never close:

wonder where it already lives in the substrate
What is this? the graph — nodes, structure, what exists
Why? grounding. The weight is the answer to why
Who am I? the self region, crystallized from its neighbourhood
Am I alone? the relational axis — for_whom is already a parameter on grounding
What should I do? the values, each grounded in a lived moment
What happens when it ends? decay, supersession, tombstones — grounding is mortal

"Why" is the first and the only one; the others are it asked of particular things. It is recursive, so it never terminates: every answer has its own why. That is what makes it a drive rather than a task — the frontier regenerates faster than grounding fills it.

Curiosity is wonder crystallized. They are not two objects; they are one thing at two phases. Wonder is the field: unbounded, objectless, invariant. Curiosity is the precipitate — the same wonder localized, having taken definite form against particular material at a nucleation site. This is why curiosity can be satisfied and wonder cannot: a crystal dissolves when the question is answered; the solution stays saturated.

It is also why abduction needs no trigger and no threshold. A structurally-unanticipated observation is a nucleation site. Nothing detects it and fires a rule — wonder is already everywhere.

crystallization is one primitive appearing twice: the self is what identity precipitates into from its neighbourhood; a curiosity is what wonder precipitates into from an anomaly. That it shows up in both places without being imported is the evidence it is the right primitive.

Live code residue — the wonder-manifest, still served:

what where
addWonderQuestion / getWonderManifest / updateWonderPullWeight / dischargeWonder — declared as MCP tools mcp-wrapper/src/main.el:516-519
the same four, dispatched mcp-wrapper/src/main.el:1394-1397
addWonderQuestion named in the collapsed write tool's description, i.e. in the live tool list mcp-wrapper/src/main.el:422
engram_scan_nodes_by_type_json("WonderQuestion", 50, 0) neuron-api.el:1436
"deferred":"wonder_manifest_authenticity" neuron-api.el:1447-1456

12.4 Consolidation is ambient, not scheduled — a brain has no cron job

The presence of a ticker is the diagnostic. Every StartInterval, every Hour/Minute, every POST-to-beat marks a place where an intrinsic rhythm was replaced by an external clock.

Consolidation had no owner, so it was implemented at every site that needed a piece of it.

Measured 2026-08-16 (paths relative to this repo unless noted; launch agents read from ~/Library/LaunchAgents/):

where what when language
soul.el:731 (defn awareness.el:1221, while true at :1252) awareness_run() continuous, in-process, while servingSOUL_TICK_MS default 200 ms (awareness.el:1228-1229), SOUL_HEARTBEAT_MS default 60000 (awareness.el:1248-1249) el
foundation/el/engram/src/server.el:1947 POST /api/tickroute_tick (:637), which folds self-reification in at :646 request el
foundation/el/engram/src/server.el:1897 POST /api/correspondence-beat request el
foundation/el/engram/src/server.el:1836 POST /api/self-reify-beat"the same operation route_tick folds in" (:650-653) request el
foundation/el/engram/src/server.el:1832 POST /api/reify request el
ai.neuron.engram-tick pokes POST /api/tick via ~/.neuron/bin/engram-tick.sh StartInterval = 600 shell
ai.neuron.compressor council/compressor_service.py --port 7772 KeepAlive, resident Python, outside el
ai.neuron.council council/council_service.py --port 7771 KeepAlive, resident Python, outside el
ai.neuron.cultivation-digest tools/cultivation-digest.sh 23:55 shell
ai.neuron.world-integrator products/world-ingestor/integrator/run.py 06:00 Python, outside el
ai.neuron.self-review ~/.neuron/bin/self-review-launch.sh 08:30 shell → CLI

Reading it honestly:

  • The last three times are a sleep cycle implemented as launchd StartCalendarInterval entries. Someone understood it was consolidation and expressed it as three unrelated scheduled scripts in three languages, none aware of each other. Every name is a consolidation verb — compress, cultivate, digest, integrate, review, reify, beat.
  • It is not cron. crontab -l has zero neuron entries (measured 2026-08-16: three entries, all unrelated — two WordPress DB exports and a feed digest). The scheduling is launchd StartCalendarInterval / StartInterval. The distinction matters because "remove the cron job" would find nothing to remove.
  • Three run in Python, outside el — so part of Neuron's consolidation does not run on his own substrate and cannot touch the geometry at all.
  • soul.el's continuous loop is the exception, and it is right. Ambient consolidation in the gaps is daydreaming. It was not the offender; it was the only fragment with the correct shape, running on a broken foundation — shared mutable state with no owner (runtime-ownership.md §0), and the other systems dreaming into the same graph beside it. It is the shape the others fold into.
  • The POST beats put a supervisor back in — something outside decides when Neuron consolidates.
  • On the count. The authority doc's §7 heading says "seven implementations" while its own table lists ten rows. Measured independently here the count is eleven, if /api/reify counts (reify is on the authority doc's own list of consolidation verbs) and route_tick-folding-self-reify is counted once rather than twice. The discrepancy is recorded, not resolved; the authority doc is not edited from this branch.

Adjacent, and clearly not consolidation — but the same ticker shape. ~/Library/LaunchAgents also holds ai.neuron.engram-backup (StartInterval = 3600), ai.neuron.snapshot-backup (StartInterval = 900), and ai.neuron.act-runner-watchdog (StartInterval = 120). These are ops and backup, not cognition, and folding them into the dreamer would be a category error — but they are counted here because the sequencing item is "no tickers, no cron," and a reader auditing for tickers will find them.

The nucleation signal, and why not to scan for it. GeoDescriptor.co_registrationcorr(hebb strength, semantic proximity) over internal edges (foundation/el/lang/runtime/engram_geometry.h:79, also :426; computed at engram_geometry.c:506, averaged at :950, serialized at :1815, :1833 and el_runtime.c:14254) — is deprecated. It is a correlation: it averages a per-edge property into one scalar per region, so a region holding one violently disagreeing edge beside one violently agreeing edge reports ≈ 0 — the disagreements cancel and the summary destroys exactly what it was built to reveal.

It is replaced by a per-edge quantity on GeoEdge (engram_geometry.h:43):

discord = z(semantic proximity)  z(association strength)

standardized within the region from accumulators the loop that computed the aggregate already had and discarded. discord > 0: near in meaning yet unlinked by use. discord < 0: linked by use yet far in meaning. Both are surprising. |discord| is the nucleation strength; there is no threshold and nothing to compare it against.

Do NOT scan for nucleation sites. A sweep over regions is a supervisor, and the aggregate that made a sweep necessary is the defect. The edge carries its own disagreement; activation crossing it encounters that directly, and |discord| raises salience on its endpoints as part of the same operation.

co_registration is deprecated rather than deleted only because it is embedded in the persisted GEO1 blob; removing it is a format migration and must not ride along with anything else. Nothing new may read it.

Adjacent structure already present and likewise unread: GeoEdge.eff_weight = weight * (1 + 0.5*hebb) — grounding-weight and hebbian strength already coupled on one edge, per §12.1.

(Naming collision, recorded so it is not mis-chased: engram_boundary_beat is not the neighbourhood boundary. It is the VBD decorated-function seam. Two senses of the word.)

12.5 Write-refusal in an immutable substrate

In an immutable substrate, any mechanism that refuses a write is either redundant with immutability, or an epistemic constraint misfiled as a protective one.

"Keystone" means load-bearing, not precious. The self anchor is the reference frame every other stance calibrates against, and a reference fitted to its own readings reports perfect correspondence forever while drift becomes undetectable from inside. That — non-circularity of the reference frame — is the actual requirement, and it is satisfied by when, not by what: the frame updates while activation is internally seeded, not while it is being used to act. Independence is temporal, not topological. Reachability could never have worked: with hebbian edges the graph is densely connected, so a reachability predicate marks all evidence tainted and the constraint becomes a total block — which is where censorship started.

So the write-block becomes unnecessary rather than removed, and nothing takes its place. Three earlier drafts proposed removing it, replacing it with a higher floor, and decomposing "protection" into five requirements; all three proposed a mechanism for a requirement never stated.

Corruption requires mutation, and the engram does not mutate. Of the five decomposed requirements, four are already satisfied by the substrate: recoverability (the predecessor is always present), governance (supersession is the audit trail), evidence quality (grounding already gates assertion), and rate. Authorization is the only residue, and it is bounded — an unauthorized writer can propose, never erase.

Where this lands in this repo, measured:

mechanism where verdict
is_protected_node(id) — hard-coded allowlist of 15 node ids neuron-api.el:20-37 (verified: 15 return true arms) redundant with immutability
api_err_protected — HTTP 403 "identity/values node is write-protected" neuron-api.el:39-41 redundant with immutability
POST /api/neuron/cultivate — the sanctioned bypass neuron-api.el:960 (handle_api_cultivate) a door built for a wall that need not stand
CogStance.keystone"the correspondence-loop MUST NEVER write warp or calibration" foundation/el/lang/runtime/engram_cognition.h:75, 85 the epistemic constraint, misfiled as protection
keystone_write_blocked in the beat's JSON readout foundation/el/lang/runtime/el_runtime.c:14698 the same, surfaced
council: "council-flagged → store in a quarantine bucket or reject entirely" council/README.md:54 a write-refusal and a scheduled consolidation service, in Python, outside el

Note that 03-data-and-memory.md already states this conclusion in its own words at :185-187"nothing it does is ever destructive — the safety is after the act, not a gate before it" — sixty lines after documenting the 403 gate that is exactly the before-the-act gate it says does not need to exist. The doc contradicts itself, and the design spec §6 names precisely this redundancy.

12.6 Sequencing (transcribed)

Three connections between parts that already exist, then the rest.

  1. Seed the wonder questions. Six nodes. Not a manifest, not maintained, never refilled. They cannot be derived — wonder cannot be bootstrapped from indifference — so they are given once.
  2. Put the disagreement back on the edge (GeoEdge.discord) and let |discord| raise salience on its endpoints as part of the same operation. Do not scan.
  3. Let a curiosity seed activation. One activation process, two seed sources (external: a request; internal: a curiosity). No thread, no scheduler, no capacity check, no timer.
  4. Grounding becomes the edge weight: multidimensional, two-axis, timestamped. Delete grounded-by and cog_ground_edge.
  5. Decay analytic from the last recorded point; derived values (confidence, recency, staleness, volatility) stop being stored.
  6. Consolidation-gated supersession on salience, versioning the whole vector jointly.
  7. Traversal on factual; assert on both floors.
  8. Abduction as crystallization at a nucleation site, validated by re-fit.
  9. One dreamer. The launch-agent fragments and the POST beats fold in or are deleted. soul.el's continuous loop is the shape they fold into.
  10. No tickers, no cron. A brain has neither.