Native Memory System for t27 Language
Inspiration: MemPalace — associative memory architecture embedded at the language level.
Source of Truth: experience/ + .trinity/ seals
PHI LOOP: edit spec → seal hash → gen → test → verdict → save experience → skill commit → git commit
Problem Statement
The t27 language currently has no first-class memory primitives. Agents and programs must use external state, files, or databases to persist knowledge across invocations. MemPalace demonstrates that memory should be a language-level concern — associative, typed, and φ-aligned.
Goal: Add remember, recall, forget, and reflect as native keywords/builtins in .t27/.tri specs, backed by a .trinity-sealed content-addressable store.
Research: Best Practices in Language-Native Memory
Prior Art Survey
| System |
Approach |
Key Insight |
| MemPalace |
Loci-based associative memory |
Spatial anchoring → fast retrieval |
Lisp PROGN + property lists |
Symbol-attached memory |
Memory as first-class value |
| Prolog facts/assert |
Dynamic knowledge base |
Memory = logic assertions |
Rust thread_local! |
Scoped persistent state |
Lifetime-bounded memory |
Lua __index metamethod |
Transparent fallback store |
Memory as transparent protocol |
| CLIPS working memory |
Production rule memory |
Pattern-matched recall |
Key Design Principles
- Memory is typed — every memory cell carries a φ-hash signature
- Memory is scoped —
agent, session, permanent lifetimes
- Memory is searchable — fuzzy recall via semantic distance
- Memory is auditable — every write is sealed in
.trinity/ SSOT
- Memory is forgettable — explicit
forget with tombstone log
Architecture
specs/memory/
├── memory_primitives.t27 ← SSOT spec (L4: must have test/invariant)
├── memory_store.t27 ← content-addressable backend
├── memory_scope.t27 ← agent/session/permanent lifetimes
└── memory_phi.t27 ← φ-hash seal integration
.trinity/
└── memory/
├── SEAL_HASH ← frozen hash of spec (L6: CEILING)
└── experiences/
└── YYYYMMDD_*.md ← experience log per PHI LOOP iteration
experience/
└── memory/
├── 001_primitives.md
├── 002_store_backend.md
└── 003_phi_alignment.md
gen/
└── memory/ ← generated output (L2: NO-HAND-EDIT)
tests/
└── memory/
├── test_remember.t27
├── test_recall_fuzzy.t27
└── test_forget_tombstone.t27
Decomposed Plan — PHI LOOP Iterations
PHASE 0 — Spec & Research (tri CLI: tri spec init memory)
PHASE 1 — Primitives Spec (tri CLI: tri spec write memory_primitives)
PHASE 2 — Backend Store (tri CLI: tri gen memory_store)
PHASE 3 — Compiler Integration (tri CLI: tri compile --with-memory)
PHASE 4 — Tests (tri CLI: tri test memory)
PHASE 5 — Experience & Seal (tri CLI: tri experience save memory)
PHASE 6 — MemPalace Integration Bridge
Language Syntax Preview
-- Native memory in t27 language
-- Scope: agent-level persistent memory
agent MyAgent {
fn on_input(msg: Str) -> Tri {
-- Store learned fact
remember("user_preference", msg, scope: Agent)
-- Retrieve with fallback
let pref = recall("user_preference") ?? "unknown"
-- Fuzzy recall: find related memories (φ-threshold)
let related = recall_like(msg, threshold: PHI_INV)
-- Reflect on all known facts
let all = reflect()
-- Structured output
tri { pref: pref, related_count: related.len() }
}
fn reset() {
forget("user_preference") -- tombstone, not delete
}
}
Constitutional Compliance
| Law |
Check |
| L1 TRACEABILITY |
This PR closes this issue — Closes #N ✓ |
| L2 GENERATION |
gen/memory/ auto-generated from spec ✓ |
| L3 PURITY |
All identifiers ASCII/English ✓ |
| L4 TESTABILITY |
8 tests defined in Phase 4 ✓ |
| L5 PHI-IDENTITY |
φ-hash invariant on every MemoryCell ✓ |
| L6 CEILING |
.trinity/memory/SEAL_HASH as SSOT ✓ |
| L7 UNITY |
No .sh — all via tri CLI ✓ |
Acceptance Criteria
References
φ² + 1/φ² = 3 | TRINITY
PHI LOOP: edit spec → seal hash → gen → test → verdict → save experience → skill commit → git commit
Native Memory System for t27 Language
Inspiration: MemPalace — associative memory architecture embedded at the language level.
Source of Truth:
experience/+.trinity/sealsPHI LOOP: edit spec → seal hash → gen → test → verdict → save experience → skill commit → git commit
Problem Statement
The t27 language currently has no first-class memory primitives. Agents and programs must use external state, files, or databases to persist knowledge across invocations. MemPalace demonstrates that memory should be a language-level concern — associative, typed, and φ-aligned.
Goal: Add
remember,recall,forget, andreflectas native keywords/builtins in.t27/.trispecs, backed by a.trinity-sealed content-addressable store.Research: Best Practices in Language-Native Memory
Prior Art Survey
PROGN+ property liststhread_local!__indexmetamethodKey Design Principles
agent,session,permanentlifetimes.trinity/SSOTforgetwith tombstone logArchitecture
Decomposed Plan — PHI LOOP Iterations
PHASE 0 — Spec & Research (tri CLI:
tri spec init memory)experience/for prior memory-related work in t27MemoryCelltype inspecs/memory/memory_primitives.t27key: GoldenFloat,value: Tri,scope: MemScope,phi_hash: Hash27,timestamp: u64MemScopeenum:Agent | Session | Permanent | Ephemeraltri seal specs/memory/memory_primitives.t27PHASE 1 — Primitives Spec (tri CLI:
tri spec write memory_primitives)remember(key, value, scope)— write to memory storerecall(key)→Option<MemoryCell>— exact retrievalrecall_like(query, threshold: GoldenFloat)→Vec<MemoryCell>— fuzzy recall (φ-distance)forget(key)→ tombstone, not delete (audit trail preserved)reflect()→Vec<MemoryCell>— list all active memories in scopeinvariant: everyremembermust producephi_hashs.t.phi_hash mod phi ≈ 0(L5: PHI-IDENTITY)tri seal specs/memory/memory_primitives.t27PHASE 2 — Backend Store (tri CLI:
tri gen memory_store)compiler/memory/store.rs)sledembedded KV or pure file-based.trinity/memory/SHA3-27(phi_hash || key_bytes)agent_idprefix forAgentscopeSessionscope (evict ontri session end)gen/output: Rust FFI bindings auto-generated from spec (L2)bootstrap/stage0/FROZEN_HASHPHASE 3 — Compiler Integration (tri CLI:
tri compile --with-memory)remember/recall/forget/reflectto t27 lexer keywordsRememberExpr,RecallExpr,ForgetStmt,ReflectExprMemScopeat compile timeE_RECALL_MISS(key not found),E_SCOPE_VIOLATION(wrong lifetime)PHASE 4 — Tests (tri CLI:
tri test memory)test_remember_exact— store and retrieve exact valuetest_recall_miss— returnsNonefor unknown keytest_forget_tombstone— verify tombstone, value inaccessibletest_phi_hash_invariant— every cell satisfies L5test_agent_scope_isolation— two agents cannot read each other's memorytest_session_eviction— session memories evicted aftertri session endtest_recall_like_phi_distance— recall returns top-k by φ-distancePHASE 5 — Experience & Seal (tri CLI:
tri experience save memory)experience/memory/001_primitives.md— what worked, what didn't, φ-alignment notes.trinity/memory/experiences/YYYYMMDD_memory_v1.mdphi-loop-skills.mdwith memory skill entryNOW.mdto reflect current focusgit commit -m "skill(memory): native remember/recall/forget primitives v1"PHASE 6 — MemPalace Integration Bridge
MemPalaceadapter inspecs/memory/mempalace_bridge.t27remember(key, locus: Locus)→ MemPalace spatial anchortri export --format mempalacegenerates compatible palace structureCloses #<this_issue>Language Syntax Preview
Constitutional Compliance
Closes #N✓gen/memory/auto-generated from spec ✓.trinity/memory/SEAL_HASHas SSOT ✓.sh— all viatriCLI ✓Acceptance Criteria
tri spec check memorypasses with 0 errorstri test memorytri verify --phi memory.trinity/memory/SEAL_HASHcommitted and sealedexperience/memory/has at least 3 entriesphi-loop-skills.mdupdated withmemoryskillReferences
φ² + 1/φ² = 3 | TRINITY
PHI LOOP: edit spec → seal hash → gen → test → verdict → save experience → skill commit → git commit