feat: port all six scenarios' clue trails into the data model

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>
This commit is contained in:
slaguru666
2026-07-20 22:12:39 +01:00
co-authored by Claude Opus 4.8
parent b4d797b52d
commit ce91b4ce98
9 changed files with 120 additions and 8 deletions
@@ -52,7 +52,14 @@ jsdom. No new dependencies. Fully offline.
- Correction found while porting: the real slate is **six** slots (Slot 5 *Silvery Moon* was
missing from the first hub draft), and "Another Fine Mess" is *Get to the Chopper — Another Fine Mess*.
- **All six scenarios' clue trails ported** into the data model (transcribed from the console
`CLUES`/`gbclue`/module sources via `extract-clues.mjs`), so the Slice 4 safety-net now works
against real content. `tests/scenarios/clues.test.js` guards shape + solvability. The four
GM-brief-sourced trails (afterimage, vain-crown, silvery-moon, chopper) mark every tracked
clue `essential: true` (their source is a single curated spine); day-one and princes-bride carry
the source's own essential/optional split.
## Still deferred (backlog)
- Porting each scenario's **clue trails / cast** into the data model (shipped `clues: []` like AFTERIMAGE).
- Porting each scenario's **cast** into the data model (still `cast: []`).
- A dedicated **BRP** dice pack — Day One currently borrows `coc-d100` (d100 roll-under).