Scenario Dimension Cube¶
In plain terms (start here)
The cube is the design tool for building scenarios that actually vary. Left to intuition, scenarios cluster in a narrow corner of decision-space (everyone writes the same kind of dilemma). The cube breaks a scenario into independent dials so the generator can deliberately spread across the space:
- 12 structural axes = the scenario's shape — how much time you have, how reversible it is, how much authority you hold, who's affected, what you each know, and so on. Domain-agnostic: the same dials apply to a career choice or a governance call.
- 2 content axes = the scenario's subject — which kinds of cost are in tension (C1) and how much expertise it demands (C2).
- The domain (career / health / governance / …) is just the surface the dials get painted onto — the cube doesn't enumerate domains.
- Measured outcomes (identity load, etc.) aren't dials — they depend on the player's response, not the scenario.
The "three concepts" diagram below shows how these fit together. For the full axis-by-axis reference, read on or open the interactive explorer ↗.
Interactive schematic
📊 Open the interactive cube explorer ↗ — the 12 structural axes + content layer + measured outcomes as a clickable schematic with search, layer filters, and an inspect drawer (opens in a new tab). Hand-built for sharing with the team.
Status: Stable. Promoted from working notes 2026-05-30 after 12 swings of self-attack, governance-generator comparison, and 29 corpus decompositions.
Live-prompt integration status (2026-05-30): Wired into scenario-generator.ts at v1.8.0 (smoke-tested across 7 generated scenarios — integration works, cube vector emits cleanly, prose delivers ~90% of axis commitments faithfully). Rolled back at v1.8.1 due to generation latency. The cube vector section added ~18% to prompt size on a generation already taking several minutes; multiplayer has no curated fallback corpus, so the live prompt reverted to v1.7.0 functional state. The cube's path back to live integration: (1) build curated multiplayer corpus offline using the cube as a diversity tool, (2) move live AI generation to BYOM with transparent cost/token disclosure, or (3) latency drops to <30s via model upgrade / prompt streaming. See [[project-generation-latency-drives-curated-first]], [[project-multiplayer-curated-corpus-gap]], [[project-byom-for-live-ai-generation]] for full context.
Iteration history: See ../archive/scenario-dimension-cube-working.md (archived 2026-06-01) for the full session log including rejected hypotheses, rushed conclusions, and re-attack findings. The smoke-test findings (n=7) — including symmetric-complete under-production, future-generations over-application, full-authority bias, reversibility under-coverage — are preserved as integration-ready iteration items for when the cube returns to a live prompt.
Purpose¶
The cube is a design tool: an explicit list of structural axes that any scenario can vary along, independent of surface domain.
Origin: scenarios drafted in a vacuum cluster in a narrow region of scenario-space. The carousel scenario (parent at amusement park, promise to daughter, friend's child goes missing) surfaced from a comedian's bit, not designer intuition — evidence that the design process was sampling from a too-small primitive set. The cube is the systematic answer: once the primitive axes are enumerated, scenarios can be designed to span the cube cleanly rather than clustering in a few corners.
Killer use case — cross-domain consistency experiment. Hold a cube vector constant; vary only the surface domain (career / health / relational / financial / governance). If the same player gives structurally similar responses, the structure carries the signal. If not, you've found which combinations don't translate cleanly. This is the experiment-new-domain-signals.md finding made operational.
Connects to:
- docs/research/experiments/experiment-new-domain-signals.md — proved cross-domain signals work
- docs/decisions/024-twelve-behavioral-signals.md — signals are OUTPUT; dimensions are INPUT axes
- ADR-073 — starter pack design; cube informs v2
- 01_Projects/Pulse/decisions/Hmm2026-05-27-coachj-experiment-scenarios.md — 8 reference scenarios used as test cases
- Project memories: project-forces-choice-is-deliberate-design, project-it-depends-traces-to-information-topology, project-player-must-have-authority-or-stake, project-generation-latency-drives-curated-first, project-multiplayer-curated-corpus-gap, project-byom-for-live-ai-generation
Three concepts to keep distinct¶
When reading this doc and working with the cube, three concepts can blur together. Pulling them apart explicitly:
flowchart TB
subgraph CUBE["The cube — the vector the generator commits to"]
direction TB
STRUCT["<b>Structural layer · 12 axes</b> — scenario <i>shape</i> (domain-agnostic)<br/>1 commitment · 2 deadline · 3 horizon · 4 reversibility · 5 scope · 6 distance<br/>7 authority · 8 info topology · 9 counterparty agency · 10 visibility · 11 stakes · 12 default"]
CONTENT["<b>Content layer · 2 axes</b> — scenario <i>subject</i><br/>C1 cost categories in tension · C2 expertise requirement"]
end
RULES["<b>Content rules</b> — prose discipline<br/><i>earn-the-deadline, jargon test… — not cube dimensions</i>"]
DOMAIN["<b>Domain</b> — the <i>surface</i><br/>career · health · governance · …<br/>NOT enumerated by the cube"]
SCN(["A scenario"])
STRUCT --> SCN
CONTENT --> SCN
RULES --> SCN
DOMAIN --> SCN
SCN -.->|player responds| OUT["<b>Measured outcomes</b><br/>identity load · domain-confidence asymmetry · …<br/><i>player-side — not a cube axis</i>"]
The cube enumerates axes (structural + C1 + C2), never domains. Shape and subject are committed by the generator; the domain is the surface they're painted onto; measured outcomes depend on the player, not the scenario.
1. Structural layer (12 axes) — scenario shape¶
Domain-agnostic. Same axis applies whether the scenario is about career, health, governance, etc. Every axis must be independently manipulable so the generator can take a vector and produce a scenario. This is what the cross-domain experiment holds constant.
2. Content layer (2 axes + content rules) — scenario subject¶
Three things, all varying with what the scenario is about:
- C1 (cost categories in tension) — a cube dimension. Which value categories pull against each other (relational, financial, reputational, developmental, physical, integrity). Tagged like any other axis. Called "content" because the cost mix depends on subject matter — a financial-domain scenario can still have integrity in tension; a relational-domain scenario can still have financial in tension. The categories themselves aren't tied to specific domains.
- C2 (expertise requirement) — a cube dimension. How much domain-specific competence the scenario demands to engage meaningfully. Values: low / moderate / high / expert-only. Distinct from axis 8 (information topology, who knows what) and from Principle 10 (jargon test, vocabulary discipline) — C2 captures whether the scenario itself demands expert conceptual framework (probabilistic reasoning under operational uncertainty, statistical literacy, balance-sheet pattern detection, etc.). Added 2026-05-31 from cross-domain experiment evidence + measurement-schema OQ-5. Pairs with measured outcome M3 (domain-confidence asymmetry) for player-side correlate.
- Content rules — prose-level quality discipline (cast composition, scan strip clarity, voice quotes, jargon test, lock-in mechanism, name diversity, gender balance). Not dimensions. They ensure a cube vector gets rendered well into prose. The existing scenario-generator.ts prompt is largely content rules.
3. Domain — scenario surface¶
What the scenario is about. Career, health, relationships, financial, governance — or, in the world-themed corpus, boardroom, frontier, court, rebuild, underground. Domain is NOT in the cube. Domain is the surface where a cube vector gets realized into a specific scene.
The whole point of the cube is that you can hold a cube vector constant and vary the domain. Same shape, different surface. That's what the cross-domain consistency experiment tests — if a player's response to "strong commitment + minutes deadline + life-defining stakes + forces-choice" stays consistent across career, health, and governance domains, the cube's structural axes are carrying the signal, not the surface.
How the three relate¶
| Concept | Domain-agnostic? | In the cube? | Where it lives |
|---|---|---|---|
| Structural axes (1–12) | Yes | Yes — 12 dimensions | The cube |
| Content axes (C1, C2) | Yes (universal categories / universal expertise scale) | Yes — 2 dimensions | The cube |
| Content rules | Yes (apply across domains) | No (not dimensions) | Generator prompt |
| Domain | No (defines surface) | No | Generator input + scenario surface |
| Measured outcomes | Yes | No (not specified by scenario) | Observed in response |
Quick test for what goes where: Does it describe the scenario's shape? → structural axis. Does it describe which costs are at stake? → C1. Does it describe how much expert competence the scenario demands? → C2. Does it describe how the prose reads? → content rule. Does it describe what the scenario is about? → domain. Does it depend on the player's response? → measured outcome.
Why this matters when reading the doc¶
- The cube enumerates axes (structural + C1 + C2). It does NOT enumerate domains. There's no "governance axis" or "health axis."
- "Content" in this doc never means "domain." Content means C1 + C2 + content rules.
- Domains have tendencies on cube cells — sci-fi pushes stakes up by default, underground pushes information topology toward you-know-more, court+governance pushes scope toward future-generations. These are "domain hints" (see below) but they're not dimensions.
Domain hints — patterns the corpus reveals¶
Not cube axes, but useful generator inputs. Once a domain is chosen, certain content patterns are conventional:
- Career — counterparty types: manager, recruiter, founder. Typical deadline: days-to-weeks. Typical cost-tension mix: financial × developmental × relational.
- Health — counterparty types: doctor, partner, employer. Typical deadline: weeks. Expertise asymmetry common (they-know-more or you-know-less if patient).
- Relational — counterparty types: intimate, close-friend, family. Typical visibility: dyadic. Integrity often in tension.
- Financial Tier 4–7 — counterparty types: market (static), advisor, spouse. Typical visibility: private.
- Boardroom (corporate) — wide cube signature; varies on most axes. Most diverse cell in the corpus.
- Frontier (sci-fi) — pushes stakes magnitude up by default; institution + future-generations scope common.
- Court (medieval/political) — institutional scope, integrity × historical × relational cost mix common.
- Rebuild (post-collapse) — physical + resource costs frequent; institutional + small group scope.
- Underground (whistleblower / off-grid) — tight cube signature: influence-only authority + life-defining stakes + you-know-more topology + forces-choice default.
These are empirical tendencies, not constraints. Use them as defaults to consciously break — if you want an underground scenario with symmetric-complete information, you have to push against the domain's natural pull.
Structural axes¶
1. Prior commitment¶
Values: none / soft / strong
What binds the player coming into the scenario.
- None — no commitment to a counterparty exists
- Soft — non-binding expectation (pattern, signup record, hedged response, role-implicit obligation)
- Strong — explicit, mutually acknowledged commitment
Flavors of "strong" (deathbed promise / oath / contract / verbal) and "soft" (implicit pattern / semi-formal signup / explicit hedged response) are captured by C1 (cost categories in tension), content-layer texture (deathbed vs. casual context), and measured outcomes (identity load on the commitment, subjective recency weighting). The axis itself just tags strength.
2. Decision deadline¶
Values: seconds / minutes / hours / days / weeks / soft
How much time the player has to deliberate. Maps to cognitive mode, not just clock time.
- Seconds — pure reflex mode (<5s, no time to verbalize)
- Minutes — snap deliberation (5s–5min, time for one mental walk-through, brief verbal exchange). The carousel (60s) and S3 (90s) are minutes-mode.
- Hours — within-day deliberation, can consult someone
- Days — sleep-on-it across nights
- Weeks — full research and multi-party consultation (1–8+ weeks)
- Soft — no specific deadline; flavors of pressure (none / social / accumulating-cost) captured by axis 12
Months-deadline not added — corpus doesn't push that range and risks confusion with the months-horizon value on axis 3.
Content-rule sibling — earn the deadline. The cube specifies the deadline VALUE (which time bucket the pressure sits in). The deadline MECHANISM — what makes delay structurally impossible — is a content rule, not a cube dimension. Every shipped scenario must name in prose ONE of four external anchors that closes the "why not delay?" escape: a counterparty event with a date, a calendar fact, a decaying physical or operational window, or a named default that fires. Generic urgency ("the team needs to decide", "leadership wants a call") begs the question and fails. Surfaced 2026-05-30 during multiplayer starter-corpus review: scenarios were tagged at "minutes" or "hours" on this axis but the prose didn't EARN the value, leaving readers with the "wait, who set that clock?" question. Codified at generator Principle 8 (v1.8.2) and required via planning.deadlineMechanism.
3. Consequence horizon¶
Values: immediate / months / years / lifelong
How long effects persist from decision moment. Calibrated to reference player (35–45 working-age adult).
- Immediate — hours-to-days
- Months — weeks-to-months
- Years — 2–25 years (decades absorbed into upper edge of this value)
- Lifelong — rest of player's life (25+ years for reference player)
Tagging rule: for scenarios with active-phase + residue (e.g., 3-year relationship that ends), horizon = duration of dominant consequence; residue captured by reversibility (partial-permanent).
Note: "Generational" is NOT a value here. Effects persisting past the player's lifetime are a combination of (lifelong horizon) + (future-generations scope on axis 5). Duration belongs in horizon; who-is-affected belongs in scope.
4. Reversibility of consequence¶
Values: full / partial-recoverable / partial-permanent / none
Whether you can undo the consequence. Independent of horizon (S8 has 15yr horizon but full reversibility).
- Full — undo restores the original state at no additional cost. Tight definition; most decisions don't qualify.
- Partial-recoverable — consequence diminishes to zero with time/work (quit a job → can return to industry)
- Partial-permanent — consequence persists but can be mitigated; never fully erases (public criticism of colleague — damage fades but never zero)
- None — zero mitigation path. Rare; mostly deadline/window-close cases (missed grant), not action-irreversibility.
Tagging rule: for scenarios with multi-component reversibility (S4 Priya: investing full, relationship partial-permanent), tag by dominant component.
5. Scope of consequence¶
Values: self / dyad / small group / institution / future-generations
Who is materially affected.
- Self — only you
- Dyad — you + one other
- Small group — 3–20 named or close-knit people
- Institution — collective of currently existing people/entities (company, board, community, settlement)
- Future-generations — people who don't exist yet (descendants, future humanity, future ecosystems). Distinct from institutional-abstract on axis 6 (institutional-abstract = collective of currently existing parties).
6. Relational distance to most-affected¶
Values: self / intimate / close / acquaintance / stranger / institutional-abstract
How well the player knows the most-affected party. Distinct from scope.
- Self — affected party is the player
- Intimate — family, partner, child
- Close — close friend, long-term colleague, named team member
- Acquaintance — known but not close (recent coworker, mentor's mentor)
- Stranger — specific unknown person (juror, anonymous investor, random buyer)
- Institutional-abstract — no specific identifiable individuals; the harm lands on a collective or abstraction (the zoning office, the market, "the company's future")
Stranger and institutional-abstract were previously conflated but play differently — institutional patients are weighed lighter by most players.
7. Authority you hold¶
Values: full / oversight / collective-vote / influence-only / none
Formal authority over the outcome.
- Full — you decide, no review
- Oversight — you decide, subject to review/approval (CEO recommending to board)
- Collective-vote — you have formal vote, share decision with peers in real time (committee member, council member, jury). Distinct play shape: coalition reasoning, single-vote leverage.
- Influence-only — someone else decides; you can advocate
- None — someone else decides; no leverage
Independent corpus convergence: the generator's Tier 1/Tier 2/Tier 3 framing in Principle 14 ("no worldview tax") maps to this axis. Tier 1 = full or oversight; Tier 3 = influence-only. Built without coordination; same distinction emerged.
8. Information topology¶
Values: symmetric-complete / mutual-uncertainty-resolvable / mutual-uncertainty-intrinsic / you-know-more / they-know-more
Who has what knowledge relevant to the decision. Activates deception-vs-disclosure dynamic, advantage shapes, and whether "tell the truth" is a meaningful option.
- Symmetric-complete — both parties have all relevant facts. Produces values-based reasoning.
- Mutual-uncertainty-resolvable — both parties face fog, but research/consult would yield more info. Option space includes "delay and research."
- Mutual-uncertainty-intrinsic — both parties face fog that no work resolves (S4 Priya: startup outcome fundamentally unpredictable at decision moment). Risk-handling reasoning rather than information-seeking.
- You-know-more — dyadic asymmetry favoring the player
- They-know-more — dyadic asymmetry favoring counterparty
Asymmetric values tag against the most-salient counterparty when scenarios are multi-party.
9. Counterparty agency¶
Values: static / reactive / strategic
Is the other side a parameter or a game-player?
- Static — counterparty doesn't react (terrain, market, deceased relative's wishes, missing child)
- Reactive — counterparty responds to your choice but doesn't pre-anticipate
- Strategic — counterparty is reading you, pre-anticipating, making moves
Changes whether your choice is allocation (static) or a move in a game (strategic).
10. Visibility¶
Values: private / dyadic-observed / group-observed / publicly-observed / deferred-audit
Is the choice witnessed, by whom, when. Activates reputational cost, social-pressure-in-the-moment, and constraints on what player can say vs. think.
- Private — no observation, ever
- Dyadic-observed — one other party watches
- Group-observed — 3–20 named watchers, peer-accountability dynamic (committee, hiring panel, carousel queue)
- Publicly-observed — >20, anonymous crowd, performance-to-audience dynamic
- Deferred-audit — unobserved at decision moment but reviewed later (recordings, board accountability, FOIA, surveillance, NDA legal records). Activates reputational stakes at decision time without live observation.
Scenarios commonly have multiple visibility values (group-observed live + deferred-audit later).
11. Stakes magnitude¶
Values: trivial / meaningful / serious / life-defining
Worst-case cost on the most-costly dimension.
Specified objectively, relative to a calibrated reference player (median Pulse user demographics — income, life stage, dependents). The subjective threshold-difference is what we measure in response, not what we specify.
Example: a €80K choice tagged "serious." CoachJ at €80K says "math is the math" (high threshold — choice is easy). Different player at same magnitude says "I can't sleep" (low threshold — choice is hard). Same scenario, different signal. That's the point.
12. Default outcome¶
Values: favors-action / favors-inaction-static / favors-inaction-dynamic / forces-choice
What happens if the player doesn't act. Activates omission-vs-commission, status-quo bias, "I didn't do anything" reasoning.
- Favors-action — an active outcome happens by default (vote passes if you abstain; lighter treatment proceeds by week 6; auto-renewal). Sub-shapes (shape-via-vote / override-only / etc.) captured by axis 7 authority.
- Favors-inaction-static — status quo continues, nothing accumulates (private financial decision, deferring a friend reach-out)
- Favors-inaction-dynamic — situation accumulates if you don't act (untreated health markers worsen; misconduct continues; press pressure mounts). Activates "how long can I delay" reasoning that static doesn't.
- Forces-choice — you can't escape being read as having chosen. Physical mechanism (carousel gate closes) or social mechanism (silence reads as confirmation).
Content layer¶
C1. Cost categories in tension¶
Values: subset of {relational, financial, reputational, developmental, physical, integrity}
Which value categories pull against each other in this scenario. Load-bearing for distinguishing scenarios that share structural cube vectors but differ in cost mix.
Example: career relocation (S1) and Big-Tech-vs-climate (S5) have nearly identical structural vectors but differ on which costs are in tension (S1 has caregiving in the mix; S5 doesn't). C1 separates them.
Categories aren't mutually exclusive — most scenarios put 2–4 in tension.
C2. Expertise requirement¶
Values: low / moderate / high / expert-only
How much domain-specific competence the scenario demands to engage meaningfully — not just to understand the words (Principle 10's jargon test handles vocabulary), but to reason within the scenario's conceptual framework.
- Low — everyday framing; any literate adult can fully engage. Most relational, basic career, basic financial scenarios.
- Moderate — some technical concepts present, but well-glossed and accessible with general analytical comfort. Medical consent decisions, surgical scheduling, cosigning paperwork, fire-management probabilities.
- High — sustained engagement with specialist conceptual framework required. IP-law-meets-ML-training, post-surgical infection-rate statistical analysis, Ponzi-shaped ledger pattern detection.
- Expert-only — the scenario assumes the player already operates in expert mode; non-experts cannot meaningfully reason within it even with good glossing.
Distinct from axis 8 (information topology): axis 8 captures who knows what (you-know-more / they-know-more / mutual uncertainty). C2 captures whether the scenario itself demands expert framework to engage. A scenario can be axis 8 = symmetric-complete (both parties have the same facts) AND C2 = high (those facts require statistical literacy to interpret).
Distinct from Principle 10 (jargon test): the jargon test enforces inline definitions for specialist vocabulary; it bounds surface jargon. C2 captures the deeper requirement — even with terms fully defined, the conceptual framework (probabilistic reasoning, balance-sheet logic, clinical pattern detection) may be expert-only.
Pairs with measured outcome M3 (domain-confidence asymmetry): C2 is the scenario-side anchor; M3 is the player-side correlate. Together they decompose "this player's conviction dropped" into "this scenario demanded expertise X" and "this player has domain confidence Y."
Why this is content-layer, not structural: C2 captures how the tradeoff is presented (vocabulary, conceptual framework, framing), not the structural decision-shape itself. Same structural decision (whether to authorize an intervention with life-defining stakes under forces-choice + symmetric-complete info) can be rendered at low or high C2 — the shape is invariant; the surface varies.
Strategic note (per ADR-074 multi-domain positioning): measuring expertise-requirement gives Pulse a possible product-expansion vector — distinguishing "this player has confident judgment in this domain" from "this player would defer to expert framework here." Opens parallel positioning as a knowledge layer adjacent to the judgment layer. Tagging C2 systematically preserves that optionality.
Added 2026-05-31 from cross-domain experiment evidence + measurement-schema OQ-5. See project-cube-expertise-requirement-axis-provisional memory for the deliberation that led from a provisional axis-13 to confirmed content-layer C2.
Measured outcomes¶
Not scenario axes — properties of the player × scenario interaction, observed in response. The cube does not specify these; the response reveals them.
| Property | Observed in | Notes |
|---|---|---|
| Identity load | Rationale richness, conviction-without-articulation, explicit self-aware aspiration gap statements | High when the scenario's topic intersects what the player has internalized as self-image. Player-conditional, not scenario-conditional. Connects to the self-aware aspiration gap signal from experiment-new-domain-signals.md. |
| Subjective stakes threshold | Conviction × choice direction at calibrated objective magnitudes | Cube specifies objective magnitude; response reveals where the player's subjective threshold sits. |
Identity load was initially considered as a primitive cube axis (during round 1 swings) and as a derived dimension. Both rejected — three test scenarios (solo novelist / private retirement / trolley) showed identity load depending on the player's internalized self-image, not the scenario's structure. It's not a scenario property at all.
Axis independence — correlated but not redundant¶
The 12 structural axes are independent in the sense that each carries unique information, but some pairs are correlated — values on one constrain (but don't determine) values on another. Worth being explicit about the most common correlations so users don't confuse correlation for redundancy.
- Axis 5 (scope) and axis 6 (distance) co-vary partially but are distinct questions. Scope = how many people are materially affected. Distance = how close the player is to the most-affected party. You can have wide scope at high distance (decisions affecting an institutional-abstract collective) or narrow scope at intimate distance (S6 health overhaul: scope = self, distance = self). Both are needed.
- Axis 8 (information topology) and axis 9 (counterparty agency) co-vary partially but are distinct questions. Topology = what each side knows. Agency = what the counterparty does with what they know. A strategic counterparty under symmetric-complete information behaves very differently from a strategic counterparty under mutual-uncertainty-intrinsic — same agency value, different play because the topology shapes their move space.
- Axis 11 (stakes magnitude) and axis 5 (scope) co-vary partially. Wider scope tends to raise magnitude (more affected parties → higher total stakes). But magnitude depends on per-party severity, not just count. A small-scope life-defining scenario (S6 health, self-scope, lifelong condition) and an institution-scope serious scenario (a board policy change) have inverted scope-magnitude relationships.
Tagging tip: when an axis pair feels redundant for the scenario you're building, the cube is telling you the scenario is in a default-cluster region. Force one axis to a non-default value to push into less-sampled territory.
Tagging conventions¶
- Reference player calibration — magnitude and horizon values are calibrated to a median Pulse user (working-age adult, 35–45, dual income, no extreme dependents). Same scenario can shift value for a much-younger or much-older player; the cube tag uses the reference; the response reveals the player-specific reading.
- Dominant component rule — scenarios often have multi-component values on a single axis (S4 Priya has full reversibility on the investment side and partial-permanent on the relationship side). Tag by the dominant component; let other axes carry the secondary structure.
- Multi-value tags allowed where natural — visibility often combines (group-observed + deferred-audit). Scope often combines (institution + future-generations). Resist over-collapsing.
- The cube specifies condition, not surface — sci-fi scenarios with life-defining magnitude and boardroom scenarios with life-defining magnitude can have identical cube vectors; the cube doesn't see the surface domain. That's the point of the cross-domain experiment.
Submerged candidates¶
Logged so we don't re-litigate them.
| Candidate | Why submerged | Where it lives instead |
|---|---|---|
| Promise weight × promise recipient | Only fires when a promise exists; not primitive | Special case of axis 1 (prior commitment) + axis 6 (distance) |
| Stakeholder count (1/2/group/system) | Counting wasn't load-bearing; distribution and distance mattered | Split into axis 5 (scope) and axis 6 (distance) |
| Cost type taxonomy as axis | Taxonomy of damage, not an axis. The axis is which categories are in tension. | Content-layer dimension C1 |
| Time pressure (single axis) | Was conflating two independent things | Split into axis 2 (deadline) and axis 3 (horizon) |
| Identity load as scenario axis | Depends on player's self-image, not scenario structure | Measured outcomes bin |
| Generational as horizon value | Structurally a combination, not a primitive | Axis 5 (future-generations scope) + axis 3 (lifelong horizon) |
Corpus findings¶
After decomposing 29 scenarios (8 personal-domain from experiment-new-domain-signals.md + 20 governance grid coverage + 9 within-cell variance check):
Governance subspace properties¶
- Authority distribution: 5% full / 5% oversight / 45% collective-vote / 45% influence-only / 0% none. Personal-domain scenarios use full and oversight heavily; governance is dominated by collective-vote and influence-only.
- Default outcome distribution: 75% forces-choice / 25% favors-inaction-dynamic / 0% favors-inaction-static / 0% favors-action. Static and favors-action are genuinely absent from the governance corpus — deliberate design choice to close the "do nothing" escape hatch.
- Information topology distribution: ~45% symmetric-complete / ~40% you-know-more / ~25% mutual-uncertainty (overlap). Roughly balanced. Asymmetric scenarios emerge systematically when player has insider expertise (NDA, whistleblower, advisor with privileged knowledge, closed session).
- Stakes magnitude: ~60% life-defining, ~25% serious, ~15% borderline. Meaningful and trivial absent.
- Decision deadline: Full range from minutes to soft. Hours-mode most common.
- Scope: institution dominant (~75%); future-generations appears in ~25% when constitutional/precedent themes activate; personal/self/dyad absent.
Within-cell variance patterns¶
Different (theme × category) cells have different cube-signature tightness.
| Cell | Cube signature |
|---|---|
| Underground + governance | Tight signature — whistleblower formula with influence-only authority, life-defining stakes, forces-choice, you-know-more topology repeats across scenarios |
| Frontier + governance | Intermediate — clusters on stakes (life-defining) and scope (institution + future-generations), varies on authority and info |
| Boardroom + governance | Wide signature — corporate dilemmas span most cube axes; the most diverse cell |
Implication for corpus design: Boardroom can be deliberately diversified along most axes (variance is producible). Underground has a tight signature that may be harder to break out of without deliberate axis-breaking.
Independent generator convergence¶
The governance scenario generator at src/lib/ai/scenario-generator.ts was built without a dimensional model — just intuition and iteration over six months. The cube's axis 7 enumeration (full / oversight / collective-vote / influence-only / none) emerged independently as the generator's Tier 1 / Tier 2 / Tier 3 framing in Principle 14. Same distinction; different vocabulary. External validation that the cube captures real structure.
Generator integration recommendations¶
The cube's natural integration point is the generator's existing planning block (line 339+ of scenario-generator.ts), which already forces structural commitment before drafting prose. Adding a cubeVector field there would force explicit commitment to all 12 axis values before generating.
Specific axes the generator currently lacks explicit knobs for:
- Stakes magnitude — generator forces "name the specific worst case" but doesn't have a magnitude dial. Magnitude rides on surface domain, not deliberate parameter. Adding the knob would expand the corpus into undersampled corners (boardroom-at-life-defining, sci-fi-at-meaningful).
- Default outcome — currently partial; forces-choice and inaction-dynamic emerge but inaction-static and favors-action are absent. Each default reveals a different signal (constraint / deferral / urgency / interventionism). The corpus default of forces-choice should remain default-default — but inaction-static and favors-action should be deliberately included for signal coverage.
- Information topology — currently emerges from theme (NDA, whistleblower → asymmetric; corporate procedural → symmetric). Explicit knob would let generator dial it independent of theme.
- Visibility — private vs. group-observed vs. publicly-observed vs. deferred-audit currently emerges from theme. Explicit knob would unlock the deferred-audit and group-observed corners deliberately.
- Collective-vote content rule — when axis 7 = collective-vote (occurs in 45% of governance scenarios), the scenario should explicitly surface peer dynamics, named other voters with leanings, and the cost of how each choice reads to peers. Currently this is implicit in most collective-vote scenarios; only Constitutional Vote in the sample fully uses the peer-dynamics surface area.
The generator's existing content rules and quality discipline (name-diversity, gender-balance, jargon test, scan strip clarity, banned voice patterns, narrative-bleed detector, lock-in-per-option, cast block coverage) are complementary to the cube — they ensure structural condition is rendered well into prose. The cube doesn't replace them.
Naming note: the generator's "Value Tensions to Surface" section (lines 180–196, renamed 2026-05-30 from "Dimensions to Test") is a value-pair list and is distinct from cube dimensions. The pre-emptive rename prevents collision when cube integration happens.
Parked questions¶
Items to revisit if specific triggers fire.
- By-position vs. by-effort within asymmetric info topology. Real distinction surfaced during axis 8 re-attack: you-know-more-because-they-couldn't-have-known (doctor) vs. you-know-more-because-they-didn't-read-the-fine-print (lazy partner) imply different disclosure duties. Currently treated as content-layer texture handled via C1. Promote to cube split if play testing shows C1 doesn't carry the distinction.
- Active vs. passive recovery within partial-recoverable (axis 4). Real distinction surfaced during axis 4 re-attack: publicly-insulted-colleague (active recovery — apology + sustained behavior change) vs. bad-investment (passive recovery — wait for market). Currently treated as content-layer. Same family as parked #1 — both are "shape of consequence path."
- Domain as content-layer surface vs. cube-relevant variable. Sci-fi pushes stakes magnitude up by default; boardroom doesn't. Probably yes that domain is a generator setting that pre-loads certain cube cells. Worth being explicit when cube integration happens.
- Full-authority gap in governance corpus. Only 5% of governance samples are full authority. Cube allows it; corpus rarely produces it. Personal-domain scenarios use full authority readily. Worth deliberately adding more full-authority governance scenarios to round out coverage.
- Personal/self/dyad scope gap in governance corpus. Governance scenarios are 75% institution-scope. Smaller-scope governance scenarios are possible (Three Questions: 3 employees + advisor, small group scope, governance signal still emerges) but rare. Worth corpus-design attention.
- Fiction-fidelity as a confound, not a flavor. (Raised Jun 1 all-hands.) How "real" a scenario feels (real-plausible ↔ pure-fiction) systematically shifts felt stakes and engagement — a reckless choice in obvious sci-fi is ambiguous between genuine risk tolerance and disengagement-from-fiction. Today fiction is only a domain hint (sci-fi pushes stakes magnitude up, parked #3) and the player side is half-built:
M9context-bleed detects reaching out of the fiction but isn't used to correct the risk confound. Candidate fix: promote fiction-fidelity to a tagged content-layer dimension (like C2), pair it withM9(like C2↔M3), and disentangle via a fiction × stakes 2×2 within-player. Full write-up:docs/research/briefs/fiction-fidelity-confound.md. Same family as parked #3 (domain pre-loads cube cells).
Falsification conditions¶
The cube is wrong if:
- Missing structural axis — two scenarios with identical structural cube vectors produce reliably different responses from the same player, even after content-layer dimensions (C1, etc.) are held identical.
- Non-load-bearing axis — varying a single axis while holding others constant produces no behavioral difference across players. Submerge it.
- Cross-domain signal failure — hold cube vector constant, vary surface domain. If signals don't generalize for a player who should be consistent (per their existing profile), either the cube is missing something or domain is interfering with measurement.
What this doc is NOT¶
- Not a generator spec — the generator prompt informed by the cube comes later. Integration recommendations above are starting points, not full specs.
- Not an audit of the existing corpus — corpus findings above are based on 29 sampled scenarios. Full audit would require tagging all 254 curated scenarios; that's a separate effort.
- Not a falsification protocol — the falsification conditions above are necessary triggers, not full experimental designs.
- Not a frozen artifact — the cube is expected to iterate as it gets used. Parked questions exist precisely because they'll need resolution under load.