AgentOS

SABRONMBC command center

Business Info Funnel to Slack

Goal: every active venture funnels its live signals into Slack and to Claude on a schedule, so Nabil runs all businesses from one interface with approval-gated actions — for tighter ops and better bottom lines.

Definition of done: each active business has (1) a data funnel, (2) a scheduled Claude routine posting a structured weekly report to its channel, (3) an approval-gated action loop. Dead scaffolding removed.

Evidence — current Slack state (read 2026-07-06)

Architecture — the funnel

Data sources → Claude cloud routine (scheduled) → Slack business channel → Nabil approves/acts → Obsidian (record) → graphify (cross-business queries)

Claude is the funnel processor: routines run Claude against the sources and post to Slack. Obsidian stays the source of truth; Slack is the interface; graphify answers "how does it all connect."

Decision: standardize on the Claude app + cloud routines. Retire Nas/OpenClaw — the proven path already runs on Claude routines; maintaining a second stalled agent is pure overhead.

Per-business funnel map

BusinessData sources (funnels)Routine → channelCadenceStatus
LotLogisticsGitHub repo, PostHog 483628, Stripe, Hasura fleet, Coolifyself-improvement pass → #lot-logisticsweekly✅ live
Fleet P&LStripe + Uber/Lyft exports + costs (fleet-pnl skill)weekly P&L → #fin-reportingweekly⬜ funnel the skill output to Slack
Roadside GAGitHub, PostHog 483582 (app already in channel), prodhealth + funnel metrics → #roadside-opsweekly⬜ wire PostHog alerts + routine
TripsynkGitHub, EAS buildsdev/release digest → #tech-tripsyncweekly
SwiftRideHasura fleet DB, App Storeco-owner monthly statement → #partners-swiftridemonthly
Dealer ConnectGitHubbuild digest → #dealer-connect (create)weekly⬜ needs channel
Infra/CoolifyCoolify, Hostinger VPSdowntime + deploy alerts → #tech-alertsevent-driven
Stitch & Wear, BillBashhold until status confirmed

The three action loops

  1. Report loop (pull): scheduled routine reads sources → posts structured report to the business channel. Proven in #lot-logistics. Replicate.
  2. Alert loop (push): PostHog/Coolify/CI fire events → #tech-alerts / channel. High-signal, low-noise.
  3. Approve-to-act loop (bidirectional): Nabil asks in Slack → Claude drafts (email, PR merge, contract) → posts to #approvals thread → Nabil approves → Claude executes → confirms + records to Obsidian. First instance: the outbound-email loop (see Slack Obsidian Graphify Strategy).

Build order

  1. Funnel the fleet P&L to #fin-reporting — the fleet-pnl skill already produces it; this is the fastest "better bottom line" win. Weekly routine.
  2. Wire the approve-to-act email loop once Gmail MCP is connected (/mcp).
  3. Replicate the report routine for Roadside GA (PostHog app is already in-channel) and Dealer Connect (after #dealer-connect is created).
  4. Cleanup: archive dead channels (keep the active + report-target set), retire Nas/OpenClaw.
  5. graphify layer: index the vault so Slack questions like "total Coolify exposure?" / "which ventures share the Stripe account?" get answered from the graph.

Fleet P&L funnel — implementation status (2026-07-06)

A (done): cloud routine Weekly Fleet P&L (revenue snapshot) (trig_019nh8sZFUx9kjqvxEdUtamA), Mon 07:00 UTC → posts Stripe revenue + balance to #fin-reporting, nudges to run the full local P&L. Uses Stripe + Slack cloud connectors (proven pattern — the Morning Briefing already pulls Stripe in cloud, correcting the earlier "Stripe isn't a cloud connector" note).

B (de-risked, one gate left): make the full per-vehicle P&L run in the cloud.

B next steps: (1) Nabil provisions the read-only token; (2) introspect get_fleet_financial_summary args or fix the KPI populate job; (3) author the full-P&L cloud routine (disabled → enable after a verified test run); (4) retire routine A's "snapshot only" caveat.

C — local backup (scaffolded 2026-07-06)

A launchd job that runs the full per-vehicle P&L locally, as backup to A (cloud snapshot) and B (full cloud). Independent of B's Hasura token and the empty KPI view — it uses the local stdio MCPs that already work.

Cleanup candidates (channels to archive — zero traffic)

#new-channel, #social, #random, #digest, #digestsa, #claw-chat, #claw-logs, #claw-approvals (Nas retired), plus the unused ops-*/legal-* set — collapse to only channels that will actually receive a funnel. Confirm with Nabil before archiving.