Personal Operating System

A coordinated system for running a consulting business. Client management, content production, meeting processing, billing, and daily workflows — all in one place.

React + Cloudflare Workers + Notion + Claude Code Skills + Telegram
5Interfaces
20+Skills
15API Endpoints
9Ext. Services
7Scheduled Jobs
12Notion DBs
1
INTERFACES
How you interact — web dashboard, CLI, Obsidian, Telegram, Felix agent
Web Dashboard
mbbrain.com — React + Vite. 8 pages: dashboard, tasks (kanban), clients, projects, content, revenue, relationships, command center.
Claude Code
Primary daily interface. Slash commands trigger skills that query data and format output. Open terminal, type command, get context.
Obsidian
/today writes daily dashboard to mb-brain vault. Morning focus view with meetings, tasks, retainer syncs, content status.
Telegram
Push notifications. Daily digest 8am, weekly hygiene Mondays, week ahead Fridays, billing alerts on-demand.
Felix
24/7 AI agent on spare MacBook. Accessible via Telegram from anywhere. Queues heavy tasks for Claude Code to process.
2
SKILLS
Slash commands — orchestration, transcript processing, content creation, CF delivery
/today
Morning dashboard to Obsidian. Queries Notion tasks, meetings, content + Google Calendar.
/client [name]
Full 360 client view. Notion data + local CF files + projects + revenue.
/plaud
Transcript processing pipeline. strategic = insights, content = ideas, full = both.
/capture
Quick capture router. Routes to tasks, content bank, or client notes automatically.
/retainer
Retainer client billing status, deliverables, and active work tracking.
/prep [name]
Pre-meeting briefing. Open loops, billing, team context, talking points.
/content-week
Weekly content tracker. LinkedIn, Substack Notes, Signal>Noise newsletter.
/hygiene
6-section system audit. Loops, cadence, billing, transcripts, content, tools.
/multiply
Find all reuse destinations for a tool you just built.
/onboard [name]
New client setup. Creates records in Notion + clients.json + local folders.
/transcript-full
Complete extraction: actions, decisions, content seeds, open loops.
/belief-content-engine
Converts transcript beliefs and objections into marketing content.
/content-edge
Newsletter performance analysis using Substack data.
/product-edge
Competitive product analysis with cross-industry patterns.
Writing Skills
meat-and-hair (anti-slop), copywriting-masters, framework-friday, linkedin-amplification, founders-mining-engine.
3
BACKEND
Cloudflare Worker API (15 endpoints, 4 crons), local scripts, launchd automation
Hono API
15 route modules: tasks, clients, projects, content, inbox, calendar, stripe, revenue, substack, reviews, relationships, briefing, ai, command-center, plaud.
Cron: Task Sync
6am UTC — pushes local task changes to Notion.
Cron: Briefing
2pm UTC — emails daily briefing via Resend.
Cron: Plaud Sync
Every 15 min — polls Plaud for new transcripts.
Cron: Health Check
Monday 2pm UTC — weekly system heartbeat.
daily-digest.sh
8am launchd. Calendar + overdue loops + billing + Gmail audit → Telegram.
hygiene-check.sh
7am Mondays. Loops, cadence, billing, transcripts, health score → Telegram.
week-ahead.sh
5pm Fridays. Next week calendar + deadlines + client prep → Telegram.
granola-sync.sh
Manual. Exports Granola meeting transcripts to data/granola/*.md.
add-open-loop.py
CLI for adding, completing, and listing open loops.
selfheal.py
Auto-retry wrapper. 3 retries with backoff, error tracking in SQLite.
Security
Rate limiting (100/min), optional API key auth, error sanitization, CORS allowlist.
4
DATA + SERVICES
Notion (12 DBs), D1, local JSON, Stripe, Google, Substack, Granola, Telegram
clients.json
9 clients. Billing, cadence, teams, projects, Felix alerts. v2.0 schema.
open-loops.json
40+ commitments. Deadlines, status, who owes what, priority.
tools-registry.json
20+ tools/assets. What's built, tech stack, reuse potential.
granola/*.md
223 meeting transcripts. Oct 2025 – Feb 2026. Indexed by index.json.
Notion
Source of truth. 12 databases: clients, projects, tasks, content, revenue, meetings, reviews, relationships, Felix, ideas.
D1 (SQLite)
Cloudflare D1. Task sync cache, worker state.
Stripe
Revenue tracking, payment webhooks.
Google
Calendar (meeting schedule), Gmail (2 accounts: personal + business).
Substack
Newsletter stats, autoposter via stackcontacts.
Telegram
All push notifications + Felix agent interface.
Resend
Email delivery for daily briefings.
Gemini
Google AI inference for content and analysis features.

All Commands

Every slash command available in Claude Code, organized by category.

Daily Ops

6 commands
/today
Daily dashboard in Obsidian — meetings, tasks, retainer syncs, content
Notion + GCal
/client [name]
Full 360 client context from Notion + local files
Notion + local
/retainer
Retainer client billing, deliverables, active work
clients.json
/status [name]
Unified client dashboard — billing, loops, projects, meetings
Notion + JSON
/prep [name]
Pre-meeting briefing — open loops, billing, team, talking points
All sources
/content-week
Weekly content tracker — LinkedIn, Substack Notes, S>N newsletter
Notion CB

Capture & Processing

4 commands
/capture
Quick capture router — tasks, content ideas, client notes
Notion
/plaud
List pending transcripts (Plaud + Granola)
granola/
/plaud strategic
Extract insights → Notion Meetings DB
→ Notion
/plaud content
Extract content ideas → Content Bank
→ Notion

Analysis & Growth

5 commands
/content-edge
Newsletter performance analysis using Substack data
Substack MCP
/product-edge
Product/project competitive edge analysis
Research
/multiply
Find all destinations to deploy a tool you built
tools-registry
/hygiene
Weekly 6-section system audit (loops, cadence, billing, transcripts)
All sources
/onboard [name]
New client setup — Notion, clients.json, local folders, initial loops
→ everywhere

Transcript Pipeline

4 commands
/transcript-full
Complete extraction: actions, decisions, content seeds, open loops
Transcript
/quick-extract
Actions + implicit insights only (lighter extraction)
Transcript
/belief-content-engine
Converts beliefs/objections into marketing content
Transcript
/implicit-insights
What people revealed without saying directly
Transcript

Content & Writing

5 commands
creative-writing
Anti-AI-slop writing with kill list enforcement
Skill
copywriting-masters
Paul Boag + Gary Halbert + Joe Vitale methodology
Skill
framework-friday
Weekly Substack Notes — extract frameworks from famous sources
Skill
linkedin-amplification
LinkedIn content optimization
Skill
founders-mining
Extract stories/principles from Founders podcast
Skill

Data Flows

How information moves through the system, from input to output.

Meeting to Insight

Transcript processing pipeline
Meeting happens
Granola records it automatically
Open in Granola app
Caches transcript locally for export
granola-sync.sh --refresh
Exports to data/granola/*.md
/plaud in Claude Code
Processes transcript through extraction pipeline
Output routes
strategic → Notion Meetings DB (decisions, actions, loops)
content → Notion Content Bank (ideas, frameworks, quotes)
loops → open-loops.json → daily digest → Telegram

Daily Automation

What runs every day without you touching anything
7:00 AM — Felix queue sweep
scheduled-sweep.sh processes Felix's pending tasks
8:00 AM — Daily digest
Google Calendar → today's meetings
open-loops.json → overdue + due today
clients.json → billing events
Gmail → unread audit (2 accounts)
Morning — /today
Queries Notion + Calendar → writes today.md to Obsidian
Throughout day
/capture, /client, /prep as needed
After meetings — /plaud
Process transcripts → Notion + open loops

Frontend to Backend

Web dashboard data flow
Browser (mbbrain.com)
React app sends REST API calls
Cloudflare Worker (Hono)
Zod validates input
D1 for cache / sync state
Notion API for source of truth
Stripe, GCal, Gemini as needed
JSON response → React renders
Zustand state, Recharts viz, Kanban boards, toast notifications

Felix to Claude Code

Agent coordination handoff
Message Felix on Telegram
From anywhere — phone, laptop, wherever
Felix handles lightweight tasks
Quick lookups, simple responses, scheduling
Heavy tasks → queue file
~/clawd/queue/claude-code-tasks.md
Claude Code processes queue
7am auto-sweep or manual "process queue"
Results written
~/clawd/observations/YYYY-MM-DD.md

Daily Rhythm

What happens when, and whether it's automated or manual.

Automated
Manual (Claude Code)
Weekly Only
7:00 AM
Hygiene Report
Mondays only. Open loops health, client cadence, billing gaps, unprocessed transcripts, health score → Telegram.
MONDAYS
7:00 AM
Felix Queue Sweep
scheduled-sweep.sh processes any tasks Felix queued overnight.
AUTOMATED
8:00 AM
Daily Digest
Today's calendar, overdue loops, deadlines, billing events, Gmail audit (2 accounts), loop stats → Telegram.
AUTOMATED
Morning
Open Claude Code → /today
Generates Obsidian dashboard with meetings, tasks, retainer syncs, and content status for the day.
MANUAL
Pre-mtg
/prep [client]
Quick meeting briefing with open loops, billing status, team context, and talking points.
MANUAL
Anytime
/capture anything
Quick capture router sends input to the right place — tasks, content bank, or client notes.
MANUAL
Post-mtg
/plaud transcripts
Process meeting transcripts. Extracts actions, decisions, content seeds, open loops → Notion.
MANUAL
EOD
Billing Alerts
Automated when client billing due dates approach. Shows up in Telegram.
AUTOMATED
5:00 PM
Week Ahead Briefing
Fridays only. Next week's calendar by day, all deadlines, client meeting prep, top 3 focus items → Telegram.
FRIDAYS

External Services

Everything the system connects to and how.

N
Notion
Source of truth. 12 databases covering clients, projects, tasks, content, revenue, meetings, reviews, relationships, Felix work, and future ideas.
Connected viaWorker API + MCP
Databases12 bound to worker
Used bySkills, Worker, Scripts
G
Google Calendar
Meeting schedule for daily digest, /today dashboard, and /prep briefings. OAuth refresh token auth.
Connected viaOAuth (Worker + scripts)
AuthGOOGLE_CLIENT_ID + refresh tokens
Used bydaily-digest.sh, /today, calendar.ts
M
Gmail
Email audit across 2 accounts (personal + business). Checks unread and flagged items for daily digest.
Connected viaOAuth (scripts)
AccountsPersonal + Business
Used bydaily-digest.sh, gmail-audit.py
$
Stripe
Revenue tracking and payment webhooks. Powers the revenue page on the web dashboard.
Connected viaWorker API
AuthSTRIPE_SECRET_KEY
Used bystripe.ts, revenue.ts
S
Substack
Newsletter stats and autoposter. stackcontacts script posts Substack Notes using Safari cookie auth.
Connected viaWorker API + stackcontacts
Autoposterscripts/stackcontacts/
Used bysubstack.ts, /content-edge
T
Telegram
All push notifications — daily digest, weekly hygiene, week ahead, billing alerts. Also Felix agent interface.
Connected viaBot API (scripts)
AuthTELEGRAM_BOT_TOKEN + CHAT_ID
Used byAll .sh scripts, Felix
G
Granola
Meeting recording + transcription. 223 meetings stored locally. Synced via granola-sync.sh.
Connected viaLocal file sync
Storagedata/granola/*.md
Used bygranola-sync.sh, /plaud
R
Resend
Email delivery for daily briefings sent from the Cloudflare Worker cron job.
Connected viaWorker API
AuthRESEND_API_KEY
Used bysend-briefing.ts
AI
Google Gemini
AI inference for content generation and analysis features within the worker API.
Connected viaWorker API
AuthGEMINI_API_KEY
Used byai.ts

File Map

Where everything lives. Click to expand directories.