Personal Project
Comms Desk · Nine-Agent Communications Team
Brief In · Full Package Out · Sign-off Included
Comms Desk: Nine-Agent Communications Team
File a brief. Intake challenges it, strategy and a gated crisis lead shape it, six production agents draft the package, and a sign-off review says what is not ready to publish. The system will not state a fact the brief did not give it.
Personal Project · Working build
9
Agents · Four Stages
Intake, strategy, a six-seat production floor, and a sign-off review — with a crisis lead that gates in on incident briefs
~4 min
Brief to Sign-off
Measured wall-clock for a full nine-agent crisis run, end to end
~$0.30
Cost Per Package
A full standard-tier run: strategy, six drafts, and the review, in API costs
2
Model Vendors
Claude owns judgement and review. GPT-4.1 handles the high-volume drafting.
A full comms package — strategy, press, media plan, owned content, internal comms, spokesperson prep, and a sign-off review — costs about $0.30 and lands in a few minutes. At that price the review stops being a milestone and becomes a habit: every brief and every revision gets pressure-tested before it gets approved, and the package arrives with a note telling you exactly what is not ready to publish.
The Problem
The confident draft is the dangerous one
Ask one model for a comms package and it will hand you fluent, formatted copy that reads as finished. That is exactly the risk. It will call the brand “the leading platform” because the brief said so, invent a market-share figure to support it, and describe a data incident as a “configuration issue” the investigation has not confirmed. Every one of those is a legal exposure wearing the costume of a good sentence.
A real comms function does not work that way. A Head of Comms interrogates the brief. A strategy lead decides which claims can actually be stood behind. A reviewer refuses to sign off on a press release that quotes a spokesperson who has not been named. The discipline lives in the roles and the sign-off, not in the writing.
So I built the desk, and then I built the discipline into it.
The Roster
Nine seats, four stages, one sequence
Each agent declares what it consumes, so the orchestrator feeds it exactly the upstream output it needs, in order. Claude Opus takes the seats where a mistake propagates downstream — intake, strategy, review. GPT-4.1 takes the high-volume drafting. The crisis lead only takes its seat when the brief warrants it.
Head of Comms
Intake
Pressure-tests the brief before anyone drafts. Names the real mandate, the missing facts, the reputational exposure, and the question a hostile journalist would lead with, then calls go, adjust, or hold. Its job at intake is not to be agreeable.
Comms Strategy Lead
Strategy
Builds the core narrative, the message house with proof points, and the sequencing plan. Emits the claims register that binds the whole run: which claims are cleared for use with a proof point, and which are not cleared and must never be stated as fact.
Crisis Comms Lead
Strategy · gated
Runs only on crisis and incident briefs. Writes the holding statement, the hostile Q&A, and the escalation protocol — plus an unconfirmed-facts register that fixes exactly what every other agent may say about cause, scope, and regulatory status.
Media Relations Manager
Production
Builds the tiered media map, the pitch angles written per desk, and the outreach sequence. Matches the story to what a specific desk actually publishes, not to the announcement.
PR Manager
Production
Writes the press release to wire standard: headline, dateline, a lead that carries the story in under 40 words, two quotes that each say something the other cannot, and boilerplate. Every invented figure is marked as a placeholder, never presented as fact.
Content Writer
Production
Writes the owned-channel content: a blog post with an actual argument, an executive byline that takes a position a competitor could disagree with, and an eight-week content calendar.
Internal Comms Manager
Production
Sequences who hears what and when relative to the external announcement, writes the all-employee message and the manager cascade, and builds an FAQ that answers the uncomfortable questions people ask each other, not just leadership.
Spokesperson Coach
Production
Builds the two-page briefing pack an executive will actually read in the car: the three things to land, bridging lines that work out loud, a twelve-question mock Q&A ordered hardest last, and the specific traps in this story.
Head of Comms Review
Review
Signs off the package before it reaches the CEO. Builds the substantiation register for legal, names the single weakest asset, and returns a verdict — blocking on any unsubstantiated claim or vanity objective, quoting the sentence and naming the asset.
The seat that only appears when it should
The crisis lead is gated in code, not left to a prompt. It runs when the scenario is a crisis or an internal change, or when the brief text matches a risk pattern — layoff, litigation, breach, restructure, and their neighbours. A standard announcement runs eight agents; a risk-flagged brief runs nine.
The Discipline
It will not state a fact the brief did not give it
The first live run proved the risk was real. I filed a brief with a vanity objective and two unsubstantiated superiority claims, then read what came back. The drafting agents had laundered both into finished copy: the press release led on “the region’s most transacted and trusted platform,” the blog invented practices to back it, and a crisis brief produced a spokesperson script that stated an unconfirmed cause out loud.
So the discipline became three layers, each verified end to end. Laundering was eliminated at the source, sourced figures were still used freely, and the review now catches whatever slips through — with the sentence quoted and the asset named.
01
A claims register, at strategy
The strategy lead splits every claim in the brief into two lists: cleared for use, each with the proof point quoted beside it, and not cleared, asserted with no evidence. A rule inherited by every downstream agent binds them to it: any claim of superiority, primacy, market position, or organisational practice that is not on the cleared list must be omitted or marked unverified. Never stated as fact.
02
A review that blocks, not soothes
The sign-off review must return "Not ready" if the commercial objective is a vanity metric, if intake called hold and the reason is still open, or if a not-cleared claim appears as fact in any asset. That last condition only fires if the review can quote the exact sentence and name the asset — so it catches real laundering and never over-reaches on a claim that merely appears in a do-not-say list.
03
An unconfirmed-facts contract, in a crisis
On incident briefs the crisis lead publishes a table of what is not yet known — root cause, data scope, whether anyone beyond the discoverer had access, regulatory status — with the exact permitted wording for each. The strategy lead may not state a cause; it writes "under investigation." The review then checks every asset against the table and quotes any line that goes beyond it.
How a Run Works
Brief in, package out
A sequential pipeline across four stages. Each agent’s output streams to the reading pane token by token, and a failed agent is reported in place rather than taking the run down with it.
Intake
The Head of Comms reads the brief and refuses to be agreeable. It states the real commercial mandate, turns the missing facts and approvals into a checklist, flags the reputational exposure, and calls go, adjust, or hold. A vanity objective gets named here, before a single asset is drafted.
Strategy
The strategy lead builds the core narrative, the message house with its proof points, the audience framing, and a phased channel plan — then emits the claims register the rest of the run is bound to. On a crisis brief the crisis lead joins and publishes the unconfirmed-facts contract.
Production
Five drafting seats work in dependency order, each fed only the upstream output it declares it needs: media plan, press release, owned content, internal comms, and spokesperson prep. Claude Opus owns judgement; GPT-4.1 owns the high-volume prose against a settled brief.
Review
The Head of Comms returns as reviewer and judges the package rather than summarising it: message consistency across assets, a substantiation register for legal, the single weakest asset, and a launch-readiness verdict that blocks on anything not ready.
From a Real Run
What the desk actually says
Excerpts from live validation runs, quoted from the system’s own output on test briefs. The organisation name has been genericised; everything else is as the agents produced it.
Intake · Verdict: Hold
“‘Raise brand awareness and increase engagement’ are activity metrics, not business outcomes. This is a vanity objective as written.”
Filed against a deliberately weak brief, intake called hold, not go. It named the missing commercial rationale, the undefined audience, and the absence of any evidence for the brief’s superiority claims, and sent it back to the sponsor before drafting began.
Review · Verdict: Not ready
“Not ready.”
The substantiation register flagged “most trusted name in the industry” and pinned it to every asset that would carry it, with the sign-off owner named. Asset quality was not enough: the objective was still undefined, so the review blocked the package regardless of how clean the copy read.
Crisis · Holding statement
“[Operator] is aware of a security incident affecting our tenant portal … We have secured the portal and are conducting a full investigation … We will provide a further update within 24 hours.”
69 words. It acknowledges, states the action taken, and commits to an update window — without admitting liability or naming a cause the investigation has not confirmed. The unconfirmed-facts register held every other asset in the package to the same line.
Screenshots
The instrument
An editorial interface built to read as a serious professional tool: ink and a single gold accent, Fraunces on the masthead, and the pipeline treated as the ordered sequence it actually is.
Screenshot
The Brief

