System S-057 assigned to real star GJ 35 (Van Maanen's Star, DG white dwarf at 13.9 ly). Renamed across all content, server code, docs, decisions, wiki lore, and config files. 224 files updated. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
5.3 KiB
Sprint 17: Tell — Copy Tasks
Goal: NPCs volunteer information unprompted and express personality through delivery; the player can read time and orientation at a glance from the insert HUD; POI infrastructure lands on the server.
Branch: copy
Agents: Mellanie (author), Paula (narrative), Gestalt (systems)
Carry-over from Sprint 16
None. Sprint 16 copy ticket (#542, line ID migration) closed.
Tickets
| # | Title | Blocked by |
|---|---|---|
| #330 | Diegetic tutorial monologue lines — per character | — (blockers #299, #300 done) |
| #552 | Author contradiction monologue lines — Sera/Kael FRIEND arc | — (can author against D-083 spec) |
Use db/connectors/ticket show <id> for full details.
Key Decisions
decisions/content.md— D-035 (tag taxonomy, monologue prerequisites), D-028 (dialogue architecture)decisions/perception.md— D-019 (camera and perception), D-011 (fog of perception), D-083 (contradiction detection pipeline)
Notes
#330 — Diegetic tutorial monologue lines — per character
What exists: Monologue pools at content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/monologue/detective/ and .../smuggler/ contain character-specific internal monologue. Opening monologue files exist (opening.yaml for both characters). The monologue system in server/src/simulation/monologue.rs fires lines based on triggers and prerequisites.
What to deliver: 8-10 monologue lines per character (smuggler + detective) that teach core mechanics diegetically:
- Movement and exploration ("These corridors all look the same. Mental note: check the signage.")
- Fog of perception ("Can't see past that corner. Might be worth checking.")
- Sound model ("Voices down the hall. Can't make out the words from here.")
- NPC interaction ("Could ask around. People talk if you give them reason to.")
- Insert/HUD usage ("Check the overlay. Should show the time and nearby contacts.")
Lines fire on first-time events (first move, first fog encounter, first sound heard, first NPC proximity, first insert open). Use trigger: first_time_event with appropriate event tags.
Voice consistency: Smuggler lines should be observational, street-smart, practical. Detective lines should be analytical, procedure-oriented, careful. Both stay in-character — tutorials are disguised as natural inner thoughts, not fourth-wall-breaking instructions.
Prerequisite format: Per D-035:
- id: pc-smuggler_m_s_tut_001
text: "Voices. Down the corridor. Can't tell how many."
trigger: first_sound_heard
priority: tutorial
cooldown: -1
Use _tut_ in IDs to distinguish tutorial lines from narrative monologue.
Note on PC monologue ID collision (Q-028): The review of PR #59 flagged that PC monologue IDs collide across location files. Use the _tut_ discriminator for tutorial lines. Q-028 will resolve the broader scheme.
#552 — Author contradiction monologue lines — Sera/Kael FRIEND arc
What exists: The monologue system in server/src/simulation/monologue.rs handles anomaly/recognition lines. Sprint double-take monologue already fires on KnowledgeState::Contradicted. The server team is implementing the contradiction detection pipeline (#547, #550) that will SET this state.
What to deliver: Source-named contradiction monologue lines for both characters. These fire when the player discovers a location contradiction — an NPC told them one thing, but they observe something different.
Canonical example (THE FRIEND arc, D-034): Sera tells the detective "Kael was at the dock during second shift." The detective later observes Kael in corridor B-7 at that time. Contradiction detected. Monologue fires:
"Sera said Kael was at the dock. I just saw him in B-7. One of those isn't true."
Tone principle: Cognitive dissonance, not accusation. The PC is processing conflicting information, not making judgments. The monologue should feel like genuine internal processing — uncertainty, recalibration, filing away the inconsistency.
Authoring spec: See Paula's Round 2 workshop output at docs/workshops/knowledge-flow-npc-boundaries/paula-round2.md for the full Mellanie spec, including:
- Phase 2 (Sera/Kael location contradiction) lines
- Phase 3 (deeper contradictions) lines
- Trigger specifications
- The cognitive-dissonance-not-accusation principle
Both character variants needed:
- Detective: Analytical, procedure-oriented. Notes the discrepancy formally, mentally files it.
- Smuggler: Street-smart, instinctive. Gut reaction to being lied to, reads it as a social signal.
Integration: The server team (#550) will wire these lines into the monologue system. The ContradictionDetected event payload includes source_display_name and subject_display_name — lines can reference the source NPC by name.
Can start immediately — author against the D-083 spec without waiting for server implementation.
Dependency Chain
#330 (Tutorial monologue) → standalone, no deps
#552 (Contradiction monologue) → standalone (author against spec), feeds #550 (server)
PR Workflow
When ready to submit, create a PR with tea CLI:
tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "feat(content): sprint 17 description" --description "body" --base main --head copy