Living Word — Scene Gameplay & QA Test Plan
Purpose: A scene-by-scene description of everything a player can do, what each interaction is supposed to do, what may be left undone, and the impact of doing so — written so (a) a human tester can build manual test passes and (b) automated (Playwright) tests can be derived. Extracted directly from the registered code path (
SCENE_REGISTRY→*_REBUILTfiles) and the engine inLivingWordAdventure.tsx, 2026-05-30. Every claim is anchored tofile:line.Coverage: Full detail for the 5 fully-built, sequential Genesis scenes (Eden → Cain & Abel → Flood → Babel → Abraham). The remaining 11 scenes (Exodus stubs + Phase-5 rebuilds) are summarized in Part 3 and need their own extraction pass before detailed test cases.
Companion:
project_living_word_content_state_verified(memory) — content-rewrite state.
How to use this document
- Play URL:
churchwiseai.com/living-word(prod) or the Vercel preview URL. - Test hooks (query params) — read in
LivingWordAdventure.tsx:?lwAllowTeleport=1— dismisses the intro and mounts the canvas immediately (L5946-5951); also enables click-to-teleport for fast navigation (L4616-4623). This is the primary QA hook.?lwExplorerPreview=<sceneId>— force-arms a scene's Explorer (verb) beats for preview (L6098-6102).?lwTestDate=/?lwTestLens=— live-ops CalendarEventChip testing (also dismiss the intro).
- Difficulty levels:
easy | intermediate | advanced | scholar(set in-game; affects NPC/enemy quizzes). - Modes: Quick Play (default) vs Classroom (toggle) — Classroom shows the objective card + verbose teaching; Quick Play uses short copy.
- Each scene section ends with a Manual test checklist and ⚠ Suspected/confirmed issues.
PART 1 — The interaction & completion model (applies to every scene)
Scenes are data-driven SceneDefinition objects (data/scenes.ts:87-138). The engine
(LivingWordAdventure.tsx) renders and resolves them uniformly. Understand this once and
every scene's expected behaviour follows.
1.1 Movement & the interact action
- Walk with WASD / arrows (desktop) or the floating joystick (touch).
- One context action: E / tap interact.
handleInteract(L6960) dispatches by the nearest entity: NPC → dialogue; enemy → encounter; secret → collect; prop → by kind.
1.2 Interaction types & what each is supposed to do
| Interaction | Trigger | What happens | Source |
|---|---|---|---|
| NPC | interact when near | Opens DialogueModal (multi-line); marks NPC "met". Some NPCs also carry a quiz (difficultyQuizzes per level) and/or are a gatekeeper. | L6986-6990 |
| Knowledge Enemy | interact when near | Opens the Knowledge Encounter. If the player holds a Word Card whose answersLies matches the enemy → Word Cards UI (play a matching card = 1 HP; 3 correct = defeated). Otherwise the MCQ fallback. | L6993-6996; WordCardsEncounter.tsx |
| Secret | interact when near | collectSecret → XP + insight text. Most secrets only reveal after their revealAfterEnemyId/revealAfterPuzzleId resolves. | L6998-7001 |
| Prop: studyStation | interact | Opens the mini-game picker (Curriculum Quiz, Free Study, Interlinear Word Match, Strong's Flashcards, Translation Comparison, Narrative Sequencing). | L7004-7008 |
| Prop: creationDay (Eden only) | interact | Opens that Creation Day chamber (1–7). | L7010-7014 |
| Prop: portal | interact | handleReachExit → scene transition (if scene complete). | L7016-7019 |
| Prop: formation | interact | Enters a Formation Space (tutoring + restores Resolve + fruit-of-the-Spirit). | L7021-7039 |
| Prop: mountain / ruinGlyph / sealedRuin | interact | Side puzzle chains (e.g. mountain needs the pickaxe tool; sealedRuin needs 2 glyphs read). | L7041-7084 |
| Relic | walk over / collect | Adds the relic id to the global collectedRelics, awards XP. Cannot re-collect (guarded). | L6711-6712 |
| Explorer verb beat | gesture in target region | A "verb" interaction (witness=long-press, plant/gather=multi-tap, name=tap+choose, trust=walk-into). Resolves to a flag + XP + often a Word Card. No fail state ("reverence floor"). | explorer/* |
1.3 The critical path (beats)
- Each scene has an ordered 5–7 beat
criticalPath(SceneBeat,types.ts:467-478). Each beat has a player-facinggoalandentityRefs. - The on-screen objective pointer follows the beats, not the nearest relic
(
getCriticalPathTarget, L3486+). - A beat is "complete" when every checkable entity it references is resolved (relic collected / enemy defeated / creation-day done / secret found). NPC and prop refs are not checkable.
deeper-explorationbeats (usually beat 4) are OPTIONAL — they never gate the pointer (L3506).
1.4 The hard gate (the main "required" mechanic)
- A scene has at most one
Gate(types.ts:485-493). - The gate physically seals
blocksRegion— the player cannot walk into it — untilgatedBy.enemyIdis defeated (L3940-3958). (Note: enforcement keys on the enemy, not the gatekeeper NPC, even when both are listed.) - The gate typically seals the eastern half containing later relics and the exit portal, so the gate enemy is a de-facto prerequisite to finishing the scene.
1.5 Scene completion (the other "required" mechanic)
- The exit portal opens ONLY when ALL of the scene's relics are collected
(
handleReachExit, L6876-6893): "recover N more relics before the portal will open." - On exit: every Word Card whose
earnedInScene== this scene is auto-granted (L6895-6911), a toast shows, thenSceneCompletionModal→ transition toexitNextSceneId. - The final scene (no
exitNextSceneId) shows a campaign-complete message.
1.6 Word Cards, Resolve, progression
- Word Cards are earned (a) automatically on scene completion and (b) some on
Explorer-verb resolution. They are the ammunition in Knowledge Encounters. A new
player is seeded a 2-card starter deck so the first encounter isn't a raw MCQ
(
STARTER_CARD_IDS, shipped PR #668). - Resolve = hearts, max 5 (
maxResolve = 5, L5888). Formation spaces restore it. - XP / quests / streak / achievements / cloud save accrue but do not gate progression.
1.7 Required vs optional — the general rule
| Element | Required to finish the scene? | Impact if left undone |
|---|---|---|
| All relics | YES — exit won't open otherwise | Hard block: cannot leave the scene |
| Gate enemy (if a gate exists) | YES (to reach the gated region/exit) | Hard block: cannot cross into the sealed half |
| Secrets | No | Lose XP + a thread/insight; many only reveal post-enemy anyway |
| NPC dialogue / quizzes | No | Lose XP + teaching; no progression block |
| Study-station mini-games | No | Lose wisdom XP |
| Formation spaces | No | Lose Resolve restore + a fruit-of-the-Spirit teaching |
deeper-exploration beat | No (by design) | None |
| Explorer verbs (witness/plant/name/gather/trust) | No | Lose that beat's Word Card + XP; Eden Plant specifically = no Tree-of-Life "Legacy Bloom" payoff at New Creation |
PART 2 — Scene-by-scene (the 5 playable Genesis scenes)
Order (
SCENE_SEQUENCE, scenes.ts:1548): creation-eden → cain-abel → flood-noah → tower-babel → call-abraham → (burning-bush …). Each scene's exit relic count is the completion gate; the hard-gate enemy is the traversal gate.
Scene 1 — Creation and the Garden (creation-eden)
Source scenes.ts:1103 · unlocksAfter null · exit → cain-abel (portal tile 54,22) · keyVerse Genesis 1:1.
- learningObjective / objectiveCard present; centralLandmark
tree-of-life.
Critical path (7 beats):
- orientation — Enter; see Tree of Life; hear Scribe Eden. (eden-scribe, tree-of-life)
- first-discovery — Walk Creation Days 1–5; recover the Creation Scroll. (creation-day-1..5, creation-scroll, scroll-keeper-miriam)
- first-encounter — Complete Days 6–7; learn image-bearing from Adam; answer Eve. (creation-day-6/7, adam, eve)
- deeper-exploration (OPTIONAL) — Cave of Wisdom, House of Table Fellowship, Listening Wall, Sunken Vault. (wisdom-cave, table-house, eden-push-wall, sealed-ruin-door)
- core-encounter — Brother Theophilus (gatekeeper) + Shadow of Mistrust at the crossroads gate. (brother-theophilus, mistrust-shadow)
- climax — Witness the serpent's lie; recover the Image Marker; find the Hidden Promise (Gen 3:15). (serpent-whisper, image-bearing, hidden-promise-fragment)
- exit-consolidation — Deacon Junia; recover the Kingdom Seed; walk east. (deacon-junia, kingdom-promise, east-portal)
HARD GATE crossroads-gate (scenes.ts:1227): gatedBy enemy mistrust-shadow (+ gatekeeper npc brother-theophilus); seals [21,1,63,38] (everything east of x≈20); message: "The crossroads gate is sealed. Face the Shadow of Mistrust with Brother Theophilus…"
NPCs (6): eden-scribe (narrator), scroll-keeper-miriam (teacher), adam (teacher), eve (quiz: easy/int/adv/scholar), brother-theophilus (GATEKEEPER, quiz: all 4), deacon-junia (reward-giver, quiz: all 4). (npcs.ts:26-447)
RELICS (3 — ALL required for exit): creation-scroll (Creation Scroll, 12,10) · image-bearing (Image Marker, 24,13) · kingdom-promise (Kingdom Seed, 48,22). (relics.ts:10-38) — note ids creation-scroll + image-bearing are reused in Cain & Abel; see ⚠.
ENEMIES (1): mistrust-shadow — Shadow of Mistrust — false claim "God's Word is meant to limit life, so wisdom comes from grasping apart from him." — health 3 — this IS the gate enemy. (encounters.ts:3-193)
SECRETS (3): hidden-promise-fragment (after mistrust-shadow) · listening-wall-fragment (after eden-push-wall puzzle) · vault-remembrance-fragment (after sealed-ruin opened). (secrets.ts:3-44)
CREATION DAY CHAMBERS (7, all fully rendered — creation-days.ts): Day 1 Light → Day 7 Rest. Days unlock verbs: Day 3 → Plant, Day 5 → Gather, Day 6 → Name, Day 7 → Witness.
FORMATION SPACES (2): Cave of Wisdom (Patience, +2 restore) · House of Table Fellowship (Kindness, +1). (formations.ts)
EXPLORER VERBS (4 — all OPTIONAL): witness (Sabbath, hold 250ms → card genesis-rest, +15xp) · plant (after Day 3, 3-tap → card genesis-vocation, +25xp, seeds the Legacy Chain → New Creation payoff) · name (after Day 6, name 5 creatures → genesis-naming, +25xp) · gather (after Day 5, 5-tap → genesis-provision, +25xp). (scenes.ts:1260-1467)
Word cards earned: i-will-be-with-you, in-the-beginning-god (on completion) + genesis-rest/vocation/naming/provision (on verb resolution).
REQUIRED to complete: collect creation-scroll + image-bearing + kingdom-promise AND defeat mistrust-shadow (gate seals 2 of the 3 relics + the exit east of x≈20).
Can be left undone + impact: all 4 verbs (lose cards; Plant → no Legacy Bloom), 3 secrets (XP), 2 formations (restore/teaching), study station + mini-games, Eve/Theophilus-quiz/Junia quizzes, beat 4. Pit trap eden-cracked-ground = rescue lesson, no block.
Manual test checklist (Eden):
-
/living-word?lwAllowTeleport=1mounts the canvas (no intro wall). - Objective pointer starts at beat 1 (Scribe Eden / Tree of Life).
- Open each Creation Day chamber 1–7 → all render content (no "coming soon").
- Try to walk east past x≈20 BEFORE defeating Shadow of Mistrust → blocked with the locked message + error sound.
- Collect creation-scroll (12,10) → XP awarded, relic panel updates.
- Engage Theophilus → Shadow of Mistrust encounter → with starter deck, Word Cards UI appears (not raw MCQ) → 3 correct plays defeat it → gate opens.
- After gate: collect image-bearing (24,13) + kingdom-promise (48,22).
- Try the east portal with a relic missing → "recover N more relics" message; with all 3 → SceneCompletionModal → transition to Cain & Abel; Word Card toast fires.
- Verbs: Plant after Day 3 (3-tap → tree spawns + card), Name after Day 6, Gather after Day 5, Witness after Day 7.
- Each difficulty (easy→scholar) changes Eve/Theophilus/Junia quiz questions.
Scene 2 — Cain & Abel (cain-abel)
Source scenes-cain-abel-rebuilt.ts:731 · unlocksAfter creation-eden · exit → flood-noah (28,12) · keyVerse Genesis 4:7. Content-complete (5 NPCs, full 7-beat methodology) — on par with the flagship scenes.
Critical path (7): 1 two altars (no one speaks — observe) · 2 Elder Hodiah + "Sin Crouching" scroll · 3 hear Cain · 4 (optional) Abel's witness + Tablet · 5 Shadow of Resentment (gate) · 6 receive the protected mark · 7 Hodiah names the seed; east portal.
HARD GATE cain-abel-resentment-gate: gatedBy enemy cain-abel-resentment-shadow; seals [24,1,39,38]; mark stone (beat 6) + exit both behind it.
NPCs (5): cain-abel-eve (witness) · cain-abel-adam (witness, 1 line) · cain-abel-elder-hodiah (teacher, quiz all 4, doubles as beat-7 reward-giver) · cain-abel-cain (questioner, quiz all 4) · cain-abel-abel-witness (witness). Hodiah carries 17-lens lensNotes + 5 traditionNotes.
RELICS (2 — ALL required): cain-abel-mark-stone (Mark-of-Cain stone, 28,9) · cain-abel-witness-tablet (Tablet of Abel's Witness, 8,12). ✅ namespaced (was the colliding creation-scroll/image-bearing) — fixed; see below.
ENEMIES (1): cain-abel-resentment-shadow — Shadow of Resentment — "When your offering is not received… the only honest response is hatred for the one whose offering rose." — health 3 — gate enemy. 3 scenario questions (L3/L2/L3).
SECRETS (1): cain-abel-abel-inscription (reveals after resentment-shadow, +20xp).
FORMATION SPACE (1): The Field Between Brothers (Forgiveness, +2 restore).
EXPLORER VERBS (1 — OPTIONAL): witness (cain-witness-offering, hold 250ms → card cain-righteous-offering, +20xp). NOTE: despite earlier notes, this scene has only Witness — no Gather verb.
REQUIRED to complete: collect both relics + defeat resentment-shadow. Can be left undone + impact: Eve/Adam/Abel dialogue (flavour), Hodiah/Cain quizzes (XP), the secret, the formation, the Witness verb (card + flag).
✅ FIXED (this scene) — was a confirmed collision. Cain & Abel previously reused Eden's relic ids (creation-scroll, image-bearing); with the global collectedRelics array (LivingWordAdventure.tsx:5777, 6596, 6711, 6872) that auto-satisfied the relic objective on entry and made the relics uncollectable after Eden. Now namespaced to cain-abel-mark-stone / cain-abel-witness-tablet (added to the QuestId union in types.ts; beat entityRefs updated). Regression test: start a fresh adventure, complete Eden, enter Cain & Abel — its two relics should NOT be pre-collected and SHOULD be pickable (XP + panel update). ⚠ The same collision still affects ~9 other scenes — see Part 4 #1 (systemic).
⚠ Also test: the exit-required Tablet relic sits in the prose-labeled "optional" Beat 4 branch — a tester who skips Beat 4 would (absent the bug) be unable to open the exit. centralLandmark is a single id (cain-altar) though the design is two altars.
Scene 3 — The Flood (flood-noah)
Source scenes-flood-rebuilt.ts:570 · unlocksAfter creation-eden(see ⚠) · exit → tower-babel (28,12) · keyVerse Genesis 9:13.
Critical path (7): 1 enter ark's shadow + Shem · 2 Dove of Promise relic · 3 Noah (teacher quiz) · 4 (optional) Ark Interior (Patience formation) · 5 Shadow of Despair (gate) · 6 Rainbow Promise relic · 7 Elder Japheth + Ark of Covenant Faithfulness relic; east portal.
HARD GATE flood-despair-gate: gatedBy enemy flood-despair-shadow-rebuilt; seals [21,1,39,38] (rainbow relic, Japheth + covenant relic, and the exit all behind it).
NPCs (4): flood-shem-rebuilt (witness) · flood-noah-rebuilt (teacher, quiz all 4) · flood-dove-scribe-rebuilt (Scribe Tabitha, questioner, quiz all 4) · flood-kingdom-witness-rebuilt (Elder Japheth, reward-giver). No NPC is the coded gatekeeper (gate = enemy).
RELICS (3 — ALL required): flood-dove-relic (9,13) · flood-rainbow-relic (22,7) · flood-covenant-relic (26,12).
ENEMIES (1): flood-despair-shadow-rebuilt — Shadow of Despair — "When everything is destroyed, there is no hope of restoration. The waters prove God is absent or indifferent." — health 3 — gate enemy.
SECRETS (1): flood-new-creation-fragment-rebuilt (after the Shadow, +30xp).
FORMATION SPACE (1): Ark Interior (Patience, +2). EXPLORER VERBS (2 — OPTIONAL): witness rain (long-press → card flood-remembrance, +20xp) · gather animals (7-tap → card flood-pairs, +25xp).
REQUIRED to complete: collect all 3 relics + defeat the Shadow of Despair. Can be left undone + impact: Ark Interior formation, the secret, the dig hidden-puzzle, study station, both verbs (cards), NPC dialogue/quizzes.
⚠ Issues to test: (1) Enemy questionsByDifficulty defines only easy and scholar — intermediate/advanced players fall back to the untyped questions[] (verify the quiz isn't empty at int/adv). (2) P11 Legacy seeds are documentation-only (a comment block, L557-569) — the dove→baptism / divided-waters→Red-Sea blooms are not wired; don't expect a payoff. (3) Beat-5 goal text implies Tabitha's quiz precedes the fight, but only the enemy gates — Tabitha's quiz is not a coded prerequisite.
Scene 4 — Tower of Babel (tower-babel)
Source scenes-babel-rebuilt.ts:1170 · unlocksAfter flood-noah · exit → call-abraham (28,12) · keyVerse Genesis 11:4. Largest scene file; the 17-lens moat content lives here.
Critical path (7): 1 see the Tower + Prophet Amos · 2 read the inscription (na'aseh shem) + scroll · 3 Worker Miriam (story + quiz) · 4 (optional) Room of Lowly Service (Humility formation) · 5 Foreman Cush (gate question) + Spirit of Self-Made Empire · 6 "God comes down" tableau + Pentecost fragment · 7 Scribe Lydia + Scroll of Many Tongues relic; east portal.
HARD GATE babel-empire-gate: gatedBy both gatekeeper npc babel-foreman-cush AND enemy babel-pride-shadow; seals [21,1,39,38] (the scatter relic + exit behind it). (Enforcement keys on the enemy.)
NPCs (4): babel-worker-miriam (teacher, quiz all 4, full 17-lens traditionNotes) · babel-prophet-amos (narrator) · babel-foreman-cush (GATEKEEPER, quiz all 4, full 17-lens traditionNotes) · babel-scribe-lydia (reward-giver, hands over the scatter relic).
RELICS (2 — ALL required): babel-tower-relic (Broken Brick, 8,16) · babel-scatter-relic (Scroll of Many Tongues, 26,16 — behind the gate, given by Lydia).
ENEMIES (1): babel-pride-shadow — Spirit of Self-Made Empire — "Human greatness is built through self-sufficiency… The empire that reaches high enough will finally touch heaven." — health 3 — gate enemy. Has full 17-lens traditionQuestion.
SECRETS (1): babel-pentecost-fragment (after the enemy, +35xp). FORMATION SPACE (1): Room of Lowly Service (Humility, +2). HIDDEN PUZZLE: babel-fallen-stone (push, Psalm 127:1). EXPLORER VERBS: NONE (this scene has no explorerBeats).
REQUIRED to complete: collect both relics + defeat babel-pride-shadow (also answer Foreman Cush's gate question to engage it). Can be left undone + impact: Beat 4 Humility room (explicitly "you may skip it"), Miriam/Amos/Lydia-dialogue depth, the secret, the push puzzle, study station, the 17-lens notes (only surface if you switch lens).
⚠ Issues to test: (1) Enemy questionsByDifficulty again defines only easy and scholar; int/adv use questions[]. (2) The 17-lens content has 18 keys (0–17); lens 0 is the hidden "Universal" foundation — a test asserting exactly 17 keys would fail; assert 0–17. (3) babel-study-station (8,16) shares a tile with babel-tower-relic (8,16) — verify both are reachable/interactable.
Scene 5 — The Call of Abraham and Sarah (call-abraham)
Source scenes-abraham-rebuilt.ts:745 · unlocksAfter tower-babel · exit → burning-bush (28,12) · keyVerse Genesis 12:3. Last fully-built Genesis scene — beyond here is the Exodus arc.
Critical path (7): 1 enter; Altar at Shechem + Keeper Eliakim (altar-vs-tower) · 2 Abraham recalls God's voice + Call Scroll relic · 3 Sarah (renamed, in the covenant by name) · 4 (optional) Tent (Faithfulness formation) + Hagar cameo · 5 Shadow of Fear and Doubt (gate, L3-Apply) · 6 Altar at Bethel — worship not building + Altar Stone relic + Gospel Seed fragment · 7 Scribe Phoebe + Nations' Blessing Seal relic; east portal.
HARD GATE abraham-rebuilt-crossroads-gate: gatedBy enemy abraham-rebuilt-fear-shadow; seals [21,1,47,28] (Beat-6 climax, blessing relic at 26,14, exit at 28,12).
NPCs (5): abraham-rebuilt-eliakim (narrator) · abraham-rebuilt-patriarch (Abraham, teacher, quiz all 4) · sarah-rebuilt-matriarch (witness) · abraham-rebuilt-hagar (witness cameo, reveal-gated: only appears after Sarah is spoken to) · abraham-rebuilt-phoebe (reward-giver, hands over the blessing relic).
RELICS (3 — ALL required): abraham-call-relic (Call Scroll, 10,13) · abraham-altar-relic (Altar Stone, 16,8) · abraham-blessing-relic (Nations' Blessing Seal, 26,14).
ENEMIES (1): abraham-rebuilt-fear-shadow — Shadow of Fear and Doubt — "Leaving security for an unknown promise is foolish. You cannot trust what you cannot see or control. Faith requires certainty about the destination." — health 3 — gate enemy. Core questions[] are L3/L4 (incl. the Abraham vs Gideon comparison).
SECRETS (1): abraham-rebuilt-gospel-fragment (after the enemy, +40xp). FORMATION SPACE (1): Tent of Covenant Promise (Faithfulness, +3 restore). HIDDEN PUZZLE: abraham-rebuilt-road-marker-dig.
EXPLORER VERBS (1 — OPTIONAL): trust (abraham-trust-go) — the player walks onto a path that fades to invisible (single target tile 22,12; the render loop emits a synthetic tap as you cross). Resolves: flag abraham-walked, +30xp, Word Card genesis-abraham-go. The "step into the unknown" gesture IS the theology.
REQUIRED to complete: collect all 3 relics + defeat the Shadow of Fear and Doubt.
Can be left undone + impact: Hagar cameo (El Roi foreshadow), Tent formation (+3 restore), the secret, the dig puzzle, Abraham's quizzes, the Trust verb (card + abraham-walked flag that future scenes may gate on).
⚠ Issues to test: (1) Enemy questionsByDifficulty again only easy + scholar; int/adv served by core questions[]. (2) Abraham/Sarah traditionNotes + enemy traditionQuestion are undefined (LENS-READY stubs) — lens switching shows no per-tradition variance here yet. (3) Trust verb depends on the render-loop synthetic-tap hook — verify it fires when walking into tile 22,12 (it shipped in PR #646).
PART 3 — Scenes 6–16 (Exodus → New Creation)
Extracted 2026-05-30 (same cited method as Part 2). Finding: all 11 are FULLY AUTHORED (not thin stubs) and follow the uniform model — 7-beat critical path, one hard-gate enemy (3 HP, gate seals
[~25,1,39,38]), 1–3 relics required for the exit, optional formation/secret/explorer content. Two scenes deviate (Sermon §3.5, New Creation §3.7). ✅ The systemic relic-id collision that affected these scenes is FIXED (PR #674) — relic ids are now namespaced per scene. (Part 4 #1 has the history.)Play order (
SCENE_SEQUENCE): joseph-egypt(6) → burning-bush(7) → passover(8) → red-sea(9) → sinai(10) → tabernacle(11) → david-goliath(12) → birth-of-jesus(13) → sermon-on-mount(14) → pentecost(15) → new-creation(16).
3.1 — The Exodus stub arc (joseph-egypt, passover, red-sea, sinai, tabernacle)
scenes-phase2.ts. The header calls them "stubs" but they are content-complete; what's
deferred is per-lens traditionNotes, prop density, and themed-map visual polish. All
five share the identical shape: 7-beat critical path · exactly 1 hard-gate enemy
(3 HP) at Beat 5, gate blocksRegion [25,1,39,38] · 2 relics required for exit
(⚠ both reuse creation-scroll + kingdom-promise — collision) · 1 scroll · Beat 4 optional ·
no secrets / formations / explorer verbs / hidden puzzles.
| Scene | src | exit → | NPCs (quiz holder) | Gate enemy (false claim, abbrev.) |
|---|---|---|---|---|
| joseph-egypt | :309 | burning-bush | 4: Joseph, Pharaoh(gk-label), Brothers(quiz×4), Asenath | forgotten-shadow — "years of silence = God abandoned you" |
| passover | :719 | red-sea | 4: Moses, Aaron(gk-label), Pharaoh(quiz×4), Shiphrah | strong-gods-shadow — "empire's gods are stronger" |
| red-sea | :1102 | sinai | 3: Moses(gk-label), Miriam, Army-Voice(quiz×4) | panic-shadow — "army behind + sea ahead = no rescue" |
| sinai | :1525 | tabernacle | 4: Moses, Aaron(quiz×4), Elders, Yeshurun(reward-giver) | manageable-god-shadow — "a portable/manageable god is safer" |
| tabernacle | :1948 | david-goliath | 4: Bezalel, Moses(gk-label), Aaron-priest(quiz×4), Cherubim | too-holy-shadow — "holiness keeps God at a distance" |
Notes: red-sea has only 3 NPCs (no teacher/reward role). tabernacle uses worldGrid: buildSceneWorld("garden") despite mapTheme: "tabernacle-court" (intentional Eden-echo — tester sees garden terrain) and is entered from the EAST. Per-scene test = the standard smoke pass (Part 4); relic step is currently broken (collision).
3.2 — The Burning Bush (burning-bush) [scenes-burning-bush-rebuilt.ts:747]
unlocksAfter call-abraham · exit → david-goliath (⚠ placeholder; the full Exodus arc inserts before it) · keyVerse Exodus 3:14.
Gate burning-bush-gate / enemy burning-bush-inadequacy-shadow (Shadow of 'Who Am I', 3 HP) / [21,1,39,38].
NPCs (4): Moses (questioner, quiz×4) · The Voice from the Bush (teacher, no visible sprite — AI-bridge) · Jethro (witness) · Aaron's-shadow (narrator, reveal after enemy).
RELICS (2, ALL required): ⚠ creation-scroll (Sandal-removed stone, 17,6) · kingdom-promise (Staff of Moses, 26,12 — behind gate) — both collide.
SECRETS: none. FORMATION (1): Backside of the Desert (Humility, +2). EXPLORER VERBS (2, OPTIONAL, sequenced): witness fire (long-press → card exodus-burning-presence) → name "I AM" (MCQ, requires witness done → card exodus-i-am).
Required: 2 relics + defeat the shadow. Optional: Jethro, formation, scrolls, Moses quizzes, both verbs.
3.3 — David and Goliath (david-goliath) [scenes-david-goliath-rebuilt.ts:759]
unlocksAfter burning-bush · exit → birth-of-jesus · keyVerse 1 Samuel 17:45.
Gate david-goliath-gate / enemy david-goliath-shadow (Shadow of the Giant, 3 HP, flat questions[]) / [25,1,39,38].
NPCs (5): David (witness, questId→five-stones) · Eliab (questioner, quiz×4) · Saul (gatekeeper-label only, quiz×4) · Jonathan (teacher, reveal after beat 3) · Philistine shepherd (witness, after beat 4).
RELICS (2, ALL required): ⚠ kingdom-promise (Five smooth stones, 16,12) · image-bearing (Sling-stone, 16,15) — both collide. ⚠ image-bearing is authored as "optional Beat-4 enrichment" but is exit-required (UX trap).
SECRETS (1): muffled-taunts (after enemy). FORMATION (1): Shepherd's Watch (Faithfulness, +2). EXPLORER VERB (1): gather 5 stones (requires enemy defeated → card samuel-five-stones).
Required: 2 relics + defeat the shadow. ⚠ Enemy uses flat questions[] (not difficulty-keyed) — verify the engine reads it.
3.4 — The Birth of Jesus (birth-of-jesus) [scenes-birth-of-jesus-rebuilt.ts:1018]
unlocksAfter david-goliath · exit → sermon-on-mount · keyVerse Luke 2:11.
Gate birth-no-room-gate / enemy birth-no-room-shadow (Shadow of 'No Room', 3 HP) / [20,1,39,38].
NPCs (6): Mary (witness, quiz×4) · Joseph (gatekeeper-label only, quiz×4) · Shepherd Levi (narrator) · Simeon (teacher, quiz×4) · Anna (witness, reveal after Simeon spoken) · Magus (witness, reveal after enemy).
RELICS (3, ALL required, ALL behind gate): ⚠ kingdom-promise (Manger-straw, 20,11) · creation-scroll (Frankincense, 26,9) · image-bearing (Myrrh, 28,10) — all three collide; ids mismatch their nativity meaning.
SECRETS (1): stable-inscription (after enemy). FORMATION (1): Stable Floor (Joy, +2). HIDDEN PUZZLE: innkeeper dig. EXPLORER VERB (1): witness Mary holding the child (requires enemy defeated → card incarnation-and-mary).
Required: 3 relics + defeat the shadow.
3.5 — The Sermon on the Mount (sermon-on-mount) [scenes-sermon-on-mount-rebuilt.ts:1007] ⚠ DEVIATES FROM THE MODEL
unlocksAfter birth-of-jesus · exit → pentecost · keyVerse Matthew 5:3. All 7 sermon mini-game components are fully implemented (components/minigames-sermon/).
Gate sermon-hidden-devotion-gate / enemy sermon-hearing-without-doing-shadow (3 HP) / [21,1,39,38] — but the gate is NOT cleared by combat. It clears when the HiddenDevotion mini-game is passed (its onGatePassed pushes the enemy into defeatedEnemies, LivingWordAdventure.tsx:10421-10425). The enemy is never fought normally on the path.
NPCs (7): Jesus (teacher, quiz×4, full 17-lens) · Andrew (witness, after beat 2) · Pharisee Joash (questioner, quiz×4 — triggers AntithesisDialogue) · Miriam the widow (narrator — triggers BeatitudeBadges) · Shimon (gatekeeper-label, quiz×4) · Quintus (witness, after beat 3) · Crowd-Elder Joanna (reward-giver, after enemy — triggers TwoFoundationsFinale).
RELICS (1, required): kingdom-promise (Beatitudes scroll). ⚠ collides.
SERMON MINI-GAME FLOW (the special part):
- BeatitudeBadges — interact widow
sermon-poor-widow(tsx:6878). - AntithesisDialogue — interact Pharisee Joash (tsx:6885).
- HiddenDevotion — fired by hitting the sealed gate region (tsx:6653-6660); the one strictly-required mini-game — passing it opens the gate.
- PrayerWheel — interact prop
sermon-prayer-space(tsx:6939) → auto-chains to SeekFirstInventory → auto-chains to WisdomCards (tsx:10437-10481). - TwoFoundationsFinale — interact Joanna (only revealed after the gate clears) (tsx:6892).
EXPLORER VERB (1): gather 8 beatitudes (optional → card
matthew-beatitudes-summit).secrets/formationSpaces/pitTraps/hiddenPuzzlesarrays all empty (the prayer space is a prop, not a formationSpace). Required: collect the relic + pass HiddenDevotion (clears the gate to the exit). Everything else optional (but skipping PrayerWheel-chain / Finale loses P11 plantsseek-first-the-kingdom,chose-rock-foundationthat feed Pentecost/New Creation dialogue). ⚠ Test carefully: trigger order; that HiddenDevotion (not combat) opens the gate; the auto-chain PrayerWheel→SeekFirst→WisdomCards. Live trigger lines have shifted from earlier docs — NPC triggers at tsx:6878-6897, formation at :6939-6943, gate at :6653-6660.
3.6 — Pentecost (pentecost) [scenes-pentecost-rebuilt.ts:1133]
unlocksAfter sermon-on-mount · exit → new-creation · keyVerse Acts 2:4. Unique relic ids (NOT collided) — relic objective works here.
Gate pentecost-uniformity-gate / enemy pentecost-uniformity-shadow (Shadow of Imposed Uniformity, 3 HP) / [20,1,39,38].
NPCs (5): Peter (teacher, quiz×4) · Mary (witness, full 17-lens) · Pilgrim Asher (narrator) · Foreman Cush (witness, cross-scene from Babel) · Pharisee Joash (witness, cross-scene from Sermon). (Header claims 7 — the Spirit-Dove is a prop, the formation master is a masterName.)
RELICS (3, ALL required): pentecost-tongue-of-fire (16,8) · pentecost-healed-brick (24,18, P11 Babel bloom) · pentecost-spirit-echo (8,16 — far WEST, backtrack required, P11 Flood bloom).
SECRETS (1): babel-bloom-fragment (after enemy, +50xp). FORMATION (1): Hall of Many Tongues (Joy, +3). EXPLORER VERBS: none.
Required: 3 relics + defeat the shadow. ⚠ The 6-bloom convergence "HUD chips" exist only as JS comment annotations (:1324-1366), not coded data — verify they actually fire. Enemy questionsByDifficulty only easy+scholar (int/adv use questions[]).
3.7 — The New Creation (new-creation) [scenes-new-creation-rebuilt.ts:996] ⚠ FINAL SCENE
unlocksAfter pentecost · exit → null (campaign complete; no transition) · keyVerse Revelation 21:3.
Gate new-creation-throne-gate / enemy new-creation-escape-shadow (Shadow of Escape — "hope is disembodied escape", 3 HP) / [12,9,20,15] (seals the throne centre).
NPCs (12): Voice from the Throne (narrator) · Miriam the Keeper (teacher, quiz×4) · Adam & Eve (reward-giver) · River Keeper + 4 gate-witnesses (after beat 3) · 4 tradition elders (Augustine/Chrysostom/Luther/Menno, after beat 5, together cover all 17 lenses).
RELICS (1, required): ⚠ kingdom-promise (Leaf of the Tree of Life, 15,9 — inside the gated throne box, so the enemy must fall first). Collides.
SECRETS: none. FORMATION (1): River-of-Life Reflection Pool (Joy, +999 full restore). EXPLORER VERBS: none.
LEGACY BLOOM PAYOFF (the Eden Plant payoff): fires only if the player planted in Eden (plantedSeed !== null). Trigger is data-driven (scene id new-creation + non-null plantedSeed + walk within 2 tiles of the Tree of Life prop at 16,10 → onBloomProximity, tsx:4054-4060); the cinematic itself (LegacyBloomCinematic → 1.5s → LegacyBloomFinalePanel) is hard-coded in LivingWordAdventure.tsx + the two React components, not in the scene data. ⚠ If the Tree prop id/tile or scene id changes, the cinematic silently stops firing. A player who skipped Eden's Plant verb sees no bloom.
Required: collect the leaf + defeat the Shadow of Escape.
PART 4 — Cross-cutting issues & test matrix
Confirmed / suspected issues (verify each)
-
⚠⚠ SYSTEMIC — relic-id collision across ~11 scenes (highest priority).
collectedRelicsis a single global array, reset only on New Adventure (LivingWordAdventure.tsx:5777, 6596); collecting guardsif (collectedRelics.includes(relic.id)) return(6711); the exit gate countssceneRelicIds.filter(id => collectedRelics.includes(id))(6872). Relicids are a closedQuestIdunion (types.ts:19), and most scenes reused the three generic members as a shortcut. Effect: once a generic relic id is collected (in Eden), every later scene that reuses it has its relic objective auto-satisfied on entry and its relics become uncollectable (the hard-gate enemy still blocks the exit, so scenes aren't fully skippable, but relic collection + relic XP + relic-bearing beat completion are broken).Id-reuse map (scenes sharing the generic ids → broken after Eden):
generic id scenes using it creation-scrollEden, Cain&Abel(fixed), joseph-egypt, passover, red-sea, sinai, tabernacle, burning-bush, birth-of-jesuskingdom-promiseEden, joseph-egypt, passover, red-sea, sinai, tabernacle, burning-bush, david-goliath, birth-of-jesus, sermon-on-mount, new-creation image-bearingEden, Cain&Abel(fixed), david-goliath, birth-of-jesusClean (unique ids, unaffected): Flood (
flood-*), Babel (babel-*), Abraham (abraham-*), Pentecost (pentecost-*). ✅ STATUS — FIXED (PR #674, Fix A applied). Every affected scene's relics are now namespaced and added to theQuestIdunion: Cain & Abel (cain-abel-mark-stone/-witness-tablet), the 5 Exodus scenes (joseph-robe/joseph-grain-seal,passover-hyssop/-lamb-bone,red-sea-timbrel/-bed-stone,sinai-first-tablet/-second-tablet,tabernacle-chisel/-mercy-seat),burning-bush-sandal-stone/-staff,david-five-stones/-sling-stone(+ David's NPC questId),birth-manger-straw/-frankincense/-myrrh,sermon-beatitudes,new-creation-leaf. Eden keeps the generic ids (sole user → no collision).pnpm buildexit 0.- (Historical: Fix A = namespace ids, data-only, chosen. Fix B = scope
collectedRelicsper scene in the engine, deferred — not needed now.) - Regression test: play Eden → any later scene; that scene's relics should NOT be pre-collected and SHOULD be pickable (XP + panel update).
- (Historical: Fix A = namespace ids, data-only, chosen. Fix B = scope
-
⚠ Enemy difficulty arrays are inconsistent. Some gate enemies define
questionsByDifficultywith onlyeasy+scholar(Flood, Babel, Abraham, Burning Bush, Pentecost) — int/adv fall back to the untypedquestions[]; others (David & Goliath, Birth, Sermon) use a flatquestions[]with no difficulty keys at all. Verify the engine renders a non-empty question set for the gate enemy at all four levels in every scene; this is the most likely "empty encounter" failure. -
⚠ P11 Legacy seeds are mostly doc-only comments. Only Eden Plant → New Creation Legacy Bloom is actually wired (and that is hard-coded in
LivingWordAdventure.tsx+ the two React components, implicitly coupled to the Tree-of-Life prop id/tile and scene id — change either and the cinematic silently stops). The Flood dove→baptism, David & Goliath, and the Pentecost 6-bloom convergence "HUD chips" are JS comment annotations, not data. Don't expect those payoffs; verify if the engine fires any of them. -
⚠ "Optional" Beat-4 sometimes holds an exit-required relic — Cain & Abel (Tablet) and David & Goliath (
image-bearingSling-stone) both park a required relic in the prose-labeled optionaldeeper-explorationbranch. A tester who treats Beat 4 as skippable can't open the exit (once the collision bug is fixed). UX trap. -
⚠
role: "gatekeeper"is often a label only. Saul (David&Goliath), Joseph (Birth), the Pharaohs/Moses (Exodus stubs) carry the gatekeeper role but noGate.gatedBy.gatekeeperNpcIdreferences them — the only enforced gate is the enemy. Don't expect those NPCs to block movement. -
⚠ 17-lens content has 18 keys (0–17) (Babel, and other lens-rich NPCs) — lens 0 is the hidden "Universal" foundation. Assert keys 0–17, not "17".
-
⚠ Sermon on the Mount gate is cleared by a mini-game, not combat (§3.5) — the HiddenDevotion mini-game's
onGatePassedmarks the enemy defeated. Test the gate via the mini-game, not an encounter. -
⚠ New Creation Legacy Bloom only fires if the player planted in Eden (§3.7). A playthrough that skipped Eden's Plant verb gets no bloom at the finale.
-
Beat-vs-gate narrative mismatch (Flood, Babel) — narration implies an NPC quiz precedes the fight, but only the enemy gates.
Per-difficulty matrix (run each scene at each level)
| Level | what to verify |
|---|---|
| easy | NPC + enemy quizzes render; Word Cards encounter fires with the gentle hint (PR #668); no empty set |
| intermediate / advanced | quiz text changes; enemy encounter is non-empty (see issue #2) |
| scholar | adds Hebrew/Greek lexical questions |
Standard per-scene smoke pass (repeat for every scene)
- Mount via
?lwAllowTeleport=1(teleport to the scene). 2. Objective pointer sits at beat 1. 3. Relic check (collision): on entry, confirm the scene's relics are NOT already collected and CAN be picked up (XP + panel update) — this currently FAILS for the issue-#1 scenes. 4. The hard gate blocks the sealed region until the gate enemy/mini-game is resolved. 5. Resolve the gate (Word Cards → 3 HP, or the Sermon mini-game). 6. Exit refuses until all relics collected, then transitions + Word Card toast (final scene → campaign-complete). 7. Run every Explorer verb. 8. Enter every formation space (Resolve restores). 9. Open the study-station mini-games. 10. Reveal each secret post-condition.
PART 5 — Automated testing hooks (for Claude / Playwright)
- Entry:
<baseUrl>/living-word?lwAllowTeleport=1(intro dismissed, canvas mounted, teleport enabled). - Force-arm verbs:
?lwExplorerPreview=<sceneId>. - Stable selectors:
section[aria-label="Game status"](the HUD, PR #668);[data-testid="lw-curriculum-quiz"],[data-testid="lw-quiz-question"],[data-testid="lw-quiz-options"],[data-testid="lw-quiz-progress"](quiz UI,LivingWordAdventure.tsx:5070-5083);[aria-label^="Resolve:"](hearts). - Lead-gen harness:
/living-word/e2e-leadgen(noindex) mounts the completion modal + bloom panel in isolation. - Existing specs to extend:
e2e/living-word/explorer/{witness,plant,name,gather}.spec.ts,e2e/living-word/explorer/sermon-burning-bush-david.spec.ts,e2e/living-word/explorer/cross-scene-rollout.spec.ts,e2e/living-word-scenes.spec.ts,e2e/living-word/leadgen-phase1b.spec.ts. - API checks (curriculum quiz):
GET /api/living-word/quizzes?chapterId=<scene quizChapterId>&difficulty=<level>returns curated questions; corpus realms return empty (post PR #670). - Suggested new automated assertions: the relic-id-collision regression (enter cain-abel after eden, expect relics collectable); difficulty-array coverage (every gate enemy returns a non-empty question set at all 4 levels); gate enforcement (movement into
blocksRegionrejected until the enemy id is indefeatedEnemies).
Verified 2026-05-30 against the registered code path. The 5 Genesis scenes are extracted in
full with file:line citations; the remaining 11 scenes need a follow-up extraction pass.
Engine model anchored in LivingWordAdventure.tsx (handleInteract L6960, hard-gate L3940,
handleReachExit L6876) and data/scenes.ts / data/types.ts.