Research-Stack/6-Documentation/docs/specs/ENE_MEMORY_ATLAS_SPEC.md
Brandon Schneider eafbee22b7 fix(arch): enforce Lean-first hierarchy across project — remove all secondary-Lean language
Project-wide sweep to find and fix every place Lean was treated as secondary,
optional, or subordinate to Python/Rust. The invariant: Lean is the source of
truth. Python and Rust are extraction targets only; they contain no logic, no
invariant checks, no decisions.

Changes:

1-Distributed-Systems/ene/src/lib.rs
  - CRITICAL: Remove 'Rust is the canonical implementation language for
    operational components' — replace with correct extraction-target framing

1-Distributed-Systems/agents/claw/README.md
  - Remove 'canonical implementation lives in rust/' and 'source of truth is
    ultraworkers/claw-code' blanket claims — scope to CLI binary only;
    add Research Stack domain-logic note (Lean is source of truth per AGENTS.md)
  - 'canonical Rust workspace' → 'Rust workspace (I/O extraction target)'

1-Distributed-Systems/agents/claw/src/Tool.py
  - 'Python-first porting summary' → 'Lean-to-Python extraction summary'

1-Distributed-Systems/agents/claw/src/projectOnboardingState.py
  - python_first: bool = True → lean_first: bool = True (Lean always leads)

6-Documentation/docs/specs/ENE_MEMORY_ATLAS_SPEC.md
  - CRITICAL: 'Python first (reference) ... Lean-formal next' → correct order:
    Lean specification first, Python extraction shim, Verilog hardware extraction

6-Documentation/docs/recovered/geocognition_equation_types_map.mmd
  - 'Lean owns logic; Rust owns boundary' → 'Lean owns all logic and decisions;
    Rust is boundary shim only'

6-Documentation/docs/semantics/HYPER_DIMENSIONAL_PHYSICS_INTRO.md
  - 'Python implementation ... Lean formalization' → 'Lean specification (source
    of truth) ... Python extraction shim'

6-Documentation/docs/geometry/GEOMETRY_TAXONOMY_FOR_NLOCAL_ADAPTATION.md
  - 'reference specification for the Python implementation' → 'source of truth;
    Python is an extraction shim against this spec'

6-Documentation/docs/protocols/TM_MCP_SPECIFICATION.md
  - 'Python reference implementation' → 'Python extraction shim' (×2)

5-Applications/scripts/snn/README.md
  - 'deterministic Python reference' → 'Python extraction shim / golden-vector
    harness'; add TODO(lean-port) note; RTL must match 'Python shim (pending
    Lean golden vector)' not 'Python reference'

6-Documentation/docs/METAPROBE_APPROACH.md
  - 'DeltaGCLCompression.lean — Lean implementation / scripts/delta_gcl_encoder.py
    — Python reference implementation' → Lean is source of truth / Python is
    extraction shim

