Fleet SOW — the agent system

The canonical map of who does what — three functions, who is human and who is AI, five roles, one scoreboard, and every daily and weekly duty.

Updated 2026-08-01

1 The three functions

The whole business is three things. Nothing else counts as a function.

FunctionLeading — what you controlLagging — the resultWho does the human part
MarketingContent shippedLeadsAkash records the content
SalesConversations startedAppointments bookedAkash holds the conversations and closes
DeliveryTickets resolved, and how fast they get resolvedCash flowAkash makes the judgment calls on tickets

Only three things need a human at all:

  • 1Make more content.
  • 2Start more conversations.
  • 3Resolve tickets faster.
Everything else runs in the background, automatically — onboarding, campaigns, media buying, the mechanics of running ads, the mechanics of outbound, and reporting. If a job is not one of the three above, it should not land on Akash's plate.

Push on the leading number today; the lagging number tells you a week later whether the pushing worked. Never plan against a lagging number — you cannot move it directly.

2 Human roles vs AI roles

Akash doesAI does
Records the contentWrites the scripts, edits, schedules, posts it, reports on it
Holds the conversations and closesStarts them, replies, qualifies, chases, books the time
Makes the judgment calls on ticketsOpens, sorts, drafts the answer, chases the client, closes the loop
Says yes or no at the three gatesPrepares everything right up to the gate, then stops

The three gates — the only places work is allowed to wait on Akash:

  • 1Spend — money going out, or an ad going live.
  • 2Publish — anything going public under the brand.
  • 3Outbound sends — any message going to a real human as Akash.
If something is waiting on Akash and it is not one of the three gates or one of the three human jobs, that is a bug in the system, not a task for him. Fix the automation instead of adding to his list.

3 The one-sentence model

Skills are the how, scheduled jobs are the when, the worker is the hands for one-off work, and the named agents are accountability bundles on top — each owns one number, none is a separate always-on program.

  • You steer from exactly two places: Telegram (talk, read reports, approve) and Linear (queue work).
  • Everything an agent produces lands as a message to you or a draft for your QA. Nothing sends externally, spends, or publishes without your go.
  • Every result is recorded in one shared memory (the brain database). Telegram is a pane of glass, never the record.

4 Your two surfaces

SurfaceWhat it's forHow you use it
Telegram — St. Pierre HQReports find you; you reply to actTopics: Daily Reports · Alerts · Notes · Approvals · Agent Work
Linear boardYou queue and promote workAdd the agent-ready label to a card = the worker may claim it
The old iMessage alert path is dead — it delivered to the Mac, not your phone. Telegram HQ replaced it on Aug 1. iMessage remains only as a last-resort trace on the Mac.

5 The scoreboard — the loop engine

The loop engine never does any work. It sets the bar and keeps score, per department, every week.

  • 1Sunday evening: drafts next week's numeric targets for each department. You review; only your explicit word locks them.
  • 2Friday afternoon: compares target vs. actual, writes down learnings, proposes next week's bar (aims to tighten toward a 75% hit rate).
  • 3Mid-week: any number going off-track becomes a line in your morning brief.
RiteWhenState
Sunday targets draftSun 6:02 pmRunning — lands in Daily Reports
Friday reflectionFri 3:10 pmPaused — awaiting your word since Jul 31
Off-track routingmid-weekRuns with the morning brief

The difference from the fleet: agents produce outcomes, the loop engine judges whether outcomes hit the number. Workforce vs. scoreboard.

6 The five roles and their numbers

Each role is a bundle of scheduled jobs, skills, and cards — grouped under a name so one thing owns one number. Every role sits under one of the three functions; nothing lives outside them.

  • Marketing: Morgan, plus the whole content machine behind him.
  • Sales: Alex, plus every piece of outbound.
  • Delivery: Jordan and Casey.
  • Background supervision: Sam. Not a fourth function — the thing that watches the other three and shouts when one stops.
FunctionRoleOwns this numberState (Aug 1)
Background supervisionSam — supervisorNothing stalls silentlyHalf-live: morning brief running, worker paused
SalesAlex — B2B sales + outboundQualified launch calls bookedStaged bot; booking wire missing
DeliveryJordan — B2C deliveryQualified homeowner handoffsLive per client; needs templating
DeliveryCasey — client careJob outcomes captured (the revenue loop)Not built — the #1 build
MarketingMorgan — marketing + contentDaily pack shipped + cost per lead in rangePieces exist; no single owner

Sam (background supervision) — the one voice you talk to in HQ. Daily: composes the 7:30 morning brief from live data (pipeline, open alerts, stuck work). Continuously: the watchdog chain escalates anything that goes quiet. When the worker resumes, Sam's reports cover what it did. Sam owns no function number — he exists so the other three never fail silently.

Alex (sales) — answers inbound contractors, qualifies, books the launch call, and runs the outbound mechanics underneath. Drafts only until 50 clean drafts are reviewed. Escalates price talk, anger, or unclear fit to you. Serves the leading number: conversations started. One build step remains — wiring the calendar booking action.

Jordan (delivery) — the homeowner-facing qualifier we deliver to every client. Level King's is live and is the golden copy. Next: freeze that config as a per-niche template so a new client's bot is a clone, not a rebuild; add a nightly check for homeowner frustration, not just bot uptime.

