Build a live wildlife quiz
Tonight you're going to commission a real multiplayer web app from an agent. It'll read the wildlife data from Session 1 and turn it into a quiz that everyone in the room can play on their phones — live, right now.
You're writing the brief. The agent writes the code. You run it.
Your folder: wildlife-quiz — set it up in step 1 below.
1 — Set up your folder
Create a new folder called wildlife-quiz. Copy data.csv into it (download below —
it's the same wildlife file from Session 1).
Also copy CLAUDE.md and spec.md into the folder (both available to download below).
Open the wildlife-quiz folder in VS Code. Then tell the agent to read its rulebook:
read CLAUDE.md — that's your brief for how to work on this project
It should confirm it has read it and describe what it understood. If it doesn't mention being a senior developer and the Flask/network rules, paste the file contents and try again.
Install Flask — the web framework the app will use. In the terminal:
python -m pip install flask
You should see Successfully installed flask-.... If you see an error, paste it to the
agent and ask it to fix the install.
2 — Ask the agent what it's working with
Before asking it to build anything, let it look at the data:
read data.csv and tell me what multiple-choice quiz questions you could generate
from it — give me a few examples
You're checking two things: that it found the file, and that its question ideas make sense. If the examples look good, move on.
3 — Commission the app
The @ symbol hands the agent a file directly — it reads the whole spec without you having
to paste it:
build the Harbury Wildlife Quiz app as described in @spec.md
The agent will show you a plan — a list of files it intends to create — and wait for you to say it looks right before writing any code. Check it makes sense, then tell it to go ahead.
It will then build the server skeleton first and ask you to visit it in your browser before continuing. Once you confirm it loads, it will build the rest.
4 — Run it and check the host screen
When the build is complete, run the app:
python quiz.py
It should print something like:
Running on http://192.168.1.42:5000
Open that address in your browser. You should see a player join screen. Then try
http://192.168.1.42:5000/host — you should see a waiting room and a Start Game button.
If it only prints http://127.0.0.1:5000 or http://localhost:5000, tell the agent:
the server is only printing localhost — phones on the same wifi won't be able to reach it.
make it bind to 0.0.0.0 and print the local network ip address on startup
5 — Get someone to join from their phone
This is the moment. Ask the person next to you to open their phone, connect to the same WiFi, and visit the address your terminal printed.
They should see the join screen. They enter their name and join.
You open /host — their name appears in the waiting room.
If their phone can't reach it, paste this to the agent:
someone on the same wifi visited [address] on their phone and got "site can't be reached".
the server is running. what's wrong and how do we fix it?
6 — Play a round
Get 2–3 people to join from their phones. Open /host on the projector (or just your
laptop screen). Hit Start Game.
Questions appear. People tap answers on their phones. Watch the answer count tick up on the host screen. Click Next to move on. Play to the end.
If anything breaks mid-game, paste the error from the terminal straight to the agent.
Stretch — Phase 2: add the leaderboard
If the quiz is playing end-to-end, hand the agent the next brief (download spec-phase2.md
below and copy it into your folder first):
the core quiz works — now build the additions in @spec-phase2.md
It will plan the changes as a new todo list before touching anything. Once done, start the server again and play a full round — you should see the leaderboard on the host screen between questions and at the end.
Stretch — go further
Once the leaderboard is in, pick one more idea from the phase 2 spec, or try your own:
- "add a 20-second countdown timer — when it runs out, move to the next question automatically"
- "flash the answer button green or red on the player's phone the moment they answer"
- "show which answer was correct on the host screen before moving on"
The agent wrote every line of code tonight. You wrote the brief, ran the program, and steered it when it went wrong. That's the skill — and it works on any app you can describe.