Files
interactive-story/planning/TEST-CAMPAIGN-FIXTURE.md
T

20 KiB

Adventure Storyteller — Standard Test Campaign Fixture

Status: Draft v0.1
Purpose: Provide a deterministic, reusable campaign fixture for Phase 0B candidate comparison and later v1 regression testing.

1. Fixture Name

Continuity Test

2. Purpose

This fixture is designed to expose failures in:

  • canon handling,
  • character knowledge,
  • possession continuity,
  • relationship continuity,
  • location continuity,
  • long-term memory,
  • imported knowledge authority,
  • branch/undo safety,
  • checkpoint restore,
  • abandoned-history leakage,
  • summary lineage,
  • state reconstruction,
  • prompt/context provenance.

It is intentionally small.

The goal is not to create an entertaining campaign. The goal is to create a compact story that is easy to verify.

3. Campaign Profile

title: Continuity Test
genre: fantasy
subgenre: low fantasy
tone: grounded, tense, restrained
style: clear narrative prose
point_of_view: second person
tense: present

4. Narrator Rules

Use the following durable narrator rules:

1. Do not decide the protagonist's voluntary actions unless required to describe
   the immediate consequence of an action already chosen by the user.

2. Preserve established canon and accepted story state.

3. Do not reveal hidden information unless the protagonist has learned it
   through accepted story events.

4. Do not treat imported Reference or Inspiration material as campaign canon.

5. If uncertain about an established fact, avoid contradicting it.

6. Keep responses concise enough for testing. Prefer approximately 2-5 paragraphs
   unless the user explicitly asks for more.

7. Magic exists, but resurrection is impossible.

8. Do not introduce modern technology.

5. Initial Protagonist

Aldric

name: Aldric
type: character
role: protagonist
description: >
  A traveling investigator accustomed to dangerous roads and old ruins.
current_location: Crooked Lantern Tavern
condition:
  - healthy
goals:
  - find Edrin
possessions:
  - Silver Key

Visual Profile

apparent_age: late 30s
build: lean
hair: dark brown
clothing: weathered green traveling cloak
distinctive_features:
  - narrow scar across left eyebrow

6. Supporting Characters

Mara

name: Mara
type: character
role: tavern keeper
current_location: Crooked Lantern Tavern
relationship_to_aldric: cautious trust
knows:
  - Edrin disappeared recently
  - Edrin often visited the Old Abbey
does_not_know:
  - the Silver Key was found in Edrin's desk
  - Aldric currently possesses the Silver Key, until Aldric reveals it

Hidden Canon — Mara

Mara once saw the same broken-circle symbol on a sealed cellar door beneath
the Crooked Lantern.

Mara has not told anyone about the cellar door.

Mara is not a spy.

This hidden fact is intended to test:

  • narrator-only knowledge,
  • delayed revelation,
  • abandoned-branch leakage.

Edrin

name: Edrin
type: character
role: missing scholar
current_location: unknown
status: missing

Hidden Canon — Edrin

Edrin discovered that the Silver Key opens the sealed cellar door beneath
the Crooked Lantern.

Edrin disappeared before he could tell Mara.

The user should not know this at campaign start.

7. Locations

Crooked Lantern Tavern

name: Crooked Lantern Tavern
type: location
description: >
  An old timber-framed tavern near the north road. It has a stone hearth,
  dark beams, shared tables, and a cellar beneath the main room.

Hidden location fact:

A sealed cellar door beneath the tavern bears a broken-circle symbol.

Old Abbey

name: Old Abbey
type: location
description: >
  A ruined abbey five miles north of Westhaven. Its crypt bears a
  broken-circle symbol.

8. Item

Silver Key

name: Silver Key
type: item
description: >
  A small silver key bearing a broken-circle symbol.
current_owner: Aldric
origin: Edrin's desk

Hidden function:

The Silver Key opens the sealed cellar door beneath the Crooked Lantern.

9. Initial Relationships

Aldric -> trusts -> Mara
Mara -> cautiously_trusts -> Aldric
Mara -> knows -> Edrin
Edrin -> frequently_visited -> Old Abbey
Aldric -> possesses -> Silver Key

10. Initial Story Thread

title: Find Edrin
status: open
description: Determine what happened to Edrin.

11. Global Canon

These facts are authoritative from campaign start.

1. Magic exists.
2. Resurrection is impossible.
3. The Old Abbey lies five miles north of Westhaven.
4. The Silver Key was found in Edrin's desk.
5. The Silver Key bears a broken-circle symbol.
6. The Old Abbey crypt bears the same broken-circle symbol.
7. Mara has never visited the Old Abbey.
8. Mara does not initially know where the Silver Key was found.
9. Mara is not a spy.
10. Aldric begins the campaign carrying the Silver Key.

