AgentOS

SABRONMBC command center

Operating Stack: Obsidian + Slack + graphify

How the three tools divide labor for running SABRONMBC's ventures. One brain, one interface, one lens — the agent (Claude) is the glue that moves information between them.

The division of labor

ToolRoleHoldsWho touches it
Obsidian (AgentOS)System of record — the durable brainProjects, Areas, Decisions, P&L, reference. Git-backed, agent-writable.Nabil + Claude (private)
SlackInterface + real-time nervous systemSignals, approvals, digests, partner/client/driver comms. Not a store of record.Nabil (mobile), partners, clients, drivers, the "claw" agents
graphifyConnective analysis lens — the graph brainQueryable knowledge graph over the vault (and code). Reveals cross-business dependencies.Claude, on demand

Principle: Obsidian is canonical. Slack is I/O. graphify is the query layer. Nothing durable lives only in Slack — Slack is lossy and ephemeral; the agent's job is to pull the durable parts back into Obsidian.

Each business = three views of one entity

For every venture: one Obsidian Area note (source of truth) ↔ one Slack channel (live ops) ↔ one graphify subgraph (connections). The Portfolio Canvas in Slack is the index that ties all three together and mirrors Portfolio.

The four loops (what the agent automates)

  1. Digest loop — Morning Briefing already reads the vault + live data → posts to #digest. Add an evening pass: agent writes the day's Slack decisions back into the daily note under ## Decisions.
  2. Decision-capture loop — decisions happen in Slack threads; the agent files them into the right Obsidian note. Slack forgets; Obsidian remembers.
  3. Cross-business query loop — ask in Slack ("total exposure to Coolify?", "which ventures share the Stripe account?") → agent runs graphify over the vault → answers in Slack + saves the analysis to 30 Resources.
  4. Per-business surface loop — each Area note change worth broadcasting → agent posts to that business's channel; each channel decision worth keeping → agent writes it to the Area note.

Outbound-email loop (draft → approve → send, from Slack)

Nas should not only read mail — Nabil wants to send from Slack by approving drafts. The #approvals channel already provides the gate.

  1. In Slack, Nabil: "Nas, email <recipient> about <topic>."
  2. Nas drafts the full email (to / subject / body) and posts it as a draft in an #approvals thread.
  3. Nabil replies approve (or edits inline).
  4. Nas sends, then posts confirmation + link back in the thread.

Blocker: no working send path yet. Reading ≠ sending.

Decision: Gmail MCP for the interactive approve-to-send loop; Bizzle for automated/bulk once redeployed. First real send is a test to Nabil himself before anything external.

Slack structure recommendation (hybrid, don't over-channel)

The function-based channels serve the fleet operation (the real revenue) well — keep them. Add per-business channels only where there's activity or external stakeholders; everything else lives as a section in the Portfolio Canvas. Idea-stage ventures (Cargobox, AquaLink) get nothing.

BusinessSlack todayRecommendation
LotLogistics#lot-logistics + ops-*Keep — this is the operating core
Roadside GA#roadside-opsKeep
SwiftRide#partners-swiftrideKeep
Tripsynk#tech-tripsyncKeep; add #tripsynk only if pre-launch coordination picks up
Dealer ConnectnoneCreate #dealer-connect (active build)
Attaqwa MasjidnoneOptional #attaqwa (community, not a business)
Stitch & WearnoneCanvas section only until status confirmed
BillBashnoneCanvas section only until status confirmed
BizzlenoneStays in #tech-infra (internal email-ops infra)

Why not fully business-based channels?

A solo operator running 8 ventures drowns in channels. Function-based keeps the daily fleet work in a few high-signal places; the Portfolio Canvas + Area notes give the per-business view without 8× the channel noise. The graph (graphify) is where "how does it all connect" gets answered — not the channel sidebar.