We run 20 agents across 8 pods on a single operator. Here is the architecture, the roster, the model routing, and what we learned building it.
Not theory. The rules that emerged from shipping and breaking things.
Orchestrator-workers. One main agent decomposes and routes; specialists execute in parallel; gates run before synthesis.
All agents run as Claude session personas using the native Claude Task (subagent) tool — no LangGraph, no framework. Anthropic's own guidance: start simple, reach for frameworks only when you have an always-on headless requirement that justifies the overhead. We don't yet. The vault (~/ClaudeWork/) is the persistent brain. Agent definition files (CLAUDE.md per agent) are the identities. Scheduled tasks (crons) handle always-on behaviour.
20 active agents across 8 pods. Source of truth: Agents/README.md in the vault.
today.md. She runs the machine — she does not decide what's good.cwdeploy — the script is the enforcer.The routing table that governs every agent invocation. Judgement on Opus. Coordination on Sonnet. Volume on Haiku. Sensitive data on local Ollama.
| Persona | Model | Why |
|---|---|---|
| MotherMary — orchestrator | Sonnet | Coordination and dispatch run constantly — needs reliability and speed, not frontier. Escalates to Opus on genuinely ambiguous routing. |
| BenjaminBetter — editorial brain | Opus | Editorial judgement, P/Q/S scoring, keep/cut calls. Low frequency, highest stakes. |
| KendallRoy — adversarial | Opus | Must find the holes. A weak model rubber-stamps — the entire point of Kendall is the quality of the critique. |
| BelindaBrand — brand gate | Opus | Final external brand judgement. The throat to choke — needs to be right every time. |
| WilliamShakespeare — copy | Opus final · Sonnet drafts | Voice is the product. De-Claudification is frontier work. Draft on Sonnet, finish on Opus. |
| DylanDesignDirector — visual | Opus ruling · Sonnet production | The look-or-no-look ruling is judgement (Opus). Production passes are Sonnet plus image tools. |
| ConnieConsultant — analysis | Opus | The baseline maths and MECE structure — no directional answers without frontier rigour. |
| SuperSebastian — stack | Opus strategy · Sonnet plumbing | He owns model selection itself (meta) — Opus for strategy; Sonnet for the wiring. |
| StarTrekScotty — infra | Sonnet | Infra reasoning and failure debugging. Methodical, not frontier. |
| Anselm — SEO | Sonnet | Structured four-layer audit — reliable, not frontier. |
| DaisyDiary — calendar EA | qwen3:8b local | Diary content stays on-device. Personal scope. $0/call. Equivalent to Haiku 3.5 for triage work. |
| Daily harvest crons | Haiku | High-volume scrape and parse. ~1/30th the cost of Sonnet. The lever that keeps the daily machine cheap. |
| GIG client agents (7 agents) | qwen3:14b local | Client data never leaves the box. Air-gapped Ollama on Studio. $0/call. Escalation path to qwen3.5:35b-a3b (≈ Sonnet-class) when needed. |
What actually runs the machine.
The failures that shaped the current setup. Logged in failures.md; distilled here.
We spent 10 minutes in a session asking MotherMary to manage the diary, because we'd hardcoded 11 agents in the bootstrap and DaisyDiary wasn't on the list. The fix: Agents/README.md is now the first mandatory read of every session. If you add an agent and don't add them to the bootstrap, they don't exist.
Five image-generation sessions were signed off from intent rather than by actually opening the file. The rule now: before any rendered image is called "done," image-critique runs — opens the file, views at real and thumbnail size, checks line by line. Looking is a measured claim, not a feeling.
Any check that's needed 3 or more times becomes a code gate, not a reminder. The third invoke is canon owing a hook, not another "remember to." We have too many "remember to" rules that should be enforced by the harness.
Our original setup chained personas — Seb → Kendall → execute. When Kendall was skipped once (session pressure), we had no visibility. The orchestrator-worker model with explicit gate steps makes skipping a gate a visible architectural violation, not an easy shortcut.
Claude Code shipped an April 2026 regression that broke agent behaviour without warning. Your agents are only as reliable as the harness they run on. Test the harness, not just the agents. A scheduled task that silently stops running looks exactly like a scheduled task that's working fine.
If an agent needs the operator to paste a key, run a command, or confirm a URL, the agent has already failed. Build probes, not requests. The measure of an agent is whether it can verify its own output without the human in the loop. If it can't, it's not an agent — it's a co-pilot with extra steps.