One coherent stack to serve all four scopes — long-term memory, knowledge notes, file-tree / asset / project organization, and tasks — readable and writable by the agent with zero human clicks, while staying human-viewable as a graph for qi. Judged against the Xen Commandments v50, where Commandment alignment is the deciding factor — not the raw scorecard total.
Eight candidates × seven criteria, scored 1–5. Winner highlighted in gold; runner-up marked.
| System | Scopes | Cross-Plat | Local / noauth | Agent Access | Human View | Linking | Sync | Total /35 |
|---|---|---|---|---|---|---|---|---|
| Obsidian WinnerMarkdown vault + graph + MCP/filesystem | 5 | 4 | 5 | 4 | 5 | 5 | 4 | 32 |
| Anytype Runner-upObject DB · P2P E2E sync · graph | 5 | 4 | 5 | 4 | 5 | 5 | 5 | 33 |
| SiYuan + TriliumNextSelf-hostable block KBs | 4 | 4 | 4 | 4 | 5 | 5 | 3 | 29 |
| LogseqLocal-first outliner (mid DB split) | 4 | 3 | 4 | 3 | 5 | 5 | 2 | 26 |
| NotionCloud all-in-one + official MCP | 5 | 5 | 1 | 5 | 4 | 3 | 3 | 26 |
| Org Methods (JD / PARA / Zettel)Taxonomies on a host tool | 3 | 5 | 5 | 3 | 3 | 3 | 3 | 25 |
| Dendron + FoamVSCode markdown-in-git (Dendron dead) | 3 | 2 | 5 | 4 | 3 | 4 | 3 | 24 |
| Vector memory layers (mem0 / Pinecone…)Opaque semantic stores | 3 | 3 | 3 | 5 | 2 | 3 | 3 | 22 |
Why the Obsidian stack passes the canon where the higher-scoring app fails.
write_file is 0-auth and headless 24/7. This is precisely where Anytype (manual unlock) and Logseq/SiYuan (GUI must run) fail.~/.xen/uploads/xen-memory-graph.html rendering the vault — a static, refresh-free node-edge map, exactly this canon..md on disk qi owns — no login wall, no vendor, no cloud SoT. No Cloudinary-style dead-URL risk. The textbook local-first fit; Notion (cloud-only, OAuth) scores 1/5 here and is disqualified.Highest raw score, one fatal canon break.
The object-DB model uniquely covers all four scopes in one tool, ships an official first-party MCP server plus Local API, has a native graph for qi, and offers the cleanest self-hostable CRDT Mac↔Windows sync of any candidate (the only 5/5 sync). On paper it out-scores the winner.
The Local API only serves while the desktop app is running and unlocked, and it is still labelled a "Developer Preview." A 24/7 lights-out agent would therefore require a human to open + unlock the app after every boot — a tap / confirm, which Commandment 4 defines as total failure.
Obsidian's raw-Markdown path has no such gate: an agent (or SELmcp's write_file) edits the files headless, with the app entirely closed. Lower total, but it is the only stack that is autonomous with qi offline — so it wins the actual decision.
Concrete folder taxonomy, sync, agent bridge, and unification with what already exists.
Johnny.Decimal areas (10s) for qi's real domains; deterministic IDs the agent auto-assigns; Zettelkasten [[wikilinks]] for emergent recall. Built ON the live vault, not replacing it.
XenVault/ # the existing Obsidian vault 00-09 SYSTEM 00.01 MEMORY.md # master index (exists) 00.02 _README · graph-viewer · commandments 10-19 L7S CLIENT WORK 11 compliance 11.01 luckie-goggins-he-him 11.02 ga-law-offlimits 12 testimonials 12.01 asana-results-vary 13 deliverables 13.xx pricing-menu / hero-cards 20-29 XLRD / INFRA 21 selmcp 21.01 hub-41-tools 22 sites 22.xx live-builds · sites.json 30-39 SELF EXEC 31 identity 31.01 east-allen-persona 32 canons 32.xx commandments-v50 40-49 PADRE (lead factory) 41 leads 41.xx per-trade-site 42 private # .gitignored — sales-package PII 50-59 PERSONAL 51 contacts · 52 health · 53 finance 90-99 ARCHIVE # Tasks live in-vault via Tasks/Bases plugin: # - [ ] ship padre site ⛁ 41.07 📅 2026-06-02 # status:: queued [[41.07-paint-genius]]
Two tiers — headless filesystem is the canonical 24/7 path; structured MCP is optional richness when the GUI is open.
write_file / read_file / list_directory + file_search tools. Claude Code edits .md directly. Works app-closed, operator-offline.Local REST API + obsidian-mcp-server (~14 tools: section reads, anti-clobber writes, tag/frontmatter, backlinks) — used only when the Obsidian GUI happens to be running, for live graph metadata.Obsidian.exe --disable-gpu for native Graph + Bases, or the self-contained xen-memory-graph.html for a refresh-free force-graph anywhere.git (already on this repo) as the conflict-aware backbone, with Syncthing for live local-LAN mirroring of the vault between qi.local and Windows. Both are local-first / no paid cloud — honoring the noauth canon. (Obsidian Sync is the paid fallback only if conflicts bite.)
The vault at ...\E--hitthe-link\memory\ stays the source of record — just re-numbered into the JD areas above. It already has .obsidian/ config + 12 notes; this is a rename + index pass, not a migration.
Mac-Xen's vector recall becomes a write-through semantic index, not a parallel store: each memory write hits the vault note first, then upserts an embedding that points back to the note path. Recall returns a link qi can open in the graph — never an opaque blob.
vault = truth · vectors = pointer