Skip to content

ADR-073: Starter pack scenario design

Status: Accepted Date: 2026-05-30 Context: The May 29 Cici × CoachJ UX session established a starter pack of 6 scenarios as the gated onboarding experience — solo and multiplayer remain locked until completion. The progression sketch maps levels 1–4 to the starter pack and the early free-play phase (games 7–20). After game ~20, the dashboard graduates to the coherence bar toward 95%. This ADR captures the design decisions made during the scenario-drafting session that produced scenarios 1–4 in docs/starter-pack/scenarios.md.

At a glance

What it decides: The gated onboarding starter pack is 6 personal/values scenarios (not governance), each with 4 options A–D at the full v2 generator contract, paired with cold-written universal insights. Slots 1–2 are short new hooks; slots 3–6 reuse May 27 experiment scenarios that already produced articulable tradeoffs.

  • Personal/values, not governance new users feel "this is easy and my AI is learning about me" before hitting the structural weight of a real governance scenario.
  • Universal insights are the v1 contract every player picking an option gets the same insight, naming the shape of the choice with a hedged Noticed pattern: line; rationale-aware AI insights are a deferred v2.
  • Pre-flight gate: articulable tradeoff a scenario must, on play, let the player name a cost they resolved — otherwise it collapsed into preference elicitation and is rebuilt before insights are authored.
  • Cube-vector audit drove two changes slot 3's deadline was tightened (inaction-static → forces-choice); the carousel swap was rejected because slot 5 is the pack's only deliberation slot.
  • Watch: personal/values signals don't yet map to the 12-signal governance schema, so this data is "stored but not structured" until a schema extension ships; slot 6 is no longer the governance bridge (superseded).
flowchart LR
    S1["Slot 1 — Manager's Mistake (new, ~150w)"] --> S2["Slot 2 — Friend's New Partner (new, ~160w)"]
    S2 --> S3["Slot 3 — Marco/Elena (May 27)"]
    S3 --> S4["Slot 4 — Aaron/Maya secret (May 27)"]
    S4 --> S5["Slot 5 — Lifestyle prescription (May 27)"]
    S5 --> S6["Slot 6 — Relocation offer / boss slot (May 27)"]
    S6 --> FP["Free play → governance corpus"]

Six-slot composition: short universal hooks first, May 27 experiment scenarios for slots 3–6, then graduation into the governance corpus.

Decisions

1. Starter pack uses personal/values scenarios, not governance

The corpus is governance. The starter pack is values-based, accessible, no domain knowledge required. The bridge: scenario 6 is the first governance scenario, serving as the transition into the corpus.

Rationale: Per the May 28 daily sync diagnosis, new users need to feel "this is easy and fun and my AI is learning about me" before they hit the structural weight of a real governance scenario. The experiment-new-domain-signals run (Phase 1) showed personal-stakes scenarios produce strong signal without requiring domain knowledge. Starting with governance risks selection bias toward users who already understand the domain.

Trade-off accepted: The starter pack collects signals (relational, values-based) that the current profile schema can't fully represent. Domain-conditional signals (per the experiment findings) need a schema extension before they're useful for agent context. The starter pack data is "stored but not yet structured" until that ships.

2. Three options per scenario, not four

The corpus uses A–D. The starter pack uses A/B/C.

