Long-term memory for your AI, in plain text files you own
AI assistants forget everything between chats, and their built-in memory is a few short summaries. So I keep a folder of plain markdown notes that Claude reads at the start of every session and updates as we work: what I'm building, what's been decided and why, what keeps breaking. It now holds over 300 numbered decisions and a few hundred project and thread notes, and it's why Claude can pick up a months-old project without me re-explaining it. This guide is how to build one, with a free starter vault and an AI playbook that sets it up with you.
A folder of markdown files, organized so an AI can find what it needs fast and write things back in the right place. You open the same folder in Obsidian to read and edit it yourself.
Built-in memory and the vault work well together: let the built-in memory hold one-line pointers, and keep the full story in the vault.
Keep work and personal separate. I run two vaults: one for projects and business that Claude uses every day, and a personal one for journaling and reflection that it only touches when I ask.
Flat beats nested. Each folder answers one question, so both you and the AI always know where a note goes.
Profile/ who you are, how you work, what you're good at
Stack/ tools, accounts, integrations, tech choices
Projects/ active work · _active-projects.md is the index
Threads/ running topics not settled yet · _open-threads.md
Decisions/ numbered choices with reasons · _decision-log.md
Constraints/ rules the AI must follow · rules.md
Glossary/ your shorthand and acronyms · terms.md
Templates/ project.md, thread.md, decision.md
An AI that reads your whole vault every session is slow and expensive. Give it a few short files to read first, and let it open deeper notes only when the task needs them.
_session-briefing.md: you in 30 seconds, the top rules, the top three projects, and what's connected. Read first, every time._vault-map.md: what's in each folder, so the AI doesn't have to scan for it._active-projects.md and _open-threads.md: one line per item with status and the next step, linked to the full note._decision-log.md: a table of every decision, one line each.The order is written into my rules file: briefing, then map, then only what the task needs. Targeted reads instead of loading everything. Every file the AI opens costs time and tokens, so the front door does most of the work.
Every project, thread and decision uses the same shape, so the AI reads them the same way every time. Keep them short:
# Project Name
**Status**: planning | in-progress | blocked | on-hold | shipped
**Started**: 2026-11-09
**Goal**: one line
## What This Is
two or three sentences
## Key Decisions
- [[Decisions/012-short-name]]
## Current State
what's done, what's next, any blockers
## Open Questions
- question
Use fixed status words. Projects: planning, in-progress, blocked, on-hold, shipped. Threads: active, resolved. Decisions: proposed, accepted, superseded. Then "what's blocked?" has a real answer.
Link notes with [[double brackets]]. Obsidian turns them into clickable links and a graph, and the AI can follow them.
The single most useful folder. Every real choice gets a numbered note: the context, what you decided, what you didn't pick and why, and what it means going forward. The point is that you and the AI stop relitigating settled questions. When something comes up again, the answer and the reasoning are already there.
012-short-name.md, numbered in order, and add a row to _decision-log.md.superseded, with a link.I kept a "next free number" note at the top of the log, and it kept going stale, so two decisions ended up with the same number. Now the rule is: list the Decisions folder right before writing a new one and use the highest number plus one. Check the files, not a note about the files.
Constraints/rules.md is where standing instructions live: how you like answers, what the AI should never do, what to check before acting. Mine includes things like "be concise," "check the Stack notes instead of asking me what tools I have," and "evidence before assertions."
I also keep a playbook of lessons from real mistakes, one line each, in a format the AI can match against the task in front of it:
- [2026-08-03] Trigger: about to plan changes to an app based on
a note describing it. Rule: open the actual file first, then fix
the note. Why: the note was two sessions stale and hid a conflict.
Before any real task, the AI scans for lessons whose trigger matches. It's how one mistake stops being a repeat mistake.
The AI has to be told the vault exists, where it is, and how to use it. With Claude Code, put a CLAUDE.md file in the folder you work from. It's read automatically at the start of every session. The starter vault includes one:
# How to use my vault
Vault: /path/to/your/vault
1. Read _session-briefing.md first, then _vault-map.md.
2. Open other notes only when the task needs them.
3. After work that changes a project, update its note and
the index line. New decisions get the next number.
4. Unsure about a fact? Write it with <!-- verify -->
instead of guessing or stopping to ask.
5. Never store passwords, keys or account numbers.
You can also package these instructions as a Claude skill, so the same rules load in any session where you call it.
Typing the command to load my vault instructions was not the same as the AI actually loading them. More than once it said it had, and hadn't. Now I check: ask "what does my briefing say my top project is?" If it can't answer from the file, it didn't read it.
A stale vault is worse than no vault, because the AI trusts it.
<!-- verify --> marker for you to check, instead of being written as fact.A thread note described one of my apps as a simple list with search. The real app had six screens, including a paywall that contradicted a decision I'd already made. Planning from the note would have built on a version that didn't exist. When a note describes something real (code, a document, a page), open the real thing first, then fix the note.
CLAUDE.md and the briefing.I ended up with duplicate vault folders nested inside each other and a pile of conflict copies after a sync merge. Worse, two AI sessions running at the same time wrote decisions into two different folders, numbered in opposite directions, and I had to reconcile them by hand. Now there's one canonical path, and the AI checks it before every write.
The starter vault is the empty structure from this guide: the folders, index files, templates, a rules file and a CLAUDE.md, ready to open in Obsidian. The AI playbook is a text file you paste into Claude or ChatGPT. It interviews you about your work, fills in your profile, briefing and first few projects with you, and sets up the rules for how it should read and write the vault from then on.
Obsidian is free and the vault is just files. These keep it safe. Each slot has a budget, a pick and an upgrade, with what each is best for. "I use this" marks gear I own. Links open on Amazon.
Disclosure: As an Amazon Associate I earn from qualifying purchases. Product links on this page are affiliate links. Items marked "I use this" are gear I own; the rest are options I researched. The price you pay is the same. Obsidian and Claude are named because I use them, not because they pay me.