feat(content): migrate line IDs to NPC-scoped namespace (D-035)

Line IDs in all dialogue and monologue pool files renamed from the
old location-scoped format (e.g. the-terminal_d_039) to the new
NPC-scoped format (e.g. kael-davan_d_001) per the D-035 Sprint 15
amendment.

Changes:
- 20 dialogue pool files across 3 locations renamed
- 14 monologue pool files (detective + smuggler) renamed
- Schema descriptions updated in dialogue/monologue schema files
- Authoring style guide and design docs updated with new examples
- Multi-location NPCs (kael-davan, pc-detective, pc-smuggler) given
  globally unique cross-file sequences to satisfy XREF uniqueness check

The location-scoped scheme already caused a collision (the-terminal_d_039
appearing in multiple NPC files) and would not scale to procedurally
generated NPC populations (D-029). Zero content changes — pure ID
substitution.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-23 21:04:43 +01:00
co-authored by Claude Sonnet 4.6
parent 41e3b4a9b3
commit c056ea1a1c
45 changed files with 813 additions and 813 deletions
@@ -188,7 +188,7 @@ XREF ERROR: dialogue location "the-warehouse" not in district
```
XREF ERROR: unknown fact_id "investigation.unknown_fact"
In: campaigns/main/.../dialogue/the-terminal/kael-davan.yaml
Line: the-terminal_d_099
Line: kael-davan_d_099
Canonical fact_ids: 42 defined in content/global/knowledge/
```
@@ -228,7 +228,7 @@ XREF WARNING: npc_count mismatch in transit district
#### Check 8: Dialogue line ID uniqueness within pool
**What:** Each dialogue line has an `id` field (e.g., `the-terminal_d_001`). IDs MUST be unique within each dialogue file.
**What:** Each dialogue line has an `id` field (e.g., `kael-davan_d_001`). IDs MUST be unique within each dialogue file.
**Where:** `content/campaigns/**/dialogue/**/*.yaml``lines[].id`
@@ -236,7 +236,7 @@ XREF WARNING: npc_count mismatch in transit district
**Error format:**
```
XREF ERROR: duplicate dialogue line id "the-terminal_d_015"
XREF ERROR: duplicate dialogue line id "kael-davan_d_015"
In: campaigns/main/.../dialogue/the-terminal/kael-davan.yaml
First occurrence: line 167
Duplicate: line 215