fig. p-01 · context runtime

the problem
Agents are useful and they still walk into work cold. They know the task and miss the person, the project, the decision made last week, the format the team already agreed on. Most memory tools answer this by saving everything a conversation produced. The useful part was never the outcome, it was the decision inside it and who it was about.
A wrong memory about a person does more damage than a missing one, so correctness matters more than coverage.
what I did
Marshmallow is a local context runtime. You hand it sources you chose, notes, corrections, rejected outputs, PDFs, a URL, and it turns them into a small, source-backed graph of entities, decisions, relationships, and working rules. Agent-written indexes keep future agents from crawling the whole graph. Task-shaped recall packets brief an agent before a meeting, a handoff, or a piece of focused work. A short runtime file tells the agent to check the indexes first and load only what matters now.
Everything is a plain file under ~/.marshmallow. No hosted profile, no dashboard, no database, no memory daemon. Nothing durable is written without explicit approval, every applied change keeps a byte-exact backup, and rollback is a command. Python, MIT license, with skills for Claude Code and AGENTS.md adapters for Codex and Cursor. I build and maintain it in the open.
method
The trust gate sits at promotion, not capture. Any agent can drop a note into the inbox; nothing reaches the graph until a person reviews it and the node cites a source. The unit of evaluation is a recall: I write the graph by hand, ask the runtime to brief an agent for a real piece of work, and read the brief. A brief that invents a fact fails. A brief that omits a decision fails. A brief that says wait, the open loop is yours, passes.
what I found
Outcome logs are easy to store and nearly useless at the door. What an agent needs is small, argumentative, and has to be editable by the person it is about. Explicit learning is slower than background capture and it is the only version I trust, because a graph you did not approve is a graph you will stop reading.
open
How much of a working relationship can sit in a file before the file starts lying. How to measure a recall against a person's own sense of what mattered. The public runtime is the current answer, not a finished one.