You work with an AI agent on projects, and instead of losing the reasoning behind your decisions, the agent files it into a structured markdown wiki — under a written contract that governs what it may write, what it must ask you about, and what it can never touch.
No app. No database. No embeddings. Just files an agent is disciplined about.
Three ordinary tasks, walked step by step in A Day in the Life.
Two of them only show up after the wiki exists.
Code survives, but why you made a decision doesn't. benchbook captures the rejected alternatives, the reasoning, and the context alongside the artifact.
The concept →Humans stop maintaining wikis because it's tedious. An AI doesn't get bored, so the maintenance cost drops to near zero.
Why the obvious fixes don't hold →The counterintuitive failure mode: when maintenance is free, you get too much content. A significant chunk of the contract exists to make the agent write less.
Keeping it honest →Six moving parts. Mostly plain markdown, plus 870 lines of dependency-free Python and shell.
One file the agent reads at session start: hard rules, page conventions, what needs your approval. It is co-owned — the agent proposes changes to it and never edits it silently.
Read agents-core.md →source, entity, reference, project — each with a template, required frontmatter, and a placement rule that decides where a thing goes before you have to think about it.
Page types →Per-domain catalogues the agent reads before answering. This is the retrieval layer. No vector store, no embeddings, nothing to re-index after an edit.
How retrieval works →A typed graph across the pages, drawn from a 36-term controlled vocabulary. Each fact is stored exactly once, so a script reads it back from both directions — what runs on this, what backs it up, what a decision touched.
The second axis →Packaged procedures for the recurring jobs: ingest a source, start or open a project, stress-test a plan, lint, close a session. They carry a maturity field, because a skill with no uses might be new or might be dead.
The core six →Every mechanical rule as a script you can run in a fresh clone. Errors block a commit through a git hook; warnings never do; anything needing an opinion stays advisory and goes in a report.
Keeping it honest →“Why did I pick that library three months ago?”
A README captures the first. Git captures the second. Almost nothing captures the third — and the third is the one you actually miss.