CLAUDE LABJP
FORK — Claude Code 2.1.212 changes what /fork does: it copies your conversation into a new background session with its own row in claude agents, so you can keep working. The old in-session subagent is now /subtaskLIMITS — WebSearch calls are now capped at 200 per session by default, and subagent spawns get the same 200 ceiling, so a runaway search or delegation loop stops on its ownMCPBG — MCP tool calls running past two minutes now move to the background automatically, keeping the session usable. Tune the threshold with CLAUDE_CODE_MCP_AUTO_BACKGROUND_MSPLANFIX — Fixed plan mode auto-running file-modifying Bash commands such as touch and rm without a permission prompt or an SDK canUseTool callbackSONNET5 — Claude Sonnet 5 is running on introductory pricing of $2 per million input tokens and $10 per million output. After August 31 it moves to $3 and $15IPO — Bankers are reportedly lining up investor meetings for Anthropic ahead of a possible public listing as soon as OctoberFORK — Claude Code 2.1.212 changes what /fork does: it copies your conversation into a new background session with its own row in claude agents, so you can keep working. The old in-session subagent is now /subtaskLIMITS — WebSearch calls are now capped at 200 per session by default, and subagent spawns get the same 200 ceiling, so a runaway search or delegation loop stops on its ownMCPBG — MCP tool calls running past two minutes now move to the background automatically, keeping the session usable. Tune the threshold with CLAUDE_CODE_MCP_AUTO_BACKGROUND_MSPLANFIX — Fixed plan mode auto-running file-modifying Bash commands such as touch and rm without a permission prompt or an SDK canUseTool callbackSONNET5 — Claude Sonnet 5 is running on introductory pricing of $2 per million input tokens and $10 per million output. After August 31 it moves to $3 and $15IPO — Bankers are reportedly lining up investor meetings for Anthropic ahead of a possible public listing as soon as October
Articles/Claude Code
Claude Code/2026-05-24Advanced

Putting an Autonomous Librarian on Top of Claude Code × Obsidian — Operating Notes From Running Four Sites Through a Three-Layer Knowledge OS

Starting from Andrej Karpathy's LLM Wiki idea, I redesign a Claude Code × Obsidian autonomous knowledge OS against the actual shape of running four AI tech blogs in parallel. The article covers the three-layer storage, ingest/compile Skills, Dataview monitoring, and a weekly audit job — all sized for real production use.

Claude Code196ObsidianSkills7Knowledge Management2Indie Developer9

Premium Article

Every night before bed I read back through the day's Claude Code session logs. Once the sixteen articles for the day have shipped across my four blogs, the subagents have left dozens of "considerations" and "implementation notes" lying on disk. I used to paste these into Notion. Six months in, that approach broke: searches missed obvious results, and the results that did return were summaries that had quietly lost the original context.

I have been shipping iOS and Android apps as a solo developer since 2014. The wallpaper apps alone have crossed 50 million downloads, and these days I run four AI tech blogs through a Claude Code pipeline. On the app side, AdMob and App Store Connect data is pulled in every morning; on the site side, articles.json is regenerated on every build. Across both, "knowledge" needs to behave like a working asset rather than a junk drawer. What drew me to Karpathy's LLM Wiki idea, and to the Qiita article "Implementation: Claude Code × Obsidian Autonomous Knowledge OS '2do BRAIN'" that distilled it into something operational, is that they answered the question "how do you keep knowledge from rotting?" using directories and Skills alone.

This article walks through that three-layer storage and Skill set, reshaped to fit the realities of running four sites and six apps in parallel. If you are juggling several projects as an indie developer, I hope this is useful.

Why I Stopped Believing a Vector-DB RAG Would Be Enough

My first instinct was to throw the entire Obsidian vault into a Vector DB and let Claude Code pull from it via RAG. That is half right, and the other half quietly postpones the real problem.

