2026-06-24 Proactive Vault Capture Directive

What I set out to do

Started as a /session-analysis question: how do I actually use Obsidian tools and skills across my Claude Code sessions, so I could codify recurring directives instead of repeating them. Turned into adding a standing instruction that makes the agent use the vault proactively.

What I actually did

  • Measured the usage. Across 659 sessions: ~1,380 Obsidian tool calls in 90 sessions (14%), peaking in the March–April vault build-out (430 then 705 calls/mo) and settling to ~120/mo since. search_notes is the most widespread tool (62 sessions), write_note the most widespread write (70), patch_note the heaviest and only meaningfully-erroring one (298 calls, ~7% errors, mostly People-note string-match misses).
  • Found the real answer to the original question. All ~12 conventions a content-mining subagent extracted (routing, append-don’t-duplicate, tags 0–3, citations, status frontmatter, MCP-only) are already codified in the knowledge-management skill, and the skill loads in 527/567 recent vault messages. The directive density I remembered was me defining the system in March–April, not correcting it. So: nothing to add for conventions.
  • Reframed to the actual gap. The missing piece wasn’t the how (conventions) but the when (proactive triggers): consult the vault for context before deciding, and capture meaningful work after. That can’t live in the skill, because the trigger fires in code repos where the skill never loads.
  • Designed and shipped it. Added a # Knowledge Capture (Obsidian vault) section to nix/home-manager/modules/coding-agents/common/context/AGENTS.md (the home.mutableFile source for ~/.claude/CLAUDE.md). Consult half (people/project/decisions) + capture half (journal auto, project/people notes confirm-on-first-create then auto-update, link everything). Applied via hm switch, committed as ff64317.

What was striking

  • The system was already built; I’d just never told it to act on its own. The honest finding inverted the request: I came in to write down conventions and left having written down initiative. The conventions were never the bottleneck.
  • Global is the only home that works. Tempting to put vault rules in the vault skill, but “a meaningful piece of work” happens in code repos, and skills only load on vault intent. A cross-cutting behavior needs cross-cutting placement, even at the cost of tokens in every session.
  • The chosen design has a known hole. Standing-instruction-only (no Stop hook) means journaling fires at work-completion by judgment, not at session end. If a session just goes quiet, the entry can be missed. The mitigation is a line in the directive; the real fix, if it bites, is a thin Stop hook.
  • This entry is the first dogfood of the new directive: meaningful work (a global-behavior change), so it gets captured.