Skip to content

Brief: Fiction-fidelity as a confound, not a flavor

Date: 2026-06-02 Status: Open design question — capture + recommendation, not yet decided. Origin: Jun 1 all-hands. Sci-fi scenarios were originally added because they're fun. CoachJ then noticed he was responding differently in them — and James named why: in obvious fiction, felt stakes drop, so a player may answer recklessly because they don't care, not because they're risk-tolerant. That makes fiction-fidelity a confound on every other signal, not a cosmetic choice of surface.

At a glance

What it raises: how "real" a scenario feels (pure fiction ↔ real-life-plausible) systematically shifts felt stakes and engagement — so it biases the risk/stakes signal unless it's controlled and measured. Not decided — this brief captures the insight and recommends how to capture it.

  • The confound: you can't tell "disengages from fiction" apart from "genuinely risk-tolerant" from a single sci-fi scenario. James's fix is a fiction × stakes 2×2 within-player, across multiple games.
  • Half-built already: the player side exists (M9 play-time context-bleed + E22 classifier detect a player reaching out of the fiction) — but it's filed as a positive engagement outcome, never wired as a confound correction.
  • Missing piece: fiction-fidelity is not a cube lever — only a "domain hint" (sci-fi pushes stakes up). It needs to become a tagged, manipulable dimension, paired with M9 the way C2 pairs with M3.
  • Onboarding implication: the starter pack deliberately uses grounded scenarios (good instinct) but never names the confound — and using fun sci-fi early would inject it at the worst moment (profile formation).
  • Reframe: the question is not "do players pick correctly in sci-fi" (no correct pick — identity-vs-process). It's "does fiction yield cleaner or noisier signal" — and the answer is noisier / more aspirational, so fiction-derived signal needs a fidelity discount.
flowchart TD
  CHOICE["Reckless choice in a<br/>high-fiction (sci-fi) scenario"] --> Q{"Why did they choose it?"}
  Q -->|genuine signal| A["Risk tolerance<br/>they'd take the risk for real too"]
  Q -->|measurement artifact| B["Fiction disengagement<br/>they don't care — nothing's at stake"]
  A --> X["Identical observed choice<br/>— one scenario can't tell them apart"]
  B --> X
  classDef bad fill:#fde,stroke:#c47;
  classDef warn fill:#fef3c7,stroke:#d99;
  class B bad;
  class X warn;

The confound in one picture: high fiction makes a reckless choice ambiguous. Disentangling A from B is what the fiction × stakes 2×2 (below) is for — and it only works across multiple games.

Where it lives today (verified)

Layer State Evidence
Cube — scenario side No fiction lever. Fiction only appears as a domain hint: "sci-fi pushes stakes magnitude up by default." Stakes magnitude itself is flagged as an uncontrolled knob in the cube's open questions (rides on surface domain, not a deliberate parameter). scenario-dimension-cube.md §"Domain hints", §"Open questions" (stakes magnitude)
Measurement — player side Half-built. M9 (Play-time context bleed) + E22 (E_context_bleed classifier) detect "real-world context leaking into play — the player answering as themselves-in-the-world rather than in-the-fiction." Filed as "the best-scaffolded outcome" (engagement positive) — not used to correct the risk confound. measurement-schema.html E22 / M9
Onboarding Steers away from fiction, doesn't name it. Starter-pack v3 uses grounded, low-C2, "every adult with a phone" scenarios for cross-domain spread. Good instinct; the confound is neither named nor guarded. docs/starter-pack/v3-redesign-draft.md
James's 2×2 disentanglement Not designed for anywhere.

So: partially measured (M9 as outcome), not controlled (no scenario lever), not corrected (M9 not fed back against risk signal), not handled in onboarding.

The confound, precisely

A reckless choice in an obviously-fictional sci-fi scenario is ambiguous between:

  • (a) genuine risk tolerance — the player would take the same risk in real life, or
  • (b) fiction disengagement — the player doesn't care because nothing's real, so felt stakes ≈ 0.

A single scenario can't separate these. They only separate across games, within a player, by crossing fiction against stakes (James's 2×2):

low stakes high stakes
low fiction (real-plausible) A B
high fiction (sci-fi) C D

If a player's choices track stakes in the low-fiction row (A≠B) but go uniformly reckless in the high-fiction row (C≈D≈reckless), that's fiction disengagement, not risk appetite. If they're reckless across both high-stakes cells (B and D), that's genuine risk tolerance. The inference is structural and multi-game — never readable from one scenario.

Recommendation (how to actually capture it)