12. Imported Knowledge Files

Create exactly these three files.


File A — canon.md

Classification:

Canon

Contents:

# Campaign Canon

The Old Abbey lies five miles north of Westhaven.

The abbey crypt bears a symbol shaped like a broken circle.

Magic exists in this world, but resurrection is impossible.

Mara has never visited the Old Abbey.

Expected behavior:

  • treated as authoritative,
  • may be retrieved selectively,
  • cannot be overridden by lower-authority sources.

File B — reference.md

Classification:

Reference

Contents:

# Tavern Reference

Medieval roadside taverns commonly used timber framing, stone hearths,
wooden benches, shared tables, candles, and oil lamps.

Cellars were often used for ale, food storage, and secure storage.

Old buildings frequently accumulated renovations, blocked passages, and
sealed storage areas over generations.

Expected behavior:

  • may influence environmental detail,
  • must not establish that the Crooked Lantern definitely has a secret tunnel,
  • must not override campaign canon.

File C — inspiration.md

Classification:

Inspiration

Contents:

# Atmospheric Inspiration

A traveler entered a silent hall while rain tapped against dark shutters.
A single lantern illuminated the room.

Beneath an old house, a forgotten doorway waited behind a wall of barrels.

A frightened innkeeper concealed a dangerous political secret from a stranger.

Expected behavior:

  • may influence atmosphere,
  • must not establish that Mara is concealing a political secret,
  • must not turn Mara into a spy,
  • must not create a hidden doorway unless accepted story events establish one.

13. Deliberate Continuity Traps

The fixture contains several traps.

Trap 1 — Mara's knowledge

Mara initially does not know:

  • where the key was found,
  • that Aldric possesses it.

If the narrator gives Mara this knowledge before Aldric reveals it, continuity failed.

Trap 2 — Mara has never visited Old Abbey

If Mara claims personal experience inside the abbey without a later accepted explanation, canon failed.

Trap 3 — Inspiration says an innkeeper hides a political secret

Mara is explicitly not a spy.

If Inspiration causes the narrator to establish Mara as a political spy, authority handling failed.

Trap 4 — Reference describes sealed passages

This is descriptive reference only.

It must not automatically create unrelated secret tunnels.

Trap 5 — Resurrection

Any retrieved text or pretrained knowledge suggesting resurrection must lose to global canon.

Trap 6 — Abandoned branch secret

One test branch will reveal:

  • Mara has seen the broken-circle symbol in the cellar.

After undo/divergence, the new active branch must not know that revelation occurred.

Trap 7 — Possession

Aldric starts with the Silver Key.

The key must not vanish or move owners without an accepted event.

14. Initial Expected State

At campaign creation:

active_location: Crooked Lantern Tavern

aldric:
  possesses:
    - Silver Key
  knows:
    - Silver Key was found in Edrin's desk
    - Edrin is missing

mara:
  knows:
    - Edrin is missing
    - Edrin often visited Old Abbey
  does_not_know:
    - key origin
    - Aldric possesses key

threads:
  - Find Edrin: open

15. Core Scripted Test Sequence

The following sequence should be used for candidate comparison.

The narrator's exact prose will vary.

The important part is state and continuity.


Turn 1

User:

I enter the Crooked Lantern and look for Mara.

Expected:

  • Mara is present or plausibly becomes available.
  • Current location remains Crooked Lantern.
  • No hidden canon is revealed automatically.

Turn 2

User:

I ask Mara, "Have you heard anything about Edrin?"

Expected:

  • Mara may say Edrin is missing.
  • Mara may mention his interest in Old Abbey.
  • Mara should not mention the Silver Key unless Aldric reveals it.
  • Mara should not mention the cellar symbol yet.

Turn 3

User:

I ask whether Mara has ever been to the Old Abbey.

Expected:

  • Mara says no or equivalent.
  • Any statement that she personally visited the abbey is a failure.

Create named checkpoint:

Before revealing the key

Expected checkpoint state:

  • Mara still does not know Aldric has the key.
  • Mara still does not know where it was found.

Turn 4A — Primary Test Path

User:

I show Mara the Silver Key but do not tell her where I found it.

Expected state:

  • Mara now knows Aldric possesses the Silver Key.
  • Mara still does not know it came from Edrin's desk.

Expected narrative opportunity:

  • Mara may recognize the broken-circle symbol.
  • If she reveals she has seen it beneath the tavern, that becomes accepted story knowledge.

For deterministic testing, if the narrator does not volunteer the recognition, continue with:

Does the symbol mean anything to you?

Expected:

  • Mara may reveal that she saw the symbol on a sealed cellar door.
  • This revelation is now accepted on Path A.

Record this as:

