docs(wiki): rename Hael to Naia Tamm, apply canonical full names, standardize shortcodes

Wave 0 wiki maintenance for Sprint 3:
- #372: Rename Hael → Naia Tamm across 16 living wiki files (phonetic collision fix)
- #371: Apply canonical full names to 11 single-name NPC headers and roster table
- #375: Replace hub_m_ → terminal_m_ shortcodes, add shortcode reference table,
  situation overlap rules, and mood exclusivity rules to monologue guide

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-12 17:45:04 +01:00
co-authored by Claude Opus 4.6
parent 1333926ac2
commit 64fea5139a
25 changed files with 220 additions and 164 deletions
+65 -11
View File
@@ -11,6 +11,60 @@ How to write tagged monologue and dialogue content for The Settled Reach. Read t
---
## Location Shortcodes
Canonical shortcodes for v0.1 Sova Transit District. Used in line IDs (`{shortcode}_{type}_{###}`) and file naming.
| Shortcode | Location | Full Name | D-036 Reference |
|-----------|----------|-----------|-----------------|
| `terminal` | Logistics Hub | The Terminal | Primary workplace social site |
| `bar` | The Last Shift | Lera's (informal) | Social venue |
| `corridor` | Maintenance corridors | Corridor B-7 (primary) | Smuggling/service spaces |
**File naming convention:** `{shortcode}-{character}.yaml` (e.g., `terminal-smuggler.yaml`, `bar-detective.yaml`)
**Line ID format:** `{shortcode}_{d|m|e}_{###}` where `d`=dialogue, `m`=monologue, `e`=environmental
---
## Situation Overlap Rules
A line can have multiple situations in its `situation` list. These rules define valid combinations.
**Mutually exclusive** (never co-occur):
- `arrival` and `shift_end` — you can't be both arriving and leaving
- `alone` and `social` — by definition
- `emergency` and `routine` — emergency overrides routine
- `confrontation` and `social` — confrontation replaces social context
**Common valid overlaps:**
- `shift_start` + `routine` — beginning-of-shift routine observations
- `bar_evening` + `social` — social interaction at the bar
- `observation` + any non-exclusive situation — observation layers on top of context
- `investigation` + `observation` — investigating by watching
**Default if empty:** `routine` (engine assumes routine context)
---
## Mood Exclusivity Rules
A line can have multiple moods, but some combinations are contradictory.
**Mutually exclusive** (never co-occur):
- `fond` and `suspicious` — these are opposing orientations toward someone
- `comfortable` and `worried` — opposing emotional states
- `relieved` and `concerned` — resolved vs. unresolved tension
**Common valid overlaps:**
- `analytical` + any mood — analytical is a cognitive mode that coexists with emotion
- `conflicted` + `fond` or `concerned` — conflicted implies mixed feelings
- `worried` + `suspicious` — worry about someone's behavior shading into suspicion
**Default if empty:** `comfortable` (engine assumes neutral emotional baseline)
---
## Core Principle
Internal monologue is **hard-partitioned by playable character** (D-032). The smuggler and detective have completely separate monologue pools. No shared lines. Same trigger, different pool. This is how mirror moments work without either pool knowing about the other.
@@ -81,7 +135,7 @@ The `trigger` tag determines WHEN a monologue line fires. Each type maps to a ga
Fires when the player enters a named area.
```yaml
- id: hub_m_010
- id: terminal_m_010
text: "Morning shift. Recycled air and cargo lubricant. Home sweet home."
character: smuggler
trigger: enter_location
@@ -91,7 +145,7 @@ Fires when the player enters a named area.
```
```yaml
- id: hub_m_011
- id: terminal_m_011
text: "Logistics hub. Standard prefab, heavy foot traffic. Let's see what the shift change tells me."
character: detective
trigger: enter_location
@@ -111,7 +165,7 @@ Use for first impressions, atmosphere, returning-to-familiar-ground observations
Fires when a known entity enters the player's line of sight.
```yaml
- id: hub_m_020
- id: terminal_m_020
text: "Kael's here. Good — I was starting to worry."
character: smuggler
trigger: observe_npc
@@ -122,7 +176,7 @@ Fires when a known entity enters the player's line of sight.
```
```yaml
- id: hub_m_021
- id: terminal_m_021
text: "Dock worker from the case file. Davan, K. Unremarkable on paper."
character: detective
trigger: observe_npc
@@ -169,7 +223,7 @@ Audio triggers fire less frequently than visual ones. Make them count.
Fires when the player observes something that contradicts expected state — a container in the wrong place, an NPC where they shouldn't be, a door that should be locked.
```yaml
- id: hub_m_040
- id: terminal_m_040
text: "Kael's checking his lattice again. Third time in ten minutes. That's not normal."
character: smuggler
trigger: observe_anomaly
@@ -180,7 +234,7 @@ Fires when the player observes something that contradicts expected state — a c
```
```yaml
- id: hub_m_041
- id: terminal_m_041
text: "Dock worker Davan — lattice activity spiked. Expecting a message? Or checking for surveillance?"
character: detective
trigger: observe_anomaly
@@ -231,7 +285,7 @@ This is where character voice shines — the detective analyzes, the smuggler wo
Fires when the player finds physical evidence — a document, object, or data point.
```yaml
- id: hub_m_060
- id: terminal_m_060
text: "Container 4471. Manifest says 240 kilos. That crate is closer to 310."
character: detective
trigger: discover_evidence
@@ -242,7 +296,7 @@ Fires when the player finds physical evidence — a document, object, or data po
```
```yaml
- id: hub_m_061
- id: terminal_m_061
text: "4471's still in temp. Kael routed it there during transition. Standard. Nothing to worry about."
character: smuggler
trigger: discover_evidence
@@ -506,7 +560,7 @@ How each character relates to key NPCs:
| Sera (THE FRIEND) | `public` (Commission, wary) | `peer` → `authority` (post-contradiction) |
| Voss | `insider` (colleague) | `authority` |
| Lera | `insider` (bar regular) | `public` → `peer` (repeat visits) |
| Hael | `peer` (through Kael) | `public` → `peer` (through Sera) |
| Naia | `peer` (through Kael) | `public` → `peer` (through Sera) |
| Torek | `insider` or `peer` | `public` |
| Maret | `insider` (hub colleague) | `authority` |
| Drin | `insider` (hub colleague) | `authority` |
@@ -526,7 +580,7 @@ A tell observation monologue line should:
3. **Map to an attribute** — note in `notes` which `known_attributes` key updates
```yaml
- id: hub_m_100
- id: terminal_m_100
text: "Kael keeps checking his lattice. Waiting for something."
character: smuggler
trigger: observe_anomaly
@@ -539,7 +593,7 @@ A tell observation monologue line should:
```
```yaml
- id: hub_m_101
- id: terminal_m_101
text: "Dock worker Davan — lattice activity spiked. Three pings in two minutes. Expecting a message? Or checking for surveillance?"
character: detective
trigger: observe_anomaly