Skip to content

ADR-018: Content Audit — Leading Language and Speed Round "Depends" Escape Hatch

Status: Accepted Date: 2026-03-31 Context: A player observed that scenario option text and speed round questions contained language that telegraphed which option mapped to which internal scoring driver. Words like "middle path," "pragmatic," "safe, conservative approach" let players game the system by selecting options that matched their self-image rather than reflecting genuine decision-making instincts. Additionally, many speed round questions lacked enough situational context for a thoughtful player to form a real preference — the answer was genuinely "it depends" — but no mechanism existed to express that.

Decision

Three interconnected changes:

  1. Rewrite driver-signaling option descriptions in the 19 worst batch 3 scenarios (migration 026). Replace abstract value language ("values and integrity," "bold expansion," "cautious approach") with concrete consequences and trade-offs specific to each scenario.

  2. Enable a "Depends" escape hatch on all speed round swipe questions. The existing show_meh / swipe-up mechanism is repurposed with the label "Depends." Players can swipe up when a question genuinely can't be answered without more context. This response maps to a null driver signal — it provides no scoring signal but doesn't penalize the player.

  3. Harden AI generation prompts for both scenarios and speed round questions with explicit banned-word lists that prevent tension-pair vocabulary from appearing in player-facing text. Add a micro-context quality rule to the speed round prompt requiring concrete stakes in every question.

Rationale

The game's diagnostic value depends on options feeling like genuine choices between worldviews, not vocabulary tests. When a player sees "practical middle ground" as an option, they're measuring self-identification with the word "practical" — not their actual decision-making pattern. The v3 curated scenarios (scenarios-v3.sql) demonstrate the right pattern: option descriptions that name specific dollar amounts, timelines, personnel consequences, and trade-offs without signaling the underlying dimension.

The "Depends" escape hatch addresses a structural problem: binary speed round questions on genuinely context-dependent tensions (especially transparency_vs_growth) can't always be answered honestly in 5 seconds. Rather than forcing a meaningless choice, we let the player honestly say "I need more context." This also generates data — questions with >40% "Depends" responses are candidates for rework or retirement.

Alternatives Considered

  • Rewrite all 73 batch 3 scenarios at once: More thorough but would produce a 1000+ line migration with high risk of introducing new issues. The 19 worst offenders were prioritized; remaining scenarios should be addressed in a follow-up.
  • Remove speed round questions that require context: Would shrink the question pool too aggressively. Better to add micro-context and let "Depends" data identify which questions are truly unsalvageable.
  • Add a "Skip" button instead of "Depends": "Skip" implies the player doesn't want to answer. "Depends" captures meaningful diagnostic signal — the player is saying their answer would change based on circumstances, which is itself informative about their decision-making style.

Discussion

The core tension was between fixing the systemic issue (all batch 3 option descriptions were generated with a template that mapped each option to a driver keyword) and limiting blast radius. We chose to fix the 19 most egregious cases — those identified by grep for terms like "middle path," "middle ground," "values and integrity," "bold expansion" — and flag the remaining ~54 batch 3 scenarios for a follow-up migration. The v3 curated scenarios and their migration-013 rewrites are already at the right quality standard and were not changed.

For speed round questions, the "Depends" mechanism reuses existing infrastructure (show_meh in SwipeQuestion component) rather than building a new UI element. The label change from "Meh" to "Depends" better communicates the intent. AI-generated swipe questions will also include the "Depends" config automatically.

The micro-context rewrites for transparency_vs_growth questions were targeted at the ~10 most abstract questions in that tension pair. The rewrite pattern adds one concrete detail (team size, dollar amount, timeline, or specific consequence) without exceeding ~140 characters for mobile readability.

Consequences

  • 19 batch 3 scenario option descriptions are now concrete and consequence-focused
  • All ~80 curated swipe questions now show "Depends" as a swipe-up option
  • AI-generated swipe questions automatically include the "Depends" escape hatch
  • Speed round and scenario generation prompts now explicitly ban leading vocabulary
  • Speed round prompt no longer bans apostrophes; uses sanitizeQuotes() post-generation instead
  • ~54 remaining batch 3 scenarios still have driver-signaling descriptions — tracked for follow-up
  • "Depends" response data should be monitored to identify low-quality questions (>40% threshold)

Key files: - migrations/026_audit_leading_language.sql — all SQL content fixes - src/app/api/speed-round/generate-question/route.ts — speed round prompt hardening + quote sanitization - src/lib/ai/scenario-generator.ts — main scenario prompt hardening - src/components/speed-round/mechanics/SwipeQuestion.tsx — default label change to "Depends"