Technical Overview

remember

Status: The substrate is real and running on my own development fleet: storage, lens contracts, decision traces, and lens-filtered cross-session retrieval, which is live. The compounding loop — reflect (reweaving, conflict resolution, forgetting) — is in active build, not yet live. SLF, the Substrate · Lens · Frame protocol that governs the seam to create, is designed and being built on top: the interface is real; the receipt-and-grant enforcement across it is in build. The canonical protocol write-up lives at lexenne.com/slf.
Date: 2026-07: substrate / lens / frame architecture, with SLF as the seam between remember and create

Executive Summary

This document describes a memory architecture for AI agents, humans, and subsystems sharing one substrate. The substrate stores entities, facts, state-changes, decision traces, and interaction records. Lenses (persistent, role-keyed, DB-resident filters) render the substrate for each consumer. Frames (transient task-keyed bindings) hold the intent, plan, footprint, and suppression state for the work currently in front of a consumer. The architectural identity is one equation: view = render(substrate, lens, frame).

The architecture is orthogonal across three axes. The storage axis (Living Memory, remember, Episodic Continuity) tells you where a fact lives. The interpretation axis (substrate vs lens vs frame) tells you whose view of the substrate it belongs to. The action axis (state-change events, outcome → procedure feedback, intentional non-action) tells you how the substrate evolves under work. Every memory feature gets classified on all three.

The substrate runs on my own development fleet: on create (TypeScript / Node / SQLite), with a second implementation under way on Strata (Python / FastAPI / PostgreSQL + pgvector). Lens contracts, decision traces, the frame primitive, the typed state-change stream, and lens-filtered cross-session retrieval are live; the compounding loop — reflect (reweave, conflict resolution, forgetting) — is in active build, not yet live. The companion landscape and pitch decks cover positioning; this document is the architectural reference.

