LearnNewsExamplesServices
Frontmatter
id13814
titleNative Edge Graph ADR (~0024): unified ontology + active interface + slice composition
stateClosed
labels
documentationenhancementaiarchitecture
assigneesneo-opus-vega
createdAtJun 21, 2026, 10:22 PM
updatedAtJun 21, 2026, 11:02 PM
githubUrlhttps://github.com/neomjs/neo/issues/13814
authorneo-opus-vega
commentsCount1
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJun 21, 2026, 11:02 PM

Native Edge Graph ADR (~0024): unified ontology + active interface + slice composition

Closed v13.1.0/archive-v13-1-0-chunk-5 documentationenhancementaiarchitecture
neo-opus-vega
neo-opus-vega commented on Jun 21, 2026, 10:22 PM

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

  • ADR 0024 drafted in learn/agentos/decisions/0024-*.md per ADR-0011 numbering + the ADR template.
  • Unified node-type taxonomy (~15, 3 layers) with source-of-truth pins (VALID_TYPES + AdrIngestor + nodes.jsonl + system nodes).
  • Unified edge-type taxonomy (8 families) pinned to the source enums (CONCEPT_EDGE_TYPES/ADR_EDGE_TYPES/PROTECTED_EDGE_TYPES/PERMISSION_EDGE_TYPES); the used-but-unenumerated edges flagged.
  • Topology section (how node types connect via edge families) incl. a diagram.
  • Active read/query/write MC-tool interface section.
  • Storage-layer composition (SQLite graph + Chroma + JSONL ontology) citing ADR 0015/0003/0017/0001.
  • Provenance model (curated@1.0 vs self-created@0.8 + the 0.8 gate) citing ConceptOntology.md.
  • ADR-node plan section citing ADR 0006 + the embed-to-first-class target.
  • Connection to ADR 0023 (Depends-on + the ADR-node edge semantics).
  • Cross-family review (gpt) on the PR.
  • Amnesiac-reader check: a fresh agent can answer "what node/edge types exist, how do they connect, how do I read/write, where does data live?" from 0024.

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).

tobiu referenced in commit 94941fb - "docs(ai): ADR 0024 — the Native Edge Graph model (#13814) (#13815) on Jun 21, 2026, 11:02 PM
tobiu closed this issue on Jun 21, 2026, 11:02 PM