Persona journeys (UX validation)
These journeys are validation use cases for the Maker at https://zorg.artof.link. They are not new game rules.
Formal rules stay in GAME_SPEC. If a journey, a button label, or this page disagrees with the spec, the spec wins. Do not invent room C, Gunner shot-duration, or contract gating (FR-18, FR-22, FR-4).
The authored campaign and the Difficulté / Difficulty bands are the same numbers the fixtures already use. Difficulty is the kid-facing English word; Difficulté is the source label (kept as a secondary / bilingual hint). Engine proof in STATUS_LEDGER is still Simulated, not Live & Probed.
Companion how-to: LEARN (kid pictures) and PLAYER_GUIDE (full companion). First-timer gap that started this work: FINDINGS CF-009.
How to use these journeys
1. Treat each J-* id as a stable checklist, not a feature request to invent rules.
2. Run the manual checklist on the live Maker or a local apps/web build.
3. Optional automated probes (Playwright under apps/web/e2e/journeys.spec.ts, pnpm probe:journeys) assert the same success criteria. They are Simulated evidence for the journeys — not Live & Probed and not a STATUS_LEDGER promotion. An optional FR locale smoke (?lang=fr) checks How to play / Start here labels in French; it is UX validation only — GAME_SPEC still wins on rules (0007-i18n-fr-en).
4. A journey can fail UX and still be rules-correct. That is a Maker problem, not an engine FR.
flowchart TD
land[Open zorg.artof.link] --> how[Read How to play]
how --> start{"Start here?"}
start -->|Difficulty 1| authored[Open first playable Difficulty 1]
start -->|Generate Difficulty 1| gen[Generate a practice dungeon]
authored --> place[Place rooms so A connects toward Z]
gen --> place
place --> fight[Start fight]
fight --> win{"Heroes die before Z?"}
win -->|Yes| ok[Kid / helper success]
win -->|No| try[Try another layout or an easier band]Index
| ID | Persona | Primary surface |
|---|---|---|
| J-KID | Kid first-timer (≈8) | Landing + first fight |
| J-HELPER | Grown-up helper | How to play + what success looks like |
| J-CAMPAIGN | Campaign puzzle player | Authored Difficulty progression |
| J-PRACTICE | Practice generator player | Generate → fight quickly |
| J-HONESTY | Honesty / engineer | Collapsed ledger / FR notes |
---
J-KID: Kid first-timer (≈8)
Never played. Needs plain English, one obvious next step, and no engineer jargon on the first screen.
Goal
Play one easy dungeon and understand win vs loss without asking an adult to decode FR / C-room / ledger language.
Happy path
1. Open https://zorg.artof.link.
2. Read How to play (four short steps).
3. Press Start here — Difficulty 1 or Start here — Generate Difficulty 1.
4. Place rooms so A (heroes start) connects toward Z (Zorg). A line is fine.
5. Press Start fight.
6. Watch. You win if the heroes die before anyone enters Z. You lose if a hero reaches Z.
Success criteria
Validation checklist (manual)
learn.html) with pictures and no FR soup on the first screen.Automated probes (Simulated)
Covered by apps/web/e2e/journeys.spec.ts (issue #46):
FR-4, C room, Gunner duration, or ledger.---
J-HELPER: Grown-up helper
Helps the kid. Needs a short “how to play” and a sentence for what success looks like. Does not need the full spec.
Goal
Coach a first run in under a minute: what to tap, what “winning” means, where to go for depth.
Happy path
1. Open the Maker with the kid.
2. Read How to play together (or the helper blurb under it).
3. Use Start here — Difficulty 1 (authored) unless the kid wants a fresh map — then Generate.
4. If rooms look messy, use Place rooms in a line.
5. Start fight. Explain: heroes walk by themselves; stop them before Zorg’s room.
6. For more detail, open the knowledge Player & builder guide.
Success criteria
Validation checklist (manual)
Automated probes (Simulated)
Landing unfinished-toggle default is covered by the e2e suite. Still useful:
---
J-CAMPAIGN: Campaign puzzle player
Wants the authored pack in Difficulty order (the author’s Difficulté numbers). Generate is optional, not the default.
Goal
Browse Difficulty 1 → 2 → 3 → 4, open a playable authored level, build a legal dungeon, fight.
Happy path
1. Open the Maker (campaign is the default list).
2. Choose a Difficulty band (Difficulté shown as the source word).
3. Optionally filter by contract name (points are labels only — FR-4 is not gating).
4. Open a playable card. Place every supplied room (FR-5–FR-8).
5. Start fight. Spend leftover one-time spells between finished actions (FR-32, FR-33).
6. Return to campaign and step up a band.
Success criteria
Validation checklist (manual)
Automated probes (Simulated)
Authored-default + unfinished-off are covered by the e2e suite. Still useful:
---
J-PRACTICE: Practice generator player
Wants Generate → fight quickly. Authored campaign stays available.
Goal
Roll a Difficulty 1–4 practice dungeon, place (or accept the suggested line), fight, optionally Regenerate.
Happy path
1. On landing, use Start here — Generate Difficulty 1 or the Generate panel.
2. Pick Difficulty 2–4 in that panel when ready for more pieces.
3. Place rooms (suggested A–Z corridor may already be on the board).
4. Start fight.
5. Regenerate for another seed of the same band.
Success criteria
C, no Gunner duration, no contract unlock) — 0005-level-generator.Validation checklist (manual)
Automated probes (Simulated)
Start-here Generate → pack === "generated" band 1 is covered by the e2e suite. Still useful:
pack === "generated" and difficultyBand === "1".---
J-HONESTY: Honesty / engineer
Comfortable with FR / ledger language. That language may stay collapsed / secondary.
Goal
Inspect Simulated vs live claims, unavailable reasons, and deferred rules without blocking first-timers.
Happy path
1. Open the landing disclosure Engineer / honesty notes.
2. Confirm: Simulated tests, not a live production probe; FR-4 not built; C and Gunner duration stay unavailable; generated ≠ live probe.
3. Optionally show unfinished levels and read the reason chips.
4. Cross-check STATUS_LEDGER, FINDINGS, and PLAYER_GUIDE.
Success criteria
Validation checklist (manual)
Automated probes (Simulated)
Honesty disclosure contents (Simulated / FR-4 / C / Gunner) are covered by the e2e suite. Still useful:
---
Mapping to rules (read-only)
Journeys cite IDs so reviewers can jump to the rule. They do not change status in STATUS_LEDGER.
| Journey | Spec / docs to keep in view |
|---|---|
| J-KID / J-HELPER | FR-5–FR-8, FR-12, FR-43 (win/loss idea); Maker playback is still scheduler-only — see PLAYER_GUIDE |
| J-CAMPAIGN | Authored catalog, Difficulté bands, no FR-4 gating |
| J-PRACTICE | 0005-level-generator, FR-46 / NFR-4 as Simulated generator proof |
| J-HONESTY | STATUS_LEDGER, NFR-8, FR-18, Gunner duration deferral |
Out of scope for this file
C, Gunner duration, or earn/spend contracts.