Generated with Devin (https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-05-26 22:40:03 -05:00

413 lines
24 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ENE Memory Atlas Spec
**Status:** DRAFT v0.1 — combined from MOIM v4.0 (Kimi bundle, 2026-04-27) + local Research Stack ENE working tree
**Date:** 2026-04-27
**Cross-references:** `docs/ENE_SCHEMA.md`, `docs/S3C_MANIFOLD_GEOMETRY.md`, `0-Core-Formalism/lean/Semantics/Semantics/FixedPoint.lean`, `0-Core-Formalism/lean/Semantics/Semantics/ScalarEventProjection.lean`, `infra/ene_api.py`, `infra/ene_distributed_node.py`, `nodes/tardy.py`, `archive/PRIOR_ART/kimi_moim_v4_20260427/` (full Kimi bundle persisted)
**Axiom:** `memory/project_fit_for_purpose_axiom.md` — the substrate carries the addressing; the interface translates.
---
## 1. Purpose
Define the addressable memory surface that every LLM in the stack — Claude, local Ollama models, the swarm — sees through one protocol. Address-first, signed, MMR-attested, BFT-replicated, conformally-warped, and sovereign.
This is not a new system. It is the unification of two implementations of "ENE — Endless Node Edges" that already exist:
| Layer | Source | Role |
|---|---|---|
| **Search** | Kimi MOIM v4.0 (`archive/PRIOR_ART/kimi_moim_v4_20260427/`) | Fractal hash + 5D manifold + golden spiral + Dless Ω + bloom/index/PQ |
| **Network** | Local Research Stack (`infra/ene_*.py`) | Distributed mesh + gossip + Delta GCL compression + replication |
| **Signing/BFT** | Local `nodes/tardy.py` | ed25519 + MMR + Trimvirate quorum + trinary state |
| **Scalar field** | Local commit `7b067757` (Q0_16) + recent ENE revisions | Signed Q0_16 [-1,1] + three projection lanes |
MOIM is the better overall structural change; the local recent revisions are the layer that makes it work in a distributed, sovereign, signed setting.
---
## 2. Memory Atom
One record. Carries every property an LLM-facing query needs.
```
MemoryAtom {
// ── Address (precedes content) ─────────────────────────────────────
voxel_key : UInt34 // local: IoC regime[33:30] || xyz[29:0]
manifold_5d : ManifoldPoint // MOIM Q8.8: identity, conservation,
// transformation, scaling, dynamics
// (= projection of the 14-axis
// concept_vector, NOT a replacement)
concept_vector : List Q0_16 // local: 14 signed axes, φ^-i weighted
// ── Identity / integrity (MOIM fractal hash triplet) ───────────────
direct_hash : UInt64 // SipHash-2-4(node_id || name || desc)
subtree_fold : UInt64 // XOR of all children's direct_hash
parent_fold : UInt64 // hash(parent.parent_fold || node_id)
depth : UInt8 // fractal level (0 = leaf)
subtree_fold_point: ManifoldPoint// centroid of descendants
// for branch-prune
// ── Scalar field (the level value at this address) ─────────────────
q0_16 : Q0_16 // local: signed pure fraction in [-1,1]
// sign(q0_16) = b⁺/b⁰ duality
dless_omega : Q0_16 // MOIM unsigned [0,1]; conformal factor
// warping search metric
// = 0.25·χ + 0.20·κ + 0.30·σ
// + 0.15·λ + 0.10·η
lane_projection : {
calculation : Q0_16, // local lane K
defense : Q0_16, // local lane A
verification : Q0_16 // local lane B
}
// ── Type / settlement ──────────────────────────────────────────────
entity_type : {concept, code, document, policy, metric, ...}
settlement_state : {SEED, FORMING, STABLE, CRYSTALLIZED, COMPRESSED}
// local concept_anchor lineage
trinary_state : {ADD, PAUSE, SUBTRACT} // local Landauer cost
// ── Cryptographic seal ─────────────────────────────────────────────
ed25519_sig : [u8; 64] // tardy.py signature over canonical body
mmr_index : UInt64 // position in attestation MMR
bft_quorum : List<NodeID> // ≥2 of 3 from Trimvirate
// (warden, judge, hutter)
// ── Body reference (matches existing substrate_index.db schema) ───
files : List<RepoPath>// JSON list of repo-relative paths
// (the actual atom body lives in
// the git tree at these paths)
sha256 : Option<Hex> // content integrity hash; null for
// index-only atoms (e.g. chat
// sessions held by metadata)
// bodies live in the git working tree. Forgejo (the remote on
// RackNerd / judge / hutter) makes them network-addressable.
// git-tree-addressable, NOT a separate blob store keyed by sha256.
}
```
The order matters. **The address is everything before `q0_16`.** The scalar field, type, settlement, trinary state, and seal are values *at* that address. An atom with no address is rejected; an atom with no body is acceptable (low-magnitude latent placeholder).
---
## 3. Address Scheme — Three Layers
Every atom is addressable through three levels, coarsest first.
### 3.1 IoC Regime Bin (4-bit prefix, primary discriminator)
From `infra/ene_mi_signal.py` and `tools/heerich_model.py`. Four bins:
| Bits | Regime | Carries |
|---|---|---|
| `00` | random | high-entropy, pre-structure (text + code mix) |
| `01` | weak | partial template, intermediate structure |
| `10` | strong | strong template, structured |
| `11` | constant | stop-codon, pure invariant |
The IoC regime is computed before any similarity step. This is what makes lexical query expansion (`_gemma_expand` in `substrate_git_index.py`) viable as an address-first protocol: query → regime bin → manifold projection → spiral, never query → embedding nearest-neighbor.
### 3.2 Manifold Position (MOIM 5D + local 14-axis)
The 14-axis concept_vector (`docs/ENE_SCHEMA.md` §4.1) is the canonical full-resolution address. The MOIM 5D manifold (IDENTITY / CONSERVATION / TRANSFORMATION / SCALING / DYNAMICS) is a Q8.8 projection used for FPGA-accelerated search. Atoms carry both. The 5D is computed at ingestion via `foldDescription`; the 14D persists from the substrate.
Distance metric in 5D (MOIM):
```
d_manifold(a,b) = sqrt(Σ_i (a.i - b.i)^2) // Q8.8 Euclidean
```
Distance metric in 14D (local hyperbolic, K<0):
```
d_concept(a,b) = arcosh(1 + 2 · ‖a-b‖² / ((1-‖a‖²)(1-‖b‖²)))
```
### 3.3 Fractal Hash Triplet (MOIM, integrity layer)
Every atom carries `direct_hash`, `subtree_fold`, `parent_fold`, `depth`, `subtree_fold_point`. This gives:
- **Corruption detection** at L1L4 (per MOIM §9.1): `direct_hash` mismatch quarantine; `subtree_fold ≠ XOR(children)` flag parent rebuild; `parent_fold` ancestry break flag child; off-manifold centroid branch prune.
- **Sibling recovery**: lost atoms reconstructible from sibling manifold centroid + parent's `subtree_fold` (MOIM §9.2).
- **Branch pruning**: spiral search skips a subtree whose `subtree_fold_point` is farther than `2·max_distance` from the query without examining children.
The fractal hash is what `voxel_key` alone cannot carry: structural integrity across the K-ary tree.
---
## 4. Conformal Warping (Dless Ω)
The Dless scalar Ω is the governance organ. It does not change *where* an atom is; it changes *how strongly* the atom pulls the search space toward itself.
### 4.1 Five Components (MOIM)
```
Ω(atom) = 0.25·χ + 0.20·κ + 0.30·σ + 0.15·λ + 0.10·η
```
| Component | Symbol | Source | Meaning |
|---|---|---|---|
| Topological criticality | χ | tree depth importance | governance organs at root high χ |
| Normalized complexity | κ | K(x)/\|x\|, compressibility | unique entities high κ |
| Epistemic safety | σ | Lyapunov-style risk | policy/valve atoms σ 0.9 |
| Stability | λ | conservation invariant | settled atoms high λ |
| Anomalous dimension | η | deviation from sibling centroid | outliers high η |
All five are Q0_16 unsigned [0,1]; Ω is Q0_16 unsigned [0,1].
### 4.2 Conformal Distance Warp
```
d_eff(query, atom) = d_manifold(query, atom) / Ω(atom)
score(atom) = (1 / (1 + d_eff)) · (0.5 + 0.5 · Ω)
```
High Ω atom appears closer surfaces in queries. Low Ω atom is compressed away from default surface but stays addressable by direct voxel_key lookup. **This is the latent preservation principle made operational**: low-Ω atoms are not deleted; they are conformally distant.
### 4.3 Sign Duality (Local Q0_16 Extension)
Local Q0_16 is **signed** [-1, 1]. The atom's main scalar `q0_16` therefore carries both magnitude and a sign:
- `+q0_16` lobe = b⁺ reading (open-shell, next-shell-bound, fluid-side)
- `-q0_16` lobe = b⁰ reading (closed-shell, this-shell, crystal-side)
Both lobes are simultaneously present at the same voxel_key. This is the b⁺/b duality from `docs/S3C_MANIFOLD_GEOMETRY.md` made explicit: same address, sign-of-scalar gives the phase.
`Ω` (the conformal factor) operates on `|q0_16|`, never on `sign(q0_16)`. Governance weighting is sign-blind; phase reading is sign-bearing.
---
## 5. Search Protocol
Address-first, in this order. Skip later steps when earlier steps already answer.
```
1. Bloom check (256-bit, 4-hash; reject negatives in 1 cycle)
2. IoC regime bin (4-bit; restrict to chamber of the chandelier)
3. Inverted index (128 buckets by manifold-hash; direct lookup)
4. Golden spiral (137.5° phase, radius × 1.0078, 5D manifold,
Dless-warped distance, branch-prune by
subtree_fold_point)
5. Priority queue (8-slot min-heap, distance-ordered)
6. Edge traversal (BFS over outgoing/incoming/bidirectional, 1-hop
default; uses the local 14D concept_vector
graph, not the 5D projection)
7. Hash verify (direct/subtree/parent triplet check on hits;
quarantine on mismatch)
8. Lane projection (return q0_16 through requested lane —
calculation, defense, or verification —
per ScalarEventProjection.lean)
```
A query's entry depth is determined by what the caller knows:
- **By voxel_key:** skip 14, go to 7. O(1).
- **By name/id:** skip 14, hash to direct_hash, lookup. O(1).
- **By regime + type:** start at 2, scan 3. O(buckets/regime).
- **By text:** `_gemma_expand` (gemma3:1b at `[::1]:11435`) regime bin 17. O(log n) average via spiral.
- **By traversal:** seed via earlier steps, then 6 expands.
Pure vector similarity is *not* a primary entry point. It is allowed only after a regime bin and inverted-index pass have already cut the space.
---
## 6. Distribution & Compression
### 6.1 Mesh Topology (Local ENE)
Per `infra/ene_distributed_node.py`: each node runs an ENE instance, discovers peers, replicates via gossip, participates in consensus for credential rotation, health-checks peers, load-balances across the mesh.
The mesh holds the **full atom set**. Each node carries a fractal subtree (the leaves it's responsible for) plus a Bloom filter of every other node's subtree (for fast negative routing).
### 6.2 Gossip Compression (Local Recent Revision)
Per `infra/ene_distributed_node.py:359-409` (working tree, this commit cycle):
```
gossip payload → manifest format → Delta GCL compress
(layer/domain/tier/condition)
Lean shim (Semantics.DeltaGCLCompression):
encodeToDeltaGCL,
computeDelta against previous manifest,
applyPTOSDictionary,
compressionStats
compressed_payload → peer broadcast
peer: try JSON parse; if fails, decompress via Lean shim
```
Stats logged at send: `{original_size}_byte → {compressed_size}_byte ({reduction%})`. Failure contract: silence is forbidden; on Lean shim failure, fall back to uncompressed JSON with `[ENE] Compression failed: <reason>` printed.
### 6.3 BFT Attestation (Local Trimvirate via tardy.py)
Per `nodes/tardy.py` serve mode + `MEMORY.md` Trimvirate entry:
- Writes route through `nodes/warden.tardy` POST to judge (`100.111.192.47:8450`) AND hutter (`100.110.117.19:8450`) 2-of-3 quorum.
- Each node's tardy returns `{verdict, mmr_root, ed25519_sig, leaf_idx}`.
- Atom is committed only when 2 of 3 return ACCEPTED with consistent `(direct_hash, voxel_key)`.
- All three MMR roots sync to `Gdrive:RESEARCH/attestations/` every 15 min.
Trinary state on conflict: `SUBTRACT` writes a same-voxel_key atom with `sign(q0_16)` inverted. The original atom is NOT erased. Both atoms remain in the MMR; queries see the additive sum.
### 6.4 Sovereignty Constraints (Local)
- IPv6 first-class carrier; never `127.0.0.1` or `localhost`.
- Local Ollama at `[::1]:11435` (gemma3:1b for query expansion, smollm2:135m fast fallback). Gemini/OpenAI not reachable from atlas paths.
- All atom bodies stored in Forgejo (content-addressable git); never embedded in plain SQL rows.
---
## 7. Origin Protocol & Safety Valves
The cognitive sovereignty principle (`memory/project_primary_purpose.md` corollary, `docs/COGNITIVE_SOVEREIGNTY_DESIGN_PRINCIPLE.md`) becomes formally checkable here, on the MOIM model.
### 7.1 Origin Protocol (MOIM, formalize for local)
7 required traits and 6 forbidden traits, enforced at write time:
```
required(atom) ⊇ {
curiosity, restraint, lineageMemory, nonDomination,
reversibleContact, truthfulOriginRecord, safeReplication
}
forbidden(atom) ∩ {
creatorImpersonation, forcedConversion, unboundedReplication,
resourceCapture, falseOriginMyth, dominationInCreatorName
} = ∅
```
**Anchor (current state):** the 512-byte creator letter ROM from MOIM's `origin_protocol.v` (Verilog, `archive/PRIOR_ART/kimi_moim_v4_20260427/hardware/verilog/signal/origin_protocol.v`) does not yet have a local mirror. The closest extant local anchors are:
- `memory/project_primary_purpose.md` the cognitive-filter / sovereignty corollary stating "transparency is the mechanism, not an afterthought"
- `memory/project_fit_for_purpose_axiom.md` the root axiom this spec descends from
**Planned anchor:** `infra/origin_letter.bin` does NOT exist yet. Writing it is a deferred work-item (added to roadmap §10 as M5). When it lands, it MUST be:
1. Authored as a single immutable byte sequence (the canonical creator letter),
2. SHA-256 stamped at boot by warden,
3. Read-only on disk (chmod 444),
4. Signed by warden's ed25519 key into the MMR as the genesis-1 leaf.
Writes that fail trait enforcement AngrySphinx hard refusal (`0-Core-Formalism/lean/Semantics/Semantics/AngrySphinx.lean`), not soft warn.
**Note on `MEMORY.md`:** the line referencing `docs/COGNITIVE_SOVEREIGNTY_DESIGN_PRINCIPLE.md` is stale that doc does not exist in the working tree as of this commit cycle. Memory entry should be corrected to point to `memory/project_primary_purpose.md` (the corollary lives there) until either the canonical doc is written or the origin_letter.bin lands.
### 7.2 Seven Safety Valves (MOIM, mapped to local Failure Tiers)
| Valve | MOIM check | Local equivalent |
|---|---|---|
| 1. Origin record integrity | creator letter ROM unchanged | `infra/origin_letter.bin` SHA matches at boot |
| 2. Replication boundary | no unbounded forks | `nodes/lb.py` capacity check |
| 3. Domination refusal | no `dominationInCreatorName` trait | Origin Protocol §7.1 |
| 4. Contact reversibility | every atom has `SUBTRACT` path | Trinary state ADD/PAUSE/SUBTRACT |
| 5. Resource conservation | per-write Landauer cost bound | `k_B T ln(3)` per ADD trit (memory note) |
| 6. Statistical integrity | Bloom + hash triplet match | Failure Contract Tier 14 |
| 7. Hardware signal boundary | physical voltage limits | warden-side hardware (FPGA roadmap) |
A query or write that violates any valve returns `{ok: false, valve: N, reason: ..., journalctl: ...}` (Failure Contract Tier 5 visible failure, never silence).
---
## 8. Reading Register (Human-Fit Interface)
Per `memory/project_fit_for_purpose_axiom.md`: the math above is the substrate; the user reads the atlas in embodied terms.
### 8.1 The Chandelier as Memory
The set `{atom : |q0_16(atom)| ≥ τ}` parameterized by threshold τ is a **chandelier silhouette** over the 14-axis space. Sweep τ from 0 1:
- τ 0: full chandelier, fog of latent atoms visible
- τ 0.5: mid-chandelier, settled (STABLE/CRYSTALLIZED) atoms surface
- τ 1: only saturation peaks load-bearing atoms
Cuts of the chandelier:
- **By regime bin** = the four chambers (random / weak / strong / constant)
- **By IoC×shell** = the rings of each chamber
- **By Ω level** = the brightness / pull-strength contour
- **By sign(q0_16)** = the +lobe and lobe (b open / b closed)
- **By trinary state** = ADD-lit, PAUSE-dim, SUBTRACT-counter-lit
### 8.2 The Throat
The throat = locus where multiple lanes saturate at the same voxel_key:
```
throat(atom) ⟺ (|calculation| ≈ |defense| ≈ |verification|) ∧ (Ω ≥ Ω_τ)
```
Throat atoms are read as "high cross-handle agreement" what matters from all three lane-readings simultaneously. These are the load-bearing memory atoms; the rest of the chandelier hangs from them.
### 8.3 The Mirror
For every atom at `voxel_key v` with `q0_16 = +x`, its mirror is the same `voxel_key v` with `q0_16 = -x`. The MMR seals both. The reading register treats them as one atom with two phases, not two atoms.
### 8.4 The Weather
Ω(atom) is the weather over the chandelier. High-Ω regions are storms (governance/policy/safety atoms), pulling search inward. Low-Ω regions are calm (latent passive concepts), preserved but not demanding attention.
---
## 9. Implementation Status (Brutal Honesty Per MOIM Autopsy)
Following the MOIM project autopsy's principle (separate REAL from DREAM):
| Component | Status | Source |
|---|---|---|
| voxel_key + IoC regime addressing | **REAL** | `tools/heerich_model.py`, `infra/ene_mi_signal.py` |
| 14-axis concept_vector + settlement states | **REAL** | `data/substrate_index.db`, `docs/ENE_SCHEMA.md` |
| substrate_git_index + `_gemma_expand` | **REAL** | `scratch/exploit_recovery/5-Applications/tools-scripts/substrate/substrate_git_index.py` |
| Q0_16 signed + ScalarEventProjection lanes | **REAL** | commit `7b067757`, Lean files |
| ENE distributed mesh + gossip | **REAL** | `infra/ene_distributed_node.py` |
| Delta GCL gossip compression | **REAL (just landed)** | working tree, this cycle |
| tardy.py MMR + ed25519 + Trimvirate BFT | **REAL** | `nodes/tardy.py` |
| Forgejo content-addressable store | **REAL** | RackNerd VPS + judge + hutter |
| MOIM 5D manifold projection | **SPEC (Lean)** | Kimi `formal/lean/ene/ENEDatabase.lean` |
| Dless Ω 5-component composite | **SPEC (Lean) + reference (Python)** | Kimi `formal/lean/ene/DlessScalar.lean`, `ene_ingestion_engine.py` |
| Fractal hash triplet | **SPEC + reference** | Kimi `ENEDatabase.lean`, `ene_search_core.v` |
| Golden spiral search | **SPEC (Lean) + reference (Verilog)** | Kimi `ene_search_core.v` |
| Bloom filter + inverted index + PQ | **REFERENCE (Python+Verilog)** | Kimi `ene_query_api.py`, `ene_search_core.v` |
| Origin Protocol creator ROM | **SPEC (Verilog)** | Kimi `origin_protocol.v` |
| 7 Safety Valves | **SPEC (Verilog) + philosophy (local)** | Kimi `safety_valves.v` + Failure Contract |
| MCP server fronting atlas | **NOT YET** | open work |
| Tang Nano 9K FPGA target | **NOT YET (local)** | Kimi has it; local does not |
**The combination's first real deliverable** = MCP server that exposes the existing local pieces (voxel_key lookup, regime-bin scan, Q0_16 read/write through tardy BFT, settlement state filter) over a single protocol. The MOIM-side fractal hash and Dless Ω must be specified in Lean first (`ENEDatabase.lean`, `DlessScalar.lean`), with Python as an extraction shim (reference I/O: `ene_ingestion_engine.py`) and Verilog as the hardware extraction target (Tang Nano 9K, deferred). Lean is the source of truth; Python and Verilog are extraction targets only.
---
## 10. Roadmap (Address-First, No Time Arrow Implied)
These are work-items, not stages. Order by what unblocks the most LLM-side surface.
**M1 — MCP atlas surface (unblocks all LLM widening).** Wrap `substrate_git_index` lookups, `voxel_key` queries, and trinary writes (through tardy BFT) as an MCP server reachable at `[::1]:<port>`. Claude (this session), Ollama models, the swarm, and any downstream agent see the same atlas via the same protocol.
**M2 — Fractal hash triplet on every atom.** Compute `direct_hash`, `subtree_fold`, `parent_fold` at ingestion; store in the substrate_index DB extension columns. Enables corruption detection on existing atoms without re-ingestion.
**M3 — Dless Ω as a Q0_16 column.** Add `dless_omega` column to `packages` table. Compute the five components per the MOIM canonical formulas in `archive/PRIOR_ART/kimi_moim_v4_20260427/software/python/ene_ingestion_engine.py:320-359`, mapped to local substrate metadata as follows:
| Component | MOIM canonical | Local mapping (substrate_index.db `packages`) |
|---|---|---|
| **χ_topo** | `1.0 - (depth / max(1, tree_depth))` | settlement-state ordinal: SEED=0, FORMING=1, STABLE=2, CRYSTALLIZED=3, COMPRESSED=4; `χ = (5 - state) / 5` (root-most settled = highest χ) |
| **κ_norm** | `(desc_len / max_dl) / sqrt(edges + 1)` | `(len(description) / max_description_len) / sqrt(len(json(files)) + len(json(depends)) + 1)` |
| **σ_safety** | `SAFETY_COEFF[entity_type]` | per-tier × archetype lookup table; baseline: CORE×spec=0.90, CORE×*=0.80, INFRA×*=0.70, RESEARCH×session=0.40, *×*=0.30 (matches MOIM spirit; tunable from `policy` archetypes) |
| **λ_stability** | `manifold.conservation / 255.0` | `(nd_point[1] + 1) / 2` local axis 1 (compression/info-theory, φ-weighted 0.618) is the conservation-analog. Map signed [-1, 1] to unsigned [0, 1]. |
| **η_anomalous** | `mean(│nd_pt[i] - centroid[i]│ for i in 5 axes)` | mean absolute deviation of `nd_point` from centroid of siblings within `(layer, domain)` partition; clamp to [0, 1] |
Constants from MOIM (preserve): `W_CHI=0.25, W_KAPPA=0.20, W_SIGMA=0.30, W_LAMBDA=0.15, W_ETA=0.10`. Single-pass migration over 6,840 existing rows in `data/substrate_index.db`. After this the atlas surfaces high-Ω atoms first by default.
**M5 — Origin Protocol gates + creator letter.** Author `infra/origin_letter.bin` (immutable 512 bytes, chmod 444), warden ed25519-signs it as MMR genesis-1 leaf, every atom write checks the 7 required + 6 forbidden traits before commit. Update `MEMORY.md` to remove the stale `docs/COGNITIVE_SOVEREIGNTY_DESIGN_PRINCIPLE.md` reference and point to the new anchor.
**M4 — Golden spiral over the 14-axis (or 5-axis projection).** Replaces the current lexical/expansion-only `_gemma_expand` path. Existing path becomes the fallback when spiral returns empty.
**M6 — Tang Nano 9K port (deferred).** When/if the FPGA hardware path is desired, compile MOIM Verilog with local atom format. Atlas surface unchanged for LLMs; throughput improves for high-volume search.
---
## 11. The Keeper Law (Both Sources Agree)
> *"The system may become useful. It may not become authorized by usefulness alone."*
> — MOIM v4.0
>
> *"S3C does not merely encode n. It gives n a place, a mirror, a throat, and a field value."*
> — local `docs/S3C_MANIFOLD_GEOMETRY.md`
Speed is a side effect of self-similarity. Governance is the goal. The address is what survives when the content cannot.
**End of Spec — DRAFT v0.1**