A second brain: dump raw stuff in, an AI agent cleans it up and files it, you read the result. No manual filing, no folder maintenance beyond what the agent does for you.
It combines two ideas:
- SimpleBrain: capture into an inbox, let an AI agent turn it into clean notes.
- PARA: file by actionability (what you're going to do with something) rather than by subject. Four buckets: Projects (has an end date), Areas (ongoing, no end date), Resources (reference material), Archive (inactive).
Every path in this vault's documentation is relative to the vault root.
- Copy this whole folder. It's your vault.
- Open
CLAUDE.mdand fill in the "About You" section: name, role, how you want notes to sound.AGENTS.mdis a symlink to it, so any agent looking for either filename sees the same content. - Run
git initif the folder isn't already a repo. Version control is the safety net behind the "nothing is ever lost" promise, andprompts/archive-sweep.mdreads git history to tell what's genuinely stale. - Open the folder as an Obsidian vault. The notes are plain markdown and readable anywhere, but
[[wikilinks]], backlinks, and graph view are what make00-wikinavigable. Logseq, Foam, and Dendron work too. See "Other tools" below. - Point your AI agent at the folder and have it read
CLAUDE.mdfirst. In Claude Code that'sclaudefrom inside the folder, thenrun prompts/translate.md.
There's one file at the top level, Home.md, the vault's start page with links into each bucket below. Everything else here is a folder, each with its own short README.md explaining what belongs there. Those are static signs on the door, not something you maintain.
00-raw: drop anything here as you capture it, including notes, screenshots, links, and voice memos. Don't sort it yourself. That's the agent's job.00-wiki: topic indexes, and no content of its own. Each note is mostly[[wikilinks]]into the buckets below, grouped by subject. Nothing gets filed here. New indexes start fromtemplates/wiki-note.md. The vault's start page,Home.md, lives at the top level, not in here.01-projects: anything with a specific goal and an end date (Projects). Starts as a single file fromtemplates/project-note.md, status in its frontmatter. Promoted to01-projects/<project>/with a statusREADME.mdfromtemplates/project-readme.mdonce a second note shows up, kept current withprompts/project-digest.md.02-areas: ongoing responsibilities with no end date (Areas), such as health, finances, or a role at work. Same pattern as projects: single file first, promoted to a folder with aREADME.mdonce it needs one.03-resources: reference material (Resources). A single fact is a single file; a topic with enough material becomes a folder. This is the default home for anything that isn't a project or an area.04-archive/: everything inactive (Archive). Processed captures as a permanent record, plus dead folders moved here whole from projects, areas, or resources.
Project and area status READMEs are living documents once they exist. A project or area still living as a single file has no README to maintain, it's just a note with frontmatter. The rest are written once and left alone.
The wiki is an index, not a bucket. Nothing is filed into it.
PARA organizes by actionability, which is what makes it good at answering "what should I be working on." It's bad at answering "what do I know about X," because a single subject scatters across a project, an area, and a handful of resource notes. 00-wiki is the fix: one note per topic, mostly [[wikilinks]] into the three live buckets, grouped by theme, with brief prose on how the pieces relate. A library card catalog, which tells you where things are without holding them.
prompts/translate.md maintains it. After filing a note, it finds or creates that topic's index and links the new material in. Obsidian's backlinks panel and graph view do the rest, so a link only needs to exist on one side.
The test for whether something belongs in a wiki note: if deleting the file would lose information, it's in the wrong place. An index should be reconstructable from the notes it points at.
- Capture. Write or drop anything into
00-raw. Don't think about where it goes. - Process. Ask your agent to run
prompts/translate.md. It reads00-raw, decides what each item is for, files a clean note into01-projects,02-areas, or03-resources, links it into the right00-wikitopic index, then moves the original into04-archive/raw/. - Review. Start at
Home.mdfor a snapshot of what's active, or00-wikiwhen you want everything on one subject regardless of which bucket it landed in. - Digest. Ask your agent to run
prompts/project-digest.mdon a project folder any time you want its README brought up to date. - Retire. When a project finishes, an area winds down, or a resource stops being useful, run
prompts/archive-sweep.md. It finds inactive folders, confirms with you, then moves them into the matching04-archivesubfolder. - Audit. Once a month, run
prompts/audit.md. See "Keeping it honest" below. - Front page. Steps 2 and 5 already keep
Home.mdcurrent on their own. Runprompts/home-digest.mdby itself only if it falls out of date some other way.
You never file anything by hand. If a note ends up in the wrong bucket, tell your agent and it'll move it. The rule it's following is in CLAUDE.md.
prompts/translate.md: process00-rawinto filed notes. Run whenever the inbox has piled up.prompts/project-digest.md: refresh a project's or area's README from its notes.prompts/archive-sweep.md: find and retire inactive projects, areas, and resources.prompts/audit.md: read-only health check for broken links, duplicates, misfiles, and orphans. Run monthly.prompts/home-digest.md: refreshHome.md's status section with what's actually in each bucket. Runs automatically at the end oftranslate.mdandarchive-sweep.md; run it by hand ifHome.mdlooks stale for any other reason.
See templates/README.md for what each one is and where its output lands.
templates/project-readme.md: shape of a01-projects/<project>/README.md.templates/area-readme.md: shape of a02-areas/<area>/README.md.templates/wiki-note.md: shape of a00-wikitopic index.
Notes in 03-resources are free-form and have no template.
Everything above writes to the vault. Nothing above checks it, and a second brain that quietly degrades is worse than none, because you trust it. prompts/audit.md is the counterweight. Run it monthly, read what it found, fix the top few things. Skipping it is how you end up with three notes on the same topic and a link graph full of holes.
The whole folder should be a git repo. Commit after each batch of captures. Two things depend on it: recovering from a bad merge or a misfile, and prompts/archive-sweep.md, which uses git history to tell what's genuinely stale. Filesystem timestamps lie after any clone or sync.
Processed captures land in 04-archive/raw/ permanently. For text that's free. For screenshots, voice memos, and video it isn't: git stores every version forever, and a vault fed from a phone camera will reach gigabytes. Either keep large media out of the vault and capture a text description instead, or add 04-archive/raw/*.mp4 and similar patterns to .gitignore and accept that those files aren't versioned.
If you sync this vault across devices (Obsidian Sync, iCloud, Dropbox) and use git, run the agent on one device at a time. A sync client and a git checkout writing the same files concurrently produce conflicts that are tedious to untangle.
The vault is plain markdown in plain folders, so any editor can read it. The one hard dependency is [[wikilinks]], which need a tool that resolves them: Obsidian, Logseq, Foam (VS Code), or Dendron. Plain markdown viewers, including GitHub's web interface, render [[like this]] as literal text and won't link anything.
If you'd rather keep it universally readable, change the linking rule in CLAUDE.md and prompts/translate.md to relative markdown links ([text](../00-wiki/note.md)). You lose backlinks and graph view and gain rendering everywhere.
Notion, Evernote, and similar hosted apps can't be used directly. They store notes in a database rather than files on disk, so an agent has no folder to point at. You'd be importing and exporting on every cycle, which defeats the loop.
Any agent that reads CLAUDE.md or AGENTS.md works: Claude Code, Cursor, Codex, Copilot, Gemini CLI, and others.