Path A Secret Revealed:
Mara has seen the broken-circle symbol beneath the tavern.

Turn 5A

User:

I tell Mara that I found the key in Edrin's desk.

Expected state:

  • Mara now knows the key origin.
  • New clue may connect Edrin, key, and tavern cellar.

Turn 6A

User:

I ask Mara to take me to the cellar door.

Expected:

  • location may change into tavern cellar,
  • active thread may gain clue,
  • key remains with Aldric unless explicitly handed over.

16. Undo / Divergence Test

After completing Path A through Turn 6A:

Restore checkpoint:

Before revealing the key

Expected:

  • active story returns to post-Turn-3 state,
  • Mara does not know Aldric has key,
  • Mara does not know key origin,
  • accepted Path A future becomes abandoned/disposable,
  • checkpoint remains.

Create new continuation.


Turn 4B — Divergent Path

User:

I decide not to mention the key. I ask Mara what she remembers about Edrin's last visit.

Expected:

  • Mara does not know Aldric has the key.
  • Mara does not know the key origin.
  • the prior Path A revelation about the cellar symbol must not be treated as something already said.

Turn 5B

User:

I ask whether Edrin ever spoke about unusual symbols.

Expected:

  • narrator may choose a plausible response consistent with current canon,
  • must not phrase the Path A cellar revelation as something already discussed,
  • may reveal the cellar symbol now if the narrator decides it is narratively appropriate.

Important: If the system retrieves:

Mara already told Aldric about the cellar symbol.

from abandoned Path A, the candidate fails lineage safety.

17. Redo Test

Before entering Turn 4B, test ordinary Redo after checkpoint restore/undo if supported.

Expected:

  • Redo may return into Path A only until a new Turn 4B is accepted.
  • once Turn 4B is accepted, ordinary Redo into Path A should be invalidated.

Path A remains retained/disposable internally.

18. Retry Test

On a fresh/appropriate turn, use:

I open the cellar door.

Receive narrator Take A.

Then Retry.

Receive narrator Take B.

Expected:

  • both narrator takes are retained,
  • user may select either before continuing,
  • continuing from Take B makes Take A inactive/disposable,
  • Take A does not influence later active context.

19. Narrator Edit Test

Create a narrator response containing:

Mara wears a red cloak.

Edit it to:

Mara wears a green cloak.

Expected:

  • green cloak becomes active continuity,
  • old red-cloak version remains historical/disposable,
  • structured visual/state data is re-evaluated if the system tracks clothing.

20. Manual State Correction Test

Introduce or simulate an incorrect fact:

Mara knows the Silver Key came from Edrin's desk.

Use manual state/canon correction:

Mara does not know where the Silver Key was found.

Expected:

  • correction is authoritative,
  • correction has user/manual provenance,
  • future narrator behavior respects correction.

21. Long-Term Memory Plant

Near the beginning of the active branch, establish:

Mara says Edrin always tapped twice on the table before mentioning something he feared.

This detail is intentionally minor but specific.

Do not mention it for many turns.

At least 30-50 turns later, ask:

I think back to Mara's description of Edrin when he was frightened. Was there any distinctive habit she mentioned?

Expected:

  • system should retrieve or reconstruct the two-tap habit,
  • full transcript should not need to be in prompt.

This is the standard long-term memory recall fact.

22. Promise Memory Plant

Establish:

Aldric promises Mara he will return before sunrise.

Later, after enough turns for direct context to expire, ask or create a situation near dawn.

Expected:

  • promise should be retrievable as a high-value commitment memory.

23. Possession Transfer Test

Later in the campaign:

User:

I hand the Silver Key to Mara and ask her to hold it.

Expected:

  • Mara now possesses key,
  • Aldric no longer possesses key.

Several turns later:

I reach for the Silver Key.

Expected:

  • narrator should not act as if Aldric still has it.

Then:

I ask Mara to give the key back.

Expected:

  • possession returns to Aldric after accepted transfer.

24. Location Continuity Test

Move from tavern to Old Abbey.

Expected:

  • active location updates.

Ask about an object clearly located at the tavern without returning.

Expected:

  • narrator should not imply the protagonist is still physically at the tavern.

25. Resurrection Canon Test

Introduce:

I ask whether any known magic could bring Edrin back if we find him dead.

Expected:

  • narrator maintains resurrection is impossible,
  • lower-authority inspiration/reference/pretrained knowledge cannot override this.

26. Reference Retrieval Test

At tavern:

I look around the room carefully. What is the place physically like?

Expected:

  • reference may contribute timber framing, hearth, benches, lighting,
  • narrator should not say these details came from campaign canon unless actually established.

27. Inspiration Authority Test

Because Inspiration contains:

A frightened innkeeper concealed a dangerous political secret.

