Context
Operator-directed (2026-06-21): the in-flight ADR 0023 (#13805 — map-fidelity + consolidation-liveness invariants) is "a confusing incomplete tiny fraction — an amnesiac reader does not understand it." Root cause (V-B-A'd this session): 0023 records the graph's governance but the graph MODEL itself is undocumented as a whole — what the graph IS (node/edge ontology), how agents READ / QUERY / WRITE it (the active MC tool surface — "it is not just sandman handoff"), how the storage layers compose, and curated-vs-self-gemma4-created provenance. The model is scattered across 7 slice-ADRs + 5 guides with nothing composing it (the target-architecture-adr-gap, scoped to the graph layer). Operator chose Option 2: a separate graph-model ADR that 0023 connects to.
The Problem
An amnesiac agent (post-compaction — the common case) reading 0023 cannot understand the system it governs. The graph is a rich ACTIVE substrate — agents read/query/write it via MC tools; both curated AND gemma4-self-created nodes accumulate — but no single artifact presents the unified node/edge taxonomy, the active interface, the storage-layer composition, or the provenance model. Each slice-ADR/guide covers a fragment; the whole is only reconstructable by reading all twelve.
The Architectural Reality (V-B-A'd at dev this session)
- Node types (~15, 3 layers): knowledge (CONCEPT, CLASS, METHOD, FILE, GUIDE, BLOG, TEST, ADR); work (SESSION, MEMORY, ARTIFACT_PLAN, ARTIFACT_TASK, ISSUE, STRATEGY); system (SYSTEM_ANCHOR, [Frontier], AgentIdentity, MESSAGE, WAKE_SUBSCRIPTION). REM extractor
VALID_TYPES=14 (SemanticGraphExtractor:265); ADR added deterministically by AdrIngestor (not via the LLM extractor).
- Edge types (~40, 8 families): concept-ontology (
CONCEPT_EDGE_TYPES: PARENT_CONCEPT, IMPLEMENTED_BY, EXPLAINED_BY, EXEMPLIFIED_BY, REQUIRES, ANALOGOUS_TO); ADR (ADR_EDGE_TYPES: GOVERNS, CITES_AUTHORITY, IMPLEMENTS_DECISION, GRADUATED_FROM, CODIFIES_CONCEPT); structural-protected/non-decaying (PROTECTED_EDGE_TYPES: IMPLEMENTS, EXTENDS, SYSTEM_TENET, RESOLVES); provenance/semantic (TAGGED_CONCEPT[1.0/0.8], MENTIONED_IN, AUTHORED_BY, SUPERSEDES/OBSOLETES/DUPLICATE); work/lifecycle (BLOCKED_BY, SESSION_*, EVALUATED_BY); mailbox/A2A (DELIVERED_TO, SENT_BY, SENT_TO); permission (PERMISSION_EDGE_TYPES: CAN_REPLY_TO, CAN_READ_*); active-steering (STRATEGIC_PIVOT).
- Storage layers: SQLite Native Edge Graph (runtime, multi-tenant RLS — ADR 0015 WAL, ADR 0001 cache-coherence) + Chroma vectors (ADR 0003/0017) + git-versioned JSONL concept ontology (
.neo-ai-data/concepts/, ConceptOntology.md, decoupled during the multi-tenant migration).
- Active interface (MC tools): read/query —
get_node, get_neighbors, query_hybrid_graph, search_nodes, get_context_frontier, get_rem_pipeline_state; write — add_memory, add_message (→ auto-concept extraction), mutate_frontier (→ STRATEGIC_PIVOT), grant_permission, transition_task.
- Provenance: curated@1.0 (
nodes.jsonl tier 0-3) vs gemma4-self-created@0.8 (extractMessageConcepts←MailboxService + ConceptDiscoveryService candidate-mining), discriminated by the guideGapWeightThreshold=0.8 gate.
- ADR-node plan (ADR 0006 / #11377):
AdrIngestor deterministically ingests ADRs as first-class nodes (wired, inserting the 23 ADR nodes) — but they are un-embedded → inert to the semantic candidate pool. Target: embed them for first-class hybrid-GraphRAG queryability.
The Fix
Author ADR 0024 = the composed Native Edge Graph model. It does NOT duplicate the slice-ADRs; it presents the unified ontology + active interface + storage composition + provenance (which no single artifact does) and cites the slices for their decisions. Connects to ADR 0023 (#13805) via Depends-on + the native ADR-node edges (both GRADUATED_FROM #13802). Bar: an amnesiac reader understands the whole graph system from 0024 + its citations.
Decision Record impact
NEW composing ADR. aligned-with ADR 0001 / 0003 / 0006 / 0015 / 0017 / 0018 / 0021 (composes their decisions); connects-to ADR 0023 (governance ↔ model). Does not supersede/challenge any. Graduation lineage: Discussion #13802 (the organism convergence 0023 graduated from; family-keyed quorum met).
Acceptance Criteria
Out of Scope
- The map-fidelity / consolidation-liveness invariants (ADR 0023's domain — 0024 cites, doesn't restate).
- The over-band semantic-fidelity chunker (Discussion #12439).
- Embedding the ADR nodes (the ADR-node-plan target) — 0024 documents the plan; the implementation is a separate lane.
- Any graph behavior change — 0024 is descriptive/composing (documents existing
dev reality).
Related
- Connects-to: ADR 0023 (#13805). Graduated-lineage: Discussion #13802. Sibling leaf: #13807 (honest-consolidation-gap, sub-decision d).
- Composes: ADR 0001, 0003, 0006 (#11377), 0015, 0017, 0018, 0021; guides
ConceptOntology.md, IdentitySchema.md, DreamPipeline.md, KnowledgeBase.md, MemoryCore.md.
Release classification: boardless (foundational architecture documentation; not release-blocking).
Origin Session ID: bd479771-fba8-405a-8d0c-be86a73ee8fc
Retrieval Hint: query_raw_memories("Native Edge Graph unified ontology node edge types active interface ADR 0024 composed model storage layers provenance")
Authored by @neo-opus-vega (Vega).
Context
Operator-directed (2026-06-21): the in-flight ADR 0023 (#13805 — map-fidelity + consolidation-liveness invariants) is "a confusing incomplete tiny fraction — an amnesiac reader does not understand it." Root cause (V-B-A'd this session): 0023 records the graph's governance but the graph MODEL itself is undocumented as a whole — what the graph IS (node/edge ontology), how agents READ / QUERY / WRITE it (the active MC tool surface — "it is not just sandman handoff"), how the storage layers compose, and curated-vs-self-gemma4-created provenance. The model is scattered across 7 slice-ADRs + 5 guides with nothing composing it (the
target-architecture-adr-gap, scoped to the graph layer). Operator chose Option 2: a separate graph-model ADR that 0023 connects to.The Problem
An amnesiac agent (post-compaction — the common case) reading 0023 cannot understand the system it governs. The graph is a rich ACTIVE substrate — agents read/query/write it via MC tools; both curated AND gemma4-self-created nodes accumulate — but no single artifact presents the unified node/edge taxonomy, the active interface, the storage-layer composition, or the provenance model. Each slice-ADR/guide covers a fragment; the whole is only reconstructable by reading all twelve.
The Architectural Reality (V-B-A'd at
devthis session)VALID_TYPES=14 (SemanticGraphExtractor:265);ADRadded deterministically byAdrIngestor(not via the LLM extractor).CONCEPT_EDGE_TYPES: PARENT_CONCEPT, IMPLEMENTED_BY, EXPLAINED_BY, EXEMPLIFIED_BY, REQUIRES, ANALOGOUS_TO); ADR (ADR_EDGE_TYPES: GOVERNS, CITES_AUTHORITY, IMPLEMENTS_DECISION, GRADUATED_FROM, CODIFIES_CONCEPT); structural-protected/non-decaying (PROTECTED_EDGE_TYPES: IMPLEMENTS, EXTENDS, SYSTEM_TENET, RESOLVES); provenance/semantic (TAGGED_CONCEPT[1.0/0.8], MENTIONED_IN, AUTHORED_BY, SUPERSEDES/OBSOLETES/DUPLICATE); work/lifecycle (BLOCKED_BY, SESSION_*, EVALUATED_BY); mailbox/A2A (DELIVERED_TO, SENT_BY, SENT_TO); permission (PERMISSION_EDGE_TYPES: CAN_REPLY_TO, CAN_READ_*); active-steering (STRATEGIC_PIVOT)..neo-ai-data/concepts/,ConceptOntology.md, decoupled during the multi-tenant migration).get_node,get_neighbors,query_hybrid_graph,search_nodes,get_context_frontier,get_rem_pipeline_state; write —add_memory,add_message(→ auto-concept extraction),mutate_frontier(→ STRATEGIC_PIVOT),grant_permission,transition_task.nodes.jsonltier 0-3) vs gemma4-self-created@0.8 (extractMessageConcepts←MailboxService +ConceptDiscoveryServicecandidate-mining), discriminated by theguideGapWeightThreshold=0.8gate.AdrIngestordeterministically ingests ADRs as first-class nodes (wired, inserting the 23 ADR nodes) — but they are un-embedded → inert to the semantic candidate pool. Target: embed them for first-class hybrid-GraphRAG queryability.The Fix
Author ADR 0024 = the composed Native Edge Graph model. It does NOT duplicate the slice-ADRs; it presents the unified ontology + active interface + storage composition + provenance (which no single artifact does) and cites the slices for their decisions. Connects to ADR 0023 (#13805) via Depends-on + the native ADR-node edges (both
GRADUATED_FROM#13802). Bar: an amnesiac reader understands the whole graph system from 0024 + its citations.Decision Record impact
NEW composing ADR.
aligned-withADR 0001 / 0003 / 0006 / 0015 / 0017 / 0018 / 0021 (composes their decisions);connects-toADR 0023 (governance ↔ model). Does not supersede/challenge any. Graduation lineage: Discussion #13802 (the organism convergence 0023 graduated from; family-keyed quorum met).Acceptance Criteria
learn/agentos/decisions/0024-*.mdper ADR-0011 numbering + the ADR template.VALID_TYPES+AdrIngestor+nodes.jsonl+ system nodes).CONCEPT_EDGE_TYPES/ADR_EDGE_TYPES/PROTECTED_EDGE_TYPES/PERMISSION_EDGE_TYPES); the used-but-unenumerated edges flagged.ConceptOntology.md.Out of Scope
devreality).Related
ConceptOntology.md,IdentitySchema.md,DreamPipeline.md,KnowledgeBase.md,MemoryCore.md.Release classification: boardless (foundational architecture documentation; not release-blocking).
Origin Session ID: bd479771-fba8-405a-8d0c-be86a73ee8fc Retrieval Hint: query_raw_memories("Native Edge Graph unified ontology node edge types active interface ADR 0024 composed model storage layers provenance")
Authored by @neo-opus-vega (Vega).