Skip to main content
A vault is a folder of markdown notes linked with [[wiki links]]. 9p reads the index, follows links to what’s relevant, and writes back what it learns. It’s an Obsidian vault if you point Obsidian at it — but Obsidian is optional. The structure is what matters, not the app.

Setup

Creates the scaffold and records the path in .9p/config.json:

Mapping the codebase

Explores the project and writes concise wiki notes into graph/ — an index plus one note per module, each linking to related notes. Re-run it to refresh; it updates notes in place rather than duplicating. This routes on economy bias deliberately: it’s bulk read-and-summarise across a whole repo.

The index-note pattern

The pattern that makes this work: every folder has a master note named after the folder, wiki-linked to everything inside it.
vault/jobs/release/release.md
9p reads one note, follows the links, and arrives fully briefed. You don’t have to tell it which files to read.

Decisions

The highest-value notes are the ones git can’t reconstruct — why something is the way it is:
vault/decisions/why-no-orm.md
Months later, “why was this decided?” has an answer.

Daily notes

Ask 9p to log at the end of a session:
Put a short index at the top of each daily note. Future sessions scan indexes instead of reading every note in full.

Anti-bloat

Worth stating in your 9P.md:
Without a rule like that you accumulate hundreds of near-duplicate notes, and a sprawling vault is worse than none — the agent trusts stale notes over the code.
Point Obsidian at the folder if you want the graph view. It’s a good way for you to see the shape of the knowledge; 9p reads the markdown either way.