I've built a content team of ten. None of them are human, all of them have names, and one of them can fail everyone else's work.
They make content for my brands. Here's how the team works, what stays mine, and what a week of it costs.
The team, and why they have names
My brief was short: one orchestrator, one copywriter, one video editor, one script writer, a social media manager and the rest. Plus one hard requirement: the same character in every repo and every session.
- Ada, the showrunner: plans the work, writes the tickets, keeps the canon.
- Vera, the researcher: primary sources and a dated claims ledger.
- Theo, the script writer: every spoken word.
- Mila, the copywriter: every read word.
- Kai, the video editor: the edit, sound, captions and thumbnails.
- Otto, the animator, who joined on Monday.
- Rio, strategy and packaging: topics, titles, thumbnail concepts, analytics.
- Nico, the social media manager: distribution and post drafts, never the posting itself.
- Iris, the standards editor: facts, policy, licences, voice. The only one who can fail work.
- Juno, the brand designer, who joined today: type, colour, marks and templates, proven on real layouts.
Lanes are strict. A writer can't add a fact that isn't in the research ledger, the editor can't change the words of an approved script, and Iris writes gate reports but never fixes anything herself.
A name isn't decoration here: it's an address for memory, so Ada in my content repo and Ada in a session in another repo are the same Ada, with the same persona, accepted memory and log of what she did and where. All of it lives in git, in one folder: a charter every character shares, one file per character, their memories and an append-only log. The AI tools only hold generated copies, because their own folders get pruned, and I've lost plans that way before.
The maker never checks its own work
This is the choice everything hangs on. "Done" means checked, and nobody marks their own work as passed: Iris does, or a code check does.
- 1I approve the topic
- 2The team makes it
- 3Iris checks every gate
- 4I publish, or I don't
On the first real runs, Iris failed a script with specific findings: unsourced lines in named scenes, and a cause stated as settled. The fix goes to whoever owns the failure, so a sourcing problem goes back to Vera, not to the writer.
After two failed rounds, a gate stops and comes to me. How much runs without me at all is a setting, a ladder with four rungs:
- 1OffNothing runs by itself. Everything happens when I ask.
- 2Plan, the defaultAda proposes a plan and I approve it before anything runs. It's also where the team falls back to, automatically, after two failed runs in a row.
- 3DraftResearch, scripts, packaging text and the fact and script gates run by themselves, but only for topics I approved.
- 4ReadyProduction, the render and the remaining gates run too, within the caps. I watch the finished packet and decide whether it goes out.
The red team
Then I pointed a red team at the first batch the team had called ready. Iris and Nico reviewed it, and a fresh skeptic checked every finding independently.
0 of 50
serious findings confirmed by the skeptic
on work the team had already called ready
Wrong numbers and a misattributed quote. A chart drawn backwards, from a units bug. Titles that promised more than the piece delivered, missing AI labels, and one template shell across the whole batch, the kind a regular viewer recognises in seconds.
The pipeline changed the same day. The edit gate now reads frames of the actual render, every piece carries its AI-label call per platform, code checks for AI-writing tells and length against the brief, and a render can no longer mark anything ready before its final check.
What stays human
- Approving a topic. Nothing is made without it.
- Names and accounts. The team proposes options; I pick and I create.
- Money. Anything past a cap, any paid voice, any paid plan.
- Scheduling and publishing, and every reply and DM.
- Deleting anything, and the live site.
- Memory. Characters propose lessons; I accept or dismiss them, and a dismissed lesson never comes back. Today I went through the 24 waiting for me: 21 accepted, 3 dismissed.
What it costs
Every call is metered. In the seven days to 4 November, my content pipeline spent $109 across 1,304 calls: $2.27 for each piece that reached ready. The cost isn't in the model's price; it's in the rounds, because every failed gate means a fix plus a re-check.
So I tested a cheaper model where it looked safe: Haiku writing the social posts. A blind judge preferred the Sonnet posts 7 times out of 8, for a saving of about $0.004 a piece, so posts stay on Sonnet. A step's model is chosen by an evaluation, never by a guess.
One limit nobody mentions: all of this runs on one Claude account, shared with my other apps. In October, three agents at once locked my own app's AI out for about four hours, so the rule is hard: at most two agents at a time, anywhere.
An AI team isn't ten clever agents. It's one honest checker, and enough plumbing that skipping her is impossible.
Weekly-ishEngineering OS, in your inboxJoin Engineering OS