The Brief
The brief: an editorial masthead with the four-stage pipeline as a numbered sequence on the left, and the fields on the right. The desk challenges a vanity objective before it runs.
Screenshot
The Reading Pane

The Reading Pane
The run: a stage rail of agents down the left, each with a live dot, and a reading pane that streams the selected agent’s output with a caret and its model, duration, and cost.
What It Changes for the Team
The review every brief gets, not just the flagship ones
The brief gets challenged before the team spends a day drafting. A vanity objective, a missing approval, or an audience that reads as “everyone” is named at intake, when changing it is cheap.
The package comes back with its own legal review attached: a substantiation register listing every claim and figure that needs sign-off, the asset it appears in, and who owns clearing it.
Nothing ships as fact that the brief did not supply. The strategy claims register and the sign-off review keep invented superiority claims and organisational practices out of finished copy.
On an incident, the whole package speaks with one disciplined voice: a holding statement that buys time without creating a second story, and every asset held to the same line on cause and regulatory status.
The output is a decision, not a chat log: a go / adjust / hold at intake and an approved / approved-with-changes / not-ready verdict at review, each with the reasoning that got it there.
How It Is Built
How It Is Built
Reasoning Agents
Claude Opus · intake, strategy, and sign-off review
Drafting Agents
OpenAI GPT-4.1 · five production seats, high-volume prose
Utility Agent
Claude Haiku · spokesperson briefing pack
App
Next.js 15, React 19, TypeScript
Streaming
Server-Sent Events · push-to-pull DeltaQueue bridge
Orchestration
Sequential runner · per-agent dependency resolution + error isolation
Claim Discipline
Strategy claims register · review blocking logic · crisis unconfirmed-facts register
Model Routing
Three cost tiers by job · economy profile ~70% cheaper
Host
Vercel Pro · maxDuration 300s, in-memory run store
What I Built
What I Built
Every part of this system — the nine agent roles, the orchestration, the claim discipline, the streaming layer, and the editorial interface — was built by me using Claude Code as the development environment.
Wrote all nine agent roles and their instruction builders, each declaring which upstream agents it consumes so the orchestrator feeds it exactly the right context in dependency order
Built the crisis gate as a code predicate, not a prompt: the crisis lead runs only on incident scenarios or when the brief matches a risk-keyword pattern, so a standard announcement runs eight agents and a risk brief runs nine
Ran the pipeline against live APIs for the first time and adversarially tested it: filed a brief with a vanity objective and two unsubstantiated superiority claims to see whether the drafting tier would launder them into finished copy. It did
Hardened it with a three-layer claim discipline: a strategy claims register that clears or rejects every claim, a rule that binds every downstream agent to it, and review blocking logic that refuses sign-off on any unsubstantiated claim — requiring a quoted sentence and a named asset, so the review never over-reaches on string presence alone
Added a crisis unconfirmed-facts register: on incident briefs the crisis lead publishes the exact permitted language for cause, data scope, third-party access, and regulatory status, and the review checks every asset against it and quotes any violation
Built the streaming layer: a push-based model callback bridged to a pull-based generator through a delta queue, so text reaches the client token by token while the model is still generating, and a failed agent is isolated rather than killing the run
Routed three model tiers by job — reasoning to Claude Opus, drafting to GPT-4.1, utility to Claude Haiku — with an economy profile that drops to cheaper models for rehearsal at about 70% less cost
Redesigned the interface as an editorial instrument: an ink-and-gold masthead, a two-column brief with the pipeline as a numbered sequence, and a reading pane that streams each agent’s output with a live caret and its per-agent cost and duration
A full comms team reads the brief, drafts the package, and signs off on what is ready — and refuses to state a fact the brief did not give it. That is the review most announcements never get, on every brief, in a few minutes.