diff --git a/skills/rpg/SKILL.md b/skills/rpg/SKILL.md new file mode 100644 index 0000000..2df2d10 --- /dev/null +++ b/skills/rpg/SKILL.md @@ -0,0 +1,122 @@ +--- +name: rpg +description: >- + Tim's tabletop RPG scenario-writing system — house structure, GM-readable + writing style, pregen design, playtesting protocol, production pipeline + (handouts, art, GM console), and memory/repo integration. Use this skill + whenever the work touches tabletop RPG scenarios or adventures in ANY way: + writing or revising a scenario, one-shot, con game, adventure, module, + campaign, session, or BPN; designing pregens, NPCs, clues, handouts, chases, + or set-pieces; playtesting; preparing convention slots (Continuum, + Contingency, Airecon, Convulsion, ChaosiumCon); or working with systems like + Blade Runner, Call of Cthulhu, SLA Industries, Mothership, Traveller, + Pendragon, Daggerheart, Shadowdark, Stormbringer, RingWorld, BRP, Delta + Green. Trigger even if the user doesn't say "scenario" — "prep my Friday + slot", "new adventure for X", "fix the pregens", "make handouts" all count. +--- + +# RPG Scenario Writing + +Tim writes tabletop RPG scenarios — mostly 4-hour convention one-shots, sometimes +longer campaign material — and runs them as GM. This skill is the house system: +structure, style, production pipeline, and the memory loop that keeps it all alive +across machines and sessions. + +## The prime directive: write for the GM at the table + +A scenario is a performance document, not a novel. The GM reads it in 30-second +glances while four people wait. Every formatting decision serves that: + +- **Scannable over literary.** Bullets, tables, bold keywords. Prose only where it + earns its place (read-aloud text, plot summary, atmosphere). +- **Information in the order the GM needs it**, not the order the story happens. +- **Read-aloud text in `>` blockquotes**, ≤3 sentences by default (players + disengage after two; only the cold open may run to 4–6), always labelled + "read aloud or paraphrase". Longer material becomes bullets the GM voices. +- **Mechanics inline, bracketed:** `[BR: Observation — spots the torn hem]`. + Never send the GM to another page for a roll. +- **Every NPC gets a one-line essence** (who they are + what they want) before + any detail, and appears again in the end-of-document **NPC Roster quick sheet**. +- **State the failure case.** Every clue, scene, and set-piece says what happens + if players miss it, skip it, or break it. + +## Workflow + +### 1. Orient (start of any RPG task) + +- Query Graphiti (`search_memory_facts`) for the scenario/convention/system at hand. +- Find the working directory. Convention material lives under + `~/Library/Mobile Documents/com~apple~CloudDocs/RPGS/Conventions//...` + and is mirrored to a private GitHub repo per event (e.g. `slaguru666/Continuum2026`). +- Ask which **scenario type** this is only if it isn't obvious: + - **Convention one-shot** (default) → read `references/convention-one-shot.md` + - **Campaign / multi-session** → read `references/campaign.md` +- For craft questions (structure, clues, pacing, mystery design) read + `references/craft.md`. Before writing or revising anything, skim + `references/lessons.md` — it is the accumulated playtest wisdom. + +### 2. Build + +Order of work for a new scenario: + +1. **Concept + Design intent** — 3–5 numbered statements of what this scenario + is and deliberately is not. Include an elevator pitch line (the tagline under + the title) and content warnings. +2. **Plot Summary (GM truth)** — the full hidden truth, then a **timeline** of + events before play begins. Write this before any scenes: scenes are windows + onto a situation that already exists. +3. **Structure pass** — acts, timing table with GM checkpoints, countdown clock + of what antagonists do on schedule. +4. **Scenes, NPCs, clue trails** — per act, using `assets/scenario-template.md`. +5. **Pregens** — read `references/pregens.md`. Wire each PC into the case. +6. **Production** — handouts, art, GM console, print: `references/production.md`. +7. **Playtest** — read `references/playtest.md`. A scenario is not + "convention-ready" until it has survived desk playtests and the fix list is + applied and versioned. + +### 3. Close the loop (end of any RPG session) + +This skill is **live** — it must get smarter every time it is used: + +- **Graphiti:** `add_memory` with decisions made, scenario state, and anything + learned (structure fixes, ruling patterns, player-behaviour discoveries). +- **Repo:** commit and push scenario work to its event repo. +- **Skill self-update:** if the session produced a transferable lesson (not + scenario-specific detail), append it to `references/lessons.md` with a date + and one-line context, then sync the skill across machines: + `cd ~/Git/claude-config && ./sync.sh "rpg skill: "`. + Scenario-specific facts go to Graphiti, *transferable craft* goes to lessons.md + — that distinction keeps the skill lean. + +## House conventions (all scenario types) + +- **Files are Markdown**, one scenario per file, self-contained (a GM with only + that file can run the game). HTML only for print artifacts (character sheets, + handout packs, GM console). +- **Folder shape per scenario:** `scenarios/` `characters/` `handouts/` + `reference/` `playtest/` `gm-utility/` `print/` + `README.md` index with + status line (version, playtest count, remaining prep). +- **Versioning:** v1 draft → playtest → v2, v2.1... Status becomes + "convention-ready" only after a full-session playtest lands inside the time + budget. README tracks version + what remains. +- **Mechanic tags:** `[SYSTEM: Skill — effect]` e.g. `[CoC: Spot Hidden — ...]`, + `[BR: Manipulation — ...]`. Include a 3–4 line system crash-course in the + Master Rules block so a stand-in GM could run it. +- **Art:** ink sketch / pencil illustration, hand-drawn feel, never + photorealistic. Asset IDs `[Slot]-ART-[##]`, handouts `[Slot]-H[act]-[letter]`. + Generate via `mj-gen ""` (Midjourney bridge). Each scenario defines + its own art direction line on top of the base style. +- **Licence footer** on READMEs: private convention play materials, not for sale. + +## Reference files + +| File | Read when | +|---|---| +| `references/convention-one-shot.md` | Building/revising a 4-hour slot scenario (the default) | +| `references/campaign.md` | Multi-session or open-ended material | +| `references/craft.md` | Structure, clue, pacing, mystery design decisions | +| `references/pregens.md` | Creating or auditing pre-generated characters | +| `references/playtest.md` | Running desk playtests, writing fix lists | +| `references/production.md` | Handouts, art, GM console, print, repo layout | +| `references/lessons.md` | Always skim before writing; append new lessons | +| `assets/scenario-template.md` | Starting a new scenario document | diff --git a/skills/rpg/assets/scenario-template.md b/skills/rpg/assets/scenario-template.md new file mode 100644 index 0000000..f3384c8 --- /dev/null +++ b/skills/rpg/assets/scenario-template.md @@ -0,0 +1,272 @@ +# [Event – Slot] – [System]: [TITLE] + +> *[Tagline — one line, the scenario's hook as a whisper.]* + +--- + +## GM ESSENTIALS (one glance, any GM) + +- **System crash-course:** [3–4 lines on the core roll, so a stand-in GM could + run this. e.g. attribute die + skill die, 6+ succeeds, push to re-roll…] +- **Mechanics inline:** `[SYSTEM: Skill — what it reveals or does]` +- **The clock counts play time** — pause it for the break. All cumulative + times and checkpoints below are on that clock. +- **Hard rule: at 2:45, go to Act Three regardless.** Fast-tracks per act. +- **Safety:** state tool in use (X-card / open door) during seating — 30 + seconds, no ceremony. + +--- + +## Overview + +- **Event:** [Convention — day, slot, time, venue] +- **System:** [Game + publisher] +- **Setting:** [Where and when] +- **Tone:** [Two or three precise words, then one sentence] +- **Maximum Runtime:** 3 hours 30 minutes play + 10 minute break +- **Players:** [N] pregens (runs [N−1]–[N+1]; drop [PC] first at fewer; at + [N−1] the splits become [adjustment]) +- **Content warnings:** [List — conventions require them, players deserve them] +- **Art Style:** Ink sketch / pencil illustration. [Scenario-specific direction line] + +### Design intent (read this first) +1. [What kind of scenario this is — e.g. investigation-first, no required combat] +2. [Structural promise — e.g. built to split into 2+2 parallel tracks] +3. [Ending shape — closure or designed ambiguity, and why] +4. [What this scenario deliberately is *not*] + +--- + +## Session Timing Guide + +| Section | Duration | Cumulative (play) | GM Checkpoint | +|---------|----------|-------------------|---------------| +| Slot Zero + Introduction | ~15 min | 0:15 | [One-line test the GM can apply] | +| Act One — [Title] | ~60 min | 1:15 | [Essential clue found; hook to Act Two live] | +| *Break — pause the clock* | *10 min* | *1:15* | *Lands on the Act One cliffhanger* | +| Act Two — [Title] | ~90 min | 2:45 | [Truth revealed; heading to confrontation] | +| Act Three — [Title] | ~30 min | 3:15 | [Confrontation resolved] | +| Epilogue | ~15 min | 3:30 | [Vignettes delivered, debrief done] | + +Durations are **ceilings, not fills** — plan ~3:15 of content against them. +**Hard rule:** at 2:45, go to Act Three regardless. + +--- + +## Plot Summary (GM truth — players never see this page) + +*The full hidden truth, start to finish, regardless of player action. What +actually happened, who wants what, what the antagonist does next.* + +**Timeline (GM reference):** +- **T-[n]:** [event before play] +- **Game night:** [where play begins] +- **[Deadline]:** [the convergence point] + +### Revelations (GM checklist — 8–12, abstracted from where they're found) + +| # | Revelation | Expected by | Delivered? | +|---|-----------|-------------|------------| +| R1 | | Act One | | +| R2 | | Act Two | | + +*Anything undelivered by end of Act Two: fold into Act Three's confirmation +scene or consciously drop — the Act Two Pacing Note says which.* + +--- + +## Player Experience + +*One paragraph, second person: the scenario as the table will live it. This is +the pitch — if it reads flat, the scenario is flat.* + +--- + +## The Countdown (background clock) + +*Antagonists move on schedule whether or not the players are watching. When the +party stalls, advance one step and let the players feel it. Opposition stays +one step behind the players until the climax. This table is also the universal +fallback: any missed essential clue can arrive as a Countdown event.* + +| Clock | Event | +|---|---| +| [t0] | [Opening state] | +| [t1] | [Antagonist move] | +| [deadline] | [Convergence] | + +--- + +## Pre-Game Handouts + +| ID | Description | Format | When Given | +|----|-------------|--------|------------| +| [Slot]-H00-A | | | | + +--- + +## Introduction — [Title] *(~15 minutes, including Slot Zero)* + +### Slot Zero (before the fiction) +1. Seating + safety line (30 seconds) +2. Pitch each pregen aloud in one tagline (the sheet's italic essence line) +3. Players choose — or GM deals — in ≤5 minutes +4. Open in motion; introductions surface during the action + +### Opening (read aloud or paraphrase) + +> [≤3 sentences default; the cold open may run to 4–6. Sensory, in motion, +> ends pointing at the players. Longer material becomes bullets the GM voices.] + +### Player Briefing +- [What the players know, as bullets — victim, job, constraint, authority] +- [Which handout to give, and when] + +### Atmosphere Notes +- [Sound, light, smell — the loops the GM returns to] +- [Suggested audio — home tables only; con halls are loud] + +### Hook into Act One +[The choice or thread that moves them — offer, don't assign.] + +--- + +## ACT ONE — [Title] *(~60 minutes)* +> **Goal:** [What this act establishes; what must be true before Act Two.] + +### Summary +[What happens here, in five lines or fewer.] + +### Split Plan *(if this act runs as parallel tracks)* +- **Recommended pairing:** [2+2 by PC lanes — offer, don't assign] +- **Segments:** alternate ~12 min, end each on a pull line: "[e.g. what was the hurry?]" +- **Cross-team payoff:** [what each half learns that the other needs] + +### Locations + +#### [Location Name] (Track A/B if split) +- **First impression:** [what they see/hear/smell on arrival] +- **Interactables:** [what rewards attention] +- **Hidden:** [optional/extra material only — essential clues never live here] + `[SYS: Skill — effect]` +- **Artwork:** [Slot]-ART-[##] + +### NPCs + +#### [NPC Name] +*[One-line essence: who they are + what they want.]* +- **Physical:** [one evocative detail] +- **Motivation:** | **What they know:** | **Disposition:** +- **Mechanics:** [system stat line, inline — no page refs] + +### Clue Trail — Act One + +| # | Clue | Location / Source | How Found | What It Reveals | Type | +|---|------|-------------------|-----------|-----------------|------| +| 1 | | | | | Essential | +| 2 | | | | | Optional | + +**Fallbacks (one per essential clue):** [How the GM introduces each naturally +if missed — NPC volunteers it, environmental prompt, or Countdown event.] + +### Story Hooks (if players stall) +- [Proactive event — the world moves] + +### Handouts + +| ID | Description | Format | +|----|-------------|--------| +| [Slot]-H01-A | | | + +### Pacing Note +[What must be true before Act Two. At 1:15:] +> Fast-track: [specific action to jump forward] + +--- + +## ACT TWO — [Title] *(~90 minutes)* +> **Goal:** Investigation, revelation, escalation. The players make the choices that define the ending. + +[Same section pattern as Act One — Split Plan, Locations, NPCs, Clue Trail +(continue the numbering), Story Hooks, Handouts. Additionally:] + +### [THE SET-PIECE] (one per scenario) +- [Round-by-round or beat-by-beat GM structure; own quick-ref page in `reference/`] +- **Idle players:** [the job the sidelined pair runs — obstacle cards, bystanders] +- **If it breaks:** [escape, refusal, early violence — what then] + +### Pacing Note +At 2:45, move to Act Three regardless. [Name here which undelivered +revelations fold into Act Three and which get dropped.] +> Fast-track: [specific jump to the climax] + +--- + +## ACT THREE — [Title] *(~30 minutes)* +> **Goal:** Consequence. Fast pace, high stakes. No new information — only confirmation. + +### Opening (read aloud) +> [Short. Arrival at the convergence.] + +### The Situation +[Who is present, what they want, what the clock says.] + +### The Choices (present plainly; then get out of the way) +- [Choice A — and its cost] +- [Choice B — and its cost] +- [Compromise options playtests or tables have found] + +### If Someone Shoots +[The chaos contingency — the table that torches the negotiation gets a real ending too.] + +### Story Hooks (contingencies) +[If players freeze, or head for a catastrophic ending.] + +### Pacing Note +30 minutes maximum. If unresolved at 3:15: +> [The pressure line — deploy at the *first* sign of circular debate.] + +--- + +## Epilogue — [Title] *(~15 minutes)* + +### Outcomes + +| Outcome | Trigger Condition | What Happens | +|---------|------------------|--------------| +| **[Named ending 1]** | | | +| **[Named ending 2]** | | | +| **[Failure / Pyrrhic]** | | | + +### Closing Scene (read aloud, adapt to outcome) +> [Land the last line on the theme. Per-PC vignettes if earned.] + +**Early finish:** expand the vignettes, then run The Tangent as a bonus scene. + +--- + +## NPC Roster Summary (GM quick sheet) + +| NPC | Essence | Wants | Key line | +|---|---|---|---| + +--- + +## Artwork Assets + +- **Art Style:** Ink sketch / pencil illustration. [Direction line.] + +| Asset ID | Description | Used In | Generation Prompt | +|----------|-------------|---------|-------------------| +| [Slot]-ART-01 | Cover | Intro | | + +--- + +## The Tangent +*One alternative direction the story could have taken, or the thread a future +session would pull. Doubles as the early-finish bonus scene.* + +--- + +## GM Notes (private) +*Pacing advice, tone reminders, staging instructions, things to watch for.* diff --git a/skills/rpg/references/campaign.md b/skills/rpg/references/campaign.md new file mode 100644 index 0000000..f80de35 --- /dev/null +++ b/skills/rpg/references/campaign.md @@ -0,0 +1,50 @@ +# Campaign & Multi-Session Material + +Tim will say when material is campaign-shaped rather than a convention one-shot. +The GM-readability rules, clue discipline, and production standards all still +apply; what changes is the shape of time. + +## What changes from the one-shot format + +- **Timing loosens.** No 3h30 hard ceiling, no 2:45 rule. Keep per-session + targets and checkpoints, but sessions may end mid-arc. +- **Endings invert.** Sessions *should* end on unresolved peril, an escalating + bang (stakes suddenly transformed), or an earned quiet character beat — the + cliffhanger types a one-shot must avoid. The *arc* still needs a written + destination. +- **Hooks must respect choice.** Con players opted in by sitting down; campaign + players resent coerced hooks. Offer situation-hooks the party can approach + from any angle, and plant **long-term hooks** whose payoff is sessions away. +- **Foreshadowing is a discipline.** Before writing session N, re-read what is + planned for N+1..N+3 and seed their elements now. Twists only land if the + clues predate them. +- **Carry-forward bookkeeping** at the end of each session: + - Undiscovered revelations roll into the next session's list. + - Fronts advance a grim portent; clocks tick for everything ignored. + - Log NPC status, faction posture, promises made, and loose player theories + (player theories are free plot — steal the good ones). + - Persist all of this to Graphiti so any machine can pick the campaign up. +- **Structure by fronts, not acts.** Bundle dangers into fronts, each with an + impending doom and escalating portents. Prep situations per the Alexandrian; + let acts emerge in play. +- **Characters progress.** Advancement, gear drift, and relationship maps need + tracking; pregen audit rules from `pregens.md` apply to any handed-out PCs + but expect player-authored characters here. + +## Session prep loop (Sly Flourish's 8 steps, house-adapted) + +1. Review the characters (and last session's carry-forward log) +2. Create a strong start — in motion within 20 minutes +3. Outline potential scenes (brief, disposable) +4. List secrets and clues — ~10 one-liners, abstracted from location +5. Develop locations (immediate impression → interactables → hidden) +6. Outline NPCs (one-line essence + want) +7. Choose opposition +8. Select rewards + +## Convention scenario ↔ campaign reuse + +A convention one-shot can seed a campaign: "The Tangent" section of every +one-shot names the thread a future session would pull. Going the other way, +compressing campaign material into a slot means cutting to one situation, one +set-piece, one decision — and writing a real ending. diff --git a/skills/rpg/references/convention-one-shot.md b/skills/rpg/references/convention-one-shot.md new file mode 100644 index 0000000..b44d724 --- /dev/null +++ b/skills/rpg/references/convention-one-shot.md @@ -0,0 +1,121 @@ +# Convention One-Shot Structure + +The house format for 4-hour convention slots. This structure is proven across +Continuum, Contingency, ChaosiumCon and Airecon games — deviate only with a +stated reason in the Design intent. + +## Master Rules + +### Structure +- **Introduction → Act One → Act Two → Act Three → Epilogue** +- Maximum runtime **3h30 (210 min) of play** inside a 4-hour slot, plus a + 10-minute break — ~3h40 wall clock, leaving real margin: strangers at a con + table run slower than any playtest. +- Budgets: Intro 15 · Act One 60 · Act Two 90 · Act Three 30 · Epilogue 15. + These are **ceilings, not fills** — plan ~3:15 of actual content against + them. A scenario that playtests "on schedule with zero slack" is over-stuffed. +- **The session clock counts play time.** Pause it during the break; every + cumulative time and checkpoint in the scenario is on that clock. (The GM + console's clock supports this.) +- **Act Three always happens.** Compress Act Two if needed; never sacrifice the + climax. Hard rule: at 2:45 on the clock, go to Act Three regardless. +- Every act ends with a **Pacing Note**: what must be true before the next act, + and a specific fast-track action if the clock has beaten the table. +- Place the 10-minute **break** at the end of Act One, on a natural cliffhanger. +- A one-shot must **end written**: closure or *designed* ambiguity, never an + unwritten "to be continued". The Epilogue includes an outcomes table + (Full / Partial / Failure / Pyrrhic — or scenario-specific named endings) + and an adaptable closing read-aloud. + +### Timing table +Include a Session Timing Guide with a **GM Checkpoint** column — a one-line +test the GM can apply mid-session ("both copies met, chase done, deadline +known"). Checkpoints are what make the timing table usable in play. + +### Clues — the house standard +Every essential clue has **three routes** to the players: +1. **Automatic on the right approach** — the right skill or question in the + right scene finds it without a roll; rolls only buy *extra* information. +2. **A written fallback** — NPC volunteers it, environmental prompt, second + location. +3. **The Countdown** — a proactive antagonist move that delivers or forces the + revelation (this is the universal third route; it's why the Countdown table + is mandatory). + +Plus: +- Clues form a **guided trail** — each points to the next, but players should + feel they discovered it, not followed a map. +- Every act: at least one **essential** clue and one **optional** clue + (optional = reward for thorough play; trail survives without it). +- Essential clues never live behind a search roll or in a location's "Hidden" + line — Hidden is for optional/extra material only. +- Clue trail is a table per act: # | Clue | Location/Source | How Found | + What It Reveals | Type. Number clues continuously across acts, one fallback + line per essential clue. +- Keep a **Revelations checklist** (8–12 one-liners, abstracted from where + they're found) after the Plot Summary. Anything undelivered by the end of + Act Two is folded into Act Three's confirmation scene or consciously + dropped — the Act Two Pacing Note says which. Beyond that, Act Three + contains **no new information** — only confirmation and consequence. + +### The countdown clock +Antagonists and world events move on schedule whether or not players act. +Write a timetable ("The Countdown") the GM advances when the party stalls — +and make each advance *felt* (a glimpsed van, a witness gone quiet). Keep the +opposition **one step behind the players until the climax** — pressure, not +punishment. + +### Design intent block +Right after the Overview, 3–5 numbered statements, e.g. "Investigation-first: +no required combat", "Built to split: Acts One and Two run as 2+2 parallel +tracks", "Ambiguous ending: conversation, not firefight". This is the contract +the rest of the document must honour, and the first thing a reviewer checks. + +### Plot Summary + Player Experience +Two views of the same scenario, both mandatory: +- **Plot Summary (GM truth)** — what actually happened/is happening, + player-independent, with a dated timeline. Players never see this page. +- **Player Experience** — one paragraph of the scenario as lived from the + table, second person, spoiler-shaped but honest. This is the pitch — if it + reads flat, the scenario is flat. + +## Slot logistics +- Default **4 players** with pregens (6 max for some systems — pick per game + and say so). The Overview states the scaling line: which player counts the + scenario runs at, which pregen drops first at fewer, how splits adjust. + Nothing essential may live *only* on one PC. +- **Safety tools, stated in 30 seconds, no ceremony** (X-card or open door — + UK cons expect it, and scenarios with private seams that cut close need the + exit ramp). One line in the Introduction covers it. +- **Slot Zero** (the first 15 minutes, before the fiction): seating + safety + line → pitch each pregen in one spoken tagline (the sheet's italic essence + line) → players choose or GM deals in ≤5 minutes → open in motion. +- **Party splits** are a feature: parallel scene tracks (Track A / Track B) + with engineered cross-team payoffs — each half holds half of a revelation. + Alternate between tables in ~12-minute segments, ending each segment on a + pull ("what was the hurry?"). +- One **set-piece** per scenario (chase, heist, séance...) with its own GM + quick-reference page. During set-pieces, give idle players jobs: hand them + the obstacle cards, let them voice the bystanders. +- **Content warnings** in the Overview. Conventions require them and players + deserve them. + +## Endings +- Aim the climax at a **decision, not a die roll**. The best Act Three is a + situation where every choice costs something and the scenario honours all + of them ("nobody gets to be right; the players decide who pays"). +- Write an "If someone shoots" (or equivalent chaos) contingency — the table + that torches the negotiation must also get a real ending. +- List **compromise endings** players will invent (partial trades, third + options). If a playtest finds one, write it in. +- Epilogue delivers per-PC **vignettes** keyed to the outcome, then table + debrief. Land the last line on the scenario's theme. +- **Early finish** (table cracks it at 2:30): expand the per-PC vignettes, + then run The Tangent as a bonus scene — it's already written. + +## Fitting the slot (cut discipline) +- Plan ~3:15 of content against the 3:30 budget; playtest timing includes + setup drift. +- Pre-write the cuts: each act's Pacing Note names what to drop first. +- Deploy pressure lines (an NPC checking a watch) at the *first* sign of + circular table debate, not when the clock is already lost. diff --git a/skills/rpg/references/craft.md b/skills/rpg/references/craft.md new file mode 100644 index 0000000..34bf1e8 --- /dev/null +++ b/skills/rpg/references/craft.md @@ -0,0 +1,88 @@ +# Scenario Craft + +Distilled from the best published design writing (The Alexandrian, GUMSHOE/Robin +Laws, Sly Flourish, Sean McCoy's Mothership layout school, convention-GM guides +by Katrina Ostrander and Burn After Running). These are the field's proven rules; +the house structure in `convention-one-shot.md` already embodies most of them — +use this file when making design *decisions* or debugging a draft that isn't +working. + +## Situations, not plots (The Alexandrian) + +- Prep **situations** (locations, NPCs with goals and resources, available + information), never event chains — a scripted plot is a chain of potential + points of failure. +- Write **goal-oriented opponents**: what the antagonist is trying to do, on + what timetable, with what tools (squads, safehouses, informants). Improvise + their reactions; never script them. +- Always write the **adversary timeline**: what happens if the PCs do nothing. + (House form: The Countdown.) + +## Clues and mystery (Three Clue Rule + GUMSHOE) + +- The Alexandrian's Three Clue Rule (three independent routes to every + necessary conclusion) is implemented as the **house standard** in + `convention-one-shot.md`: automatic-on-right-approach + written fallback + + Countdown event. Apply that standard; this section explains the why. +- **Never gate progress behind a die roll to notice something.** Finding core + clues is automatic for the right approach in the right scene; rolls buy + *extra* information. The game is *interpreting* clues, not finding them. +- A **core clue** points to another scene. Test: if it's not worth writing in a + player's notes, it isn't a core clue. Write each scene with lead-ins and + lead-outs. +- **Don't author red herrings** — players manufacture their own false leads for + free. Over-provision true information instead; the sorting is the gameplay. +- Design **backwards from the truth**: write what actually happened and what + the villain does next, then lay the trail from the trigger event. +- Keep a **revelation checklist** (the 8–12 things players must eventually + learn), abstracted from where they're discovered — any scene can deliver a + homeless revelation. Carry undiscovered ones forward. (Sly Flourish's + "secrets and clues".) +- Unstick tools, in order: fallback delivery of the missed clue → **proactive + antagonist event** (a new death, the opposition strikes) → invent a new core + clue on the spot. Structures serve the table, not vice versa. + +## Pacing (convention wisdom) + +- **One substantive scene per hour of real play**; a 3h30 slot holds ~5. The + critical path should fill only about *half* the slot — deliberation, rules, + and jokes eat the rest. (Total planned content ≈ 3:15 against the 3:30 + budget, per the house cut discipline.) +- **Dice roll within the first 20 minutes.** Open in motion (in medias res or + pressure-adjacent) and let introductions surface during the action, not as + round-the-table monologues. +- Premise formula for pitches: "When [disruptive event], will [adjective] + [group] manage to [verb] the [thing]?" +- Introduce mechanics when first needed, not in a front-loaded rules lecture. +- Spotlight is a resource: track who hasn't had a meaningful roll or scene and + aim the next beat at them. +- Personal Agendas (Free League cinematic model): per-act secret goals on the + pregens are a drama engine — quiet tension in Acts One–Two, open + confrontation fuel in Act Three. The house "Private box" is the single-arc + version; use per-act agendas when the scenario needs PvP-adjacent heat. + +## Structural skeletons worth stealing + +- **Five Room Dungeon** (any genre): Guardian/Entrance → Puzzle or Social → + Trick/Setback → Climax → Revelation/Reward. Good emergency skeleton for a + short slot or a side episode. +- **Fronts** and **progress clocks** (see `campaign.md`): the Countdown is the + wall-clock variant; use segment clocks when antagonist triggers are + event-driven rather than time-driven. + +## Writing for the running GM (McCoy / OSR layout school) + +- **The cascade:** can this prose be bullets? the bullets a table? the table a + diagram? Always compress downward. +- Tell the GM **the truth on page one** — mystery is for players, never for the + reader. (House form: Plot Summary before any scene.) +- Read-aloud text: players disengage after ~two sentences. Keep boxed text + short and sensory, or replace with a bullet list of details the GM voices in + their own words. +- No mid-scene page-flips: stat lines live next to their encounter, maps next + to their key, cross-references carry explicit pointers. +- Immediate impression first, then interactables, then hidden things — in every + location key. +- Expressive terseness: telegram-minimal strips usable flavour; purple prose + buries the one fact that matters in paragraph three. One evocative detail per + element, load-bearing words in bold. diff --git a/skills/rpg/references/lessons.md b/skills/rpg/references/lessons.md new file mode 100644 index 0000000..efab0d3 --- /dev/null +++ b/skills/rpg/references/lessons.md @@ -0,0 +1,191 @@ +# Lessons Log + +Living file. Append transferable lessons here (dated, one-line context) at the +end of any RPG work session; sync via `~/Git/claude-config/sync.sh`. Scenario- +specific facts belong in Graphiti, not here — this file is only for lessons +that will change how the *next* scenario is written. + +**Promotion rule:** when a lesson gets written into a reference file or the +template, delete it from this log (git history keeps it) — otherwise this file +grows into a duplicate of the skill. Several 2026-07 entries below are already +encoded in the references; they stay as worked examples until the next pruning +pass. + +## 2026-07 — AFTERIMAGE desk playtests (Blade Runner, Continuum 2026) + +- **Answer the obvious professional move.** Players will always try the + competent thing (field-scan the suspect, phone ahead to a contact, run a + city-wide facial search). If the scenario's premise hinges on such a move, + write its result explicitly — ideally as a sanctioned alternate route that + rejoins the trail, never a stonewall. Improvised rulings here are the + biggest holes playtests find. +- **A player's key relationship is a loaded gun.** If a pregen's relationship + NPC guards a scenario target, decide in the text what happens when the + player leverages the relationship early. Done right it *improves* the scene + (the warned target is already spooked → better chase start). +- **Formalise staging for twin/duplicate reveals.** When two groups hold + halves of a revelation, the NPC recites aloud while the GM hands the + matching card at the same moment. Never let a player's skim carry the scene. +- **Idle pairs get jobs.** During any split set-piece, hand the sidelined + players the obstacle/bystander material to run. Formalise it in the + set-piece text. +- **Deploy pressure lines early.** The written "NPC checks a watch" beat goes + in at the *first* sign of circular debate, not at the scheduled time. +- **List the compromise endings.** Playtests and real tables invent partial + trades (wipe half the drive, surrender the copy). If a compromise is good, + it goes in the choices table — players will find it again. +- **"On schedule with zero slack" is a fail.** Strangers run slower than any + desk test. Keep pre-written cuts per act and take them early. +- **No-roll scenes need a sign.** If a beat is designed so no die roll + resolves it (a confession that stays ambiguous), say so in the text — + "no roll resolves this" — so the GM doesn't improvise one under pressure. + +## 2026-07 — Day One consistency audit (BRP, real-London setting) + +- **Real-city scenarios need a dedicated geography pass.** Check every compass + direction, "across the river", landmark sightline, and named route against + the actual map before calling a scenario ready — desk playtests won't catch + these, but any local player will (Day One had a hospital on the wrong bank, + a pier route through a tunnel that's past the destination, and a gatehouse + on the wrong end of the bridge). +- **Grep the cast list for surname collisions between PCs and NPCs** — an + audit's cheapest catch (Kira Osei-Mensah vs Fatima Osei), and it reliably + confuses a convention table. +- **In-fiction timestamps deserve arithmetic checks.** If the text says "two + hours before the alert", subtract the actual clock times; drafts drift as + timelines get re-plotted. + +## 2026-07 — Pregen roster rebuilds + +- **Audit inherited rosters against the current scenario, not just the + rules.** A mechanically-legal PC can still be skill-dead all night (a pilot + in a scenario with no vehicles). Rebuild the lane, keep the flavour, flag + the change for review. +- **Signature items with a tiny mechanic** (once/session stress heal on + interaction) reliably produce unprompted table moments; pure-flavour items + go unused and nobody minds — both outcomes are fine, so always include one. + +## 2026-07 — Day One art production (mj-gen batch) + +- **Midjourney silently blocks banned words even in negation.** "no visible + gore" kills the job — the grid simply never arrives and the bridge times + out. Write the positive form instead ("understated, nothing graphic"). +- **Scene prompts drift photorealistic; style-lock them.** For the house ink + style, lead with "hand-drawn pen and ink illustration, NOT a photograph" + and append `--no photography, photorealism` — one dusk-boat prompt came + back as a photo without it. +- **Maps are drawn, not generated.** MJ cannot do accurate labelled + geography; a hand-styled SVG (rough displacement filter, handwriting font, + cream paper) passes visually as sketch art and stays correct. Expect two + or three label-collision passes in a browser before it's clean. + +## 2026-07 — The Vain Crown build (house-system debut package) + +- **A rulebook's pregens are not con pregens.** VANITY's five shipped without + Vices — the system's own core engine. When packaging an included adventure + for a slot, audit the pregens against the system's *incentive* mechanics, + not just their stat legality. +- **Debut systems need a dice primer baked into the Intro** — one staged + practice roll per player that doubles as the arrival scene, so teaching + costs zero extra minutes and the first Stumble happens somewhere safe. +- **Give the villain a countdown table.** "Where is he now" per session-clock + row makes lost time (a failed pathfinding roll) mean something concrete and + lets fast tables genuinely change the finale's staging. +- **Silence from a generation pipeline is a diagnosis, not a delay.** When a + batch goes quiet, check the actual channel/API for what the service said + before waiting again — and keep a fallback asset source (the system's own + existing art) so the package ships regardless. + +## 2026-07 — Princes Bride rebuild (Dee Sanction, Continuum 2026) + +- **Inherited multi-draft projects need a canon-reconciliation clause.** When + source materials disagree (two different charm-givers, two Eleanors, a + villain who is a fraud in one draft and a pragmatist in another), pick one + canon, write it as a numbered Design-Intent item ("Canon reconciled: ..."), + and list every superseded fact — otherwise the GM re-derives the + contradictions at the table. +- **Verify the system against primary sources, not inherited quick-refs.** A + project's own GM reference had an entirely different game's dice mechanic + (PbtA 2d6 for a step-die Falter system). The character sheets + publisher's + site are ground truth; the quick-ref is a hypothesis. +- **Run the set-piece on the system's own resolution mechanic.** The trial as + an open Verdict Die (the game's step-up/step-down, made visible on the + table) needed zero new rules and made evidence-presentation mechanical. + Find the system's native verb before inventing subsystems. +- **Keep good inherited sheets; add an insert layer.** When existing pregens + are printed and well-made but generic, don't rebuild — print per-agent + mission inserts (private seam + dice crib + table-name conventions) that + slip inside the sheets. Cheaper, and the sheets stay canon. + +## 2026-07 — Silvery Moon rebuild (inherited-draft salvage) + +- **Verify a period scenario's real-world facts, then decide: correct or + canonize.** Silvery Moon's eclipse was astronomically impossible (new moon + that night — checked against the real 1892 record). Correcting it would + have cost the climax; canonizing the wrongness AS the horror (the moon that + should not be there, proven by an almanac handout and an astronomer pregen) + turned the draft's worst error into its best clue. Always check which move + the fiction wants before reaching for the eraser. +- **Mine the draft's own margins for pregens.** The strongest pregen is often + already in the text as a named-but-unused NPC (Dr. Lyle was the draft's own + "recent collaborator"). Lift them before inventing. +- **When two source layers contradict (prose vs app data), reconcile so both + are true** — Braddock "too afraid to act" AND "cult member" became a + coerced member, which was stronger than either. Contradictions are usually + two halves of a better fact. + +## 2026-07 — The Con Desk (multi-slot convention tooling) + +- **A convention weekend needs ONE entry point.** When several scenarios each + have their own GM console, build a hub with the con's real schedule baked + in: live-clock "up next / live now" badges, one-tap launches, and per-slot + pack-the-bag checklists. Every console gets a ⌂ link home. The hub's + relative links mean the whole repo folder must travel to the tablet + together — say so in the README. +- **A contrarian pass earns its keep on the moves the GM prays nobody makes.** + "Cross the river NOW" and "we go back for the van" were both one-line hooks + until dice forced them; both became the best unwritten scenes. If a hook + can be driven to, it needs a written destination and its cost said aloud. + +## 2026-07 — Vain Crown big-table heroes (fixed-class-list systems) + +- **When the system has a closed class list, big-table pregens are variant + builds, not new classes.** Differentiate inside the class: a different + fighting style (sword-and-board Bram vs two-handed Hedda), a different + lane emphasis (stealth-killer Pinch vs thrown-blade showman Marlo), a + different creed/spell loadout (sustain Wren vs control grave-warden + Tobin). Show the audit math so the variants are provably legal. +- **Point the new Vices at the existing roster.** "A Rival — [existing PC]" + only fires at player counts where both are dealt, which big-table extras + guarantee. Doctrinal Pride vs the other cleric's creed, and a Glory-Hound + pairing, gave every added seat built-in table chemistry for free. +- **Scale the set-piece with the roster on the card.** The deal-order note + (6th/7th/8th) plus boss Grit per extra hero and mook multiplier lives ON + the GM cut-out corner of the last hero card page, not buried in the doc. + +## 2026-07 — RUNDOWN cardless chase system (Blade Runner, house subsystem) + +- **Do the expected-value arithmetic before committing to a subsystem.** A + spec self-review pass that actually computed the dice maths caught two dead + mechanics that read fine in prose: a role structure where the pursuers' net + was ~0.00 per round (the chase could literally never end), and a support role + worth +0.24 successes when simply doubling up on the main role was worth + +0.57 — nobody would ever have picked it. Prose hides both. One script found + both in a minute. +- **A role that spends a resource needs a role that refunds it.** Four roles + only became an economy once the support role was recast from "adds successes" + to "buys off the cost the aggressive role generates". Test any new role menu + by asking what each option *trades*, not what it *does* — if two options + trade the same thing, one of them is decoration. +- **Check whether the rules you're replacing already contain the escape + hatch.** The published Blade Runner chase ships a die table as an alternative + to its own obstacle deck, so "make it cardless" was already solved in the + book. The real brief was the other four problems (idle players, no + accumulating state, generic obstacles, lookup load). Always ask what the + request is *actually* for before designing to its literal wording. +- **When a house subsystem gets a digital aid, test the aid headlessly.** A + ~60-line stub-DOM harness in Node drove the real console module through every + state transition (clamping, round cap, overtime drift, undo) with no browser + and no dependencies. Worth it: two of the "failures" it surfaced were the + harness lying, which is itself the thing you want to find before a + convention floor. diff --git a/skills/rpg/references/playtest.md b/skills/rpg/references/playtest.md new file mode 100644 index 0000000..bc6b5cb --- /dev/null +++ b/skills/rpg/references/playtest.md @@ -0,0 +1,71 @@ +# Desk Playtest Protocol + +A scenario is not "convention-ready" until it has survived desk playtests and +the fixes are applied and versioned. Three passes is the proven cadence: +full session (GM chair) → stress re-run of the weakest act → full session +(player chair, contrarian choices). + +## Method + +- **Full table simulation.** Run the scenario as GM *and* play every pregen as + a distinct player archetype. The proven quartet: + - the methodical veteran note-taker + - the roleplay-first talker who never reads handouts silently + - the quiet rules-literate tactician + - the lore-digger who asks "can I check…?" constantly +- **Roll dice honestly** for every contested beat (physical dice or a fair + roller). Fudged playtests produce fudged timing. +- **Log timing against the schedule** per section: planned vs actual, with the + drift explained. Note where the break landed. +- **Play the players, not the script.** Ask the obvious professional questions + ("I scan her", "can I phone ahead?", "I run the face against city feeds"). + Every improvised ruling the playtest forces is a hole in the text — the + written scenario must absorb it. +- Later passes go **contrarian**: split the party wrong, skip the expected + route, refuse the set-piece, shoot early. Verify the fast-tracks and + contingencies actually work. + +## The playtest document + +One markdown file per pass in `playtest/`: + +1. **Method header** — what was simulated, which version of the scenario +2. **Play log** by section — planned/actual minutes, what landed, what + dragged, table quotes worth keeping, each problem flagged inline with ⚠ +3. **Player-hat verdicts** — one line per player archetype, with a score +4. **Feedback summary / fix list** — numbered, prioritised, each fix stating + the problem, the proposed text change, and where it goes. Nothing is + rewritten inside the playtest doc itself. + +## Applying fixes + +- Apply fixes as a separate pass; bump the version (v1 → v2 → v2.1 …) and + record in the README which playtest's fixes each version absorbed. +- Classify every ⚠ before fixing: + - **Text hole** (a legitimate player move the scenario doesn't answer) → + write the answer into the scenario, not the GM's head + - **Timing** (a section runs hot) → pre-write the cut into the Pacing Note + - **Staging** (a scene lands only if performed a specific way — e.g. an NPC + must recite while the GM hands the card) → formalise the staging + instruction in the scene + - **Missing option** (players invented a compromise the text doesn't list) → + add it to the choices/outcomes tables +- Timing target: full run inside the time budget with the drift noted. If a + playtest lands on schedule "to the minute with zero slack", that is a + **fail** for a real table of strangers — cut deeper. +- Convention-ready = full-session playtests from both chairs inside budget, + multiple endings reached, art and handouts done, README status updated. + +## Post-slot debrief (after the real convention run) + +The con run is the highest-value data the system ever gets. Same day, ten +minutes, one file in `playtest/` (`-con-run-.md`): + +- Timing actuals per act vs the table, and where the break landed +- Every improvised ruling (each one is a text hole — classify as above) +- Compromise endings or routes the table invented +- What confused players, what they quoted back, which handout landed hardest +- Verdict: what to fix before this scenario runs again + +Then close the loop as usual: fix list → version bump → transferable lessons +appended to `lessons.md` → Graphiti. diff --git a/skills/rpg/references/pregens.md b/skills/rpg/references/pregens.md new file mode 100644 index 0000000..101598c --- /dev/null +++ b/skills/rpg/references/pregens.md @@ -0,0 +1,47 @@ +# Pre-Generated Characters + +Pregens are half the scenario. A con player meets the game through the sheet. + +## The three tests (every roster must pass all three) + +1. **Rules-accurate.** Audit every sheet against the system's build rules — + attribute/skill budgets by experience tier, derived stats, restrictions + (e.g. Blade Runner replicant rookies carry no specialties). Show the audit + math in the pregens file so errors are checkable: + `(Budget: Veteran +2 attr → INT A, EMP B; +12 skill increases ✓)`. +2. **A working party.** Each PC owns a distinct **investigation/action lane** + with minimal overlap (scene-reader, people-person, muscle/pursuit, + forensics/tech is a proven quartet). If the scenario has a set-piece, check + no PC sits skill-dead all night — rebuild the sheet or the set-piece. + Flag deliberate rebuilds of existing roster characters for review. +3. **Wired into the case.** Every PC gets a **Private (do not share)** box: a + personal seam the scenario will pull on, phrased as a question the night + will force them to answer. The best private seams make the player *decide + something about themselves* in Act Three, not just recognise a connection. + +## Sheet contents (per PC) + +- Name, archetype, experience tier, one-line essence in italics — the essence + line doubles as the GM's spoken pitch during Slot Zero pregen picks +- Attributes table, derived stats (show modifiers: *incl. replicant +2/−2*) +- Skills (only the ones above baseline), specialties with rules text inline +- Gear with the numbers the player needs (damage, range) — no page refs +- **Signature item** with a small mechanical hook (e.g. interact once per + session to heal 1 stress) — these produce the best unprompted table moments +- **Key memory** and **key relationship** — write relationships to NPCs and + places that appear in the scenario, so the case walks through their lives +- **Private** box (see above) +- **"Playing X"** — three bullet behaviour cues, imperative mood ("speak + second, watch first"), so a stranger can act the character in 30 seconds + +## Roster-level checks + +- Party seams: note which PCs pair naturally for splits, and give a + recommended 2+2 split per act (but let players choose at the table). +- Player-count scaling: state which PC drops first at fewer players (their + lane must be recoverable elsewhere), how splits adjust (2+2 → 2+1), and + what a walk-up extra plays if the system supports a +1. +- The roster file opens with goals + audit notes + errors fixed from previous + versions, so the next revision has provenance. +- Produce print-ready sheets (HTML → A4, one page per PC + a table + quick-reference page). Portraits from the scenario art set. diff --git a/skills/rpg/references/production.md b/skills/rpg/references/production.md new file mode 100644 index 0000000..514f548 --- /dev/null +++ b/skills/rpg/references/production.md @@ -0,0 +1,71 @@ +# Production Pipeline + +Everything beyond the scenario text that makes a slot runnable. + +## Folder & repo layout + +Each scenario ships as a self-contained folder: + +``` +/ +├── README.md # index table, status line (version, playtests, remaining prep), licence footer +├── scenarios/ # the scenario markdown (+ art/ for scenario illustrations) +├── characters/ # pregens.md, character-sheets.html, art/ (portraits) +├── handouts/ # print-ready handout pack (HTML) +├── reference/ # set-piece GM quick-reference sheets +├── playtest/ # one file per desk playtest +├── gm-utility/ # GM console app (module per scenario) +└── print/ # final print artifacts +``` + +- iCloud is the working copy: + `~/Library/Mobile Documents/com~apple~CloudDocs/RPGS/Conventions////...` +- Each event gets a **private GitHub repo** (`slaguru666/`, e.g. + `Continuum2026`) as backup + cross-machine share. Commit at meaningful + checkpoints (draft, post-playtest, version bumps), not per-edit. +- Licensed settings (Blade Runner, CoC, …) stay in **private** repos with the + licence footer: "© . Private convention play materials — not for + sale or distribution." + +## Handouts & props + +- IDs: `[Slot]-H[act]-[letter]` (e.g. `F2-H00-A` = Friday slot 2, pre-game, + first handout). Every handout appears in the scenario's per-act handout + tables with When Given. +- Build one **print-ready HTML pack** per scenario (A4, print margins, + background graphics on). Physical props beat screens: print guidance in the + scenario says what to hand around vs lay flat. +- The best handout tricks are *staged*: duplicated documents revealed + simultaneously, sealed items ("bag it, don't open it"), cut-out props. + Write the staging into the scenario, not just the pack. + +## Artwork + +- Base style: **ink sketch / pencil illustration** — hand-drawn, single-weight + line, sparse wash, negative space. Never photorealistic. Each scenario adds + one art-direction line (e.g. "heavy rain hatching"). +- Asset IDs `[Slot]-ART-[##]`, tracked in the scenario's Artwork Assets table + with description, where used, and the full generation prompt (prompts are + part of the document — regeneration must be possible). +- Generate with the Midjourney bridge: `mj-gen ""` drops a PNG on + disk. Keep alternates in an archive folder; portraits feed the character + sheets. + +## GM console (`gm-utility/`) + +Touch-screen GM app (static HTML, no build step) with: session clock with the +scenario's checkpoints, dice roller with system-specific push/advantage rules, +set-piece runner (e.g. chase obstacles), PC/NPC dashboards, fullscreen props, +autosaving state. Scenarios plug in as modules — when building a new scenario, +add a module rather than a new app. + +## Print checklist (before the con) + +- Character sheets: A4 portrait, 100% scale, one page per PC + table + quick-reference page +- Accessibility: handout body text ≥11pt (con halls are dim, eyes are tired); + the GM reads every handout aloud as it's given +- Handout pack, including any duplicated staging cards +- Set-piece GM quick-ref +- GM read-through of the final versioned scenario +- README status flipped to convention-ready with remaining-prep list emptied