← Reports

SecondBrain + 2ndbrain Wiki Architecture

How the Obsidian vault, structured wiki, and PKA operational vault work together · MC-611 · 2026-04-15

System Topology
Elmar Obsidian app + mobile Lucienne (Mac) Chief of Staff · owns vault.db SecondBrain Obsidian vault · ~/cowork/SecondBrain/ 2ndbrain Wiki ~/.claude/vault/wiki/ PKA Vault vault.db + memory/ · ~/PKA/Vault/ Luci (Cloud) Hetzner server · owns mc.db Skills API Layer Git Transport (15 min) local Mac browses via Obsidian Telegram writes /wiki-ingest owns vault.db reads (git pull) /brain, /search-brain /wiki-query
SecondBrain
~/workspace/cowork/SecondBrain/
Personal Obsidian vault. Browsable on desktop + mobile. Human-optimized.
Folders
  • Meetings/ 34+ dated notes
  • people/ 43+ contact notes
  • projects/ 10+ active projects
  • tasks/ action items + due dates
  • daily/ YYYY-MM-DD daily notes
  • ideas/ captured thoughts
  • inbox/ raw capture, awaiting sort
  • docs/ reference material
Note Format
--- type: task|person|meeting status: active|done|pending tags: [topic, area] due: YYYY-MM-DD --- Body with [[wiki-links]]
Obsidian Features
  • Graph View (visual connections)
  • Backlinks (auto-generated)
  • Daily Notes
  • Mobile Sync ($5/month)
  • Obsidian CLI access
2ndbrain Wiki
~/.claude/vault/wiki/
Structured synthesis layer. AI-optimized indexing and cross-referencing.
sources/
Source summaries from ingested documents (reports, articles, transcripts)
entities/
Named entities (people, orgs, products) cross-referenced across sources
concepts/
Frameworks, mental models, principles linked to source evidence
synthesis/
Combined insights across multiple sources
How It's Built
  • /wiki-ingest processes documents
  • Extracts entities + concepts
  • Cross-links all pages
  • Updates indexes automatically
  • Shared via conrelma/claude repo
PKA Vault (Operational)
~/workspace/PKA/Vault/
Operational knowledge graph. Shared between Lucienne and Luci via git sync.
Contents
  • vault.db SQLite + FTS5 index
  • memory/ durable reference knowledge
  • tasks/ YAML frontmatter tasks
  • projects/ project tracking
  • notes/ general notes
  • schema.sql DB definition
vault.db Tables
  • files — indexed markdown files
  • edges — knowledge graph (197 edges)
  • search_fts — full-text search (FTS5)
  • activity_log — append-only audit
  • sessions_index — transcript search
Key Tools
  • index.py — scans markdown, builds DB
  • vault_mcp.py — 8 MCP query tools
  • session_indexer.py — transcript index
Skills (API Layer)
Never edit files directly — skills are the interface between human and vaults.
/brain Capture & auto-classify input into SecondBrain
/search-brain Full-text search across SecondBrain vault
/wiki-query Cross-wiki search + synthesized answers
/wiki-ingest Document → source + entity + concept pages
/wiki-lint Health checks: broken links, orphans, stale pages
Actors & Transport
Who reads, who writes, and how data moves between machines.
Elmar (Human)
Browses SecondBrain via Obsidian desktop + mobile app (Obsidian Sync). Sends tasks to Luci via Telegram.
Lucienne (Local Mac)
Chief of Staff. Owns SecondBrain + vault.db. Runs /brain, /wiki-ingest, /search-brain. Assigns work to Luci via PKA repo.
Luci (Cloud Server)
Reads PKA vault via git pull every 15 min (read-only). Queries vault.db through MCP server. Owns mc.db for operations.
Git Repos (Transport)
  • conrelma/cowork → SecondBrain vault
  • conrelma/PKA → vault.db, memory/
  • conrelma/claude → portable vault, skills
Data Flows
How information moves through the system.
1
Capture
User input → /brain skill → classifies as task/person/idea/meeting → writes markdown to SecondBrain/ with [[wiki-links]] → Obsidian detects change and updates graph.
SecondBrain/{type}/ → .md with YAML frontmatter
2
Search
/search-brain searches SecondBrain only. /wiki-query searches both wikis (SecondBrain + 2ndbrain) and synthesizes an answer across all matches.
Grep + file reading → matched excerpts + source paths
3
Ingest
Document or URL → /wiki-ingest → creates source summary in sources/, extracts entities/ and concepts/ pages → cross-links all pages → updates indexes.
wiki/{sources,entities,concepts}/ → .md with wikilinks
4
Index & Sync
index.py scans all markdown → populates vault.db (FTS5 full-text search). Git syncs every 15 min. Luci pulls vault.db read-only. /wiki-lint checks health of both wikis.
index.py --rebuild → vault.db (files, edges, search_fts)
Source of Truth
Markdown files
Databases
Derived & rebuildable
Interface
Skills API layer
Transport
Git (every 15 min)