How I built a two-agent AI chief of staff inside Obsidian (and you can too)

Disclaimer

Is this project open source? No - but the full pattern and vault structure are below, free to copy.

Is this project completely free? No. Everything needed to build it yourself is in this post for free; a paid ready-made vault is named at the end for people who want to skip setup.

Is this project vibe-coded beyond the author’s ability to comprehend how it works? No.

Community Directory: N/A - this is a custom vault / workflow showcase, not a plugin or theme.

For the past month my vault has been running a daily “agent round”: a Planner agent reads my task list, open loops, and research agenda, then writes 1-3 small briefs to a handoff note. An Executor agent picks up each brief, does real web research (search + page fetches), writes a report with cited sources back to the same note, updates the task files, and archives finished work into monthly notes. A second Planner pass reviews the round and saves any new durable facts about me to a profile note.

The thing that made it click: everything is plain markdown in the vault. The agents’ instructions are notes. The handoff board is a note. Memory is a note. The graph view ends up showing the system’s thinking over time, and I can edit a prompt the same way I’d edit any other file.

The structure, if you want to build it yourself:

CLAUDE.md - rulebook both agents read first

Tasks/TASKS.md - active tasks (checkboxes, due dates)

Tasks/Open Loops.md - waiting-on and follow-ups

Agents/Planner.md - planner instructions

Agents/Executor.md - executor instructions

Agents/Handoff.md - briefs go down, reports come back up

Agents/LOCK.md - concurrency lock so two rounds never collide

Notes/Owner Profile.md - durable facts, long-term memory

Notes/Round Scorecard.md - one line per round: what got done, self-score, verified y/n

Archive/YYYY-MM.md - finished work, by month

Design details that mattered more than I expected: every brief must name a verifiable artifact (a file, a table, a note), otherwise the executor produces vague prose; the lock file prevents overlapping rounds; and a ~200-line tripwire forces the handoff board to be archived before it becomes token soup. The runner is a single Python script that calls the Anthropic API with my own key and prints token usage and estimated cost after every round - typically a few cents.

Questions about the pattern are very welcome - it is genuinely buildable in an afternoon from the structure above. If you would rather start from a working version, I packaged the vault, the agent prompts, and the runner script as a one-time $39 download called Claude Mind Starter. My account is too new to post links, so if you want it, search for Claude Mind Starter on Gumroad (the site is claudemindstarter on Netlify). I will keep all future updates for this project in this thread per the forum rules.