The Big Picture
Your AI C-suite — 5 agents running 24/7. You send a message, they handle the details.
5
AI Agents
21+
Skills (Slash Cmds)
30 min
Heartbeat Cycle
9 AM
Daily Briefing
📱 YOU Send a message via Telegram or Slack "How's the pipeline?" 🟣 CLAUDIA COO — receives every message Asks GPT-4o-mini: "Who handles this?" 🔀 ROUTER GPT-4o-mini reads the message + all agent descriptions → Sentinel (CRO) 🔵 SENTINEL CRO — pulls live HubSpot + Supabase data, generates a real pipeline report Answer comes back to Telegram / Slack
💡
The key idea: You only ever talk to Claudia. She figures out who to ask and gets you the answer. You don't need to know which agent knows what — just type naturally.
🔒
Security: The bot only responds to messages from your Telegram user ID (7533655479). Nobody else can trigger it.
📂 Where It Lives
AI Projects/Agents/
├── Claudia/ ← main entry point, runs everything
├── Sentinel-CRO-LIS-Revenue/ ← LIS, HubSpot, renewals
├── Athena-CTO-Atlas-Products/ ← GitHub, Vercel, tech
├── Ledger-CFO-Finance/ ← taxes, finance, 5 companies
├── Muse-CMO-Creative/ ← content, brands, YouTube
└── core/ ← shared engine, skills, heartbeat
The 5 Agents
Your AI C-suite. Each has a specialty, a personality, and its own live data feeds.
🟣
Claudia
COO — Chief Operating Officer
Orchestrator and general-purpose assistant. Every message lands here first. She routes to specialists, handles cross-team coordination, and answers anything that doesn't clearly belong elsewhere. Runs the daily 9 AM briefing.
/search /doc /briefing /status /slack /company /health /feedback
🔵
Sentinel
CRO — Chief Revenue Officer
Owns the LIS insurance pipeline. Lives in HubSpot and Supabase. Tracks deals, renewals, commissions, and CE deadlines. Alerts on stale deals and critical renewals.
/deal /renewal /pipeline /ce /carrier /email /sms /commission
🟢
Athena
CTO — Chief Technology Officer
Watches the Atlas Minds product stack. Tracks GitHub repos (commits, PRs, issues) and Vercel deployments in real time. Alerts on failed deploys and stale repos.
/repo /repo prs /deploy
🟩
Ledger
CFO — Chief Financial Officer
Multi-company financial brain. Tracks 5 companies: Atlas Minds, Spark A Change, SparkBot, FRH, and Seasons. Monitors pipeline value vs $20K/week target and tax deadlines.
/finance /finance revenue /tax
🟠
Muse
CMO — Chief Marketing Officer
Brand and content strategy for 6 brands. Manages the DeepFocus YT content pipeline and Just Jesus Apparel. Tracks what's in idea → in-progress → review → published.
/content /content add /brand
🧠
How agents "think": Each agent loads its own brain/ folder — a soul file (personality), domain file (what they know), memory file (what they remember), and recent logs. Then they get a fresh claude -p call with all of that as context.
Message Routing
How your message gets to the right agent — two paths: channel-based (instant) and AI-based (smart).
⚡ Path 1: Channel Mapping (Instant)

Certain Slack channels go directly to a specific agent — no AI needed. Zero latency.

#lis-ops→ Sentinel
#atlas-minds→ Athena
#creative→ Muse
#spark→ Athena
🤖 Path 2: GPT-4o-mini Router (Smart)

Unmapped channels and all Telegram messages run through the AI router. It reads the message + agent descriptions and picks the best match.

🔵 Unmapped channels default → Claudia
🔵 Cost: ~$0.00004 per message
🔵 Fallback: Claudia if uncertain
📱
You send a message
Via Telegram DM or any Slack channel. Message includes your text + optional images.
🔀
Claudia receives it
The Slack/Telegram adapter fires an event. Claudia checks: is this channel in the channel-to-agent map?
Route is decided
If channel is mapped → agent name is known instantly. Otherwise → GPT-4o-mini picks the best agent from descriptions.
🧠
Brain loads
The target agent's full brain context is assembled: soul + domain + memory + recent logs + live data injection.
💬
claude -p is called
The system runs claude --model haiku -p "[brain] [conversation]" as a subprocess. The agent writes its response to stdout.
📤
Response delivered
The answer is sent back to you via the same channel (Telegram DM or Slack thread). Conversation is logged.
🎯
Slash command shortcut: If you start your message with /deal, /finance, etc., the skill runs immediately — no routing needed. The trigger matches and the Python skill executes directly.
The Heartbeat Loop
Every 30 minutes, the system wakes up and checks each agent's domain. At 9 AM it fires the daily briefing.
9 AM :30 :00 Every 30 min: 4 agent checks Daily Briefing check 1 check 2
🕰️ Every 30-Minute Tick — What Happens
:00 / :30
Is it past 9 AM and briefing not sent yet today?
Checks Claudia/data/last_briefing_date.txt. If yes → fires DailyBriefingSkill before agent checks.
+1 min
Sentinel check (CRO)
Loads HubSpot + Supabase snapshot → haiku call → "Any stale deals, urgent renewals, missed follow-ups?" → alerts if yes.
+2 min
Athena check (CTO)
Loads GitHub activity + Vercel deployments → haiku call → "Any failed deploys or blocked PRs?" → alerts if yes.
+3 min
Ledger check (CFO)
Loads Supabase financial snapshot → haiku call → "Missed revenue targets? Tax deadline approaching?" → alerts if yes.
+4 min
Muse check (CMO)
Loads content pipeline → haiku call → "Any stale content ideas (7d+) or blocked reviews?" → alerts if yes.
+5 min
Sleep until next tick
health.json updated. Logs written. System quiet for 25+ minutes until next cycle.
🔕 Deduplication Rules
  • Same alert won't fire twice within 24h
  • Each agent has its own dedup tracker
  • Stored in each agent's data/ folder
  • Survives restarts (file-based)
