Keeping Track of My Work Stopped Being Work
Six years of Obsidian, two weeks of Claude Code, and a wiki schema lifted from Karpathy.

I have been on Obsidian for six years. The vault survived three device changes, two work project changes, and every shiny note-taking tool that came out in between.
The maintenance was the problem. Notes go stale the moment you close the file. Cross-references rot. After a few months you have a folder of orphans, a graph view that looks impressive in screenshots and is useless in practice, and a vague feeling that you should "reorganize things this weekend." You never do.
Two weeks ago I read Karpathy's LLM Wiki gist and copied the idea wholesale.
The shift: you don't maintain the knowledge base. The LLM does. You drop raw stuff into a folder. You ask questions in plain English. The model handles the bookkeeping you would never do yourself.
Two weeks in, this is the first time in six years I'm actually using my notes. Keeping track of work, ideas, and projects without thinking about where things go or how I'll find them again.
Here is what the setup looks like.
The Layout
The vault is a git repo. Folders split by ownership.
Obsidian/
├── raw/ # source docs. Claude reads, never edits
├── wiki/ # synthesis layer. Claude owns this entirely
│ ├── concepts/
│ ├── entities/
│ ├── sources/
│ ├── synthesis/
│ ├── index.md
│ └── log.md
├── Daily/ # YYYY-MM-DD.md, synced with Kanban.md
├── Personal/ # mine, Claude only edits on request
├── Work/ # mine, Claude only edits on request
└── CLAUDE.md # the rulebook
raw/ is the inbox. Drop and forget. wiki/ is what Claude rebuilds and cross-links. Personal/ and Work/ are mine. Claude doesn't touch them unless I ask.
That split is the part that matters. If Claude could rewrite my meeting notes, I would never trust the wiki to reflect what I actually decided.
CLAUDE.md is the Whole System
No plugin, no MCP server, no glue script. One markdown file at vault root tells Claude Code how to behave. It defines:
Which folders Claude owns vs. which are mine
The frontmatter every wiki page must have
Four operations:
ingest,query,lint wiki,daily log
Every wiki page has the same five frontmatter keys:
yaml
---
title: Retrieval Augmented Generation (RAG)
type: concept
tags: [AI, RAG, LLM, vector-db, retrieval]
sources: 1
updated: 2026-04-21
---
sources counts how many raw docs fed into the page. updated is what lint wiki checks for staleness. That's it.
The Four Operations
ingest <thing>
I drop a file in raw/ or paste content. Claude reads it, extracts facts, and updates the wiki. A single ingest typically touches 5–15 pages: a source page, a few concept pages, an entity page, plus the index and the log.
The cross-linking is where it compounds. I ingested a batch of AI papers and a separate batch of Flutter notes on different days, expecting them to live in different corners of the graph. Claude flagged that both connected back to my work (AI research and the company's Flutter app) and asked before stitching them into the same entity pages. Confirmed, done. That kind of "wait, these belong together" pass is exactly what I never do by hand. The graph becomes useful instead of decorative.
query: <question>
Claude reads wiki/index.md first, then opens the pages it thinks are relevant, then answers with [[wiki-links]] as citations. Non-trivial answers get filed back to wiki/synthesis/ so the next query about the same thing is a lookup, not a fresh synthesis.
This is the part that changed how I use notes. I stopped opening Obsidian to find things. I open it to read what Claude already pulled together.
lint wiki
The maintenance verb. Looks for orphans, contradictions, stale claims, concepts mentioned but lacking their own page, missing cross-references. Output is a prioritized list. Claude offers to fix each issue.
Every "second brain" eventually needs this. Almost no one builds it.
daily log
Opens or creates Daily/YYYY-MM-DD.md, syncs with Kanban.md at vault root. Done / In Progress / Blockers / Learnings / Links. Takes ten seconds because Claude does the diff against yesterday.
The Obsidian Side is Almost Incidental
A few plugins earn their keep:
Dataview: for index pages that enumerate by tag or date
Kanban: backed by
Kanban.mdat vault root, which the daily log syncs againstObsidian Git: automatic backup commits to GitHub
Tasks: due dates and recurring items inside any note
Waypoint: folder-note table-of-contents inside
%% Begin Waypoint %%blocks
Theme is Cupertino, dark. The only custom CSS that pulls real weight is a Kanban snippet that gives each lane a color and pulses the header when WIP is exceeded:
css
.wip-exceeded .kanban-plugin__lane-header-wrapper {
border-left: 4px solid var(--kb-blocked) !important;
background: rgba(240, 62, 62, 0.12) !important;
animation: wip-pulse 1.8s ease-in-out infinite;
}
[A pulsing red border is unreasonably effective at making me close tabs.]
The CSS isn't doing much work, just aesthetics.
Tiny Gotchas That Save Hours
No
.gitignoreis a choice. I track everything, including.obsidian/. If I lose my laptop, the vault and every plugin config comes back from onegit clone. Worth the noisy commits when plugins update theirdata.json.wiki/index.mdis load-bearing. If it gets out of sync, every query degrades.lint wikichecks it. Run it weekly.The
.claude/settings.local.jsonallowlist is the actual safety layer. I pre-approve git operations and a few specificmvpatterns. Everything else still prompts. The vault doesn't get rewritten while I'm not looking.
You Don't Need My Setup to Use This
My folder structure isn't the part to copy. Karpathy's gist is. Paste it into whatever agent you already use (Claude Code, Codex, Cursor, Gemini CLI) and have a conversation with it about your existing notes.
You don't need Obsidian, a new vault, plugins, or my exact layout. The gist describes a pattern, not an implementation. Your agent will adapt it to whatever you already have: Plain markdown folders, Logseq, a mess of Google Docs.
The conversation goes something like:
"Here's the LLM Wiki pattern: [paste gist]. Here's my current setup: [describe it]. How would we apply this to what I have?"
The agent will ask clarifying questions, propose a folder split that fits your workflow, draft a CLAUDE.md (or equivalent) for your tool, and tell you what to migrate vs. leave alone. My version uses raw/ and wiki/ because that mapped to how I already thought. Yours might look completely different and still work.
The parts you can't skip are the ones in the gist: an immutable source layer, an LLM-maintained synthesis layer, and a schema file the agent reads on every interaction. Everything else is taste.
My Setup in tl;dr
Vault: git repo on GitHub, ~120k words across ~260 notes [most of those are hand-written
Personal/andWork/; the wiki layer is small on purpose]Structure:
raw/→wiki/→Daily/→Personal/+Work/Glue: one
CLAUDE.mdwith four operationsWiki frontmatter:
title,type,tags,sources,updatedPlugins that matter: Dataview, Kanban, Obsidian Git, Tasks, Waypoint
No MCP servers, no scripts, no Templater.
What I Want to Try Next
A
weekly reviewoperation: diff the week's daily logs, surface what didn't make it into the wiki, flag stale concept pages.Embeddings on
wiki/for queries the index can't catch by keyword.A FastMCP receipt for every ingest so I have a
correlation_idlinking the raw source, the pages it touched, and the log entry. Right now I trust the wiki because I just built it. In six months I'll want proof.Publishing the
CLAUDE.mdas a template repo [long shot, the gist is already the better starting point].
Closing Thoughts
The whole system fits in one markdown file. Claude Code gets its hands dirty with the bookkeeping.
Every YouTube video about using a second brain effectively was really a video about me being lazy. The fix was handing the maintenance to something that doesn't get bored.
It's not perfect, but it's mine. And for the first time, it's also current.





