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
- What is an experience?
- Code-as-Law — our central thesis
- The 6 node kinds — at-a-glance + decision tree
- State (SQLite blackboard)
- Edges & control flow
- Events & event log
- Scheduler — Sequential vs Parallel
- Dispatchers — the pluggable execution layer
- Cache key + memoization — how
oe resumeworks - 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.
| Page | What it covers |
|---|---|
| Experiences | The unit of authoring + the file layout |
| Code-as-Law | Why YAML, why not autonomous |
| Node kinds | The 6 kinds + the decision tree |
| State | SQLite blackboard + merge strategies |
| Control flow | Edges, when:, for_each, pipelines, loops |
| Events | The 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.
| Page | Kind |
|---|---|
| tool | Deterministic JS function |
| agent | LLM with AJV-validated structured output |
| skill | Reusable SKILL.md package |
| dataset | File / SQLite / HTTP / MCP-resource loader |
| experience | Nested sub-experience |
| cli-agent | Subprocess to Claude Code / Codex / Gemini |
Runtime
How the graph actually executes.
| Page | What it covers |
|---|---|
| Scheduler | Sequential + Parallel, wave algorithm |
| Dispatchers | One per kind, two-phase resolve + run |
| Cache | Content-hash memoization for oe resume |
| Evolution loop | The advisor and the 3 operations |
Where to next
- Want to write your first experience? → Guide: First Experience
- Want to see real examples? → Examples gallery
- Want to evaluate against other frameworks? → Compare
- Want the YAML schema? → Schema reference