📍 Where Alerts Go
  • Always → Telegram DM to you
  • Sentinel → #lis-ops Slack
  • Athena → #atlas-minds Slack
  • Muse → #creative Slack
  • Ledger → #claudia-reports Slack
☀️ 9 AM Daily CEO Briefing
🌅
Tick fires after 9 AM
System checks if today's briefing has been sent. If not → runs briefing first, then normal agent checks.
📊
All 4 agents queried
Sentinel, Athena, Ledger, Muse each get a "morning status" haiku call. AI news is fetched via web search.
📬
Briefing sent
Consolidated report → Telegram DM + #claudia-reports Slack. Date written to file so it won't re-fire today.
Live Data Feeds
Every agent has real data injected into its heartbeat prompts. No hallucinated status reports.
🔵

Sentinel — HubSpot + Supabase

Dual feed — real-time CRM + snapshot database

HubSpot Deals API (POST search, live)
Supabase deals_snapshot table
renewal_alerts table (90/60/30d)

Sentinel sees: every open deal with stage + owner + amount, stale deals (no activity 3+ days), pipeline by line of business, critical renewals approaching. Write ops: add notes, move stages, create tasks, update deal properties.

🟢

Athena — GitHub + Vercel

Dual feed — source code activity + deployment health

GitHub CLI (gh) — repos, commits, PRs, issues
Vercel CLI — deployment status all projects

Athena sees: recent commits across all repos, open PRs waiting for review, open issues, Vercel deployment health for Harmonia, Lexington, Argos, GloboTech, AJM FIT, LIS Command Center. Alerts on failed deployments.

🟩

Ledger — Supabase Financial Snapshots

Pipeline value + renewal alerts for financial health

deals_snapshot — pipeline $$ by stage
renewal_alerts — expiring policies
Tax deadlines — computed, not fetched

Ledger sees: total pipeline value, revenue vs $20K/week target, aging analysis (deals 30/60/90d+), upcoming tax deadlines for all 5 entities. Tax calendar is pure date math — no API needed.

🟠

Muse — Content Pipeline JSON

File-based tracker — ideas → in-progress → review → published

Muse-CMO-Creative/data/content_pipeline.json

Muse sees: every content item with its current status and brand tag. Alerts on items stuck in "in-progress" or "review" for 7+ days. You can add/move/complete items via slash commands and the JSON updates immediately.

