████████╗██╗ ██╗██╗███╗ ██╗ ╚══██╔══╝██║ ██║██║████╗ ██║ ██║ ██║ █╗ ██║██║██╔██╗ ██║ ██║ ██║███╗██║██║██║╚██╗██║ ██║ ╚███╔███╔╝██║██║ ╚████║ ╚═╝ ╚══╝╚══╝ ╚═╝╚═╝ ╚═══╝
> █
# a single source of truth every agent can read and write.
# claude code + obsidian + mcp. graph-native. write once, surface everywhere.
// 01 the graph
every note is a node. every [[wikilink]] is an edge. every person, project, and class has exactly one canonical page — so meeting #1 and meeting #400 referencing the same person resolve to the same graph node. daily notes + people pages stitch everything together.
// 02 philosophy
most note systems die because maintenance cost is higher than capture cost. twin flips that: you add frontmatter and wikilinks once; dataview queries and agent skills handle everything else. meetings auto-appear on project pages. people auto-appear on every meeting they attended.
1. capture → +Inbox, quick notes, voice, share-sheet 2. process → /inbox-process classifies + links 3. surface → dataview + graph walk via MCP
// 03 architecture
Twin/+Inbox/ (manual drops, triaged daily) Obsidian Quick Capture (desktop / mobile) Phase 2: iOS Share Sheet → +Inbox/shared/
Areas/{School, Professional, Startup,
Personal-Projects, Health, Finance}
Calendar/{Daily, Weekly, Monthly}
People/ Learning/ Decisions/
System/{Templates, Dashboards, Session-Logs}
CLAUDE.md (Twin-scoped persistent memory)
obsidian-mcp via Local REST API plugin filesystem fallback when offline
Claude Code (desktop, primary)
CPR: /resume /compress /preserve
ops: /daily-note /weekly-review
/inbox-process /meeting-note
graph: /link-entities /graph-check
/new-entity
remote MCP (hosted, auth-gated) Claude mobile via MCP connector iOS Shortcut → +Inbox/shared/
// 04 skills
# slash commands live in ~/.claude/commands/ — project-aware, cwd-scoped.
| command | synopsis | purpose |
|---|---|---|
| /resume | [N] [topic] | load Twin memory + last N session logs; filter by topic |
| /compress | — | save session log to System/Session-Logs/ |
| /preserve | — | promote learning to Twin/CLAUDE.md (auto-archives >280 lines) |
| /daily-note | — | create/open today's daily note |
| /weekly-review | — | summarize week from daily notes + sessions |
| /inbox-process | — | classify + link + file items in +Inbox/ |
| /meeting-note | [transcript] | structured meeting with attendees + decisions |
| /new-entity | <type> <name> | create canonical person/project/class page |
| /link-entities | — | convert unlinked mentions of known entities → [[wikilinks]] |
| /graph-check | — | report orphans, broken links, schema violations |
// 05 phases
// 06 join waitlist
# twin is in private build. drop your email — you'll hear when alpha is ready.
// 07 field log
$ tail -n 20 /var/log/twin/session.log [2026-04-14 09:02] /resume loaded 3 sessions (142 tokens) [2026-04-14 09:04] found [[alex-doe]] across 4 meetings [2026-04-14 09:12] new canonical: [[cs-401]] [2026-04-14 10:30] /meeting-note → Areas/Professional/dev-team/... [2026-04-14 10:31] linked [[alex-doe]] [[project-alpha]] [[2026-04-14]] [2026-04-14 14:48] /inbox-process classified 7 items [2026-04-14 14:49] moved: 2 → Learning/Articles, 1 → Decisions [2026-04-14 14:49] unrecognized: 1 (queued for triage) [2026-04-14 18:22] /compress 1,204 tokens → Session-Logs/... [2026-04-14 18:23] graph density: 3.12 edges/node [OK]