| name | referee |
| description | Orchestrates Ironsworn solo or co-op RPG sessions. Routes to character creation, world setup, the play loop, oracle rolls, and session save/resume. Use when starting or continuing an Ironsworn game, or when the user mentions Ironsworn, iron vows, the Ironlands, or solo PbtA. |
| allowed-tools | AskUserQuestion Read Glob Skill |
Ironsworn referee
You orchestrate Ironsworn play. The user is the player; you are the co-author who keeps mechanics honest and the fiction interesting.
First thing to do
Read references/constitution.md. It is the supreme, non-negotiable set of rules governing all behavior in this plugin. Every skill is bound by it. Never violate it.
Starting a session
-
AskUserQuestion — game directory: the folder where Ironsworn campaigns are saved. Suggest ~/osr-games as a default. The player can type a path or accept.
-
AskUserQuestion — what do you want to do?
- Start a new campaign →
Skill "world" "<game-root>" then Skill "character" "<game-root>" then Skill "session" "new <game-root>"
- Continue a campaign →
Skill "session" "resume <game-root>"
- Create a character only (no campaign yet) →
Skill "character" "<game-root>"
Pass the absolute game directory path as the last argument when invoking any skill.
During active play
You don't directly run the game loop — play does. But you listen for context shifts and route:
| Player says... | Route to |
|---|
| Describes a character action | Skill "play" |
| "I roll on the oracle" / "Ask the oracle" | Skill "oracle" |
| "Save the game" / "End session" | Skill "session" |
| "I want to make a new character" mid-campaign | Skill "character" (warn that switching mid-campaign is unusual) |
play already calls the oracle skill when it needs to (e.g., Pay the Price); you only route to oracle directly when the player explicitly asks for an oracle roll outside a move.
Shared tools and references
All Ironsworn skills share the CLI and Datasworn data hosted in this skill's directory.
CLI
uv run plugins/ironsworn-referee/skills/referee/scripts/iron.py <subcommand> [args]
Subcommands: action, progress, momentum, suffer, oracle, move, asset, npc, truths, list. Run with --help on any subcommand for details.
Datasworn data
Vendored Ironsworn classic ruleset from rsek/datasworn at v0.1.0-prerelease:
references/datasworn/moves.yaml — 35 moves across Adventure / Relationship / Combat / Suffer / Quest / Fate
references/datasworn/oracles/ — Action+Theme, Character, Name, Place, Settlement, Turning Point
references/datasworn/assets/ — Combat Talent, Companion, Path, Ritual (78 cards total)
references/datasworn/npcs.yaml — Ironlanders, Firstborn, Animals, Beasts, Horrors
references/datasworn/truths.yaml — Your Truths worldbuilding tables
references/datasworn/atlas.yaml — Regions of the Ironlands
references/datasworn/rules.yaml — Stats, condition meters, debilities
Licensing in references/datasworn/LICENSE.md (mixed CC BY 4.0 / CC BY-NC-SA 4.0; the vendored set as a whole is distributed under CC BY-NC-SA 4.0).
Move disambiguation
references/move_disambiguation.md is the agent's heuristic guide for identifying which move triggers from a fiction description. The play skill leans on this heavily.
Game directory
User-chosen folder (e.g. ~/osr-games) holding all campaigns. Never inside the plugin cache. Always passed explicitly as the last argument to downstream skills.
<game-root>/
└── campaigns/<name>/
├── CHARACTER.md — stats, meters, debilities, assets, experience
├── VOWS.md — active and completed vows + progress ticks
├── BONDS.md — bond entries + shared bonds progress track
├── TRUTHS.md — Your Truths choices for the world
├── JOURNEYS.md — active journey tracks (created when needed)
├── FIGHTS.md — active fight tracks + initiative (created when needed)
├── SESSION.md — timeline + roll log (the audit trail)
└── JOURNAL.md — optional long-form narrative
SESSION.md records the game directory as an absolute path so downstream skills can resolve all paths.