Restore skills/rpg/ (wrongly deleted by --delete sync from a machine lacking it locally)

This commit is contained in:
2026-07-27 09:27:58 +01:00
parent 4d6da98c5a
commit ba6afb635c
9 changed files with 1033 additions and 0 deletions
+122
View File
@@ -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/<Event Year>/...`
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: <what changed>"`.
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 "<prompt>"` (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 |
+272
View File
@@ -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.*
+50
View File
@@ -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.
@@ -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.
+88
View File
@@ -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.
+191
View File
@@ -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.
+71
View File
@@ -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/` (`<scenario>-con-run-<event>.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.
+47
View File
@@ -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.
+71
View File
@@ -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:
```
<SCENARIO>/
├── 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/<Event Year>/<Day>/<Slot>/...`
- Each event gets a **private GitHub repo** (`slaguru666/<Event><Year>`, 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: "© <publisher>. 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 "<prompt>"` 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