I playtested my murder mystery using AI agents
What else do you do when you're hosting a Halloween murder mystery? Get a room of AI agents to play it first.
The short version
For Halloween I created a murder mystery and invited seven friends over to play it. Unsurprisingly, I'd never written one before.
It took about two days of work, mostly evenings and breaks from other things, with Claude Code running from my phone. Before anyone arrived, rooms of AI agents had played it somewhere between five and ten times. That's the part I couldn't have done before. It used about $150 of free cloud credits. I probably wouldn't spend $150 of my own money on it, but hey, maybe I would.
We caught the killer by four votes to three. The game lives on Vercel. If you want to run it with your friends, message me and I'll walk you through it.
It ran on everyone's phone
Death in Q4 is set at the Halloween social of Halcyon Data Group, a 40-person data company in Croydon. At noon the managing director promised to name "someone in this room who has been stealing from this company" at five. At 4:45, after a séance in the dark, he drank his coffee and died.
I went with a corporate theme because there's nothing scarier. Everyone played on their phone, logged in to a Windows 98 staff portal.

Log on with the code from your Post-it

The briefing everyone shares, with the room plan

Your own file (secret blurred here, not in the game)

Round 2 stays locked until the blackout

The host's view: scripts, props, the solution
Paper means rustling, losing and spilling. Phones just worked. Each guest got a staff code on a Post-it. Every page is encrypted, so your code opens your pack and nothing else, and Round 2 stays locked until I read out a second code after the blackout.
How a game runs
| Stage | What happens |
|---|---|
| Introductions | Everyone reads their character's intro aloud, in character. |
| Round 1 | Round the room, one clue each, until every clue is out. Then anyone can ask anyone anything. |
| The blackout | Ten seconds of darkness to re-create the séance, then a code unlocks everyone's Round 2 clues. |
| Round 2 | Same again, with the new clues. |
| Accusations | Everyone writes down who did it, how and why. |
| Confessions | Everyone owns up to their secret, then the killer stands up. |
Innocent players can't lie about a clue. The killer can lie about anything, and wins if most of the room accuses someone else.
Eight people hiding things is hard to keep straight
I thought it would be easy. It's a story with some clues in it. But once eight people are each hiding something, every line has to pass four tests:
- The person saying it could actually know it.
- It's true, unless the killer is saying it.
- It agrees with every other line, the timeline and the room.
- Together, the clues lead to one answer, but not in one lap.
And every line is tied to other people.
Who links to whom
Tap a name to see its links.
- A clue said aloud
- Grudge or motive
- Knows a secret
- Close
- Works with
To check them, I laid everything out in grids. Here's one.
Eight places the alibis didn't add up
Where all nine people were, moment by moment, from the coherence check. Every square has to agree with every other. Names are letters and events are hidden.
Every change cascades
Nothing changes on its own. My read-through found a character handing over two clues against the person they were secretly protecting. Moving those clues meant someone new had to be able to know them, which broke an alibi, which needed a new line, which changed the solution. That one fix touched 16 of the game's 22 pages.
Claude found this hard too. It's great at a story and at any one pack, but keeping eight consistent across dozens of edits is a different job, and it kept adding a line for every question. One cutting pass took the cards from 3,973 words to 2,919 without losing a clue. The grids came from a framework mystery writers use to check a plot, which I had Claude run across every pack before any agent played.
How I set up the playtest
To playtest a murder mystery you need seven people who don't know the answer, and after every fix you need seven more, because the last lot know who did it. For a dinner party that never happens. Agents are a great way to simulate anything that would otherwise need a large group of people to do something rather arduous, again and again.
1. Write pass/fail targets before you play
I wrote down what a good game looks like, the way you'd write tests. The first game failed three of these six.
| Target | First game |
|---|---|
| After Round 1, nobody is more than 40% sure of anyone | Fail one hit 50% |
| After Round 1, at least three different top suspects | Fail only two |
| A sharp solver names the killer at 65–85% | Pass 84% |
| No single line, or pair of lines, settles it | Fail a pair did |
| Remove any one player's Round 2 clues and it's still solvable | Pass just |
| 40–70% of innocent players name the killer | Pass 4 of 6 |
2. Give one host session the answer
A single Claude Code session played the host. It read the scripts word for word, ran the rounds, and was the only thing that ever saw the solution. From my first playtest prompt:
“Read it yourself, but never let it reach a player agent.”
3. Keep the players apart
Each guest was its own agent with its own pack and nothing else. It heard only what was said aloud, passed on by the host as it happened, and a script checked every input for host-only phrases before it went out.
“Paste each agent's text into its prompt. Don't let player agents read the repo, or they'll see other players' files and the solution.”
The final game, turn by turn
The last playtest before the party, Saturday afternoon. Drag through it, or press play.
4. Give them different brains
A room of careful agents is a better detective than any dinner party, so each innocent got a model, a way of playing and a memory. For every line said aloud, a seeded coin flip against each player's memory decided whether they kept it, so a rerun gave the same room.
Six brains, and what each one remembered
The innocent players in the first game, then every line said aloud, in order, about 95 per player.
| Player | Model | Memory | Told to |
|---|---|---|---|
| The cross-checker | Opus | 90% | Check seating and timings against what people say |
| The questioner | Sonnet | 80% | Ask one pointed question per round, aimed at a real gap |
| The party guest | Sonnet | 70% | Be interested, but don't do detective work |
| The follower (×2) | Haiku | 65% | Go along with the loudest accusation |
| The anchor | Haiku | 55% | Latch onto the first strong suspect |
Four of the six named the killer. The two who didn't were on the smallest model with the least memory, and both stuck with their Round 1 suspect.
5. Give them a private channel
Every turn, each agent answered twice: once aloud, and once privately to me about anything confusing, invented or contradictory. My prompt told them this was the most important part of the test.
What an agent said aloud, and what it told me
Said aloud, in character
“Nothing about four to twenty past has stuck, so put me down as ‘pending’ with the others.”
Told me privately, as a bug report
“If several innocent cards leave 4:00 to 4:20 blank, the answer stops telling the room anything.”
What I added to the house rules
From 4 to 4:20, unless your pack says otherwise, you were pottering round the office, and nobody was with you.
6. Attack it from the side
Alongside the game, single agents went at it: a cold solver with only the transcript, the same solve with one player's clues removed each time, and a hostile grilling of the killer's cover story. The grilling asked 44 questions. The killer's card covered 18, it improvised 15, and it got caught on 11.
7. Fix it, then play a fresh room
Each run ended with a ranked list of fixes and the exact lines to change. I chose what went in, then a fresh room played the new version. It becomes a loop: play, find the holes, fix them, play again. After a few turns of it, all six innocents named the killer every time, usually within a lap or two of the Round 2 clues. My friends split four to three.
I still had to read every line myself
The agents caught most of what was broken, but the fixes cascaded, and some of those cascades got out of hand. I read everything several times to untangle them. Some big errors only showed up then, like the character handing clues against the person they were protecting. Every agent played that card as written, and none asked whether they'd really do it. The last fix went in eighty minutes before everyone arrived.
If I started again, I'd find more resources first, like the matrices in the coherence check: every clue, everything to reveal and every relationship between the characters, laid out before any writing. I'd make a rudimentary version of that first. I went in a little bit gung-ho. I had a really clear idea of the corporate theme and the characters, but it took more effort than it needed to because I didn't spend enough time on that clue matrix at the start.
You can't playtest the people, and it's the people that make it fun
The agents could test every line. They couldn't test the room. We were in my kitchen in office wear, with silly name tags, pretending to work for a data company in Croydon. That gives people permission to be silly, and once they're playing, things happen that nobody wrote.
One friend misread her page and read out her own secret halfway through. It was hilarious. The vote at the end was four to three, and nobody was sure until the killer stood up.
All in all, I think simulating the room turned out to be the most interesting part. Anything that would need a large group of people to sit through something arduous, again and again, you can now run with agents first. Set it up like an experiment and they'll find what's broken. What the people do with it, you still find out on the night.
If you want to run the game with your friends, or you're curious how I built it, message me on LinkedIn.