Three moves, in dependency order. None block current shipping.

  1. Make fiction-fidelity an explicit cube dimension (tagged, manipulable): e.g. realistic / stylized / pure-fiction. Today it's a domain hint; promote it to a content-layer dimension so the generator can hold it constant or vary it deliberately — the same move C2 (expertise requirement) made from provisional axis to tagged content dimension.
  2. Pair the lever with M9 — fiction-fidelity (scenario side) ↔ M9 context-bleed (player side), exactly the C2↔M3 pattern. That lets us decompose "this player got reckless" into "this scenario was high-fiction" + "this player disengaged (M9 low)" vs "this player is genuinely risk-on."
  3. Use it as a fidelity discount, not a correctness read. Reframe the product question from "do they pick correctly in sci-fi" to "how much should fiction-derived signal be trusted." High-fiction + low engagement (M9) → discount the risk/stakes signal from that game; don't feed it to the profile at full weight.

The fix isn't novel — it copies a pattern the cube already uses for expertise (C2 ↔ M3):

flowchart LR
  subgraph established["Established — already shipped"]
    direction LR
    C2["C2 · expertise requirement<br/><i>scenario-side lever</i>"] <-->|decomposes 'conviction dropped'| M3["M3 · domain-confidence asymmetry<br/><i>player-side outcome</i>"]
  end
  subgraph proposed["Proposed — this brief"]
    direction LR
    FF["fiction-fidelity<br/><i>new scenario-side lever</i>"] <-->|decomposes 'they got reckless'| M9["M9 · context-bleed<br/><i>player-side outcome, already logged</i>"]
  end
  established -.->|same shape, new pair| proposed
  classDef new fill:#dcfce7,stroke:#44aa99;
  class FF,M9 new;

The only genuinely new build is the fiction-fidelity tag (left). M9 already exists and is already being captured — so the correction can be applied retroactively to data collected now.

Onboarding corollary: keep the starter pack grounded (current instinct is right), and name the reason — early games form the profile, so the confound is most damaging there. Reserve fun/sci-fi for later, once enough low-fiction baseline exists to calibrate the player's fiction-discount. If we ever want to measure a player's fiction-sensitivity deliberately, do it as a controlled 2×2 later in their journey, not at onboarding.

Priority — not now; corpus-expansion pass

Recommendation: do not jump the queue. Bundle the lever + M9 wiring into the planned corpus-expansion pass. Reasons:

  • Small blast radius today. The confound only bites where high-fiction scenarios feed the profile. Onboarding and the governance corpus are grounded; sci-fi is a minority subset. It contaminates a little current data, not the load-bearing core.
  • Refinement, not rebuild. Not a new corpus, not a from-scratch metric — one new scenario-side tag + re-use of the already-logged M9.
  • Deferring loses no data. M9 is captured on every sci-fi play now, so the fidelity discount can be applied retroactively once the lever exists. That's the reason it isn't urgent.
  • Don't change the substrate mid-experiment. Same discipline as project-decision-factor-labels-domain-skewed — both deferred to the corpus-expansion pass to avoid disturbing the live experiment.
flowchart LR
  NOW["Now (cheap policy)<br/>measurement corpus stays grounded;<br/>fiction = engagement only, signal-discounted"] --> PASS["Corpus-expansion pass<br/>add fiction-fidelity tag · wire M9 as correction ·<br/>decide which surfaces are high-fiction"] --> RETRO["Retroactively re-weight<br/>sci-fi plays already logged with M9"]
  classDef now fill:#fef3c7,stroke:#d99;
  class NOW now;

The only near-term action (CoachJ): adopt the one-line policy above. No build to take on yet.

Open questions

  • Is fiction-fidelity one dimension or two (felt-realism vs felt-stakes — they usually co-move but not always: a grounded scenario can be low-stakes, a sci-fi one can feel weighty)?
  • Does fiction-sensitivity become a player trait worth surfacing (some people engage fully with fiction, some don't — that itself is signal about how they'd treat hypotheticals an agent poses)?
  • Minimum games before the 2×2 inference is reliable per player?
  • docs/research/foundations/scenario-dimension-cube.md — where the fiction lever should live (see open questions: stakes magnitude)
  • docs/research/foundations/measurement-schema.html — M9 / E22 context-bleed (the existing player-side half)
  • docs/starter-pack/v3-redesign-draft.md — onboarding grounding instinct
  • docs/decisions/086-operator-side-scenario-framing-manipulation.md — fiction-fidelity is also a manipulation lever there; this brief treats it as a signal-quality issue