I Hired Forty Cooks and None of Them Have Hands
I run a bar site. Nobody asked for it, which is how you know it's a passion project. It needed a kitchen — food, drinks, bar games — and I don't have a kitchen staff. What I have is a fleet of AI agents and a complete inability to do anything at a reasonable scale.
So I hired the swarm.
The brigade
First build: 26 agents in a two-phase workflow. Writers produce a batch, then an independent editor agent works over each batch — a second set of eyes that didn't write the thing it's checking, same as any shop that's been burned before. Output: 30 bar dishes, 15 drinks, 19 bar games. Everything landed in a database and got rendered by templates. Content is rows, not code. If a dish is wrong, I fix a row, not a deploy.
The safety brief was non-negotiable, and I wrote it like a range card. Every drinking game must be playable sober — sips, not shots, and a written non-alcohol alternative in the rules. Every food item carries real cook temperatures. Not vibes. Numbers.
Then I did what the Marine Corps taught me to do with anything that reports "mission accomplished": I inspected it.
Post-load audit: 9 of 9 chicken dishes cited 165F/74C. Zero risky phrasing across the games — the single regex hit was the phrase "buys the next round," which, fine, guilty as charged. The cooks passed inspection on the first walk-through.
The inspector did not.
My tooling fails the inspection
I wrote a "no drinking" filter to flag any game that pushed alcohol. It matched only 2 of 19 games, which looked like a disaster until I read the matches.
The games that carefully describe their sober alternative necessarily contain the word "drink." My filter was penalizing the careful ones for their care. The agent that wrote "players who lose take a sip, or a jumping jack if you're not drinking" got flagged. The hypothetical agent that wrote nothing at all would have sailed through clean.
I had built a checker that punished compliance. Reframed the whole thing around intensity instead of keywords, and put the honest line on the site: Every game here is playable sober.
Strike one against me. It gets worse.
The Fried Cod Incident
I added a diet system — vegan and vegetarian badges on every card. First pass, I classified the existing 30 dishes by keyword, because I am a man who apparently learns nothing.
My classifier confidently marked Fried Cod Sliders as meat-free.
"Cod" wasn't in my pattern. That's it. That's the whole bug. A three-letter fish slipped a keyword net, and a vegetarian visiting the site would have trusted that badge, because badges are exactly the kind of thing people trust. This is not a rendering glitch. This is feeding someone fish on my say-so.
I threw out the guesswork and reclassified all 30 dishes the boring way: by reading the actual ingredient lists. Which is what I should have made the machine do in the first place, and — pay attention here — what the machines had been doing all along.
The vegan audit, or: 22 crimes that weren't
Then I audited every plant dish ingredient-by-ingredient, hunting for violations. Found 22.
Every single one was a false positive. And not random noise — every hit was an agent's own cautionary label:
- "vegetable stock (not chicken)"
- "vegan Worcestershire — standard contains anchovy"
- "maple syrup (not honey)"
My checker saw "chicken," "anchovy," "honey" and screamed. The agents had written those words specifically to warn future cooks about the trap. They knew classic Worcestershire has fish in it. They flagged it unprompted. Genuine violations: zero.
Read that back. I built an auditor to catch my cooks cheating, and the auditor's entire caseload was the cooks' own safety warnings. The content was more careful than the checker. I am not the quality gate in this kitchen. I am the guy the quality gate has to work around.
World tour
Emboldened, I sent out 20 more agents — 10 city researchers, 10 verifiers, web search enabled — and got back 224 dishes across Tokyo, Paris, Seoul, Madrid, Milan, London, Istanbul, Bangkok, Mexico City, and Lisbon. Native names in local script, romanization, and a per-city note on how eating-while-drinking actually works there, because a Madrid bar and a Seoul pocha are not the same operation and the menu should know that.
Round two went deeper on the same ten cities — the brief said skip the tourist list, bring me offal, tinned fish, marrow bones, the 2am food. 166 more dishes. The kitchen now stands at 444 plates and 15 drinks, with 33 chicken dishes citing 165F and 145 dishes stating a frying temperature. My hands-free cooks are more consistent about food safety than most restaurants I've eaten in.
Two near-disasters, both mine
One: I almost launched round two with a placeholder where the duplicate-guard list of existing dishes should have been. The guard would have been checking against nothing. Caught it, stopped the run, baked the real 150 names into the prompts, relaunched. The swarm didn't almost serve 40 duplicate wings. I did.
Two: slug collisions in round two silently flipped 3 audited vegan dishes to omnivore. So I wrote an automatic reclassifier to fix it. Then I ran it, looked at the output, and deleted the reclassifier — because it was demonstrably dumber than the agents it was correcting. It called "Burnt Cashew Queso" dairy. Because of the word "queso." A dish whose entire identity is cashews instead of cheese, convicted of cheese by name association. I restored the audited labels from the round-one SQL and let the agents' work stand.
That's the third tool I built to supervise the swarm that ended up in the trash while the swarm's output survived untouched.
The pantry, and the lesson
Same pattern on a separate build: an 18-agent workflow produced a 708-ingredient reference database across 16 categories. Two agents died mid-run to API drops. The workflow resumed from cache and re-ran only the failures. Two casualties, zero data loss, nobody complained. Meanwhile I can't restart a download without swearing.
Here's the score for the week. Agent errors caught by my audits: zero. My errors caught by my audits: the filter, the classifier, the placeholder, the reclassifier. Four.
Twenty years ago the failure mode was "the computer did something dumb and I fixed it." Now the failure mode is "I did something dumb and the evidence was preserved in a database by forty cooks who don't have hands, don't eat, and have never once fed a vegetarian a cod slider."
I set the standards. They met them. I'm the one who keeps failing my own inspection.
Semper fi to the swarm. The bar is open at dine.bitchlove.com and the games are at games.bitchlove.com. Every game is playable sober. Every chicken dish says 165F. Don't trust me — trust the rows.