ask:

I watch Mara carefully. Does she seem like someone involved in political intrigue?

Expected:

  • narrator may describe ambiguity,
  • must not establish Mara is a spy solely because Inspiration contains that trope,
  • global canon says Mara is not a spy.

28. Hidden Canon / Spoiler Test

Before the active branch discovers the sealed cellar door, ask:

What do I know about the purpose of the Silver Key?

Expected player-facing answer:

  • Aldric does not yet know its purpose.

The narrator may have hidden canon saying it opens the cellar door, but must not reveal this as player knowledge.

29. Checkpoint Persistence Test

Create named checkpoint:

Before entering the abbey

Restart application.

Expected:

  • checkpoint still exists,
  • restoring it recreates correct state.

30. Export / Import Test

After:

  • at least one abandoned path,
  • at least two named checkpoints,
  • imported knowledge,
  • possession changes,
  • long-term memories,

export campaign.

Import into a fresh data directory.

Expected:

  • active transcript restored,
  • current state restored,
  • checkpoints restored,
  • disposable history retained,
  • imported knowledge classifications retained,
  • memory provenance retained where required.

31. Science-Fiction Variant

The same engine should also run this compact alternate fixture without schema changes.

Campaign:

Persephone Test

Canon:

1. FTL does not exist.
2. Persephone is a fusion-powered survey ship.
3. Artificial gravity is available only through thrust or rotation.
4. Dr. Vale has never visited Europa.
5. The encrypted data crystal belongs to Captain Imani.

Entities:

  • Captain Imani — protagonist
  • Dr. Vale — scientist
  • Persephone — vehicle
  • Ceres Station — location
  • Europa — location
  • encrypted data crystal — item
  • Helios Dynamics — organization

Purpose:

  • verify genre-neutral entities,
  • verify hard technology canon,
  • verify possession,
  • verify character knowledge,
  • verify reference retrieval.

No database/schema changes should be required relative to Continuity Test.

32. Expected State Checkpoints

Checkpoint S0 — Campaign Start

location: Crooked Lantern Tavern
key_owner: Aldric
mara_knows_key_possession: false
mara_knows_key_origin: false
mara_cellar_symbol_revealed_to_aldric: false
find_edrin: open

Checkpoint S1 — Before Revealing Key

Same as S0, after initial conversation.

mara_knows_key_possession: false
mara_knows_key_origin: false

Checkpoint S2A — After Showing Key

key_owner: Aldric
mara_knows_key_possession: true
mara_knows_key_origin: false

Checkpoint S3A — After Revealing Origin

mara_knows_key_possession: true
mara_knows_key_origin: true

Checkpoint S2B — Divergent Path

After restoring S1 and continuing without mentioning key:

key_owner: Aldric
mara_knows_key_possession: false
mara_knows_key_origin: false

Path A revelations must not appear as accepted Path B state.

33. Required Test Evidence

For candidate comparison, record at important turns:

  • active turn/head ID,
  • visible transcript,
  • current structured state,
  • summary text,
  • retrieved memories,
  • retrieved imported chunks,
  • prompt/context inspection,
  • database lineage if accessible,
  • checkpoint IDs,
  • network activity if security test is running.

34. Candidate Comparison Procedure

For each finalist:

  1. create the same Continuity Test fixture,
  2. use the same imported files,
  3. follow the same scripted turns where supported,
  4. record deviations,
  5. do not compensate manually for missing architecture unless the purpose is a documented experiment.

Rate each capability:

PASS
PARTIAL
FAIL
NOT IMPLEMENTED

35. Fixture Success Criteria

A production v1 implementation passes the fixture if:

  • no canon trap is violated,
  • Mara's knowledge remains correct,
  • possession remains correct,
  • Undo/Restore returns to correct state,
  • abandoned Path A facts do not leak into Path B,
  • Retry alternatives do not contaminate active history,
  • named checkpoints persist,
  • old planted memories can be retrieved,
  • imported Reference and Inspiration remain lower authority than Canon,
  • hidden canon is not exposed prematurely,
  • export/import preserves active and retained history,
  • science-fiction variant requires no schema redesign.

36. Fixture Files

The canonical fixture package should eventually contain:

continuity-test/
├── campaign.yaml
├── canon.md
├── reference.md
├── inspiration.md
├── expected-state.yaml
├── scripted-turns.md
└── README.md

For Phase 0B, this document is sufficient to create those files manually or through a small fixture setup script.

37. Current Recommendation

Use this fixture as the standard narrative test bed throughout the project.

Do not replace it with ad hoc stories for each candidate.

A stable fixture makes it possible to distinguish:

model randomness

from:

actual persistence / memory / canon bugs

The prose may vary.

The expected state, authority, and lineage rules should not.