Add brp-d100 rule-pack (Basic Roleplaying roll-under): fumble on 100,
critical <= skill/20, special <= skill/5, success <= skill — bands
transcribed from the Continuum Day One console's verdict() logic.
Register it and switch day-one meta.system from coc-d100 to brp-d100.
tests/dice/brp-d100.test.js covers the ladder, low-skill rounding, and
the fumble-only-on-100 edge. 147 tests pass.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add <cast-tray>: renders scenario.cast (name + one-line note) with each
NPC secret behind a tap-to-reveal so spoilers stay off-screen at the
table. Wired into the shell as the 'cast' tool with a 👥 rail chip;
reveal state is ephemeral component state. Now the 57 ported NPCs are
visible in a running session.
tests/components/cast-tray.test.js + gm-shell-cast.test.js. 141 tests pass.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Populate cast[] (kind:'npc') for every Continuum scenario, transcribed
from the gm-utility NPC sources — normalising the two schemas (console
{id,name,ess,sec} and module {name,tag,secret}) into
{ id, name, kind, note, secret? }. 57 NPCs total. Pregens/PCs excluded
(separate character-sheet system).
No cast UI consumer yet — the design reserves scenario.cast for a future
cast dashboard, so this is a data-model port guarded by
tests/scenarios/cast.test.js (shape + unique ids). 131 tests pass.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Populate clues[] for every Continuum scenario (afterimage, day-one,
vain-crown, silvery-moon, chopper, princes-bride), transcribed faithfully
from the gm-utility console sources (CLUES arrays, gbclue GM-brief spines,
and the princes-bride module). The Slice 4 clue safety-net now works
against real content — essential-gap banner, act labels, and fallbacks.
day-one and princes-bride carry the source's own essential/optional split;
the four GM-brief spines mark each tracked clue essential (single curated
list, no optional tier in-source).
tests/scenarios/clues.test.js guards shape, unique ids, and solvability.
129 tests pass; build clean.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Rewrite continuum-2026.js from the authoritative con-desk.html SLOTS
array: six real slots with days/times/systems/players and startsAt set,
so the hub's live-now/up-next follows the real convention clock.
Add five scenario modules (day-one, vain-crown, silvery-moon, chopper,
princes-bride) transcribed from the existing gm-utility console
timelines, and register them so every slot is tappable. Day One (BRP)
borrows the coc-d100 pack; the others map to their own systems.
Corrections found while porting: the slate is six slots (Slot 5 Silvery
Moon was missing) and s6 is 'Get to the Chopper — Another Fine Mess'.
tests/con/continuum-2026.test.js guards slot resolvability, valid dice
packs, and schedule status. 125 tests pass; build clean.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add the convention hub landing screen: a pure schedule engine
(analyzeSchedule) classifies each slot as live/next/done/upcoming from an
injected now; <con-hub> renders the slate + summary and emits open-scenario;
a scenario registry resolves a slot's scenarioId to its module; gm-shell
routes hub<->session (hiding/restoring the Rail) with a home rail chip.
Ships continuum-2026.js with the real slate (only AFTERIMAGE ported;
others scenarioId:null, start-times TBC) and a fully-timed example-con.js
template/fixture. 122 tests pass; build clean.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
8 TDD tasks: noir genre pack + registry, pure NPC generator, <npc-tray>,
art search, art manifest, <prop-viewer>, <art-tray>, and shell/rail wiring
(open-tool for npc/art, keep-npc persistence, show-prop fullscreen).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
12 TDD tasks proving the vertical slice end-to-end on the AFTERIMAGE pilot:
scaffold, store, clock, timeline/drift, dice core, Year-Zero rule-pack,
scenario validator+data, formatting, <director-rail>, <dice-tray>, <gm-shell>,
and the offline PWA (manifest + service worker).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Offline-first PWA (Web Components) with an always-on Director Rail (pacing
co-pilot), one animated dice engine + system rule-packs, offline NPC/art
generators, and a per-scenario data model as source of truth. Sliced roadmap;
Slice 1 = shell + rail + data model + Year-Zero dice, proven on AFTERIMAGE.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>