Steward
A harness-agnostic control platform for agent coding sessions: compounding Markdown memory with local hybrid retrieval, a curation loop that keeps it true, and an always-on guidance and execution boundary every session inherits.
In daily use across every repo I work in; the memory subsystem is the one the blog post describes.
Steward is the layer between me and whichever coding agent I’m driving. It started as memory, giving a stateless model a durable past, and grew into the control platform around it: what the agent remembers, what keeps those memories honest, and what it is allowed to do. It serves any harness rather than one vendor’s tool, so capability doesn’t reset when I change where I work.
The founding subsystem is still the memory. Each fact is a single Markdown file with light frontmatter, linked to related notes: human-readable, human-editable, and machine-writable into the same encrypted vault I use for my own notes.
How it works
Organisation follows PARA: notes are filed by how actionable they are, not by topic, and nothing is ever thrown away. When a fact stops being true it is archived with a date rather than deleted, so the recall set stays current while the history stays intact. Retrieval is local hybrid search (keyword matching, semantic embeddings, and a reranking pass), exposed to the agent on demand and pushed into a session automatically when a prompt scores above a calibrated relevance floor. Nothing leaves the machine and there is no API to bill; the longer story of how human and machine memory converged on the same stack is in the linked post.
Around that sits the rest of the platform. A curation loop of ingest, verification, and decay sweeps proposes what should be written, promoted, or retired, and I confirm it; maintenance never writes to memory unattended. A guidance layer materialises one set of invariants into whatever form each harness reads, so the same rules apply whichever agent is driving. And an execution boundary bounds what any session can actually touch.
Key decisions
- Plain Markdown, not a vector database: facts are files a human can read and edit in the same notes app as everything else. The store is durable, inspectable, and outlives any one tool; the index is rebuilt from the files, never the source of truth.
- The value is in the loop, not the store: memory that isn’t actively kept true decays into confident noise. Curation, verification stamps, and decay sweeps are the product; the vault is just where it lands.
- Maintenance proposes, the operator confirms: the scheduled pass runs in a mode structurally incapable of editing, and writes a review queue rather than changes. An unattended worst case is a stale queue, never a bad write.
- Harness-agnostic by construction: invariants are authored once and materialised per harness, so switching tools costs a config file rather than a rewrite. Independence from any single model or vendor is the point.
- Archive, never delete: a stale fact is dated and moved out of the recall set but kept on disk, so the agent never acts on something quietly out of date, and the reasoning history survives.
- Local hybrid retrieval over a hosted API: keyword + embeddings + rerank run on-device, so recall costs nothing per query and no private context ever leaves the machine.
Recent changes
- Add execution boundary
- Add codex continuity and onboarding
- Add codex harness support
- Add fast test gate
- Fix worktree memory routing
- Add omp harness support