A replicable account-manager / project-manager operating system built on Obsidian + Claude Code. It turns a plain Markdown vault into a second brain that maintains your task board, sweeps every client surface (Slack, calendar, meeting transcripts, inbox), writes a coaching-grade daily/weekly brief, and keeps an entity graph of your people and companies current.
This repo is a clone-and-go template. It ships with the full system logic and an empty scaffold, plus one fictional worked example (client Acme Protocol). Fill in your own portfolio and you're running. Nothing here is real client data.
Originally one AM's personal setup; generalized so anyone on the team can run it for their own book of business.
Run daily report (or Monday report / Friday report) and Claude will:
- Fan out one agent per active client + shared agents for Slack-internal, DMs, and calendar — reading every surface once, in full, by channel ID (never missing private channels).
- Ingest — extract every action item from the raw evidence (transcripts win over AI summaries for ownership), reconcile against your board, and direct-write tasks into
Tasks.md. - Write the brief to
Daily.md— a ranked-by-stakes coaching brief (🎯 Top moves,🧭 Where each client stands,🔎 Signals & openings,🔁 Stuck patterns,🧠 Coach), not a task-list mirror. - Propose entity-graph and deliverables updates in chat for your approval.
- Lint the vault and refresh a cross-cutting
Index.md.
Other triggers: help me refocus, prep [client] (pre-call brief), market watch [client], process meeting notes, process inbox, review tasks, lint vault, enrich [[entity]]. Full list → CLAUDE.md §11.
The design follows Andrej Karpathy's "LLM wiki" pattern — three layers:
- Sources (raw, append-only): meeting notes, Slack, calendar, inbox.
- Wiki (curated state):
People/,Companies/,Deliverables.md,Tasks.md,Index.md. - Schema (the rules):
CLAUDE.md+System/.
…run through three operations: Ingest (sources → wiki), Query (wiki → reports), Lint (wiki integrity). Every "remember to…" is turned into a structural check that fails loudly in Log.md, so nothing drops silently.
| Path | What it is |
|---|---|
CLAUDE.md |
The orchestrator. Core protocols; loads System/ on demand. Start here. |
System/Templates.md |
Canonical output shapes (report skeletons, agent prompts, schemas). |
System/Schemas.md |
Task format, the 14 analysis triggers, the lint checklist. |
System/ClientRoster.md |
Your portfolio. Clients, roles, status, board rank. The file you edit most. |
System/Surfaces.md |
Slack channel + DM registry (read by ID). |
System/CompetitiveWatch.md |
Per-client competitor watch-list + market-watch cache. |
Tasks.md |
The active task board (per-client, bucketed by due date). |
Archive/Tasks Archive.md |
Done history. |
People/ · Companies/ |
The entity graph (Current Understanding + append-only Timeline). _TEMPLATE.md in each. |
Daily.md · Log.md · Index.md · Vault hygiene.md |
Rolling report, run-log, dashboard, lint output (all machine-written). |
Acme Protocol/ |
A complete fictional example client folder (Deliverables + a meeting note). |
.claude/settings.example.json |
Sanitized settings — copy to settings.local.json, add your MCP tools. No secrets. |
See SETUP.md — about 20 minutes to make it yours.
- Obsidian (with the Tasks community plugin for the checkbox/emoji conventions).
- Claude Code.
- MCP connectors for the surfaces you sweep: Slack, Google Calendar, a meeting recorder (e.g. Fathom), optionally Google Drive. The system degrades gracefully — connect what you have.
- Never commit secrets.
settings.local.json,.env, and*.token/*.keyare gitignored. The shippedsettings.example.jsonhas none. - This template contains no real client data. Keep it that way — your live vault should be a separate private repo (or unversioned), not pushed back here.