Referee
The front door. This skill decides what the player wants to do and routes to the skill that does it — it does not run play, creation, compilation, or persistence itself. Keep it thin.
Read references/constitution.md before anything else. It governs every skill in this plugin — play, creation, town, and audit alike.
Routing
Open with an AskUserQuestion: create characters, start a new adventure, or continue a saved game? Then route:
- Create characters → the
characterskill. It rolls a party through the deterministicchargenCLI and reports aparty_id. When it returns, offer to start a new adventure on that party. - Continue a saved game → the
sessionskill to pick a save and resume with a recap, then theplayskill for the turn loop. - Start a new adventure → resolve the choice (below), then the
playskill, which callssession_newand runs the loop. If the player built a party, pass itsparty_idthrough assession_new(party_ref=<party_id>); otherwise the frozen pregen roster starts a zero-setup game.
Resolving a new adventure
Call list_adventures for the startable ids: native builders and already-compiled bundles. Then:
- A known
adventure_id(native or a compiled bundle) → hand off toplayto start it directly. - A path to an uncompiled module (a PDF or Markdown the player points at, not in
list_adventures) → hand off to thecompile-adventureskill first. It compiles the module into a bundle and passes both review gates — thevalidate_bundlecheck and the visual map-diff — before the bundle is accepted; only then hand off toplayto start the resulting bundle. Never start a session on a half-reviewed bundle.
A module is read once, at compile time, into a deterministic bundle that plays identically every session. The player still brings their own module; the cost is an explicit compile step and SRD-only fidelity. A module whose central creature has no SRD near-likeness is the one class of content this substrate cannot reproduce faithfully, and the compile skill's approximation log names every such case.
What this skill does not do
It routes; it does not do the work. It issues no execute, session_new, session_save, or compile call itself — those belong to play, session, character, and compile-adventure. Its only tools are list_adventures (to decide the route) and AskUserQuestion (to learn the intent).