Verified Memory Vault
August 26, 2026 · View on GitHub
Free · Obsidian vault · Persistent memory for agents that proves it works
A small vault that gives AI coding agents (Claude Code, Codex, Gemini CLI, …) a persistent memory — and, unlike a bare folder structure, it checks itself and protects itself:

memory_check.pyscores the memory's health at any time: protocol violations, dead links, bloat, inbox pressure. One command, honest report.memory_guard.py(optional git hook) refuses the commit that deletes your agent's brain — the documented way agent memories die.
Companion to the human-side Second Brain Starter — the free starter vault for people who want a working note system in 10 minutes. https://secondbrainstarter.github.io/
Why this exists
"Give your agent an Obsidian vault as memory" is now a known idea. What breaks in practice is not the idea but the maintenance:
- Memory rots — undated entries, duplicates, and speculation fossilize, and a bloated MEMORY.md quietly eats the context window.
- Memory dies — agents occasionally delete or rewrite their own memory files while "cleaning up".
- Nobody notices until it's too late — a folder structure cannot tell you whether it still works.
This vault addresses all three with two dependency-free Python scripts and
a strict protocol. No Node, no TypeScript, no plugins, no database — if you
can run python3, you can verify your agent's memory.
What's inside
CLAUDE.md— boot file every agent reads first (rules + protocol)MEMORY.md— durable memory: dated, append-only, one line per fact01_Daily/— one note per session: work done, decisions, blockers00_Inbox/— capture everything; sort later02_Templates/— daily note templates (EN + DE)tools/memory_check.py— health check (score, problems, exit code). The score is telemetry for humans; the exit code is the contract, graded by risk class: 0 = healthy, 1 = degraded (hygiene defects like dead links or bad note names), 2 = provenance breach (undated, duplicated, or near-duplicated memory entries — the memory can no longer be trusted about when something was learned). Near-duplicate detection compares date-stripped, stopword-filtered token sets: a fact re-captured in different wording or with an added detail is flagged even though the lines are not byte-identical. Gate session-shutdown hooks or CI steps on it; treat exit 2 as strictly worse than exit 1.tools/memory_guard.py— git pre-commit guard against mass deletion (file count AND absolute removed-lines cap) and history rewrites of MEMORY.md
Quick start (10 minutes)
- Install Obsidian (free): https://obsidian.md
- Download the vault: grab the ZIP from the latest release — or clone this repo.
- Unzip → Obsidian → "Open folder as vault". Daily notes and templates are preconfigured.
- (Recommended) Make it a git repo and install the guard:
git init && ln -s ../../tools/memory_guard.py .git/hooks/pre-commit - Tell your agent to read
CLAUDE.mdat session start and to runpython3 tools/memory_check.pyonce per session. - End of session: fill the daily note, promote durable facts to
MEMORY.md. That's the whole habit — and now it's verifiable.
Gate automation on exit codes, not scores: memory_check.py returns
0 (healthy), 1 (degraded — hygiene defects) or 2 (provenance breach —
undated/duplicated/near-duplicated memory entries, the stricter class).
Hook that into
session shutdown or CI; the printed score is a dashboard for you, not a
contract for machines.
Verify your copy in one command (no dependencies, stdlib only):
python3 tests/self_test.py
It builds throwaway vaults and real throwaway git repos, then asserts both contracts end-to-end: healthy → 0, hygiene defect → 1, undated/duplicated/near-duplicated → 2 — plus every memory_guard refusal (mass deletion, history rewrite without archiving, removed-lines cap) and the legitimate paths (append, archive-and-trim) staying allowed. The same suite runs on every push via GitHub Actions (latest run).
The three rules
- Capture, don't sort. Everything lands in
00_Inbox/first. - Every session leaves a daily note. So the next session resumes cold.
- Promote durable facts to
MEMORY.md. Append-only, dated, one line, verifiable only.
How this differs
- vs. plain vault templates: this one checks its own state instead of assuming it.
- vs. heavy agent-memory frameworks (hooks, MCP servers, semantic search): everything here is readable Markdown plus two ~200-line stdlib scripts — you can audit all of it in ten minutes.
- Bilingual by design (EN + DE); the agent mirrors your language.
License
Vault content: CC BY 4.0 — free to use, including commercially; attribution
required (LICENSE.md). Tools under tools/: MIT.