Dinner Arena: ten Claudes fight over where you eat tonight
A free Claude skill. Tell it who's eating, where, and what they can't eat. Ten Claude food critics fight it out in a knockout bracket over real restaurants near you, and one survives with a message ready for the group chat.
By Josh Pocock · Oct 28, 2026 · v1.0 · 4 min read
On this pageThe one prompt
The one prompt
One line. Paste this into Claude Code and it does the rest.
Install the Dinner Arena skill: clone https://github.com/joshpocock/dinner-arena into ~/.claude/skills/dinner-arena, then confirm /dinner-arena works.
- 01Copy the prompt aboveThe repo link plus one line
- 02Paste it into ClaudeClaude Code installs the skill
- 03
/dinner-arenaThen say who's eating, where, and what they can't eat - 04Send the group chat messageWinner, backup and the allergy call, ready to paste
By hand
git clone https://github.com/joshpocock/dinner-arena ~/.claude/skills/dinner-arena
Start a new Claude Code session and type /dinner-arena. Keep web search on so Claude can find real places, or paste a screenshot of a maps search. The screenshot gives the critics the best numbers.
On the Claude app
- Turn on Settings > Capabilities > Code execution and file creation, and keep web search on.
- On the GitHub page click Code > Download ZIP.
- In Claude go to Customize > Skills > + > Upload a skill and pick the zip.
- Start a new chat and say "use the dinner-arena skill", then tell it who's eating and where.
No install at all? Paste SKILL.md and references/critics.md into any chat. Claude runs the bracket by hand from the same rules.

How the fight works
The stage names are the joke. The votes are the honest part: every critic votes on one real number, so the same inputs always give the same winner.
| Stage | What happens |
|---|---|
| Group intake | Who's eating, each budget, diets and allergies, cravings, favorites, vetoes, the vibe. |
| Real places | A maps screenshot you paste, or open restaurants Claude finds with web search. Nothing invented. |
| Allergy Tribunal | Out if the place says it can't cater for a need, or hasn't confirmed a severe allergy. |
| Budget Executioner | Out if it costs more than the cheapest person's limit. |
| Veto Box, Closed Sign | Out if anyone vetoed it or it's closed. |
| The Bracket | Three critics vote on every match. All ten vote in the final. |
| Crowd Override | The humans can overrule any result. |
| Last Restaurant Standing | Winner, backup, call-ahead and allergy warnings, and a message for the group chat. |
| Critic | Votes for |
|---|---|
| The Budget Executioner | The cheaper place |
| The Distance Hater | The closer place |
| The Review Skeptic | The better rating, weighted by how many reviews |
| The Craving Whisperer | More of tonight's cravings |
| The Allergy Lawyer | More of the group's needs the restaurant itself confirms |
| The Wait-Time Prophet | The shorter wait |
| The Adventurous One | Something the group hasn't eaten lately |
| The Comfort Food Loyalist | One of the group's all-time favorites |
| The Vibe Curator | The place that fits tonight's vibe |
| The Group Chat Diplomat | The place where the least happy person is happiest |
One dinner, start to finish
A made-up example, real tool output. Four friends, one vegetarian, one nut allergy, the cheapest budget at price level 2, eleven places. Four are out before a single fight:
ALLERGY TRIBUNAL + BUDGET EXECUTIONER (group needs: nut allergy, vegetarian; price cap 2) ELIMINATED EXAMPLE Ember Steakhouse Budget Executioner: price level 4 is over the group cap of 2 ELIMINATED EXAMPLE Sushi Wave Budget Executioner: price level 3 is over the group cap of 2 ELIMINATED EXAMPLE Satay House Allergy Tribunal: says it can't cater for: nut allergy ELIMINATED EXAMPLE Nonna's Pizza Closed Sign: not open tonight
Seven survivors go into the bracket. In the final, all ten critics vote:
R3M1: EXAMPLE Lotus Thai Kitchen vs EXAMPLE Masala Street
The Budget Executioner -> abstains (tie) [cheaper wins]
The Distance Hater -> EXAMPLE Lotus Thai Kitchen [closer wins]
The Review Skeptic -> EXAMPLE Masala Street [better rating, weighted by how many reviews]
The Craving Whisperer -> EXAMPLE Lotus Thai Kitchen [matches more of tonight's cravings]
The Allergy Lawyer -> EXAMPLE Masala Street [more of the group's needs the restaurant itself confirms]
The Wait-Time Prophet -> EXAMPLE Lotus Thai Kitchen [shorter wait]
The Adventurous One -> abstains (tie) [something the group has not eaten lately]
The Comfort Food Loyalist -> abstains (tie) [one of the group's favorites]
The Vibe Curator -> EXAMPLE Masala Street [fits tonight's vibe]
The Group Chat Diplomat -> abstains (tie) [the least unhappy person is happiest]
SURVIVES: EXAMPLE Lotus Thai Kitchen 3-3 (tie broken by group fit)Claude gives every critic a line in character, naming the real number behind the vote. Then the winner card:
LAST RESTAURANT STANDING: EXAMPLE Lotus Thai Kitchen thai, noodles | price 2 | 1.2 km | rating 4.5 CALL AHEAD to confirm: nut allergy ALLERGY: tell them about the nut allergy when you book, even if the menu says it's fine. A website label is not a guarantee. Backup if it's full: EXAMPLE Masala Street Final vote: 3-3 GROUP CHAT MESSAGE: Ten critics fought. EXAMPLE Lotus Thai Kitchen survived. Calling ahead first about the nut allergy. Backup is EXAMPLE Masala Street. Booking unless someone objects in 10 min.
When the humans disagree
The critics advise. The group decides. Say "Alex had Thai for lunch" and Claude overrules the final, puts Masala Street through and rewrites the group chat message. You can run the tool yourself too. It's plain Python with nothing to install:
python scripts/arena.py override R3M1 --winner "EXAMPLE Masala Street" --reason "Alex had Thai for lunch" python scripts/arena.py final
The fine print
It never books anything. No ordering, no paying, no reservations. Claude gives you the link and you book.
Allergies are rules, not opinions. A place that says it can't cater for a need is out. A severe allergy knocks out every place that hasn't confirmed it. If that leaves nothing, it tells you to call two or three places, never to drop the allergy.
Never take a menu's word for an allergy. Even a place that says "nut-free" gets a reminder: tell them about the allergy when you book.
Real places only. Ratings, prices and hours come from what Claude finds or what you paste. Check before you go.
Your food needs stay in the chat. The bracket is a file in a .dinner-arena folder where you run it.