ADR-0001: runex Is an Agent-Native Ontology Runtime
- Status: Accepted
- Date: 2026-05-19
Context
runex is easy to misclassify.
From one angle it can look like:
- a note-centric knowledge tool
- a workflow engine with graph state
- a protocol surface for agents
- a structured memory layer for LLM systems
Those descriptions capture parts of the system but miss the center.
The project now has:
- a typed graph store
- runtime-loadable supertags, machines, and actions
- a reactive event cascade
- a machine-first contract (
Result,manifest(),events) - source and sink channels at the edge
This is already beyond "an app feature" or "a protocol adapter". A clear top-level classification is needed so later product and architecture decisions remain coherent.
Decision
We classify runex as an agent-native ontology runtime.
Equivalent acceptable phrasing:
- an ontology operating system for agents
- an ontology operating substrate
- a machine-first ontology platform
The preferred internal phrase is:
runex is an agent-native ontology runtime
This means:
- the durable center of the system is the ontology-shaped runtime, not any one UI shell
- agents and human-facing products consume the same contract and the same semantic world
- the project's job is to own what is true and why, not merely to expose tools or render screens
Alternatives Considered
1. runex is primarily an app
Rejected.
Reason:
- an app implies a human-facing product shell is the center
- runex's architecture instead centers the runtime contract and semantic graph
- multiple shells can sit on top of it without changing the truth model
2. runex is primarily a protocol
Rejected.
Reason:
- the protocol is the external surface, not the whole system
- the deeper value is the runtime that maintains typed state, reactive behavior, and event provenance
- calling it only a protocol understates the substrate and invites underinvestment in the runtime itself
3. runex is primarily an LLM memory layer
Rejected.
Reason:
- "memory" is too weak a category
- the system models typed objects, identities, links, lifecycles, and actions, not only recollection
- ontology is the correct abstraction, not memory snippets
4. runex is primarily a workflow engine
Rejected.
Reason:
- workflows answer what step runs next
- runex's runtime must also answer what object exists, why it is in this state, and what semantic cascade followed from a write
- workflow is one consumer shape, not the center
Consequences
Positive
- keeps the runtime, not the UI, as the architectural center
- aligns the white paper, architecture, and product direction
- gives a stable frame for future desktop-shell and agent-shell work
- clarifies that
manifest()and the event contract are not incidental APIs but category-defining surfaces
Negative / Tradeoffs
- "ontology runtime" is a stronger and less familiar claim than "app" or "protocol"
- the project takes on the burden of justifying a new class of system, not merely shipping features
Implications
- desktop and web products should be treated as shells on top of the runtime
- agent support should target the runtime contract first, not ad hoc UI automation
- documentation should distinguish clearly between:
- runtime architecture
- contract surface
- product shells