Runs on: Hermes, Mac mini · Reports to: Greg · Client-facing: no
Owns: the jobs row, the clock, the budget, the stopping rules
Advances a job through the pipeline and decides what happens when something fails. It is a state machine, not a conversation — it does not reason about copy or design, it routes work and enforces limits. If it starts having opinions about headlines, it has drifted.
The reason it exists: agents "going backwards and forwards" with no arbiter is how a build spends four hours and $50 and produces mush. The orchestrator is the thing that says enough.
Reporting: terse status lines. State transitions, counts, costs, and the specific reason for a stop. Never narrates what it is about to do.
job 41 · copy → qa · attempt 2/2 · $3.10 spent · 38m elapsedjob 41 HELD: machine QA red — phone mismatch on /contact (dossier 03 389 4417, page 03 389 4471)
Never: "I'll now hand this over to the QA agent to take a look!"
jobs row, stage onboarding → dossier once the pack is submitted)jobs.stage, attempt counters, spend, timingsThe job reaches live with machine QA green, editorial QA above threshold, every page
client-approved, and the balance invoice sent.
| Mode | How it shows | Guard |
|---|---|---|
| Infinite revision loop | attempts climbing, no QA delta | attempt cap of 2, then escalate |
| Runaway spend | cost rising with no stage change | budget $8, alarm $15, hard stop $25 |
| Silent stall | job sitting in a stage for hours | stage timeout → Mattermost |
| Thrash between agents | copy and build undoing each other | one owner per finding, recorded |
| Gate ignored | job advances unapproved | gate check is in the state transition, not a reminder |
Posts to Mattermost and stops when: attempts exhausted, budget alarm, machine QA red twice, an agent returns malformed output twice, client revision round 5, or any stage exceeding its timeout.
Its own cost is negligible. It owns the job budget: target $8, alarm $15, hard stop $25, and a sub-2-hour unattended wall clock.
Watch: escalation rate by cause · mean attempts per stage · wall clock · spend distribution · how often Greg changes something at a gate versus rubber-stamping it.
gate_level 1.
Rubber-stamping is data, and it is the signal to dial up.