🔄
When is data fresh? Live data is fetched at the start of each heartbeat tick (every 30 min) and injected into that tick's agent prompts. When you use a skill (like /pipeline), the skill fetches fresh data on the spot — no caching.
Slash Command Reference
Type any of these in Telegram or Slack. Commands execute immediately — no routing, no delay.
🟣 Claudia (COO) — General + Cross-Team
CommandWhat It Does
/search <query>Web search via DuckDuckGo
/doc <title>Create a document
/briefingFull CEO morning briefing (all agents + AI news)
/status [project]Project status overview
/slack #channel msgPost a message to any Slack channel
/company [focus]Consolidated status from all 5 agents
/healthSystem health: uptime, agents, data feeds, last heartbeat
/feedback good/bad <agent> <note>Rate an alert's usefulness (improves prompts)
🔵 Sentinel (CRO) — Deals, Pipeline, Renewals
CommandWhat It Does
/deal <name>Search HubSpot deals by name
/deal note <name> | <text>Add a note to a deal
/deal move <name> | <stage>Move deal to a new stage
/deal update <name> | key=valueUpdate deal properties
/deal task <name> | <subject>Create a follow-up task
/deal stale [days]List deals with no activity (default 3 days)
/deal info <name>Full deal details
/renewalRenewal pipeline (90/60/30-day windows)
/renewal critical30-day critical renewals only
/pipelineFull pipeline dashboard (by stage, owner, LOB)
/ceCE deadline tracker for agents
/carrier <name>Carrier lookup
/email <to> | <subject> | <body>Send an email
/sms <number> | <message>Send an SMS via RingCentral
/commissionCommission status overview
🟢 Athena (CTO) — GitHub + Vercel
CommandWhat It Does
/repoGitHub repos with recent activity summary
/repo <name>Detailed repo: recent commits, open PRs
/repo prsOpen pull requests across all repos
/repo issues <name>Open issues for a specific repo
/deployRecent Vercel deployments (all projects)
/deploy <project>Deployments for a specific project (harmonia, lexington, argos…)
🟩 Ledger (CFO) — Finance + Taxes
CommandWhat It Does
/financeFull financial overview: pipeline value, revenue, renewals
/finance revenue$20K/week target tracking with progress bar
/finance pipelinePipeline health: aging, funnel, urgency
/taxAll upcoming tax deadlines (quarterly + annual)
/tax q1|q2|q3|q4Quarter-specific deadline details
/tax annualAnnual filing deadlines (1040, 1120-S, 1099, W-2)
🟠 Muse (CMO) — Content + Brand
CommandWhat It Does
/contentFull content pipeline (grouped by status)
/content add <title> | <brand>Add a content idea (brands: deepfocus, justjesus, atlasminds…)
/content start <id>Move item to in-progress
/content review <id>Move item to review
/content done <id>Mark item as published
/content remove <id>Remove item from pipeline
/content <brand>Filter pipeline by brand
/brandList all 6 brands in the portfolio
/brand <name>Detailed brand guide: audience, voice, visual, channels
Deal Flow — Lead to Close
How a LIS insurance deal moves through the system with AI handling the paperwork.
NEW LEAD Contact + Deal QUOTED Rates sent FOLLOW-UP Task created APP REVIEW Underwriting CLOSED WON 🎉 Policy issued ⚠ 3d → Sentinel alerts Renewal → Ledger tracks 90/60/30d before expiry → new deal created
📥
Lead Arrives
Intake Heartbeat (LIS) processes JotForm leads → creates HubSpot contact + deal automatically. Duplicate check runs before any record is created.
💬
You search the deal
/deal Smith → Sentinel pulls the HubSpot record: name, stage, owner, amount, last activity, open tasks.
📝
Log your call
/deal note Smith | Called, left VM, will follow up Thursday → Note appears in HubSpot immediately. Timestamp auto-added.
Create a follow-up task
/deal task Smith | Call back Thursday at 2PM → Task created in HubSpot, assigned to you, due date set.
⚠️
Stale deal detection
Every 30 min, Sentinel checks for deals with no activity in 3+ days. If found → Telegram alert + #lis-ops post. Won't repeat for 24h.
🏆
Close the deal
/deal move Smith | closed won → Stage updated in HubSpot. Ledger picks it up in the next financial snapshot → counts toward $20K/week target.
🔄
Renewal cycle begins
Policy expires in ~12 months. Supabase renewal_alerts table fires at 90d → 60d → 30d. Sentinel alerts you to reach out before the window closes.
Slack Channel Map
Which channel connects to which agent — and where heartbeat alerts land.
📢 Channel → Agent Routing
Channel Channel ID Routed To Heartbeat Alerts
#lis-ops C0AERR9FTM4 🔵 Sentinel Stale deals, renewals
#atlas-minds C0AERRE4G14 🟢 Athena Failed deploys, PRs
#creative C0AECE5DCF9 🟠 Muse Stale content
#spark C0AECESFN79 🟢 Athena
#claudia-reports C0AEXFSPA76 🟣 Claudia Daily briefing, Ledger alerts
#network-marketing C0AERRGDTUN 🟣 Claudia
#personal C0AF6QY64QZ 🟣 Claudia
#approvals C0AECE92QGP 🟣 Claudia
📨 Telegram

All Telegram DMs go through the GPT-4o-mini router. Claudia gets the message, routes it to the right agent, replies in the same DM thread. Daily briefing always lands here first.

🔔 Alert Dedup

Each agent tracks what it has already alerted on. Same deal / same issue won't appear more than once per 24 hours — on Telegram or Slack. Stored in data/notification_state.json.

🌐 Environment — What's Running Where
# Claudia/.env — all credentials live here
TELEGRAM_BOT_TOKEN → Telegram adapter
SLACK_BOT_TOKEN → Slack write + socket mode
SLACK_APP_TOKEN → Socket mode connection
SLACK_SIGNING_SECRET → Request verification
OPENAI_API_KEY → GPT-4o-mini router (~$0/mo)
HUBSPOT_API_KEY → Sentinel CRM operations
SUPABASE_URL → Sentinel + Ledger data
SUPABASE_SERVICE_KEY → Service role (bypasses RLS)
🚀
To start the system: cd Claudia && python main.py
Claudia boots, discovers all agents, builds the router, starts the heartbeat orchestrator, connects to Telegram and Slack Socket Mode. Ready in ~3 seconds.