fix(copy): address PR #84 review — pacing, prerequisites, terminology

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 <noreply@anthropic.com>
This commit is contained in:
2026-03-05 10:56:50 +01:00
co-authored by Claude Opus 4.6
parent 46cfec4183
commit 3a481b32a5
5 changed files with 9 additions and 8 deletions
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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",
@@ -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
@@ -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
+1
View File
@@ -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