# Conflicts: # CHANGELOG.md # content/_meta/README.md # content/_meta/npc-authoring-style-guide.md # wiki/_templates/cultural-group.md # wiki/_templates/institution.md # wiki/_templates/star-system.md # wiki/characters/devra.md # wiki/characters/drin.md # wiki/characters/harek.md # wiki/characters/lera-sessik.md # wiki/characters/maret-korr.md # wiki/characters/naia-tamm.md # wiki/characters/nils-davan.md # wiki/characters/pell.md # wiki/characters/renn.md # wiki/characters/resha.md # wiki/characters/sabel.md # wiki/characters/sera-venn.md # wiki/characters/torek-lintar.md # wiki/characters/voss.md # wiki/star-systems/krenn/index.md
7.6 KiB
title, description, type, status, sprint, team
| title | description | type | status | sprint | team |
|---|---|---|---|---|---|
| Sprint 15 — Copy Briefing | Opening hook content for smuggler/detective, access tier filtering, relationship history | sprint | archived | 15 | copy |
Sprint 15: React — Copy Tasks
Goal: The player acts and the world reacts — follow and examine mechanics connect the player to the living NPC simulation; the dialogue system's first two access layers open up information gating; server-side monologue events fire in context; and the personality/tell system completes the NPC data model.
Branch: copy
Agents: Mellanie (lead author), Paula (narrative design), Gestalt (systems/content architecture)
New Tickets
| # | Title | Blocked by |
|---|---|---|
| #299 | Opening hook content — smuggler first 5 minutes | all blockers done |
| #300 | Opening hook content — detective first 5 minutes | all blockers done |
| #169 | Layer 1: Access tier filtering (content for dialogue system) | — |
| #170 | Layer 2: Relationship history (content for dialogue system) | — |
Use db/connectors/ticket show <id> for full details.
Key Decisions
decisions/content.md— D-016 (internal monologue functions: perception bridge, atmosphere, diegetic tutorial, unreliable narrator), D-024 (10-axis NPC model; personality traits, tell system), D-028 (dialogue 4-layer architecture: access tiers → relationship history → trust gossip → unprompted disclosure), D-032 (separate monologue pools per character — hard partition), D-034 (THE FRIEND pattern: Kael Davan / Sera Venn), D-035 (converged tag taxonomy — 6 structural + 3 selection tags; 9 mood states post Sprint 14 amendment), D-036 (Sova Transit District setting, Van Maanen's Star naming conventions), D-075 (dialogue filtering: KnowledgeConfidence gates TrustTier, not AccessTier)decisions/perception.md— D-060 (cognitive delay 0.6s / 0.3s), D-061 (unified dialogue log, bottom screen, max 20% height, max 640px wide), D-062 (invisible locked options — no lock icons), D-063 (confrontation: same box, different weight — italicized first-person voice), D-064 (walk-away: three-phase consequences, KG records incompleteness), D-078 (overheard NPC conversation — passive panel with occlusion filter; monologue reacts viawitness_interactiontrigger)
Notes
-
#299 Opening hook — smuggler first 5 minutes: All blockers are done: Dual Lens Authoring Guide (#261), character voice speech patterns (#310), knowledge state vocabulary (#309), monologue display visual spec (#315). This is the single most important content deliverable in the game — it blocks all playtest feedback and defines first impressions. Deliver 10-15 tightly sequenced monologue lines structured as a diegetic tutorial arc: (1) station hum as opening sensation, (2) spatial orientation — NPCs already moving, fog boundary visible, (3) first sight of Kael (warm, trusted — D-033 green entity), (4) news ticker glance (optional environmental text moment), (5) first fog-edge sound ping noticed (teaches sound channel). Voice: smuggler is working-class pragmatic, warm but watchful, compact consonant-heavy Van Maanen's Star naming in references (D-036). Prerequisite tags (
knowledge_stategates) must benullfor this sequence — these lines fire on first encounter, before any knowledge graph state exists. Usetrigger: enter_locationfor spatial lines,trigger: observe_npcfor Kael sighting. File structure:monologue-smuggler.yamlper D-032. This ticket blocks #330 (diegetic tutorial lines), so prioritize it early. -
#300 Opening hook — detective first 5 minutes: Same blockers done, same urgency. Different emotional register: detective arrives into established rhythm (mid-morning, D-036 Sova atmosphere). The detective is an institutional outsider with analytical lattice — sharper, more detached voice. Tutorial pathway differs: detective's insert HUD is denser (D-048), first NPC contact mediated by institutional insert overlay (Authority access relationship by default). 10-15 lines structured as: (1) institutional orientation — commission kiosk visible, cool-lit corridors (D-046), (2) analytical lattice flagging ambient data (teaches insert channel), (3) first sight of Sera Venn (THE FRIEND, D-034 — currently Unknown/Neutral teal per D-033), (4) cargo manifest anomaly observation (sets detective motivation). Voice: analytical, institutional, controlled. Van Maanen's Star naming in observations (D-036). File structure:
monologue-detective.yamlper D-032. -
#169 Layer 1: Access tier filtering: D-028 Layer 1 is the foundational gate on the dialogue system. Every dialogue line in the content files must carry an
accesstag (list): values arepublic,insider,authority,peer,hostile. This ticket's content deliverable is: (a) audit all existing line pool files undercontent/for correctaccesstagging — flag any lines missing the tag, (b) author the Layer 1 filter logic design spec if one does not exist (how doesRelationshipStatemap toaccesstier? see D-075: AccessTier is gated byRelationshipStateonly, notKnowledgeConfidence), (c) ensure the existing Kael and Sera line pools (authored in earlier sprints) have correctaccesstags on every line. The dialogue selection pipeline (server/src/simulation/dialogue.rs, #305 done) already implements Layer 1 filtering — this ticket is the content-side completion: all lines properly tagged, authoring guide updated for Line Layer 1 rules, Gestalt to confirm tag schema is consistent with D-035 structural tags. Cross-reference: the detective gets Authority access naturally from institutional role; the smuggler gets Insider/Peer access from social network — no archetype tag needed on the pipeline (D-075 emergent design). -
#170 Layer 2: Relationship history: D-028 Layer 2 modifies greeting and topic selection based on the interaction log per NPC pair. Content deliverable: (a) define the situation tags that encode relationship history context — D-035 lists 13 situations for v0.1, with
greetingadded in Sprint 8 amendment as the 14th; specify which situations encode first_meeting, established, tense, post_confrontation, post_walkaway states, (b) authorsituation: greetingvariants for Kael and Sera line pools — first meeting line (situation: greeting, access: [public]) vs repeat visit line (situation: greeting, access: [peer]) should differ meaningfully, (c) document how the engine mapsInteractionMemory(#325, done) interaction log to Layer 2 situation tags — Gestalt to write or verify this mapping in the authoring guide. The dialogue selection pipeline already calls Layer 2 filtering; this ticket completes the content to exercise it. Result: Kael greets the smuggler differently on first vs third encounter. Sera greets the detective differently before and after the detective has spoken to her colleagues.
Dependency Chain
#299 (Smuggler opening hook) ──┐
↓
#330 (Diegetic tutorial lines — deferred sprint 16)
#300 (Detective opening hook) ─┘
#169 (Layer 1: Access tier filtering) → must complete before Layer 3 work (#171, sprint 16)
#170 (Layer 2: Relationship history) → must complete before Layer 3 work (#171, sprint 16)
#299 and #300 are parallel. #169 and #170 are parallel.
PR Workflow
When ready to submit, create a PR with the tea CLI. All flags are required to avoid TTY prompts (see CLAUDE.md "Gitea access" section):
tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "feat(copy): sprint 15 react — opening hooks + dialogue layer 1-2" --description "body" --base main --head copy