Skip to content

Concepts

Start here if you want to understand the system before writing YAML. Each page is 5–10 minutes; read top-to-bottom for the full conceptual tour, or jump to whichever piece you need.

Recommended order

  1. What is an experience?
  2. Code-as-Law — our central thesis
  3. The 6 node kinds — at-a-glance + decision tree
  4. State (SQLite blackboard)
  5. Edges & control flow
  6. Events & event log
  7. Scheduler — Sequential vs Parallel
  8. Dispatchers — the pluggable execution layer
  9. Cache key + memoization — how oe resume works
  10. Evolution loop — author → run → evolve closes :::

Core model

The mental model in one paragraph: an experience is a YAML-declared DAG of nodes running over a SQLite-backed state with a JSONL event log. The graph never changes at runtime — that's Code-as-Law. LLMs only fill in node bodies. After a run, the evolution loop can propose YAML diffs.

PageWhat it covers
ExperiencesThe unit of authoring + the file layout
Code-as-LawWhy YAML, why not autonomous
Node kindsThe 6 kinds + the decision tree
StateSQLite blackboard + merge strategies
Control flowEdges, when:, for_each, pipelines, loops
EventsThe JSONL event log + 10 event types

Node kinds in depth

A page per kind — what's in the YAML, what the dispatcher does, the gotchas.

PageKind
toolDeterministic JS function
agentLLM with AJV-validated structured output
skillReusable SKILL.md package
datasetFile / SQLite / HTTP / MCP-resource loader
experienceNested sub-experience
cli-agentSubprocess to Claude Code / Codex / Gemini

Runtime

How the graph actually executes.

PageWhat it covers
SchedulerSequential + Parallel, wave algorithm
DispatchersOne per kind, two-phase resolve + run
CacheContent-hash memoization for oe resume
Evolution loopThe advisor and the 3 operations

Where to next

Released under the MIT License.