From 56ed2c8810fe5c1247ca1d67928f92608cbf7504 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Mon, 23 Feb 2026 22:35:12 +0100 Subject: [PATCH] =?UTF-8?q?fix(content):=20PR=20#59=20review=20=E2=80=94?= =?UTF-8?q?=20stale=20moods,=20orphaned=20IDs,=20tenure,=20fact=5Fid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Address review comments from Hoshe, Paula, and Miri: - Update mood vocabulary in 3 docs (line-pool-format.md §6.5, style-guide §11, content-directory-structure.md Appendix B) from pre-Sprint 14 values to current D-035 enum - Fix worked example IDs in line-pool-format.md §3.5 to match actual the-last-shift kael-davan sequence (_015, _024, _026) - Fix Section 5.1 restart note to describe multi-location continuity - Fix style-guide §16 worked example: dock-worker_d_071 → kael-davan_d_076 - Fix stale mood reference in style-guide §16 Step 3 - Fix orphaned the-terminal_d_040 in maintenance-tech.yaml comment - Fix orphaned the-terminal_d_008/018 in smuggler-inventory.yaml - Fix Lera tenure: twelve → eighteen years (bar-owner_d_018) - Fix fact_id: location.surveillance_gaps → investigation.surveillance_gaps in ring-operative.yaml (2 occurrences) - Fix NPC name: Lera Osk → Lera Sessik in bar-owner.yaml comment - Fix mood line format example in style-guide §5 Co-Authored-By: Claude Opus 4.6 --- content/_meta/npc-authoring-style-guide.md | 12 ++++++------ .../maintenance-corridors/ring-operative.yaml | 4 ++-- .../transit/dialogue/the-last-shift/bar-owner.yaml | 4 ++-- .../dialogue/the-terminal/maintenance-tech.yaml | 2 +- .../transit/items/smuggler-inventory.yaml | 4 ++-- docs/architecture/line-pool-format.md | 14 +++++++------- docs/design/content-directory-structure.md | 2 +- 7 files changed, 21 insertions(+), 21 deletions(-) diff --git a/content/_meta/npc-authoring-style-guide.md b/content/_meta/npc-authoring-style-guide.md index 4e9e399a8..310f1648a 100644 --- a/content/_meta/npc-authoring-style-guide.md +++ b/content/_meta/npc-authoring-style-guide.md @@ -265,7 +265,7 @@ Every dialogue line requires 6 structural tags + up to 3 selection tags. | Tag | Type | Format | Description | |-----|------|--------|-------------| | `topic` | list | `[colleague, cargo, ...]` | D-028 Layer 4 weighted selection. Defaults to `[routine]`. | -| `mood` | list | `[comfortable, worried, ...]` | D-028 Layer 4 weighted selection. Defaults to `[comfortable]`. | +| `mood` | list | `[content, anxious, ...]` | D-028 Layer 4 weighted selection. Defaults to untagged (neutral). | | `tags` | list | freeform strings | Escape hatch for author intent. | #### Authoring-Only Tags (Not Consumed by Engine) @@ -600,9 +600,9 @@ See `content/global/enums/topics.yaml`. Note: `crime` is deliberately excluded. ### Moods (8 values) -`fond`, `comfortable`, `worried`, `suspicious`, `analytical`, `conflicted`, `concerned`, `relieved` +`anxious`, `frustrated`, `content`, `suspicious`, `warm`, `hostile`, `relieved`, `focused` -See `content/global/enums/moods.yaml`. +See `content/global/enums/moods.yaml`. (Updated Sprint 14 amendment to D-035.) ### Monologue Triggers (9 values) @@ -865,7 +865,7 @@ Every generated line must pass: ### Step 2: Assign Tags ```yaml -- id: dock-worker_d_071 +- id: kael-davan_d_076 text: "Morning. Voss kept the rotation thin -- we've got a clear window after 14:00." role: dock-worker access: [insider] @@ -878,13 +878,13 @@ Every generated line must pass: ### Step 3: Validate -- `id`: `dock-worker_d_071` -- valid pattern (NPC-scoped per D-035 Sprint 15 amendment). +- `id`: `kael-davan_d_076` -- valid pattern (NPC-scoped per D-035 Sprint 15 amendment). Continues from kael-davan's terminal sequence (_034-_075). - `role`: `dock-worker` -- valid slug. - `access: [insider]` -- only ring members hear this. Detective never sees it. Correct. - `trust: real` -- requires earned trust. Not surface-level small talk. Correct for operational ring dialogue. - `situation: [shift_start]` -- morning shift context. Correct. - `topic: [cargo, routine]` -- covers both operational and schedule content. Correct. -- `mood: [comfortable]` -- Phase 1, baseline warm. Correct. +- `mood: [content]` -- Phase 1, baseline warm. Correct. ### Step 4: Dual-Lens Check diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/ring-operative.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/ring-operative.yaml index e2bb4492c..6e7eb5d16 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/ring-operative.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/ring-operative.yaml @@ -146,7 +146,7 @@ lines: smuggler: "14:20 scan, then the window opens. Twenty-five minutes clear." detective: "Never hears this line." knowledge_grant: - fact_id: location.surveillance_gaps + fact_id: investigation.surveillance_gaps confidence: knows_details - id: ring-operative_d_010 @@ -178,7 +178,7 @@ lines: smuggler: "Full confirmation. Meridian doesn't reach this section." detective: "Never hears this line." knowledge_grant: - fact_id: location.surveillance_gaps + fact_id: investigation.surveillance_gaps confidence: knows_details - id: ring-operative_d_012 diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-owner.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-owner.yaml index 72b7bab82..d43068a96 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-owner.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-owner.yaml @@ -1,5 +1,5 @@ # Dialogue: bar-owner at The Last Shift -# NPC: Lera Osk (Tier 2, SYSTEM/OPERATOR) +# NPC: Lera Sessik (Tier 2, ANCHOR/OPERATOR) # Voice: direct, dry. Runs her bar like a territory. Not political — protective. # Ring-aware: knows it exists in her bar. Doesn't ask. Doesn't interfere. Not complicit. # Torek arrangement: she gives him a tab specifically — Commission visibility is useful. @@ -224,7 +224,7 @@ lines: tags: [lera, detective-path, institutional-independence] - id: bar-owner_d_018 - text: "I've run this bar twelve years without a Commission complaint. I'd like to keep it that way." + text: "I've run this bar eighteen years without a Commission complaint. I'd like to keep it that way." role: bar-owner access: [authority] trust: surface diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/maintenance-tech.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/maintenance-tech.yaml index c5acbc82b..437b1f196 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/maintenance-tech.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/maintenance-tech.yaml @@ -1,7 +1,7 @@ # Dialogue: maintenance-tech at The Terminal # NPC: Pael Varren (Tier 3, NOBODY/CIVILIAN) # Voice: tired-competent, minimal, dry. Knows the infrastructure. Knows nothing else. -# KEY LINE: the-terminal_d_040 — sounds like surveillance knowledge, is a maintenance complaint +# KEY LINE: maintenance-tech_d_001 — sounds like surveillance knowledge, is a maintenance complaint # Ticket: #307 | Sprint: 12 location: the-terminal diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/items/smuggler-inventory.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/items/smuggler-inventory.yaml index 9ee3a1d84..d25598635 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/items/smuggler-inventory.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/items/smuggler-inventory.yaml @@ -47,8 +47,8 @@ items: notes: > Physical proof of cargo routing irregularities. The manifest shows three containers rerouted during shift transition with weights that - don't reconcile. Cross-ref: Kael dialogue the-terminal_d_008 - ("Manifest says this one's forty kilos over") and the-terminal_d_018 + don't reconcile. Cross-ref: Kael dialogue kael-davan_d_041 + ("Manifest says this one's forty kilos over") and kael-davan_d_051 ("Manifest's clean on my end"). - fact_id: "investigation.cargo_anomaly" relationship: "corroborates" diff --git a/docs/architecture/line-pool-format.md b/docs/architecture/line-pool-format.md index 5eb5ca6fd..4065858c0 100644 --- a/docs/architecture/line-pool-format.md +++ b/docs/architecture/line-pool-format.md @@ -113,7 +113,7 @@ lines: | Field | Type | Required | Default | Description | |-------|------|----------|---------|-------------| | `topic` | list\ | no | `[]` | Topic tags for Layer 4 weighted selection. Lines without topic tags are eligible for any topic context. Values: `colleague`, `routine`, `cargo`, `money`, `trust`, `danger`, `institution`, `personal`, `investigation`. | -| `mood` | list\ | no | `[]` | Mood tags for Layer 4 weighted selection. Lines without mood tags are eligible for any mood context. Values: `fond`, `comfortable`, `worried`, `suspicious`, `analytical`, `conflicted`, `concerned`, `relieved`. | +| `mood` | list\ | no | `[]` | Mood tags for Layer 4 weighted selection. Lines without mood tags are eligible for any mood context. Values: `anxious`, `frustrated`, `content`, `suspicious`, `warm`, `hostile`, `relieved`, `focused`. | | `tags` | list\ | no | `[]` | Freeform escape hatch. Not consumed by the filtering engine — used for author organization, content queries, and the line previewer. No validation on values. | #### Knowledge grant (optional) @@ -157,7 +157,7 @@ All lines in pool location: the-last-shift role: dock-worker lines: - - id: kael-davan_d_001 + - id: kael-davan_d_015 text: "Saved you a seat. Lera's got the spiced rice tonight." role: dock-worker access: [insider, peer] @@ -167,7 +167,7 @@ lines: topic: [personal, colleague] tags: [kael, greeting, phase-1] - - id: kael-davan_d_010 + - id: kael-davan_d_024 text: "Nils wants to talk. Tomorrow, bay side. Said it's about volume." role: dock-worker access: [insider] @@ -177,7 +177,7 @@ lines: topic: [danger] tags: [kael, ring-ops, nils] - - id: kael-davan_d_012 + - id: kael-davan_d_026 text: "Lera knows more than she lets on. She won't say anything — but don't test it." role: dock-worker access: [insider] @@ -349,7 +349,7 @@ lines: Use the pool-specific regexes in [Section 5.2](#52-regex-patterns) for strict per-type validation. This general regex is useful for quick format checks that accept either type. -> **D-035 Sprint 15 amendment:** IDs are NPC-scoped, not location-scoped. The old `{location-slug}_{d|m}_{###}` format caused collisions when the same NPC appeared at multiple locations (e.g. `the-terminal_d_039` appeared in multiple NPC files). The new format `{npc-slug}_{d|m}_{###}` gives each NPC an independent 999-line ceiling. Sequence restarts at `_001` per file; IDs are unique within a file. +> **D-035 Sprint 15 amendment:** IDs are NPC-scoped, not location-scoped. The old `{location-slug}_{d|m}_{###}` format caused collisions when the same NPC appeared at multiple locations (e.g. `the-terminal_d_039` appeared in multiple NPC files). The new format `{npc-slug}_{d|m}_{###}` gives each NPC an independent 999-line ceiling. For multi-location NPCs, sequences are globally continuous across files (e.g. kael-davan uses _001-_014 at maintenance-corridors, _015-_033 at the-last-shift, _034-_075 at the-terminal). Single-location NPCs start at _001. Monologue uses per-file restart with composite key (file_path + line_id). ### 5.2 Regex patterns @@ -406,9 +406,9 @@ All enum values are defined in `content/global/enums/` and validated by the JSON ### 6.5 Moods (D-028 Layer 4) -`fond`, `comfortable`, `worried`, `suspicious`, `analytical`, `conflicted`, `concerned`, `relieved` +`anxious`, `frustrated`, `content`, `suspicious`, `warm`, `hostile`, `relieved`, `focused` -8 values for v0.1. +8 values for v0.1. (Updated Sprint 14 amendment to D-035.) ### 6.6 Monologue triggers diff --git a/docs/design/content-directory-structure.md b/docs/design/content-directory-structure.md index 2674dd45d..f3c04b6af 100644 --- a/docs/design/content-directory-structure.md +++ b/docs/design/content-directory-structure.md @@ -586,7 +586,7 @@ For quick reference during authoring. Authoritative source: `content/global/enum **Topics (9):** `colleague`, `routine`, `cargo`, `money`, `trust`, `danger`, `institution`, `personal`, `investigation` -**Moods (8):** `fond`, `comfortable`, `worried`, `suspicious`, `analytical`, `conflicted`, `concerned`, `relieved` +**Moods (8):** `anxious`, `frustrated`, `content`, `suspicious`, `warm`, `hostile`, `relieved`, `focused` **Access Tiers (5):** `public`, `insider`, `authority`, `peer`, `hostile`