Layer 01
Knowledge — the brain
The what and why · human-readable · version-controlled
N
Notion
Source of Truth
Single canonical home for everything humans (and agents) need to read.
SOPs, brand voice, strategy docs, brain pages, and — critically — every skill prompt
stored in a versioned page template so any agent can pick up and run it.
- SOPs & brand — how we work, how we sound, what we promise
- Strategy & brain pages — narrative context, hiring, positioning, philosophy
- Skill prompts — versioned page template per skill: description, when to use, inputs, prompt body, outputs, owner tool, changelog
- Decision context — long-form rationale that backs structured decisions in Supabase
Layer 02
Data — the nervous system
Canonical operational truth · real-time · queryable by everything
Sb
Supabase
Canonical DB
Postgres + real-time + edge functions. Receives a duplicate of source data from connected tools so
we can track what Pipedrive (and others) don't — stage-change timestamps, event history,
attribution — and so the dashboard can query one place instead of fanning out.
- Skill registry — pointer to the Notion page, owner tool, current version, last run, metrics
- Run events — every LLM execution logged richly: provider, tokens, cost, duration, savings claim
- Decision log — structured, supersedes-chained, queryable; the bridge between thinking and execution
- Mirrored source data — Pipedrive deals, ClickUp tasks, Airtable rows, with full event history
- Connector status, alerts, costs, subscriptions, memory index
Layer 03
Execution — the doers
Divided by nature of work · LLM vs. deterministic
H
Hermes
Chief of Staff
The runtime for everything LLM-driven. Owns memory, profiles, and long-lived agents.
The only voice that talks to humans on Slack.
- Reads skill prompts from Notion (cached)
- Reads/writes state in Supabase
- Runs agents by profile: Inbox, CRM, Content, Ops…
- Handles human-in-the-loop via Slack
- Reports up; flags exceptions
Cc
Claude Code
Plumber
Builds deterministic plumbing: ingestion pipelines, integrations, Mission Control itself,
schema migrations. Nothing LLM-at-runtime lives here.
- Supabase edge functions (webhook listeners)
- pg_cron pollers for non-webhook sources
- Custom integrations, scrapers, scripts
- Mission Control Next.js app
- Triggers Hermes agents when events need a brain
⌒
Schedulers
Heartbeat
The clockwork that fires recurring work. Split between Supabase's
pg_cron (for data jobs) and Hermes's own scheduler (for agent runs).
- pg_cron — ingestion pollers, nightly rollups, backups
- Hermes cron — agent runs, digests, periodic reviews
- All schedules visible in Mission Control
Layer 04
Interface — where you meet the system
Push via Slack · Pull via Mission Control
#
Slack
Inbox
Bidirectional with Hermes only. Work comes to you here; you respond inline; Hermes proceeds.
Mission Control never talks to Slack directly — it routes through Hermes so the voice stays consistent.
- Inbound — mentions, DMs, slash commands → Hermes interprets and acts
- Outbound — human-in-the-loop asks, alerts, digests, status pings from Hermes
- Channels: #mc-alerts, #mc-queue, DMs for critical
- Single aggregated queue across every agent — one inbox, not five
Mc
Mission Control
Dashboard
Pull-only. You go here deliberately to look at trends, scorecards, agent activity,
spend, ROI, and the knowledge graph. It does nothing on its own — it shows.
- Next.js 15 · reads Supabase real-time
- Mobile-responsive · hosted on Mac mini · Cloudflare Tunnel
- Dashboards, scorecards, decision browser, ⌘K search
- Demo mode for screenshots / walkthroughs
Layer 05
Thinking — the partner
Reasoning · drafting · personal one-offs · writes back to Notion + Supabase
P
Perplexity Computer
Thinking Partner
Where Abir reasons, plans, drafts, and handles personal one-offs. Outputs flow back into
the operational stack so thinking doesn't get stranded.
- Strategy & journaling — long-form thinking with full connector + memory access
- Content work — landing pages, scripts, performance analysis
- Decisions → written as structured rows in Supabase decision log
- Narrative context → proposes diffs to Notion brain pages; Abir approves in Slack
- One-off agentic tasks — research, drafts, artifact generation
Information flow
Data
Knowledge
Human comms
Routing rules
-
IfWork needs a model at runtime → Hermes
-
IfWork is deterministic code → Claude Code
-
IfWork is a personal one-off or strategic thinking → Perplexity
-
IfYou need to look at the system → Mission Control
-
IfThe system needs to reach you → Slack via Hermes
-
IfA decision needs to stick → Supabase decision log (+ Notion mirror)
-
IfA piece of knowledge needs to be reusable → Notion
Hard invariants
-
NeverMission Control does anything. It only shows.
-
NeverMission Control talks to Slack directly. Hermes is the only voice.
-
NeverRun an LLM skill outside Hermes in production (except Perplexity for your own one-offs).
-
NeverDuplicate skill prompts. Notion is the single source; agents cache.
-
AlwaysLog every run event richly to Supabase — attribute later, never reconstruct.
-
AlwaysNotion edits from Perplexity go through diff → approve → write.
-
AlwaysDecisions supersede, never delete. The chain is the audit trail.