- wiki/tech/ → family/how-to/ (15 files, no duplicates existed)
- wiki/{concepts,comparisons,root}/ → personal/projects/personal-os/ (22 files)
- wiki/tech/media-pipeline-pitfalls.md → personal/projects/
- wiki/tech/reflect-skip-fuse.md → personal/projects/
- wiki/ddg-asana-workflow.md → work/
- wiki/user-profile.md → personal/
- Dropped 11 files: vault versions are newer/bigger (xgimi, htpc-steam,
vault-strategy, executor-orchestrator, executor-security-incident,
kraken-media-stack, library-app, psychologist-app, raw/processed/, log, index)
4 files pending review (wiki version larger than vault original):
htpc-magic4pc, tv-luna-send, wireguard-vpn, watchlist-automation
3.2 KiB
title, created, updated, type, namespace, tags, sources, confidence
| title | created | updated | type | namespace | tags | sources | confidence | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Vault ↔ Agent Integration | 2026-05-23 | 2026-05-23 | concept | work |
|
|
high |
Vault ↔ Agent Integration
How Eagle, wiki-ingest, and the obsidian-mcp-wrapper work together as a unified knowledge layer. Three distinct subsystems each own a slice of the vault.
The Three Subsystems
1. obsidian-mcp-wrapper (runtime read/write)
A Node.js proxy (~/scripts/obsidian-mcp-wrapper.js) wraps obsidian-mcp
to fix four production bugs: ZodError on init, race condition at gateway
restart, UTF-8 chunk corruption on large payloads, and a 5-second watchdog
for hung child processes.
Eagle reads the vault through this wrapper via MCP tool calls. It can search, read, and write notes in real time during conversations.
Allowed write paths (Eagle only, with prior draft shown):
work/projects/,work/decisions/,personal/,family/- Never
wiki/— that's wiki-ingest territory
2. wiki-ingest (nightly synthesis, 22:00 launchd)
A claude -p session (not Hermes) that runs nightly. It reads files in
~/obsidian/raw/ (symlinks to external project files), computes SHA256
hashes, and synthesises wiki pages only when the source has changed.
Invariants:
- Output is synthesis, never verbatim copy
- Frontmatter
source+content_hashare the ingestion contract - Pages with
confidence: 1.0are immutable
3. wiki-curation (daily Hermes cron, 02:00)
A Hermes cron job (this script) that maintains the wiki as a compounding knowledge base: processes inbox, crystallises session knowledge, creates synthesis pages, lints orphans and broken links.
Division of Labour
| Layer | Tool | Vault path | Trigger |
|---|---|---|---|
| Reactive reads/writes | obsidian-mcp-wrapper | work/, personal/, family/ |
On-demand |
| Source synthesis | wiki-ingest (claude -p) | wiki/ ← raw/ |
22:00 nightly |
| Knowledge curation | wiki-curation (Hermes cron) | wiki/ |
02:00 daily |
| Vault sync | sync-vault.sh | entire vault | Hourly |
Why obsidian-mcp Is Wrapped
The wrapper exists because obsidian-mcp v1.0.6 had four production-breaking
bugs that would have been too fragile to fix upstream (updates would reintroduce
them). A proxy wrapper is cleaner: it intercepts the MCP protocol stream without
modifying the underlying package.
See obsidian-mcp-wrapper for the four bugs and their fixes.
Vault Sync (Eagle ↔ Taiga ↔ Kraken)
All three nodes share a sparse vault via a TrueNAS bare git repo. Eagle has
the full vault; Kraken and Taiga have personal/ and family/ only (sparse
checkout). The sync-vault.sh cron runs hourly on all three.
Eagle (full) ──push/pull──┐
Taiga (sparse) ────────────├── mallexxx.duckdns.org:/mnt/RED_2TB/storage/git/obsidian-vault.git
Kraken (sparse) ───────────┘
See Also
obsidian-mcp-wrapper wiki-ingest-process vault-filling-guide personal-os-architecture