Casey (delivery) — owns everything after a lead is handed to the client: confirming delivery, chasing the client for outcomes with two-question texts, the daily report to you and to the client, review requests, reactivation. This is the role that turns resolved tickets into cash flow. Does not exist yet. Gated on ~30 minutes of your clicks (pay the small ad balance, one real test message, four GHL settings).

Morgan (marketing) — one daily rhythm over the existing creative machinery: build the day's ad pack as paused drafts, post a five-line spend note, recommend kills and scales, weekly competitor sweep. Serves the leading number: content shipped. All Meta activation stays behind your approval gate, always — that is the spend gate.

7 What runs daily

Time (ET)What happensRoleWhere it lands
6:20 amYesterday's sessions archived to the brainrailssilent
7:30 amMorning brief composed from live dataSamDaily Reports
7:45 amAd pack drafted, paused, never activatedMorganlocal drafts for your OK
every 5 minBoard changes pushed to Linearrailssilent
every 10 minHealth checks: is anything broken or stalled?Sam (watchdogs)Alerts, only when something breaks
9:00 amIndependent cloud cross-check of all railsSam (watchdogs)Alerts
6:00 pmDaily-three discipline scorescoreboardDaily Reports
10:10 pmCheck that every automation is registered and watchedSam (watchdogs)silent

8 What runs weekly

WhenWhat happensWhere it lands
Friday 3:10 pmLoop engine reflection: target vs. actual, learnings, next bar (paused)Daily Reports when resumed
Friday 4:00 pmWeekly gradeDaily Reports
Sunday 6:02 pmLoop engine drafts next week's targetsDaily Reports
Sunday shutdownWeek review + next week's plan through the shutdown ritualyour shutdown report

9 The worker — scope rules

The worker is one generic laborer for one-off judgment work. It has no identity and owns no number.

  • Claims only Linear cards carrying the agent-ready label (core lane) — enforced in code, verified Aug 1
  • At most 3 cards per half-hour cycle, with a hard spend ceiling per run
  • Drafts and builds only; parks everything at "waiting" for your QA
  • Reports every result to the Agent Work topic in HQ
  • Never activates ads, never messages a human, never deploys, never touches money or credentials
  • Never marks work done on your behalf
  • Never claims anything outside Linear — the old side-channels are closed (verified zero remain)
The worker is paused. Resume is one command, gated on your word. On resume it would claim the oldest three queued cards first — pull the heavy "ship ads batch" card out before resuming, or expect it to burn most of a cycle there.

10 The three primitives

Every role above is assembled from the same three parts. Nothing else should exist.

  • 1Scheduled jobs — the when. Cron on Hermes for reports and rites, n8n for event-driven syncs and webhooks, launchd for local renders and watchdogs. Mostly no AI; where judgment is needed, a small AI step runs inside the job.
  • 2Skills — the how. The recipe library: ad building, drafting, video production, audits, onboarding. Any layer can invoke a skill; skills change only through the skill-creator process.
  • 3The worker — the hands. One-off work you promote via Linear. Everything recurring belongs to a scheduled job instead.
The July lesson, now policy: no long-running AI programs beyond the gateway. Hermes was silently dead July 3–28 and nothing noticed. Watchdog before workload, always — its death now alerts your phone within the hour.

11 Build states and gates

ItemStateGate to change it
Telegram HQ + all report routingLive (Aug 1)
Hermes on the company's own AI key + watchdogLive (Aug 1)
Morning brief, daily score, weekly grade, Sunday targetsLive (Aug 1)
The workerPaused, scope locked to LinearYour word: "resume the worker"
Friday reflectionPausedYour word
Alex's booking wireUnbuiltNone — agent work, ready to run
Jordan templating + frustration checkUnbuiltNone — agent work, ready to run
Morgan consolidationUnbuiltNone — agent work, ready to run
Casey (the #1 build)Unbuilt~30 min of your clicks first
Organic publisherParkedYour word — and its switch is set to LIVE publishing; flip to dry-run before any resume
Newsletter draftParkedYour word
Slack retirement (formal)WaitingAfter a week of Telegram reports proving out (~Aug 15)

12 For agents — where things live

Reference pointers for whoever works on this next. Safe to skip if you're not an agent.

  • Worker code: 01-Projects/St_Pierre_Digital/agent-board-rail/hermes_runner.py (claim gate: Linear-linked + agent-ready + core lane)
  • Escalator: 01-Projects/CommandCenter/watchdog/escalate.py → HQ Alerts topic; Hermes health: hermes_heartbeat.py, launchd com.stpierre.hermes-heartbeat
  • Telegram send path: brain.telegram_hq_send(topic, text); topic ids live in the vault row (telegram / progress_tracker), key hq_topics
  • Hermes cron jobs: ~/.hermes/cron/jobs.json; report jobs deliver to telegram:-1004401888570:7
  • Loop engine: 01-Projects/StPierre-GTM/loop-engine/loop_engine.py (project Sundays, reflect Fridays — reflect paused)
  • Fleet contracts in full: 01-Projects/St_Pierre_Digital/SOWs/sp-agent-fleet-enriched-plan-2026-07-28.md (supersedes all earlier Viktor-era docs)
  • Cutover plan: _scratch/deliverables/2026-08-01/sow-cutover/index.html (the 14-item off-the-terminal SOW)
  • Never: getUpdates polling, setWebhook, claude -p rebuilds, pip inside the Hermes venv (use uv)