Agent Team v2 — the brain thinks, the owners decide, the arms do

Designed from what actually broke on 2026-09-11, not from a diagram. Every item below names the mechanism that exists today and the smallest change that makes it hold.
Shaan console cards · decisions · credentials, money, production data — the only three things that wait for him Agents tab → AZ, owners, tasks, talk Agent Zero — resident, Opus, ONE pane on the VPS reads Plane · spawns/ends owners · sequences deploys · the only voice to Shaan Owner: HealthOpus · ephemeral · brief in → handoff Owner: Tokensdecides · proves in a browser · exits Owner: Life → Postgresone workload, one owner …as many as the work needs,none longer than the task Arms: Qwen3.8-27B pool — 16 workers, serving since 09:41Zbounded jobs: convert, grep, draft, bulk-edit, run the harness Arms: Luna (GPT, Codex plan) when the plan is onsame contract, same brief; the owner picks Qwen or Luna per job owners message AZ, never Shaan · AZ posts to the console

What the last 24 hours proved, and the mechanism that fixes each

ObservedCostMechanism (exists → change)
Agent Zero died at 00:04 from a hook 400 and nobody noticed for 9 h. He has no pane; he runs headless on the laptop.9 h frozen fleetherdr already reports agent_status per pane → give AZ one pane on the VPS (w1, cwd /opt/siso-agent-zero). Heartbeat, visibility, addressability in one move.
Owner reports landed in Shaan's laptop pane: az-notify targets w65b0dbdd91d7811-1, the pane he types in.Owners "messaging us"az-notify exists → retarget it to AZ's VPS pane. Shaan's pane stops being the fleet inbox the same minute.
Nine owners at 235k–692k context each, resident 15 h, $591 by midday. Real work ended ~02:00.Most of the billOwners become ephemeral: brief in (TASK-*.md already exists), definition-of-done a browser can check, handoff file out, exit. Resident context = AZ only.
53 ad-hoc Playwright scripts in /tmp/pw since 19:44 yesterday: 41 read the credential file themselves, 53 launch their own Chromium, 1 reuses a saved session.Rediscovery, leaked browsers, 5 concurrent chromesverify-page.mjs + /opt/orca-eval/verifier.env exist → one siso-browse CLI with a persisted storageState: siso-browse shot /siso-crm/health, siso-browse text …, siso-browse click …. Logged in once, reused by owners and arms. Camofox slots in behind the same command later.
Ten typed-but-unsubmitted dispatches (send-text without Enter, bare Enter on stale lines).Hours of "idle" that was actually "never asked"One az-send <pane> "…" that clears, types, submits, reads back a spinner and fails loudly. No raw herdr pane send-* in briefs.
Hand-rolled pointers, a hidden second publisher, hollow releases with exit 0.2 min production outage, 3 false alarmsDone today (LABS-16): hollow gate, backwards refusal, last-good pin, per-build outDir, siso-web-publish inert. Remaining: /assets miss must 404 — still returns Twenty's HTML.
"Are you done?" → nine yeses; two were wrong (Save 403'd, Twenty blocker was never real).TrustEvery brief ends with what a browser must show. The owner ships the screenshot with the claim, through siso-browse, or it is not done.

The three tiers, as rules not vibes

BRAIN

Agent Zero — resident, Opus

Lives in one VPS pane. Reads Plane for the project, decides which domains exist, spawns an owner per workload with a brief, sequences deploys, closes owners when their handoff lands. The only agent that speaks to Shaan (console cards, one page with a visual). Mostly idle by design.

Hard rules: one instance ever (pgrep before resume); heartbeat via herdr status; state in AGENT-ZERO-STATE.md, updated on every decision.

OWNERS

Domain owners — Opus, ephemeral, autonomous

One workload, one owner, full authority inside it: they do not ask permission, they tell AZ what they are doing and go. They message AZ, never Shaan. They decide, verify in a browser, hand off, exit — 20–60k context, not 500k.

They do not build the arms' work themselves: anything mechanical, bulky or repetitive is dispatched to a worker with a brief and a checkable result.

ARMS

Workers — Qwen pool, Luna when the Codex plan is on

No judgement, no rediscovery. A brief says exactly: files, command, expected output, how to check it. Convert, grep, draft, bulk-edit, run siso-browse, produce the screenshot. Result comes back as a path + a window, never a wall.

Pool serves today (tools/pool-env --check → ok, 0.32 s). 16 workers now; the owner picks Qwen or Luna per job by one flag.

The visual plane — an Agent Zero tab in Agents

The Agents surface already exists (/siso-crm/agents = Orca, /siso-crm/herdr = the proven rail). The tab adds four things, all from data that already exists:

PanelSource that already existsWhat Shaan sees
Agent Zerohis VPS pane via /herdr-tty/vps/ (behind the login)talk to him from the site; his last decision; alive/idle/dead
Ownersherdr pane list + agent_status, brief file per panewho exists, what each owns, working / idle / blocked, context size, cost
TasksPlane work items (18 projects, siso-plane-ops CLI)the queue per domain; add a task from the page; AZ picks it up
Shippedreleases + siso-browse screenshotswhat changed on production today, with the picture
Plane is the task spine. Beads (gastownhall/beads, 27k★, Steve Yegge's local-first agent issue tracker) is the strong alternative if Plane's API proves too heavy for arms to write to; it would sit beside Plane as the agents' scratch memory, not replace the board Shaan looks at. Decide after the first week of ephemeral owners, not before.

Order of work — smallest change that removes the biggest failure

#ChangeRemovesSize
1Agent Zero pane on the VPS; retarget az-notify; laptop resume retiredsilent death, fleet inbox in Shaan's panean hour
2az-send with read-back; briefs forbid raw pane sendsunsubmitted dispatchesan hour
3siso-browse on the VPS with persisted login; delete /tmp/pw/*53 scripts, leaked browsers, "renders" without proofhalf a day
4Ephemeral owner contract: brief → done-check → handoff → exit; AZ closes panesthe $591/day resident contexta day, then it is the habit
5worker CLI for owners: Qwen or Luna, brief + files + check, result as pathowners doing arms' work at Opus pricesa day; pool already serves
6Agent Zero tab in Agents (four panels above)Shaan flying blind; asking agents for statusone owner, two days
7/assets miss → 404; /preview/*/assets servedblank tabs after deploys; blank named previewsCaddy, an hour, root

What stays exactly as it is

Opus for brain and owners — it is the cost-efficient tier for judgement. herdr as the fleet substrate. Plane as the board. siso-deploy.sh as the only publisher. The console for anything Shaan must see. The owner model itself: today it shipped Health with storage, Budgets, Devices, the token explanation, and a hardened deploy path — the structure works; it is the plumbing between tiers that leaked.

Written 2026-09-11 by the laptop session relaying for Shaan. Evidence: herdr statuslines, /tmp/pw, az-notify source, Agent Zero's transcript, today's releases.