A Claude Code skill that runs a multiplayer choose-your-own-adventure at the terminal.
You give it a premise, the players (names and ages) and a maximum number of turns. It runs the story: each turn is one scene told to everybody, and then each player takes their turn in order, gets their own situation and their own menu of choices, and picks one with the arrow keys. The story is paced across the turns you gave it and always lands on a happy ending.
Turn 4/8 · development
The two of them push together, slowly, just a crack. And the top of the
lighthouse is full of birds. Little grey terns, their beaks still soft, dozens of
them. And in the middle of it all, tucked right inside the wheel that turns the
light, there is an enormous nest of grass and seaweed: that is why the crank
jammed.
The lighthouse is not broken. The keeper stopped it himself.
Ana's turn 🔦
▸ Go in with the chicks
Count the chicks
Run and tell the village
git clone https://github.com/dgutson/adventure-skill.git ~/.claude/skills/adventureThen start a game with /adventure and tell it what you want to play.
The skill's job is to stop a long improvised story from turning into a sequence of pleasant turns where nothing happens. It does that with three ideas.
A turn budget. scripts/plan_arc.py splits the turns you allow into roughly
12% intro, 70% development and 18% resolution, and fixes five landmarks: when the
goal must be stated, where the midpoint reversal falls, which turn is the low
point, when to stop introducing anything new, and which turn is the epilogue. The
number you give is a ceiling, not a quota — if the story reaches its ending
early, it takes it.
A state file. scripts/record_turn.py records each turn into
adventures/<slug>.json — beats, choices, facts, open threads, who is carrying
what — and prints back the next turn's structural job. That is what lets a game
survive a long session, or be picked up days later with /adventure, and it
keeps the bookkeeping out of the model's head.
Per-player turns. Options are written for each player's own age and trait, and are asked one player at a time, so that by the time the second player chooses the first has already acted and the options have changed because of it. Every player's choice has to visibly change what happens next — that is the whole difference between a multiplayer game and a story read aloud.
Setbacks are allowed; losing is not. Nobody dies, nothing is lost forever, and the resolution phase exists so that everything painful gets a way back.
| Path | What it is |
|---|---|
SKILL.md |
The skill itself: setup, turn format, pacing rules, age calibration |
scripts/plan_arc.py |
Turn budget, landmarks, initial state file |
scripts/record_turn.py |
Records a turn, prints the next turn's job; --retarget to end early |
references/story-craft.md |
Beat patterns per phase, split parties, starter premises |
Narration defaults to Spanish and follows whatever language you set up the game in. The skill's own instructions are in English.