Add rpg scenario-writing skill; sync/install skills/ across machines
- skills/rpg: SKILL.md + 7 references/assets encoding the house scenario system (convention one-shot structure, craft research, pregens, playtest protocol, production pipeline, living lessons log) - sync.sh: mirror ~/.claude/skills/ into repo - install.sh: install repo skills/ into ~/.claude/skills/ - README: document skills tracking + pull-before-sync ordering
This commit is contained in:
@@ -9,9 +9,15 @@ Private repo syncing Claude Code config across machines.
|
||||
| `CLAUDE.md` | `~/.claude/CLAUDE.md` | Global Claude Code instructions |
|
||||
| `settings.json` | `~/.claude/settings.json` | Permissions, model, env vars |
|
||||
| `memory/*.md` | `~/.claude/projects/-Users-<username>/memory/` | Persistent memory files |
|
||||
| `skills/` | `~/.claude/skills/` | Shared skills (e.g. `rpg` — scenario-writing system) |
|
||||
|
||||
**Not tracked:** `settings.local.json` — accumulates one-off permissions per session, machine-specific.
|
||||
|
||||
**Sync order matters:** `sync.sh` copies *live state over the repo* (memory and skills
|
||||
included, with deletes). Always `git pull && ./install.sh` **before** working, and
|
||||
`./sync.sh` after — syncing from a machine that hasn't installed the latest pull will
|
||||
remove the other machines' memory/skill files from the repo.
|
||||
|
||||
**CLI dependencies:** `install.sh` also installs the Codex CLI (`npm install -g @openai/codex`) when missing,
|
||||
since the `codex@openai-codex` plugin shells out to it. Requires `npm` on the target machine.
|
||||
|
||||
|
||||
@@ -40,6 +40,13 @@ mkdir -p "$MEMORY_DIR"
|
||||
cp "$SCRIPT_DIR/memory/"*.md "$MEMORY_DIR/"
|
||||
echo " Installed: memory files -> $MEMORY_DIR"
|
||||
|
||||
# Skills — copy each skill directory into ~/.claude/skills/
|
||||
if [ -d "$SCRIPT_DIR/skills" ]; then
|
||||
mkdir -p "$CLAUDE_DIR/skills"
|
||||
rsync -a "$SCRIPT_DIR/skills/" "$CLAUDE_DIR/skills/"
|
||||
echo " Installed: skills -> ~/.claude/skills/"
|
||||
fi
|
||||
|
||||
# CLI dependencies — Codex CLI, required by the codex@openai-codex plugin to actually run.
|
||||
if command -v codex >/dev/null 2>&1; then
|
||||
echo " Codex CLI already present: $(codex --version 2>/dev/null | head -1)"
|
||||
|
||||
@@ -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 |
|
||||
@@ -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.*
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -0,0 +1,51 @@
|
||||
# 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 — 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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -37,6 +37,11 @@ else
|
||||
echo " Warning: no memory files found at $MEMORY_DIR — skipping"
|
||||
fi
|
||||
|
||||
if [ -d "$CLAUDE_DIR/skills" ]; then
|
||||
rsync -a --delete "$CLAUDE_DIR/skills/" "$SCRIPT_DIR/skills/"
|
||||
echo " Copied: skills/"
|
||||
fi
|
||||
|
||||
cd "$SCRIPT_DIR"
|
||||
git add -A
|
||||
if git diff --cached --quiet; then
|
||||
|
||||
Reference in New Issue
Block a user