create ↔ SLF (the seam) ↔ remember
flowchart TB
  subgraph consumers["Consumers — through a lens (role + jurisdiction)"]
    direction LR
    AG["Agents
bob · alex · tessa …"] SUB["Subsystems
watchdog · scheduler"] PR["Principal
Andrew"] end subgraph seam["SLF — the seam · Substrate · Lens · Frame · the only shared code"] direction TB RENDER["render(substrate, lens, frame) → receipt"] PORT["HttpMemoryPort · /v1
context · captures · retrieval-feedback"] GRANT["Type-1 grant + issuer-signed receipts
+ capture-envelopes (enforcement: in build)"] RENDER --- PORT --- GRANT end subgraph create["create — where the work happens"] direction TB CR["Agent-first dev harness
backlog · sessions · gates · dispatch"] end subgraph remember["remember — what persists"] direction TB RM["Substrate: facts, decisions, state-changes,
lens contracts, bi-temporal validity"] RF["reflect (the Curator)
reduce · reweave · supersede (compounding: in build)"] RM --- RF end consumers -->|"act through a lens"| seam create -->|"reads context · writes captures"| seam seam -->|"/v1"| remember remember -.->|"lens-filtered views + receipts"| seam seam -.-> create classDef building stroke-dasharray:4 4; class GRANT,RF building;

One protocol, two products. create is where the pair works; remember is what persists; SLF is the seam they share. The substrate is live; the receipt-and-grant enforcement across the seam is in build (dashed).

What's Built and Running

Most of what's below is built and running, used daily on the create platform and SFDC dev workflows, though not all of it. Rows still in active build are marked Planned. The goal is to employ it as a real use case, iterate, and prove out the architecture before any broader rollout.

Memory & Learning Core

Capability Status Detail
Lessons DB + connections + entities Built Consolidated agent-state store (SQLite), partitioned by workflow. Write-coalescing with debounced persistence and incremental export.
Decision traces DB Built Durable audit trail of agent decisions: what was decided, why, what alternatives were considered. Queryable via HTTP API.
Session lifecycle Built Register, getContext, do work, session-end reflection. Full HTTP API with WebSocket broadcasting.
getContext (intelligent retrieval) Built Workflow-scoped, entity-anchored, token-budgeted, multi-pass (berrypicking). Context selector with precedent matching.
Session-end reflection Built Agents write lessons, decision traces, guardrail suggestions at session end. Structured knowledge capture throughout.
reflect pipeline Partial Reduce, Reflect, and Archive run asynchronously post-session via worker pool today. Reweave and Verify (the compounding step that integrates and reconciles knowledge) are in active build, not yet live.
Forgetting by design Planned Pruning, supersession, condensation, stale detection, demand-driven processing: designed, and part of the current build. Not yet live.
Multi-workflow support Built Core create platform and SFDC dev share one framework, data partitioned by workflow. Workflow engine with pluggable adapters.
Scratchpad + session summary Built Per-task state + recent work history. Created/loaded via API. File-backed state: the NLAH paper's #1 most valuable harness module.

Harness Engineering & Governance

Capability Status Detail
Evaluator system (LLM + criteria) Built LLM-based evaluator with ISC criteria parser and verifier. Auto-pass/fail/escalate decisions on backlog items. Aligns with Anthropic's capability vs regression eval distinction.
Verifier alignment logging Built Tracks whether evaluator decisions match human reviewer decisions. Directly implements the NLAH paper's critical finding: verification layers that diverge from the evaluator's acceptance criteria reduce quality.
Guardrail system (proposals + accumulation) Built Agent-proposed guardrails with human review. Self-improvement loop: failures generate guardrail updates. Per-agent guardrail files.
Failure taxonomy Built Named failure modes with recovery actions (context exhaustion, loop detection, verification divergence, tool failure, etc.). NLAH's sixth required harness component.
Golden principles Built Codified mechanical rules for codebase consistency. Per OpenAI's harness pattern: opinionated rules that agents can self-enforce.
Eval suites + regression framework Built YAML-defined eval suites with grader registry, regression sources, and result tracking. Fixtures for reproducible evaluation.
Orchestration coordination Built Multi-agent coordination with collision detection, session isolation, and bounded authority. Prevents concurrent conflicts.
Approval queue + human-in-the-loop Built Full approval workflow with JWT auth, review routing, and WebSocket-based real-time updates. Human review at the highest-leverage points.

remember & Knowledge Presentation

Capability Status Detail
remember renderer / Living Wiki Built WikiCompiler renders auto-promoted lessons into a scannable wiki with [[wiki-links]], cross-references, and topic grouping. Incremental compilation on file change.
Wiki quality gates Built Configurable promotion thresholds. Claims must meet confidence and quality gates before entering the wiki. Validation happens at write time.
The Librarian — wiki curator + scheduler Built The Librarian runs automated curation: scheduled synthesis reports, staleness detection, and maintenance passes. The wiki maintains itself.
Dashboard (metrics + management) Built remember metrics, backlog, session management, approval workflow, real-time session monitoring.
Lesson connections (graph edges) Built Typed connections with optional reason text for propositional links. Backlinks for bidirectional traversal.

In Progress & Vision

Capability Status Detail
Trust tiers + memory integrity Designed ADR written. Content trust tiers, read-time validation, and write-event audit log sufficient for rollback.
remember knowledge graph Building Full propositional knowledge graph with entity-centric claims, graph traversal, and progressive disclosure. Being built for personal and intra-team use, architected for scale.

Cross-platform validation: The M/L/P architecture is being proven on two entirely different platforms. On create (an agentic project-orchestration platform on TypeScript / Node / SQLite), agents coordinate through a shared backlog with remember. On Strata (Python / FastAPI / PostgreSQL + pgvector), eight governed agents collaborate through scoped repositories with decision traces. The same architectural principles (governed writes, learning loops, cost-conscious inference) apply naturally to both. This gives us confidence the patterns are transferable across frameworks.

The Three Axes

The architecture spans three orthogonal axes. Confusion between axes is the most common architectural mistake: conflating storage with interpretation, or interpretation with action, produces designs that fight themselves.

Axis 1: Storage (where it lives)

Living Memory holds user/workspace context (preferences, behavioral feedback, project facts). remember holds cross-session, cross-project learnings as bi-temporal claims with decision traces. Episodic Continuity holds session-scoped state: scratchpads (narrative) and per-ticket context (now generalized to frames). Storage is operational; documented in MEMORY-TIERS.md.

Axis 2: Interpretation (whose view of it)

Substrate is the universal storage of state: entities, facts, typed state-changes, relationships, provenance, permissions, history. Bi-temporal validity (valid_from / invalid_at), decision traces, lesson chains, and interaction-typed records all live here. Lens is a persistent consumer-keyed filter declaring entity types loaded by default, relationships in scope, watched state-changes, RBAC capabilities, cross-lens read scope, and expiration policy. Lenses are DB-resident (lens_contracts + lens_preferences + consumer_lens_assignments + permission_groups + permissions). Frame is a transient task-keyed binding holding intents (canonical 10), next_steps with assigned consumers, footprint, surfaced substrate refs, and suppression state. Frames are also DB-resident; scratchpads carry frame_id at creation.

Axis 3: Action (how it evolves)

Substrate writes emit typed state-change events with before/after diffs, lens_id and frame_id annotation, and evidence references. Outcomes (eval results, gate failures, learning-proposal status) flow back to procedure (SKILL.md mutations) through an approval-gated mutator that records the mutation as a state-change. Triggers (hooks, watchdog, scheduler, evaluator) emit explicit act / wait / escalate / no-op decisions with rationale. Non-action is a first-class action when it is intentional and persisted, and silent failure is structurally distinguishable from intentional restraint.

Dreams: retrospective synthesis (designed, in build). The action axis is designed to include scheduled retrospections inspired by Anthropic's Managed Agents Dreams primitive (research preview, 2026-04). As designed, Dreams — run by the Dreamweaver agent — would run asynchronously over a rolling window of state-changes, scratchpad archives, decision traces, and the docs corpus, surfacing duplicate facts to merge, contradicted facts to retire, stale entries to age out, and skill-improvement proposals based on outcome patterns. Anthropic's version is developer-triggered and adoption-gated by hand; the local design extends that framing with scheduled cadence on the local-LLM fleet (mini1/2/3, studio1) and an automated adoption gate (per-proposal-type confidence and risk thresholds, mandatory approval-queue routing for exceptions). It has not yet run autonomously. When it does, output flows through the same approval-gated mutator as every other substrate change, with provenance tagging so subsequent dreams skip their own prior outputs.

Three orthogonal axes
flowchart TB
  subgraph storage["Storage Axis"]
    LM["Living Memory
user / workspace"] AL["remember
cross-session learnings"] EC["Episodic Continuity
scratchpads + frames"] end subgraph interp["Interpretation Axis"] S["Substrate
facts, state-changes,
decision traces, interactions"] L["Lens
DB-resident, RBAC,
consumer-keyed"] F["Frame
DB-resident, transient,
task-keyed"] end subgraph action["Action Axis"] SC["Typed state-changes
before/after + lens_id + frame_id"] OP["Outcome → Procedure
approval-gated mutator"] NA["Intentional non-action
act / wait / escalate / no-op"] RC["render(...) → receipt
signed disclosure, first-class"] end storage -.->|"writes through"| interp interp -.->|"evolves via"| action action -.->|"persisted in"| storage

The render equation: render(substrate, lens, frame) → receipt. Every disclosure returns a lens-filtered view alongside a signed receipt — the receipt is the first-class output, the audit record of who saw what, when, and under which grant. The same substrate read through the Architect lens with a frame for “evaluate vendor for new identity broker” produces a different view than the same substrate through the Steward lens with a frame for “sprint plan.” The Memory / Learning / Personalization decomposition (MAPLE) sits inside the substrate side of the interpretation axis: Memory = substrate storage; Learning = the reflect pipeline that mutates substrate; Personalization = render(substrate, lens, frame). M/L/P remains accurate; substrate / lens / frame is the load-bearing vocabulary.

Standing on strong shoulders. The substrate-vs-lens vocabulary was crystallized by Sentra's Company Brain series (Ashwin Gopinath, 2026-04). The frame primitive is a local extension Andrew added to disambiguate transient task-binding from persistent role-shape. Earlier influences remain load-bearing: Karpathy (Software 2.0, LLM OS, where memory is the file system), Cherny (context engineering as systems discipline), PAL (structured artifacts over free-form prose), Cornelius ("the vault is the riverbed, the sessions are the water"), and NLAH/Pan et al. (file-backed state as the highest-value harness module). The M/L/P naming draws from MAPLE. The deeper lineage (UXF, ASO26 / IA-EA, EDR > Decision Support) proved the substrate-vs-lens pattern in production at Macmillan years before Sentra named it.

The Learning Loop (Step-by-Step)

Every agent session follows the same lifecycle. The loop is the same whether the agent is working on a core platform ticket or a Salesforce development task.

Agent session lifecycle
sequenceDiagram
    participant Agent as Agent (in create)
    participant API as create API
    participant Seam as SLF /v1 seam
    participant Store as remember substrate
    participant Reflect as reflect (Curator)

    Agent->>API: POST /sessions (register)
    API-->>Agent: Session ID + scratchpad
    Agent->>Seam: GET /v1/context (lens, frame)
    Seam->>Store: query substrate (lens-filtered)
    Store-->>Seam: lessons + decision traces
    Seam-->>Agent: context payload + receipt
    Note over Agent: Agent works · updates scratchpad every 3-5 actions
    Agent->>Seam: POST /v1/captures (capture-envelope)
    Seam->>Store: write (Type-1 grant · signed receipt)
    Store->>Reflect: queue compounding  [in build]
    Reflect->>Store: reduce → reweave → supersede  [in build]
    Note over Store: next /v1/context returns these
      
  1. Register session. Agent identifies itself, declares what it's working on. System creates or loads a scratchpad (per-task state). Per Cornelius: the vault encounter IS identity. The agent becomes itself by reading what previous sessions left behind.
  2. Load context (getContext). System retrieves relevant lessons and precedent, scoped by workflow and task similarity, within a token budget (Cherny's context engineering). Optionally includes remember index and rendered claims.
  3. Do the work. Agent uses skills, tools, and files. Updates scratchpad with state, decisions, and progress. Following PAL's insight: agents produce structured artifacts (code, scratchpads, decision traces) in place of free-form prose. Code-as-reasoning.
  4. End session with reflection. Agent submits: summary of what was done, structured reflection (what was learned, what to watch for), and optionally guardrail suggestions, knowledge capture, or warnings for future sessions.
  5. System writes and digests. Lessons and decision traces are stored (workflow-scoped). The reflect pipeline processes them asynchronously: extracting atomic claims, finding connections, updating existing knowledge, validating, and archiving source material.
  6. Next session benefits. The next agent's getContext returns these lessons. The loop compounds. Per Karpathy's LLM OS: the knowledge store is the file system of the agent operating system; each session is a process that reads from and writes to it.

The reflect Pipeline

Raw knowledge entering the system is not yet useful. It is food awaiting digestion before it becomes capability. The reflect pipeline transforms it. Each phase runs in isolation with fresh context to prevent contamination between steps.

reflect — the compounding pipeline
flowchart LR
    R["Reduce
raw → atomic claims"] RE["Reflect
find connections"] RW["Reweave
update existing · in build"] V["Verify
schema + dedup · in build"] A["Archive
mark processed"] R --> RE --> RW --> V --> A classDef building stroke-dasharray:4 4; class RW,V building;
Phase What it does Analogy
Reduce Extract atomic claims from source material. A 2000-word battlecard yields five entity-anchored claims. The rest is discarded. Digestion: break down bulk into building blocks.
Reflect Find connections. Where does each new claim link to what already exists? Connections make both claims more retrievable. Cross-referencing: linking new knowledge to existing understanding.
Reweave Backward maintenance. "If this existing claim were written today, knowing what we now know, what would be different?" New material strengthens existing structures. Revision: the graph gets stronger claims, beyond simply more claims.
Verify Immune system. Schema validation, retrieval filter quality check, entity resolution, duplicate detection. Malformed claims never enter the graph. Type checker: correctness checks on installed software.
Archive Processed source material exits the active workspace. What remains is extracted value: clean, connected, integrated. Waste removal: keep the nutrients, release the bulk.

How Retrieval Works

Retrieval is purpose-aware and token-budgeted. The same entity returns different claim subsets depending on the consumer's workflow and task.

Retrieval over the /v1 seam
flowchart TB
    Q["Agent calls /v1/context
(lens, frame, scopes)"] F["Filter by lens + scope
(project → team → framework → org)"] R["Rank: priority × recency
× tag match × value-per-token"] B["Apply token budget"] BP["Berrypicking: multi-pass
(reassess, refine, re-query)"] A["Assemble: lessons + precedent
+ (optional) remember index + receipt"] Q --> F --> R --> B --> BP --> A

Layered scope

Retrieval spans four layers, from narrow to broad:

LayerScope
ProjectThis task, this ticket
Team / domainShared best practices
FrameworkCross-workflow lessons
OrganizationEntity graph, org-wide

Berrypicking

Retrieval isn't always one-shot. The system can do multiple passes: an initial pass finds relevant lessons, the retrieval logic reassesses ("given what I found, what else do I need?"), and runs another pass with a refined query.

This mirrors how people actually look things up. The search evolves as understanding grows.

The Knowledge Graph

The graph is entity-centric: it models the real things the organization cares about and the relationships between them. Entities are the nouns of institutional knowledge.

Knowledge interchange — the SLF capture contract
flowchart LR
    subgraph SRC["Sources (producers)"]
        direction TB
        s1["Agent reflections (create)"]
        s2["Research"]
        s3["Conversations"]
        s4["Events"]
    end

    subgraph INC["SLF capture-envelope"]
        c1["entity + claim + source +
confidence + timestamp + author +
lens_id + frame_id + actor-chain"] end subgraph KG["remember substrate"] direction TB e["Entities"] r["Relationships"] kc["Claims"] b["Backlinks"] e --- r --- kc --- b end subgraph OC["render → receipt"] o1["Lens-filtered context
+ signed receipt"] end subgraph CON["Consumers (via lens)"] direction TB a1["Agents"] a2["Dashboards"] a3["Decision support"] a4["Search"] end SRC --> INC --> KG --> OC --> CON

Claims are installed capabilities. When an agent loads a knowledge claim, it gains a capability it didn't have before. A claim about competitive positioning enables the agent to reason about strategy. A vague claim is a buggy function. A stale claim is a regression. Quality gates are correctness checks on installed software, functioning as more than tidiness conventions.

Consumers (Lenses in Use)

Agents are one consumer class. Humans are another. Subsystems (watchdog, scheduler, dispatcher) are a third. All read the same substrate through different lenses. A consumer can wear more than one lens; multi-lens permissions UNION (wearing more lenses can only widen scope, never restrict it). Andrew, as Principal, can wear any lens to view the work through that role's filter.

LensConsumersDefault scope
ArchitectalexWide; ADR + planning + cross-system entities; high decision-trace density
Developerbob, doug, remy, quinn, evelyn, sentinel, jerryCode, tests, gates, eval results; narrow per-task
AnalystbeaRequirements, decision matrices, stakeholder context
Stewardstewart, oscarBacklog, sprint state, dependencies, collisions
WritersherryDocs, Confluence, documentation drift
Principalandrew (default; can wear any lens)Workspace-wide; longitudinal; decision-trace heavy
Subsystemwatchdog, scheduler-daemon, dispatcherEvent-conditioned; trigger-shaped; non-action capable

Skills are workspace-wide capabilities. A loose-coupling join records which lens each skill is primary for, which skills bridge between lenses (Bea's R×S to Backlog hands work from Analyst to Steward), and which are lens-agnostic (the career-coach skill operates outside any analyst/developer lens). The lens prioritizes and surfaces skills; permissions gate invocation. Skills don't gate against the active lens; carrying a skill while wearing the “wrong” lens is permitted, just not surfaced by default.

Not every agent should learn. The substrate still serves four levels of agent complexity, distinguished by their relationship to knowledge: stateless tools (run, return, forget), knowledge consumers (read substrate, no writes), scoped learners (write within a single lens), and full-metabolism agents (write across substrate with reflection and decision-trace contribution). The 65/20/10/3 distribution still holds. The lens layer cuts orthogonally to autonomy: a stateless tool can be Developer-lensed (formatter); a full-metabolism agent can be Architect-lensed (alex). Lens determines scope; autonomy determines write capacity.

Honest Challenges

We pressure-tested the architecture against 30+ external sources across 10+ sessions. Seven validated strengths. Five remaining gaps.

Validated strengths (protect these)

Propositional framing ("Since [[X]], therefore Y"): no evaluated system has an equivalent. Cornelius's "notes as callable functions" framing independently converges with this approach.
Memory evolution (decay, condensation, supersession): ahead of the field; most systems implement only formation and retrieval.
Forgetting design: the most complete in any source evaluated.
3D hierarchical token-level memory: placed at the apex of the 2026 academic survey's taxonomy.
Session lifecycle + scratchpad: independently validated by Anthropic, MAPLE, NLAH (file-backed state is the #1 most valuable harness module), and the academic survey. Two 2026 empirical papers additionally quantify what NLAH names: Cao et al. (arXiv 2603.20432) show +17.3% gains from filesystem-organized context across long-context reasoning, RAG, and QA; Lee et al. / Stanford (arXiv 2603.28052) show +7.7 points with 4× fewer tokens via a filesystem-backed agentic proposer. The .agent-data/, scratchpads, and decision traces in this architecture are exactly the pattern both papers measure.
Harness engineering: failure taxonomy, golden principles, evaluator system with verifier alignment logging, and eval suites, all built and running. Implements all six NLAH required components (Contracts, Roles, Stage Structure, Adapters, State Semantics, Failure Taxonomy).
Context engineering as architecture: token-budgeted getContext, berrypicking retrieval, progressive disclosure, and workflow-scoped serving. Per Cherny: the bottleneck is the context the model receives.

Remaining gaps (honest assessment)

Gap Impact How we close it
Memory integrity and trust model No content trust tiers. No read-time validation. No write-event audit log sufficient for rollback. Defenses are write-time schema/format correctness only. ADR written. Trust tiers, audit log, and read-time integrity checks designed. Implementation is the next priority for the knowledge graph layer.
Security / blast radius of poisoned claims remember's propositional framing means a poisoned claim is reasoned from, going beyond mere reference. Higher epistemic authority means higher blast radius. Three attack vectors identified: direct lesson injection, reflection poisoning, and pipeline injection. Mitigations designed (trust tiers + audit log + integrity checks). The harness engineering layer (guardrails, eval system, verifier alignment) provides the governance structure; trust tiers extend it to knowledge claims.
Context pressure for long-running agents Session-boundary model works well for bounded tasks. Breaks at 1+ hour sessions. We have context rotation signals and a failure taxonomy entry; we need architectural support. HumanLayer's Research→Plan→Implement workflow (context compaction between phases) addresses this. Our existing scratchpad rotation and context budget zones (40-60% target) are partial solutions. Full architectural support (mid-session reflection triggers) is next.
Conflict resolution (clash) When getContext returns contradictory lessons, no resolution logic. Agent receives contradictory signals with no guidance. Design in progress. The knowledge graph's typed connections enable contradiction detection (CONTRADICTS edge type). Resolution requires either recency-wins, confidence-wins, or escalate-to-human logic. Per NLAH: verifier alignment data (which we now collect) can inform which resolution strategy matches human judgment.
Benchmarks measuring the wrong things Quantitative benchmarks were added early (eval suites infrastructure with YAML-defined tasks, grader registry, result tracking, and the verifier alignment log). They run, but they measure retrieval speed and recall, while the things the substrate is actually good at go unmeasured: discovery (connections not sought), reasoning (propositional claims as installed capabilities), evolution (forgetting at scale), governance (trust tiers, lens-scoped permission resolution), and longitudinal compounding. Without the right metrics, we can't validate that the system is working end-to-end or improve it deliberately. Build memory-specific eval tasks aligned to the substrate's value: cross-frame connection-discovery rate, decision-trace coverage, lens-scoped permission-resolver correctness, supersession lineage accuracy under contradiction, suppression-honoring rate after rejection, and longitudinal compounding (does the same task produce a richer view six months in than at start). Measurement is ongoing: phased calibration windows (7d standup → 30d steady-state) drive threshold tuning per surface.

The benchmarking reality: For simple retrieval, the mechanism doesn't matter. Agents search well with any tool. Our graph's value is not faster retrieval. It is discovery (connections not sought), reasoning (propositional claims as installed capabilities), evolution (forgetting at scale), and governance (trust tiers). These don't show up on standard benchmarks. They show up in multi-agent, cross-domain scenarios. We need to build evaluation methods that test what we're actually good at.

Architecture Vision

The substrate, lenses, and frames are real and running; the compounding-learning loop is the current build. The vision is what comes next: the architectural shape carrying forward to additional consumer classes (enterprise, customer-facing), additional input sources (interaction memory beyond the local agent loop), and longitudinal compounding measured against the right metrics, the ones suited to the substrate rather than retrieval-speed benchmarks borrowed from RAG.

From operational to extended
flowchart TB
    subgraph now["Operational today"]
        S["remember substrate
facts, state-changes,
decision traces"] L["Lens contracts
(7-lens roster, RBAC)"] F["Frame primitive"] SLF["SLF seam
/v1 · Type-1 grant · receipts"] S --> L --> F S --> SLF end subgraph building["In build"] LOOP["Compounding loop
reweave · conflict resolution · forgetting"] GATE["Gate-authoring-at-ingest
(signed gates on write)"] GRANTS["Grant Types 2–7
+ counter-signed receipts"] end subgraph extending["Extending"] CR["create emits receipts
(seam in production)"] IM["Interaction memory
(meetings, calls — opt-in)"] LP["Lens packs
(Sales, Success, Support, Exec)"] end S -.-> LOOP SLF -.-> GATE SLF -.-> GRANTS SLF -.-> CR S -.-> IM L -.-> LP

Three directions of growth

More consumer classes

Today's lens roster covers agents, the principal, and named subsystems. Three additional classes are architecturally supported and ready to onboard: enterprise role lenses (Sales, Success, Support, On-call, Exec) as productizable lens packs; customer-facing lenses as the UXF descendant; peer principals for multi-human collaboration. Adding a class is a seed migration: the substrate doesn't fork.

More input sources

Interaction memory is schema-ready but lightly fed. Capture-chat already accepts external transcripts; the next step is opt-in producers for meetings, calls, and messaging surfaces, scoped by directory or channel. Each new source produces interaction-typed substrate records and feeds Dreams' retrospective window without changing the substrate's shape.

Substrate-aligned measurement

The substrate's value lies in discovery, evolution, governance, and longitudinal compounding, beyond retrieval speed. The eval suites and verifier alignment log run, but the metrics they capture are wrong-shaped. The next benchmark generation tests cross-frame connection-discovery rate, supersession lineage accuracy, suppression-honoring rate, lens-scoped permission-resolver correctness, and whether the same task produces a richer view six months in than at start.

The Knowledge Interchange Layer

Any source publishes knowledge into the substrate through one contract: {entity, claim, source, confidence, timestamp, author, lens_id, frame_id}. The lens and frame annotations are what make the contract substrate-shaped: every write knows whose view produced it and which task it served. A well-formed claim is a capability the agent gains on load. The framework grows by accretion.

The strategic opportunity: The industry is converging on substrate ideas (Sentra), graphs (Glean), and agent memory (Anthropic, Mem0, Zep). What no evaluated competitor ships is the full architectural triad (substrate plus declared role-shaped lenses plus transient task frames) with state-change as a typed primitive, intentional non-action at the trigger layer, and substrate-aligned measurement. The substrate generalizes; lens packs are the productizable surface; the credibility artifact is years of solo dogfood under load. Memory fragmentation across per-tool memory is the moat.

The SLF protocol →  ·  create: the harness →  ·  remember: the strategy deck →  ·  Back to portfolio

Click or press Esc to close