From 3a481b32a547e5f755074b1f4b0a93e4c1e48fd6 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Thu, 5 Mar 2026 10:56:50 +0100 Subject: [PATCH] =?UTF-8?q?fix(copy):=20address=20PR=20#84=20review=20?= =?UTF-8?q?=E2=80=94=20pacing,=20prerequisites,=20terminology?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Review fixes for triangle activation monologue lines: - CHANGELOG: correct smuggler line count (4 → 5), add D-035 ref - Smuggler comment: align beat labels to 5-line structure - Smuggler 040: "looking at" → "seeing" for body-first register - Detective 043: rewrite to remove implicit manifest knowledge reference — line now works without fact prerequisite gate - Detective 044: soften from near-certainty to enumerated possibilities with "insufficient data" qualifier - Triangle comments: align to D-087 terminology (T1: Kael- Smuggler-Ring, T2: Sera-Detective-Commission) - Schema description: note triangle_activated also missing from server Situation enum alongside greeting - D-035 amendment: register triangle-signal, tell-observation tags and npc_in_los prerequisite as conventions Co-Authored-By: Claude Opus 4.6 --- CHANGELOG.md | 2 +- content/_schema/monologue-pool.schema.json | 2 +- .../districts/transit/monologue/detective/the-terminal.yaml | 6 +++--- .../districts/transit/monologue/smuggler/the-terminal.yaml | 6 +++--- decisions/content.md | 1 + 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a075297e9..58344cc5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ Format based on [Keep a Changelog](https://keepachangelog.com/). ## [Unreleased] ### Added -- Triangle activation proximity monologue lines — 4 smuggler lines (Kael Davan) and 5 detective lines (Sera Venn/Torek Lintar) that fire when observing triangle anchor NPCs post-activation (#597, D-039) +- Triangle activation proximity monologue lines — 5 smuggler lines (Kael Davan) and 5 detective lines (Sera Venn/Torek Lintar) that fire when observing triangle anchor NPCs post-activation (#597, D-035, D-039) ## [v0.1.23] — 2026-03-04 diff --git a/content/_schema/monologue-pool.schema.json b/content/_schema/monologue-pool.schema.json index 83abdd5bd..fc02fc45e 100644 --- a/content/_schema/monologue-pool.schema.json +++ b/content/_schema/monologue-pool.schema.json @@ -81,7 +81,7 @@ }, "minItems": 1, "uniqueItems": true, - "description": "D-035 structural tag: situations in which this monologue line is contextually appropriate. 15 v0.1 values (triangle_activated added Sprint 24). The engine selects using trigger; situation provides additional authoring context for filtering by the caller. NOTE: 'greeting' is not yet in server/src/content/line_pool.rs Situation enum." + "description": "D-035 structural tag: situations in which this monologue line is contextually appropriate. 15 v0.1 values (triangle_activated added Sprint 24). The engine selects using trigger; situation provides additional authoring context for filtering by the caller. NOTE: 'greeting' and 'triangle_activated' are not yet in server/src/content/line_pool.rs Situation enum." }, "trigger": { "type": "string", diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/the-terminal.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/the-terminal.yaml index 22415c76a..3a6f34ced 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/the-terminal.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/the-terminal.yaml @@ -447,7 +447,7 @@ lines: priority: 8 tags: [npc, kael, investigation, evidence, analytical] - # --- Triangle Activation: Sera Venn / Torek Lintar (T2 informant-question) --- + # --- Triangle Activation: Sera Venn / Torek Lintar (T2: Sera-Detective-Commission, D-087) --- # Fires post-TriangleActivated when player has LOS to Sera or Torek. One beat per line. # Beat 1: pattern recognition. Beat 2: deviation logged. Beat 3: hypothesis. Beat 4: inference. Beat 5: procedural next step. @@ -480,7 +480,7 @@ lines: npc_in_los: true - id: pc-detective_m_d_043 - text: "If she knows about the manifest discrepancy, why has she not reported it?" + text: "Avoidance without cause. Either she does not know about the discrepancy, or she knows and has chosen silence." role: player_character access: [public] trust: surface @@ -494,7 +494,7 @@ lines: npc_in_los: true - id: pc-detective_m_d_044 - text: "She is protecting something. Or someone. The distinction matters." + text: "Possible explanations: fear, loyalty, complicity. Insufficient data to distinguish." role: player_character access: [public] trust: surface diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/the-terminal.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/the-terminal.yaml index 820396ec8..051d400d6 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/the-terminal.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/the-terminal.yaml @@ -374,9 +374,9 @@ lines: priority: 9 tags: [npc, kael, contaminated-trust, friend-arc] - # --- Triangle Activation: Kael Davan (T1 hub-power) --- + # --- Triangle Activation: Kael Davan (T1: Kael-Smuggler-Ring, D-087) --- # Fires post-TriangleActivated when player has LOS to Kael. One beat per line. - # Beat 1: physical observation. Beat 2: rationalization. Beat 3: doubt. Beat 4: doubt breaks. + # Beat 1: physical observation. Beat 2: rationalization. Beat 3: doubt. Beat 4: sensory confirmation. Beat 5: emotional break. - id: pc-smuggler_m_s_036 text: "Kael's in the main corridor. He doesn't usually come through here." @@ -435,7 +435,7 @@ lines: npc_in_los: true - id: pc-smuggler_m_s_040 - text: "I don't know what I'm looking at. But I know Kael. And this isn't Kael." + text: "I don't know what I'm seeing. But I know Kael. And this isn't Kael." role: player_character access: [public] trust: surface diff --git a/decisions/content.md b/decisions/content.md index c89c40b96..bccc9d576 100644 --- a/decisions/content.md +++ b/decisions/content.md @@ -84,6 +84,7 @@ How narrative, NPCs, and world content are created: content tiers, NPC generatio - **Dissent:** None. Minor consolidations: Mellanie's 8 moods mapped to Gestalt's 8 (different names, same concepts). Mellanie's `crime` topic deliberately excluded (NPCs think of it as `cargo` or `money`). - **Amendment (Sprint 8):** `focused` added as 9th mood (used in Kael dialogue at The Terminal and maintenance corridors). `greeting` added as 14th situation (used in PC dialogue pools for initial contact lines). Schema updated to match. - **Amendment (Sprint 14):** Mood vocabulary renamed to match voice guide (monologue-voice-guide.md). Old → new: `fond`→`warm`, `comfortable`→`content`, `worried`→`anxious`, `concerned`→`frustrated`. Dropped: `analytical` (merged into `focused`), `conflicted` (modeled as `suspicious`+`warm` collision). Added: `hostile`. Final 8 moods: `anxious`, `frustrated`, `content`, `suspicious`, `warm`, `hostile`, `relieved`, `focused`. Neutral = untagged. +- **Amendment (Sprint 24):** `triangle_activated` added as 15th situation (fires post-TriangleActivated when player observes anchor NPCs). Two freeform tags registered as conventions: `triangle-signal` (line is part of the triangle activation sequence) and `tell-observation` (line observes a behavioral tell without naming its cause). `npc_in_los` prerequisite added for LOS-gated monologue lines. Schema updated to match. - **Amendment (Sprint 15):** Line ID namespace changed from location-scoped to NPC-scoped. Old scheme: `{location_slug}_{d|m}_{###}` (e.g., `the-terminal_d_039`) — all NPCs at a location share one ID sequence, requiring cross-file coordination and causing collisions at scale. New scheme: `{npc-slug}_{d|m}_{###}` for dialogue, `{npc-slug}_m_{s|d}_{###}` for monologue (e.g., `kael-davan_d_001`, `dock-worker_d_001`). Each NPC's IDs are independent — no cross-file coordination needed. Auto-generated NPCs use their generated slug. Schema regex patterns unchanged (prefix is still `^[a-z][a-z0-9-]*`), only the `description` field and convention documentation update. Migration: mechanical rename of all existing line IDs across ~20 dialogue files and monologue pools. ### D-036: Sova Transit District / Krenn System as v0.1 setting