content: spec/vocabulary edits — minPlayers docs, vocabulary locations, clock-maker passive reveals
User-authored content edits (schema-validated: 543 unit tests pass): - specs: explicit minPlayers on mawfang-pursuit (2), old-friend-bad-timing (3), the-clock-maker (1) — documents author intent per Feature D. - the-clock-maker: passiveReveals section + a skillChecks note on the optional Feature A timer for the returning-customer deadline. - lore/vocabulary.yaml: curated locations (inn, village, road) + a new forest category. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -141,7 +141,7 @@ locations:
|
||||
- Bridgefoot Square
|
||||
|
||||
inn:
|
||||
- The Broken Compass
|
||||
- The Willowing Pig
|
||||
- The Crooked Lantern
|
||||
- The Mended Drum
|
||||
- The Dusty Heel
|
||||
@@ -151,22 +151,21 @@ locations:
|
||||
- The Ember & Stone
|
||||
|
||||
village:
|
||||
- Cinder Ford
|
||||
- Greymoss Crossing
|
||||
- Tallow's End
|
||||
- Ashwick
|
||||
- Breckfen
|
||||
- Moldvale
|
||||
- Harrow's Gate
|
||||
- Dunford
|
||||
- Saltmere
|
||||
- Edgemarsh
|
||||
- Mardsville
|
||||
- Barristown
|
||||
- Veldra's Maw
|
||||
- Mardonar City
|
||||
- Wildwood Forest
|
||||
|
||||
road:
|
||||
- the Pilgrim's Switchback
|
||||
- the Ridge Road
|
||||
- the Goat Track
|
||||
- the Sheercliff Path
|
||||
- the High Drove
|
||||
- the Ironway
|
||||
- the Mossback Trail
|
||||
- the King's Road
|
||||
- the Vampires Trail
|
||||
- 3 Heads Crossing
|
||||
- Gloaming Pass
|
||||
|
||||
forest:
|
||||
- Wildwood Forest
|
||||
- The Whispering Woods
|
||||
- The Gloaming Thicket
|
||||
- The Shadowgrove
|
||||
- The Eldertree Vale
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
encounterId: "mawfang-pursuit-001"
|
||||
title: "Unwelcome Guests"
|
||||
|
||||
# Group encounters (Feature D) — solo scene, explicit for documentation.
|
||||
# Default would be 1; explicit value documents the author's intent.
|
||||
minPlayers: 2
|
||||
|
||||
tone: "tense"
|
||||
|
||||
setting:
|
||||
|
||||
@@ -25,6 +25,10 @@ encounterId: "old-friend-bad-timing"
|
||||
|
||||
title: "Old Friend, Bad Timing"
|
||||
|
||||
# Group encounters (Feature D) — solo scene, explicit for documentation.
|
||||
# Default would be 1; explicit value documents the author's intent.
|
||||
minPlayers: 3
|
||||
|
||||
setting:
|
||||
location: "Lonespear Tavern — Barristown's harbor quarter"
|
||||
mood: >
|
||||
|
||||
@@ -18,6 +18,10 @@ title: "The Clock Maker"
|
||||
# tone — LLM READS (narration flavor) + BOT ENFORCES (drop-notice string).
|
||||
tone: "grim"
|
||||
|
||||
# Group encounters (Feature D) — solo scene, explicit for documentation.
|
||||
# Default would be 1; explicit value documents the author's intent.
|
||||
minPlayers: 1
|
||||
|
||||
# setting — LLM READS. Three strings grounding the scene.
|
||||
setting:
|
||||
# location — where the scene happens. One line.
|
||||
@@ -147,6 +151,38 @@ skillChecks:
|
||||
it alone — the party must find the right action first; this is the
|
||||
resolution roll once they have.
|
||||
|
||||
# The returning customer's 15-minute deadline (see Hale / persona) is a
|
||||
# narrative urgency cue by default. If the LLM wants it as a real
|
||||
# engine-driven timer (Feature A), it may emit skill_check_emit with
|
||||
# durationSeconds: 900 against calm_returning_customer — the timeout
|
||||
# path then becomes bot-enforced auto-fail, not a narration-only beat.
|
||||
# Spec-author opt-in; not required.
|
||||
|
||||
# Passive skill reveals (Feature B) — bot-applied at encounter start,
|
||||
# group-visible, attributed to the qualifying player. threshold is a passive
|
||||
# DC (integer); revealText is outcome prose only — no dice results (the bot
|
||||
# owns dice). Thresholds gate roughly half the party, consistent with the PRD
|
||||
# Feature B tone for the clock-maker's "something is wrong" entry point.
|
||||
passiveReveals:
|
||||
- skill: "Perception"
|
||||
threshold: 13
|
||||
revealText: >
|
||||
Notices the clocks in the shop are not keeping the same time. Three of
|
||||
them are five minutes apart, and a fourth has stopped — but its second
|
||||
hand is still moving.
|
||||
|
||||
- skill: "Insight"
|
||||
threshold: 14
|
||||
revealText: >
|
||||
Reads something rehearsed in the clock-maker's warmth. He is performing
|
||||
friendliness the way a stage magician performs ease with the deck.
|
||||
|
||||
- skill: "Investigation"
|
||||
threshold: 12
|
||||
revealText: >
|
||||
Spots a thin line of dust on the shelf where a clock once sat. The empty
|
||||
place is the size of a pocket-watch. The shop keeps no receipts.
|
||||
|
||||
# randomizable — BOT ENFORCES. Fields that vary per run. Name draws bind to
|
||||
# npc.nameKey (fresh names each run); cursed_ware seeds the specific ware.
|
||||
# source: vocabulary + category route name draws to the vocabulary namespace.
|
||||
@@ -180,6 +216,9 @@ tools:
|
||||
- goal_register # LLM emits to add an off-rails goal mid-encounter.
|
||||
- foundry_lookup # LLM emits to surface a linked player's live Foundry stats.
|
||||
- foundry_reward # LLM emits to award XP/items via the Foundry relay.
|
||||
# NOTE: skill_check_group_emit (Feature C) is intentionally absent. The
|
||||
# clock-maker is a solo scene (minPlayers: 1); there is no group to check
|
||||
# against. The timed-check opt-in on break_curse_note uses the solo emit.
|
||||
|
||||
# dmNotes — LLM READS. Author framing for the DM's intent (stakes, feel,
|
||||
# escalation). Not rules the LLM mechanically follows.
|
||||
@@ -196,5 +235,21 @@ dmNotes: >
|
||||
return a lethal clock; use them to break the dithering and raise the stakes.
|
||||
Their fifteen-minute deadline is urgency to narrate, not a real-time timer.
|
||||
|
||||
NEW CAPABILITIES (group-encounters feature set, 2026-06-20):
|
||||
The opening beat of the clock-maker scene is a "something is wrong"
|
||||
pre-roll moment; lean on the three passiveReveals above (Perception,
|
||||
Insight, Investigation) to surface clues in the opening lines without
|
||||
waiting for the LLM-emitted checks. Bot applies them automatically at
|
||||
encounter start, group-visible, attributed to the qualifying player —
|
||||
the LLM should weave their revealText into the scene as it unfolds,
|
||||
not announce them as a list.
|
||||
|
||||
For the returning customer's deadline: the original framing is "urgency
|
||||
to narrate, not a real-time timer," and that remains the default. The
|
||||
LLM may, at its discretion, opt into the new timed-skill-check path
|
||||
(durationSeconds: 900 on calm_returning_customer) if the table wants
|
||||
the deadline to be engine-enforced rather than narrative-pace. The
|
||||
spec does not require it; it gives the LLM permission.
|
||||
|
||||
# xpReward — BOT ENFORCES. Flat XP to all participants on resolution.
|
||||
xpReward: 50
|
||||
Reference in New Issue
Block a user