Rationale: Personal scenarios have fewer axes than governance scenarios (typically 1–2 vs. governance's 3–4). A fourth option in a personal scenario tends to either split an existing option into finer-grained versions (diluting signal) or invent a fourth reframe that feels redundant. Three options force each option to be a distinct stance.

Alternative considered: Four options for consistency with the corpus. Rejected because consistency for its own sake adds noise.

3. Option C varies its reframe shape across scenarios

C is the "third path" option. Across the starter pack, C should test different reframe patterns: - Scenario 1 C: partial commitment on the same axis (flag one weakness, leave the other) - Scenario 2 C: same action with modified terms (cover the money, agree on payback) - Scenario 3 C: same goal with different timing/manner (defend Lucia, but after Marcus finishes)

Rationale: If every C tests the same "split the difference" pattern, the starter pack teaches the player one reframe move and fires the same signal three times. Varying the C shape lets us catch multiple reframe styles — partial commitment, modified terms, timing/manner shift, etc.

4. Universal insights, written cold against the option

Every player who picks A gets the same A insight. The insight names the shape of the choice (e.g., "honesty over loyalty"), not the specific reason a particular player picked it.

Rationale: Pre-written insights have to serve a mixed population. Each option has many plausible reasons someone picks it; an insight written for one of those reasons lands for that player and feels hollow for the others. Universal-shape insights land directionally for everyone — never as the perfect personal read, but always as a true read.

Alternatives considered: - Variant insights per option, matched to player rationale at reveal time via keyword or signal matching. Rejected for v1 — adds a content-matching system and significant authoring work without evidence that universal insights fail. - AI-generated insights at reveal time, using the player's typed rationale as input. Considered as the v2 path. Deferred until playtest signal shows players are saying "the insight didn't capture me." Cheap and fast as an AI call; flagged for revisit after game 1 lands in production.

Trade-off accepted: The cold-written insight will feel "close but not quite" to a player whose reasoning was particular. CoachJ confirmed this empirically on scenario 4: the cold A insight captured ~60% of what his rationale revealed and missed the "delegate to the person whose job it is" framing that was the actual heart of his choice. That's the cost of v1 universal insights, and it's acceptable for the game-1 goal of introducing the concept that the AI is reading the player.

5. Two-sentence insight structure with hedged pattern voice

Each insight has: 1. A scenario-specific observation ("You chose protection over exposure.") — concrete, anchored to what just happened. 2. A Noticed pattern: line ("you tend to act early when you can see how things will play out") — hedged generalization, addresses the player, never declarative.

Add the second sentence only if it adds a new observation. Don't extend just to balance length.

Rationale: The first sentence lands because the player just lived the moment. The second extends it as a hypothesis the player can recognize or reject — honest given that one data point can't earn a declarative pattern.

Alternatives considered: - Declarative "Pattern: X" label. Rejected — over-claims after one play and lets the reader dismiss the hedge by ignoring the label. - "This often shows up as..." — earlier voice, fine in prose but doesn't land next to a UI lightbulb icon. Replaced with Noticed pattern: which reads more cleanly in interface contexts. - "People who choose this:" group-frame — honest about the data but makes the AI sound like a category lookup rather than reading the player. Rejected.

6. Insight authoring rules (codified)

Eleven rules captured during iteration, stored in docs/starter-pack/scenarios.md. Summary:

  1. Name the choice as a behavior, not an identity.
  2. Lead with what they believed, not what they did that was hard.
  3. Write in language a person would actually use to describe themselves.
  4. No internal design vocabulary.
  5. No metaphors or analogies. Be straight.
  6. Write for non-native English readers (no idioms, no jargon, no register-shifting metaphor).
  7. Only name costs the scenario establishes (no inferred costs).
  8. Insights must not contradict the scenario.
  9. Name the cost the player actually felt, not the symmetrical one.
  10. Stop when you've said the thing.
  11. Vary the shape of Option C across the starter pack.

These rules emerged from failures in scenarios 1–4 and represent the cost of building scenarios in a category (personal/values) that doesn't have an existing generator prompt. They should be encoded into a generator prompt once the starter pack stabilizes, matching the v1.7.0 governance generator pattern.

7b. v1 → v2 format reconciliation (added 2026-05-30, second session)

Scenarios 1–4 drafted in the first session undershot the actual generator contract — three options instead of four, 75–150 word bodies instead of 200–250, no quoted cast voices, no Cost lines, 3-token scan strips instead of the 4-row structure. The second session reconciled the starter pack format to the governance generator contract (src/lib/ai/scenario-generator.ts, ADR-061 + ADR-063): the starter pack is the same scaffolding as the corpus, applied to a different domain. Not a different format.

v2 contract for the starter pack (matches the governance generator):

  • 4-row scan strip: you_are / what_happened / deadline / question, each ≤ 70 chars target, ≤ 100 hard cap, cold-readable
  • Cast block required when ≥ 2 named characters appear — name / role / stake, 3–5 entries
  • One direct quote allowed in the description from the recurring/decision-shaping character
  • 200–250 word body target, 290 hard ceiling (slots 1–2 may run shorter — ~140–180 — for fast hook)
  • 4 options A/B/C/D, each with a specific Cost line that locks out the others
  • Option C varies its reframe shape across the starter pack (per decision 3)

v2 slot composition:

Slot Source Length Domain
1 New (v2) — "The Manager's Mistake" ~150 words Workplace, observation moment
2 New (v2) — "The Friend's New Partner" ~160 words Friendship, asked-for read
3 May 27 #7 — Marco/Elena intro ~220 words Network stewardship
4 May 27 #3 — Aaron/Maya secret ~240 words Friendship, confidence held
5 May 27 #6 — Lifestyle prescription ~240 words Health, long-horizon
6 May 27 #1 — Relocation offer ~240 words Career, family, scope (boss slot)

Selection logic. Slots 1–2 are short, universally legible, no domain-specific numbers — fast hook for game 1. Slots 3–6 reuse the May 27 experiment scenarios (already at the generator contract, already produced articulable tradeoffs in 8 of 8 plays). The CoachJ-specific texture (city, $185K→$263K salary, Series B equity) is preserved for the v1 ship; light universalization (city names → relative phrasing, $-amounts → "significant raise") is a follow-up if playtest signal warrants. The May 27 scenarios not used: #2 (early-stage disease — duplicates #6's health axis), #4 (Priya $50K invest — finance numbers and life-stage assumptions too specific for slot position), #5 (climate-tech career — overlaps #1's career-shift axis), #8 (debt vs. invest math — least universally legible per session note).

Insights for slots 1–6 are written cold against the option (per decision 4), two sentences with hedged Noticed pattern: (per decision 5), following the 12 insight authoring rules and 7 scenario authoring rules captured in docs/starter-pack/scenarios.md.

Status of v1 scenarios. Scenarios A1–A3 (the renamed v1 drafts) are kept as an appendix in docs/starter-pack/scenarios.md for reference — they were a learning pass that produced the authoring rules. Not shipped. Scenario A4 was never drafted.

Rationale for keeping May 27 scenarios largely intact rather than universalizing first. The CoachJ-specific texture (a sister in another city, a 42% raise, a Series B equity grant) is real friction for some players, but the alternative — generic "a family member," "a significant raise," "early-stage equity" — collapses the specificity that makes the scenarios feel like real decisions. The May 27 experiment showed that articulable tradeoffs emerge from concrete numbers, not despite them. Universalizing the texture is a tracked follow-up if playtest signal shows new players bouncing off the specifics, not an upfront cost.

7. Pre-flight test: scenario must produce articulable tradeoff

Before insights are written for a scenario, the scenario is played and the rationale checked against the experiment-new-domain-signals test: can the player articulate a tradeoff they resolved? If yes, the scenario passes. If the choice feels obvious with no acknowledged cost, the scenario collapsed into preference elicitation and must be rebuilt before insights are authored.

Rationale: Catches scenario design failures early. Scenario 3 went through two premises (Two Friends One Referral → The Comment at Dinner) because the first version's Option C wasn't meaningfully distinct from Option A under play — only surfaced by playing it, not by reviewing the draft.

8. Cube-vector audit (added 2026-05-30, third session)

After the scenario dimension cube stabilized (docs/research/foundations/scenario-dimension-cube.md), the v2 starter pack was decomposed across all 12 structural axes + C1 to test whether the 6 slots span the design space cleanly or cluster in a narrow corner. Full table and distribution analysis lives in docs/starter-pack/scenarios.md § Cube-vector audit; this entry captures only the decisions the audit drove.

Audit conclusions.

The pack actually spans most axes reasonably well: deadline covers sec/min/hours/days/weeks, commitment covers none/soft/strong, scope covers self/dyad/sm-grp, magnitude ramps meaningful → life-defining across slots 1–6. Authority — once tagged on the consequential outcome rather than the speech act — is 3 full / 3 influence-only-with-stake / 1 mixed, satisfying project-player-must-have-authority-or-stake for every slot.

Clustering: info topology is concentrated in you-know-more (4 slots) and mutual-uncertainty-intrinsic (3 slots); counterparty agency is almost entirely reactive (6 of 7); C1 cost categories are heavy on relational × integrity. Most of this clustering is intentional for a personal-values pack (strategic counterparty and publicly-observed visibility read wrong at intimate scale; institution scope re-introduces governance friction).

Two changes the audit drove:

  1. Slot 3 deadline tightened. Original slot 3 was the only slot tagged favors-inaction-static (the dangerous default per project-forces-choice-is-deliberate-design). Adding Marco's Friday round-close + Elena's three-week lead requirement converts inact-static → forces-choice and bumps deadline from hours to days. No options-side change required. Applied in scenarios.md.

  2. Carousel swap settled: do not swap. Decomposing the carousel against current slot 5 (lifestyle prescription) showed structural diff across 8 of 13 axes — they are not duplicates. Slot 5 uniquely holds 6 axis values (weeks-deadline, self-scope, self-distance, lifelong-horizon, static-counterparty, favors-inaction-dynamic); swapping it out collapses the pack's only deliberation slot. Carousel's unique contribution (physical-mechanism forcing function + scope-out-during-personal-commitment via second-degree connection) is real but doesn't dominate any current slot enough to justify a swap. Re-trigger for the carousel moves from "playtest bouncing off founder/health frame" to a structural trigger: if the starter pack expands beyond 6 slots, carousel is the highest-value addition because its dimensional cell isn't otherwise covered.

Gaps the audit surfaced as appropriate-to-leave (documented for future expansion, not addressed now): no they-know-more topology, no mutual-uncertainty-resolvable, no symmetric-complete, no strategic counterparty, no publicly-observed visibility, no full or none reversibility. A future 9–12-slot pack could deliberately add scenarios in these cells.

Method note. The cube proved its own value here: the "carousel duplicates slot 5" hypothesis was intuitive and felt true from a domain-similarity read (both health-adjacent, both life-defining stakes). Decomposing against the cube made it falsifiable, and the structural diff falsified it. Future scenario-swap proposals should run a cube-vector comparison before reaching for a swap.

Discussion

The biggest tension during this session was between writing insights that feel personal (specific to the player's reasoning) vs. insights that work for everyone choosing that option. Both have failure modes:

  • Too specific → wrong for most players who picked the same option for different reasons.
  • Too universal → feels generic, doesn't deliver the "the AI saw me" moment.

The resolution was to acknowledge this is a real product gap and choose v1 vs. v2 paths accordingly. v1 (universal) ships first because it's authorable now and good enough for game 1's job. v2 (rationale-aware AI generation) is the right next step but only after playtest signal confirms it's needed.

A related tension: the starter pack scenarios are doing something the governance corpus doesn't (personal/values) and there's no existing generator prompt for them. Every rule added to the file was a rule the governance generator already enforces but we had to discover by failure. This means starter pack scenarios will be expensive to author until either (a) the rules stabilize and a starter-pack generator is built, or (b) the starter pack stays small enough (6 scenarios) that hand-authoring is fine.

CoachJ flagged during scenario 4 that cold-written universal insights miss specific player reasoning. The path forward is: ship v1 universal insights, gather playtest signal, and if "didn't capture me" is a common complaint, build v2 with an AI call at reveal time. That's an explicit deferral, not an oversight.

Consequences

  • All 6 starter pack slots are drafted in docs/starter-pack/scenarios.md at the v2 contract (slots 1–2 new, slots 3–6 sourced from the May 27 experiment set with insights authored fresh). The v1 drafts (renamed A1–A3) are kept in the appendix as a reference for the rule-discovery pass.
  • Slot 3 was tightened post-cube-audit to convert favors-inaction-static → forces-choice. Marco's round-close deadline and Elena's three-week lead requirement are now stated explicitly in the scan strip + body. See decision 8.
  • Cube vector table is the canonical structural reference for the pack. Lives in docs/starter-pack/scenarios.md § Cube-vector audit. Any future scenario swap or addition should run a cube-vector comparison before changing the slot composition.
  • Scenario 6 is NOT a governance scenario. The earlier consequence ("scenario 6 = first governance scenario, the transition into the corpus") is superseded — slot 6 is now the "boss-level" career scenario from the May 27 set. The transition into the governance corpus happens after the starter pack completes (post-game-6 in the free-play phase), not inside it. Rationale: the May 27 set produced articulable tradeoffs on personal/values; switching domain in slot 6 would re-introduce the "domain knowledge required" friction the starter pack was designed to remove.
  • Universal insights are the v1 contract. Players will see the same insight for the same option choice. v2 personalization is a tracked deferral.
  • Schema gap remains: the personal/values signals these scenarios fire (relational, values-based) don't cleanly map to the current 12-signal governance schema. Until the schema extension ships (per experiment findings on domain-conditional signals), the starter pack collects data the agent context block can't fully use yet.
  • Generator-prompt work is deferred until the rules stabilize and the starter pack is fully authored.

Triggers for revisit

  • Playtest signal "insights felt generic" → revisit decision 4, move v2 (AI-generated rationale-aware insights) from deferred to scoped.
  • Domain-conditional signals shipped → revisit consequence about schema gap; starter pack data becomes immediately useful for agent context.
  • Starter pack expanded beyond 6 scenarios → revisit "hand-authoring is fine" trade-off and build the starter-pack generator prompt.
  • Playtest signal "the specifics didn't land for me" (e.g., a college student bouncing off "Series B equity" or "your sister's caregiving load") → revisit the decision in 7b to keep the May 27 CoachJ-specific texture intact. Universalize the texture in the affected slot.
  • Real player completes the starter pack and the AI has no governance grounding yet → revisit the superseded "slot 6 = governance bridge" consequence. The current path is "starter pack ends, free play opens into governance corpus"; if that transition feels abrupt in playtest, scope a bridge scenario.
  • Starter pack expands beyond 6 slots → carousel is the highest-value first addition (unique cube cell). After that, deliberately target the gaps the cube audit surfaced: they-know-more topology, strategic counterparty, symmetric-complete-with-explicit-constraint, full-reversibility.
  • Playtest produces consistent "it depends" responses on slot 5 or slot 6 → revisit info-topology explicitness in those scenarios per project-it-depends-traces-to-information-topology. The cube tagged both as mu-intrinsic; if the surface isn't making that explicit enough, players default-imagine missing context.

Key files

  • docs/starter-pack/scenarios.md — the scenario file + rules + insight strategy
  • docs/research/experiments/experiment-new-domain-signals.md — origin of the "articulable tradeoff" test
  • ADR-024 — 12 behavioral signals (the schema starter pack data needs an extension of)
  • ADR-027 — scenario content guardrails (still applies)
  • ADR-061 — Variant D scenario format (starter pack uses it)
  • ADR-063 — cast block and scan strip clarity rules (starter pack inherits)
  • May 29 session note: 01_Projects/Pulse/session-2026-05-29-cici-ux-direction.md

Memory: - project_starter_pack_design (to write) — captures decisions 1–7 in summary form for future-session retrieval