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.
- 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. - 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."
- 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?
Links¶
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 instinctdocs/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