Give your AI agent persistent, validated memory across sessions and machines. A small set of canonical Markdown files hold current truth; a dependency-free Python script enforces the rules — no stale facts, no silent overwrites, no lost context when a session crashes.
Python
3
5 commits
updated Oct 7, 2026
This repository documents, and partly ships, the system one person uses to run several small businesses with Claude as the day-to-day assistant: project folders on a synced drive, a Windows PC that works overnight, and an hourly email importer. It has been in daily use since mid 2026 and is rebuilt from scratch when a PC is replaced.
It is written for people who have the same problem: an assistant that is useful inside one conversation and forgets everything between two of them.
A conversation with an AI assistant is a good place to work and a bad place to store anything. Facts drift, corrections are lost, the assistant reasserts a figure you fixed two weeks ago, and nothing that happened in a chat is visible to the next one. The usual answer is more memory: bigger context, summaries of past chats, a vector store. We went the other way.
| Layer | Holds | Examples |
|---|---|---|
| Canonical truth | current facts, editable, one owner each | DECISIONS.md (why, not only what), CONTEXT.md (glossary), LOG.md (dated facts), a _LEDGER.md per library zone, the task register |
| History | what happened, when | one handoff per topic per session (deltas only), a daily record written by a script, a chat archive |
| Evidence | unaltered sources | the document library, email threads saved verbatim with their attachments |
| Generated | disposable, rebuilt nightly | the task board, a search index, the "needs you" mail list, a run-health strip |
| Tooling | everything the assistant reads to do its job | the ops git repository: skills, prompts, scripts, manual, installer |
Input\Emails\, appends a knowledge note to the project log when there is one, and rewrites one cross-project needs-you list. The only change it makes in the mailbox is one label./start requests the folders in one window and prints a menu: kickoff ready, open work, waiting on someone, plan, blocking items, mail on this topic, something new. Decisions are written to the log the turn they are taken. /handoff closes: every open item of the previous handoff reappears as open, done with proof, or dropped with a reason; every "waiting for a reply" line is checked against the mail ledger before it is written.ARCHITECTURE.md: the full description. Layers, the library and filing rules, the session bookends, the task layer, the email layer, the unattended jobs, the repository and reinstall, and what we abandoned since the first version and why.templates/: the handoff template (8 KB cap, supersedes diff), the decision log header, the project log format, the needs-you list format.legacy/: the first version of this repository (August 2026): a close-time validator script, memory_check.py, with its templates and a worked example. It still works on its own. We stopped using it; ARCHITECTURE.md section 10 says why.No business data, no personal data, no live code with credentials. Scripts named here (the importer, the daily record, the mail-state reader) are described, not shipped, in this version.
Reference documentation of a live, single-operator system, genericised for sharing. Not a product. MIT, see LICENSE.
Give your AI agent persistent, validated memory across sessions and machines. A small set of canonical Markdown files hold current truth; a dependency-free Python script enforces the rules — no stale facts, no silent overwrites, no lost context when a session crashes.
Python
3
5 commits
updated Oct 7, 2026
This repository documents, and partly ships, the system one person uses to run several small businesses with Claude as the day-to-day assistant: project folders on a synced drive, a Windows PC that works overnight, and an hourly email importer. It has been in daily use since mid 2026 and is rebuilt from scratch when a PC is replaced.
It is written for people who have the same problem: an assistant that is useful inside one conversation and forgets everything between two of them.
A conversation with an AI assistant is a good place to work and a bad place to store anything. Facts drift, corrections are lost, the assistant reasserts a figure you fixed two weeks ago, and nothing that happened in a chat is visible to the next one. The usual answer is more memory: bigger context, summaries of past chats, a vector store. We went the other way.
| Layer | Holds | Examples |
|---|---|---|
| Canonical truth | current facts, editable, one owner each | DECISIONS.md (why, not only what), CONTEXT.md (glossary), LOG.md (dated facts), a _LEDGER.md per library zone, the task register |
| History | what happened, when | one handoff per topic per session (deltas only), a daily record written by a script, a chat archive |
| Evidence | unaltered sources | the document library, email threads saved verbatim with their attachments |
| Generated | disposable, rebuilt nightly | the task board, a search index, the "needs you" mail list, a run-health strip |
| Tooling | everything the assistant reads to do its job | the ops git repository: skills, prompts, scripts, manual, installer |
Input\Emails\, appends a knowledge note to the project log when there is one, and rewrites one cross-project needs-you list. The only change it makes in the mailbox is one label./start requests the folders in one window and prints a menu: kickoff ready, open work, waiting on someone, plan, blocking items, mail on this topic, something new. Decisions are written to the log the turn they are taken. /handoff closes: every open item of the previous handoff reappears as open, done with proof, or dropped with a reason; every "waiting for a reply" line is checked against the mail ledger before it is written.ARCHITECTURE.md: the full description. Layers, the library and filing rules, the session bookends, the task layer, the email layer, the unattended jobs, the repository and reinstall, and what we abandoned since the first version and why.templates/: the handoff template (8 KB cap, supersedes diff), the decision log header, the project log format, the needs-you list format.legacy/: the first version of this repository (August 2026): a close-time validator script, memory_check.py, with its templates and a worked example. It still works on its own. We stopped using it; ARCHITECTURE.md section 10 says why.No business data, no personal data, no live code with credentials. Scripts named here (the importer, the daily record, the mail-state reader) are described, not shipped, in this version.
Reference documentation of a live, single-operator system, genericised for sharing. Not a product. MIT, see LICENSE.