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.
1 The three functions
The whole business is three things. Nothing else counts as a function.
| Function | Leading — what you control | Lagging — the result | Who does the human part |
|---|---|---|---|
| Marketing | Content shipped | Leads | Akash records the content |
| Sales | Conversations started | Appointments booked | Akash holds the conversations and closes |
| Delivery | Tickets resolved, and how fast they get resolved | Cash flow | Akash makes the judgment calls on tickets |
Only three things need a human at all:
- 1Make more content.
- 2Start more conversations.
- 3Resolve tickets faster.
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 does | AI does |
|---|---|
| Records the content | Writes the scripts, edits, schedules, posts it, reports on it |
| Holds the conversations and closes | Starts them, replies, qualifies, chases, books the time |
| Makes the judgment calls on tickets | Opens, sorts, drafts the answer, chases the client, closes the loop |
| Says yes or no at the three gates | Prepares 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.
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
| Surface | What it's for | How you use it |
|---|---|---|
| Telegram — St. Pierre HQ | Reports find you; you reply to act | Topics: Daily Reports · Alerts · Notes · Approvals · Agent Work |
| Linear board | You queue and promote work | Add the agent-ready label to a card = the worker may claim it |
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.
| Rite | When | State |
|---|---|---|
| Sunday targets draft | Sun 6:02 pm | Running — lands in Daily Reports |
| Friday reflection | Fri 3:10 pm | Paused — awaiting your word since Jul 31 |
| Off-track routing | mid-week | Runs 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.
| Function | Role | Owns this number | State (Aug 1) |
|---|---|---|---|
| Background supervision | Sam — supervisor | Nothing stalls silently | Half-live: morning brief running, worker paused |
| Sales | Alex — B2B sales + outbound | Qualified launch calls booked | Staged bot; booking wire missing |
| Delivery | Jordan — B2C delivery | Qualified homeowner handoffs | Live per client; needs templating |
| Delivery | Casey — client care | Job outcomes captured (the revenue loop) | Not built — the #1 build |
| Marketing | Morgan — marketing + content | Daily pack shipped + cost per lead in range | Pieces 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 happens | Role | Where it lands |
|---|---|---|---|
| 6:20 am | Yesterday's sessions archived to the brain | rails | silent |
| 7:30 am | Morning brief composed from live data | Sam | Daily Reports |
| 7:45 am | Ad pack drafted, paused, never activated | Morgan | local drafts for your OK |
| every 5 min | Board changes pushed to Linear | rails | silent |
| every 10 min | Health checks: is anything broken or stalled? | Sam (watchdogs) | Alerts, only when something breaks |
| 9:00 am | Independent cloud cross-check of all rails | Sam (watchdogs) | Alerts |
| 6:00 pm | Daily-three discipline score | scoreboard | Daily Reports |
| 10:10 pm | Check that every automation is registered and watched | Sam (watchdogs) | silent |
8 What runs weekly
| When | What happens | Where it lands |
|---|---|---|
| Friday 3:10 pm | Loop engine reflection: target vs. actual, learnings, next bar (paused) | Daily Reports when resumed |
| Friday 4:00 pm | Weekly grade | Daily Reports |
| Sunday 6:02 pm | Loop engine drafts next week's targets | Daily Reports |
| Sunday shutdown | Week review + next week's plan through the shutdown ritual | your 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-readylabel (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)
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.
11 Build states and gates
| Item | State | Gate to change it |
|---|---|---|
| Telegram HQ + all report routing | Live (Aug 1) | — |
| Hermes on the company's own AI key + watchdog | Live (Aug 1) | — |
| Morning brief, daily score, weekly grade, Sunday targets | Live (Aug 1) | — |
| The worker | Paused, scope locked to Linear | Your word: "resume the worker" |
| Friday reflection | Paused | Your word |
| Alex's booking wire | Unbuilt | None — agent work, ready to run |
| Jordan templating + frustration check | Unbuilt | None — agent work, ready to run |
| Morgan consolidation | Unbuilt | None — agent work, ready to run |
| Casey (the #1 build) | Unbuilt | ~30 min of your clicks first |
| Organic publisher | Parked | Your word — and its switch is set to LIVE publishing; flip to dry-run before any resume |
| Newsletter draft | Parked | Your word |
| Slack retirement (formal) | Waiting | After 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, launchdcom.stpierre.hermes-heartbeat - Telegram send path:
brain.telegram_hq_send(topic, text); topic ids live in the vault row (telegram / progress_tracker), keyhq_topics - Hermes cron jobs:
~/.hermes/cron/jobs.json; report jobs deliver totelegram:-1004401888570:7 - Loop engine:
01-Projects/StPierre-GTM/loop-engine/loop_engine.py(projectSundays,reflectFridays — 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:
getUpdatespolling,setWebhook,claude -prebuilds, pip inside the Hermes venv (use uv)