You can absolutely re-vectorise raw material — PDFs, official docs, chat logs — and retrieve fragments on demand. But that only "searches knowledge in pieces"; it does nothing to "grow knowledge as structure" or "detect contradictions with what I wrote before". In a setup like mine, where the same concept (say, Claude Code Skills) is written about at different granularities across four sites, a Vector DB will cheerfully return the most recent article and miss the fact that it contradicts a judgement I made two months ago on another site.

The lever that fixes this is structural: force the AI to re-read the primary source before writing, and force it to record every change. Asking nicely inside a Skill prompt breaks down the moment the pipeline gets busy. Express the rule as a directory layout and YAML frontmatter, and both Claude Code and Obsidian's Dataview plugin can verify it mechanically.

Three-Layer Storage: Keep 01_raw, 02_wiki and Schema Strictly Separated

The core of the implementation is three directories at the root of the vault.

2do-brain/
├── 01_raw/              # Raw layer: immutable primary information (Source of Truth / Read-Only)
├── 02_wiki/             # Edited knowledge layer: structured knowledge AI edits (Write-Allowed)
│   ├── index.md         # Catalogue: index of every page
│   └── log.md           # History: ## [YYYY-MM-DD] operation | target
└── Schema/              # Discipline layer: the librarian's rules
    ├── CLAUDE.md        # The constitution of the knowledge OS
    └── .claude/
        ├── rules/       # Domain-specific rules
        └── skills/      # Execution playbooks (covered below)

The purpose of strict separation is to stop recursive summarisation drift. If you let the AI re-summarise from existing wiki summaries, the important small print of the primary source gradually disappears. To prevent this, my Skills only see Read-class tools when they touch 01_raw/. Anything that mutates is off-limits there.

In my four-site setup, 01_raw/ holds official-doc PDFs from Anthropic / Google / Microsoft, snapshots of the Cloudflare Workers changelog, frozen copies of Stripe API references, and the GSC export CSV for each of the four sites. 02_wiki/ holds the synthesised notes — for example, "Pitfalls when rolling Cloudflare Workers + Next.js 16 across four sites" — assembled by Claude Code from those raw sources.

Schema/CLAUDE.md carries only a minimal rule set:

  1. Every claim must carry an inline citation in the form [[01_raw/filename]]
  2. When updating an existing page, you must re-read the corresponding section of 01_raw/ before rewriting
  3. After any rewrite, you must append ## [YYYY-MM-DD] operation | target to 02_wiki/log.md

Three rules. Six months of running this vault, and contradictions still do not pile up.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
Concrete shapes for the 01_raw / 02_wiki / Schema three-layer storage, defined so the Obsidian vault and the Claude Code Skill arguments line up on both sides
Why ingest and compile must be separate Skills, and the allowed-tools / disable-model-invocation pattern that deliberately stops write operations to keep recursive summarisation drift in check
How a Dataview query plus a weekly self-audit Skill let me carry 90 days of accumulated notes across four sites with numeric rules I rely on every week
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Claude Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

Related Articles

Claude Code2026-05-24
Five Filters I Use Before Wiring a Claude Code Skill Into My Daily Workflow
Public Claude Code Skills keep multiplying. As an indie developer running four AI tech blogs through Claude Code, I share the filters that decide which Skills stay in my daily workflow — and which ones I quietly remove after a few days.
Claude Code2026-06-14
Finding and Installing Claude Code Plugins from a Marketplace — Read What's Inside Before You Trust It
A practical walkthrough for discovering and installing Claude Code plugins from a marketplace. Beyond the /plugin commands, it covers how to read the bundled contents before you install, and how to choose between User and Project scope.
Claude Code2026-06-13
When Your Edited SKILL.md Doesn't Take Effect — Hot-Swapping Claude Code Skills with /reload-skills and Auto-Loaded .claude/skills
A practical routine for hot-swapping Claude Code skills without restarts: /reload-skills, SessionStart hooks, and version stamps that show which SKILL.md is live.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →