fix(copy): PR #53 review round 3 — span gate terminology, mood tags, em-dash consistency
Fix "span gate threshold" → "span gate hum" (D-036 canonical term) in detective opening, add missing mood tags on opening_m_d_002 and the-terminal_d_020, normalize sera-venn double-dashes to em-dashes, fix situations.yaml header count, document greeting fallback behavior. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+32
-32
@@ -39,7 +39,7 @@ lines:
|
||||
# ============================================================
|
||||
|
||||
- id: the-last-shift_d_101
|
||||
text: "There you are. Grab a seat -- Lera's doing that thing with the grain spirit again. Don't ask, just trust me and order the ale."
|
||||
text: "There you are. Grab a seat — Lera's doing that thing with the grain spirit again. Don't ask, just trust me and order the ale."
|
||||
role: bar-regular
|
||||
access: [peer]
|
||||
trust: surface
|
||||
@@ -49,7 +49,7 @@ lines:
|
||||
tags: [greeting, phase-1, establishes-warmth]
|
||||
|
||||
- id: the-last-shift_d_102
|
||||
text: "Corner booth's free. I saved it -- force of habit."
|
||||
text: "Corner booth's free. I saved it — force of habit."
|
||||
role: bar-regular
|
||||
access: [peer]
|
||||
trust: surface
|
||||
@@ -79,7 +79,7 @@ lines:
|
||||
tags: [greeting, phase-2-5, repeatable]
|
||||
|
||||
- id: the-last-shift_d_105
|
||||
text: "Good timing. Naia was here earlier -- you just missed her."
|
||||
text: "Good timing. Naia was here earlier — you just missed her."
|
||||
role: bar-regular
|
||||
access: [peer]
|
||||
trust: surface
|
||||
@@ -89,7 +89,7 @@ lines:
|
||||
tags: [greeting, phase-2, naia-reference]
|
||||
|
||||
- id: the-last-shift_d_106
|
||||
text: "Grab a seat. Quiet night so far -- Lera's in a good mood, which means the ale's fresh."
|
||||
text: "Grab a seat. Quiet night so far — Lera's in a good mood, which means the ale's fresh."
|
||||
role: bar-regular
|
||||
access: [peer, public]
|
||||
trust: surface
|
||||
@@ -134,7 +134,7 @@ lines:
|
||||
tags: [orientation, district-background]
|
||||
|
||||
- id: the-last-shift_d_111
|
||||
text: "See the card game in the corner? That's Harek's table. Security officer, off-duty. Harmless -- just loud."
|
||||
text: "See the card game in the corner? That's Harek's table. Security officer, off-duty. Harmless — just loud."
|
||||
role: bar-regular
|
||||
access: [peer]
|
||||
trust: surface
|
||||
@@ -184,7 +184,7 @@ lines:
|
||||
tags: [backstory, phase-1]
|
||||
|
||||
- id: the-last-shift_d_116
|
||||
text: "Lera remembers every regular's order. Eighteen years of that. Don't ask how she does it -- she'll just pour you one and prove it."
|
||||
text: "Lera remembers every regular's order. Eighteen years of that. Don't ask how she does it — she'll just pour you one and prove it."
|
||||
role: bar-regular
|
||||
access: [peer, public]
|
||||
trust: surface
|
||||
@@ -194,7 +194,7 @@ lines:
|
||||
tags: [community-texture]
|
||||
|
||||
- id: the-last-shift_d_117
|
||||
text: "The shift crowd clears out by 19:00. After that it's just us -- regulars, a few stragglers. The good hours."
|
||||
text: "The shift crowd clears out by 19:00. After that it's just us — regulars, a few stragglers. The good hours."
|
||||
role: bar-regular
|
||||
access: [peer]
|
||||
trust: surface
|
||||
@@ -233,7 +233,7 @@ lines:
|
||||
# --- Surface trust ---
|
||||
|
||||
- id: the-last-shift_d_120
|
||||
text: "The Commission runs maintenance checks quarterly. I handle the field side -- equipment calibration, relay diagnostics. Standard."
|
||||
text: "The Commission runs maintenance checks quarterly. I handle the field side — equipment calibration, relay diagnostics. Standard."
|
||||
role: bar-regular
|
||||
access: [peer, authority]
|
||||
trust: surface
|
||||
@@ -243,7 +243,7 @@ lines:
|
||||
tags: [institutional-background]
|
||||
|
||||
- id: the-last-shift_d_121
|
||||
text: "Naia teaches the station kids. Primary education, mostly. She's good at it -- patient. The kids adore her."
|
||||
text: "Naia teaches the station kids. Primary education, mostly. She's good at it — patient. The kids adore her."
|
||||
role: bar-regular
|
||||
access: [peer]
|
||||
trust: surface
|
||||
@@ -253,7 +253,7 @@ lines:
|
||||
tags: [naia-reference, phase-2]
|
||||
|
||||
- id: the-last-shift_d_122
|
||||
text: "The district runs on freight. Terminal handles most of it -- container processing, manifest filing. Bread and butter."
|
||||
text: "The district runs on freight. Terminal handles most of it — container processing, manifest filing. Bread and butter."
|
||||
role: bar-regular
|
||||
access: [peer, public]
|
||||
trust: surface
|
||||
@@ -295,7 +295,7 @@ lines:
|
||||
# --- Real trust ---
|
||||
|
||||
- id: the-last-shift_d_130
|
||||
text: "Naia's been worried lately. About Kael -- her partner. He's a dock worker at the Terminal. Late nights, evasive answers. She confided in me."
|
||||
text: "Naia's been worried lately. About Kael — her partner. He's a dock worker at the Terminal. Late nights, evasive answers. She confided in me."
|
||||
role: bar-regular
|
||||
access: [peer]
|
||||
trust: real
|
||||
@@ -373,7 +373,7 @@ lines:
|
||||
# --- Secret trust ---
|
||||
|
||||
- id: the-last-shift_d_140
|
||||
text: "I ran a compliance check. Unauthorized. Six weeks ago. Naia was so worried about Kael -- I thought I could help. I found manifest discrepancies tied to his shifts."
|
||||
text: "I ran a compliance check. Unauthorized. Six weeks ago. Naia was so worried about Kael — I thought I could help. I found manifest discrepancies tied to his shifts."
|
||||
role: bar-regular
|
||||
access: [peer]
|
||||
trust: secret
|
||||
@@ -396,7 +396,7 @@ lines:
|
||||
tags: [motivation-confession, phase-5]
|
||||
|
||||
- id: the-last-shift_d_142
|
||||
text: "The irregularities correlate with Torek Lintar's inspection shifts. That's why I can't -- I can't be near him. He doesn't know I know."
|
||||
text: "The irregularities correlate with Torek Lintar's inspection shifts. That's why I can't — I can't be near him. He doesn't know I know."
|
||||
role: bar-regular
|
||||
access: [peer]
|
||||
trust: secret
|
||||
@@ -409,7 +409,7 @@ lines:
|
||||
confidence: "knows_details"
|
||||
|
||||
- id: the-last-shift_d_143
|
||||
text: "I don't know what you're looking for. I told you everything I know. If you're asking whether I'm hiding something -- I'm a field tech, not an analyst."
|
||||
text: "I don't know what you're looking for. I told you everything I know. If you're asking whether I'm hiding something — I'm a field tech, not an analyst."
|
||||
role: bar-regular
|
||||
access: [peer, authority]
|
||||
trust: secret
|
||||
@@ -435,7 +435,7 @@ lines:
|
||||
# ============================================================
|
||||
|
||||
- id: the-last-shift_d_150
|
||||
text: "Oh -- before I forget. The dock scheduler, Maret? She's sharp. If you need freight records context, she's the one to ask."
|
||||
text: "Oh — before I forget. The dock scheduler, Maret? She's sharp. If you need freight records context, she's the one to ask."
|
||||
role: bar-regular
|
||||
access: [peer]
|
||||
trust: surface
|
||||
@@ -448,7 +448,7 @@ lines:
|
||||
confidence: "suspects"
|
||||
|
||||
- id: the-last-shift_d_151
|
||||
text: "I checked the relay calibration logs for the Terminal this morning. Nothing flagged. But the data throughput was higher than standard -- more manifests processed than usual."
|
||||
text: "I checked the relay calibration logs for the Terminal this morning. Nothing flagged. But the data throughput was higher than standard — more manifests processed than usual."
|
||||
role: bar-regular
|
||||
access: [peer, authority]
|
||||
trust: real
|
||||
@@ -458,7 +458,7 @@ lines:
|
||||
tags: [unprompted, overcompensation, phase-3-4]
|
||||
|
||||
- id: the-last-shift_d_152
|
||||
text: "I asked around -- quietly -- about the shift rotation schedule. Voss has been adjusting it more than usual this cycle. Might mean nothing."
|
||||
text: "I asked around — quietly — about the shift rotation schedule. Voss has been adjusting it more than usual this cycle. Might mean nothing."
|
||||
role: bar-regular
|
||||
access: [peer]
|
||||
trust: real
|
||||
@@ -491,7 +491,7 @@ lines:
|
||||
confidence: "knows_details"
|
||||
|
||||
- id: the-last-shift_d_155
|
||||
text: "You should know -- Lera watches out for her regulars. If people have been asking about you, she'd know. She just won't volunteer it."
|
||||
text: "You should know — Lera watches out for her regulars. If people have been asking about you, she'd know. She just won't volunteer it."
|
||||
role: bar-regular
|
||||
access: [peer]
|
||||
trust: real
|
||||
@@ -506,7 +506,7 @@ lines:
|
||||
# ============================================================
|
||||
|
||||
- id: the-last-shift_d_160
|
||||
text: "Actually, I should head out. Early shift tomorrow -- calibration rounds start at 07:30."
|
||||
text: "Actually, I should head out. Early shift tomorrow — calibration rounds start at 07:30."
|
||||
role: bar-regular
|
||||
access: [peer, public]
|
||||
trust: surface
|
||||
@@ -516,7 +516,7 @@ lines:
|
||||
tags: [avoidance-excuse-1, torek-trigger, phase-3]
|
||||
|
||||
- id: the-last-shift_d_161
|
||||
text: "Sorry -- headache coming on. Station air does that sometimes. I'll catch you tomorrow."
|
||||
text: "Sorry — headache coming on. Station air does that sometimes. I'll catch you tomorrow."
|
||||
role: bar-regular
|
||||
access: [peer, public]
|
||||
trust: surface
|
||||
@@ -526,7 +526,7 @@ lines:
|
||||
tags: [avoidance-excuse-2, torek-trigger, phase-3]
|
||||
|
||||
- id: the-last-shift_d_162
|
||||
text: "I need to check something at the Commission kiosk. Forgot to file a diagnostic report. I'll be quick -- or not. You know how the system is."
|
||||
text: "I need to check something at the Commission kiosk. Forgot to file a diagnostic report. I'll be quick — or not. You know how the system is."
|
||||
role: bar-regular
|
||||
access: [peer]
|
||||
trust: surface
|
||||
@@ -536,7 +536,7 @@ lines:
|
||||
tags: [avoidance-excuse-3, torek-trigger, phase-3]
|
||||
|
||||
- id: the-last-shift_d_163
|
||||
text: "Torek? He's just loud. I don't love loud drunks. Nothing personal -- I just like a quieter evening."
|
||||
text: "Torek? He's just loud. I don't love loud drunks. Nothing personal — I just like a quieter evening."
|
||||
role: bar-regular
|
||||
access: [peer]
|
||||
trust: surface
|
||||
@@ -546,7 +546,7 @@ lines:
|
||||
tags: [torek-deflection, phase-4, the-deflection]
|
||||
|
||||
- id: the-last-shift_d_164
|
||||
text: "Manifests? I wouldn't know -- I'm on the equipment side, not the freight side. Different department entirely."
|
||||
text: "Manifests? I wouldn't know — I'm on the equipment side, not the freight side. Different department entirely."
|
||||
role: bar-regular
|
||||
access: [peer, authority]
|
||||
trust: surface
|
||||
@@ -556,7 +556,7 @@ lines:
|
||||
tags: [topic-deflection, cargo-avoidance, phase-3-5]
|
||||
|
||||
- id: the-last-shift_d_165
|
||||
text: "Anyway -- did you try the ale? Lera got a new supply run in. Much better than last week's batch."
|
||||
text: "Anyway — did you try the ale? Lera got a new supply run in. Much better than last week's batch."
|
||||
role: bar-regular
|
||||
access: [peer]
|
||||
trust: surface
|
||||
@@ -566,7 +566,7 @@ lines:
|
||||
tags: [redirect, warmth-recovery, phase-4]
|
||||
|
||||
- id: the-last-shift_d_166
|
||||
text: "I'm just a field tech. I maintain equipment. I don't track people or shipments -- that's your department."
|
||||
text: "I'm just a field tech. I maintain equipment. I don't track people or shipments — that's your department."
|
||||
role: bar-regular
|
||||
access: [peer, authority]
|
||||
trust: surface
|
||||
@@ -576,7 +576,7 @@ lines:
|
||||
tags: [deflection-firm, phase-4-5, the-wall]
|
||||
|
||||
- id: the-last-shift_d_167
|
||||
text: "Let's talk about something else. How's the investigation going -- generally? Making progress?"
|
||||
text: "Let's talk about something else. How's the investigation going — generally? Making progress?"
|
||||
role: bar-regular
|
||||
access: [peer]
|
||||
trust: real
|
||||
@@ -632,7 +632,7 @@ lines:
|
||||
tags: [post-discovery, genuine-but-contaminated, phase-5]
|
||||
|
||||
- id: the-last-shift_d_174
|
||||
text: "If there's anything I can help with -- anything at all -- you just ask. You know that."
|
||||
text: "If there's anything I can help with — anything at all — you just ask. You know that."
|
||||
role: bar-regular
|
||||
access: [peer]
|
||||
trust: real
|
||||
@@ -651,7 +651,7 @@ lines:
|
||||
# first_meeting (detective path): RelationshipState Unknown → Public/Authority access.
|
||||
# Sera clocks them as Commission immediately. Makes them welcome anyway.
|
||||
- id: the-last-shift_d_175
|
||||
text: "Commission? Don't worry, I don't bite. I'm Sera. Corner booth's better -- you can see the whole room."
|
||||
text: "Commission? Don't worry, I don't bite. I'm Sera. Corner booth's better — you can see the whole room."
|
||||
role: bar-regular
|
||||
access: [public, authority]
|
||||
trust: surface
|
||||
@@ -659,7 +659,7 @@ lines:
|
||||
mood: [warm]
|
||||
topic: [personal, institution]
|
||||
tags: [sera, greeting, first-meeting, detective-path, layer2]
|
||||
notes: "Layer 2 greeting — first meeting, detective path. Sera reads the institutional marking immediately and disarms it. Corner booth tip is genuine -- Sera always notices the useful details."
|
||||
notes: "Layer 2 greeting — first meeting, detective path. Sera reads the institutional marking immediately and disarms it. Corner booth tip is genuine — Sera always notices the useful details."
|
||||
|
||||
# established (detective path): count >= 3, RelationshipState: Known/Friendly → Peer access.
|
||||
# Warmer, more personal. Sera has been waiting for them.
|
||||
@@ -672,10 +672,10 @@ lines:
|
||||
mood: [warm]
|
||||
topic: [personal, investigation]
|
||||
tags: [sera, greeting, repeat-visit, detective-path, layer2]
|
||||
notes: "Layer 2 greeting — established, detective path. Personal, invested. Sera asks about their day the way a friend does -- not just small talk."
|
||||
notes: "Layer 2 greeting — established, detective path. Personal, invested. Sera asks about their day the way a friend does — not just small talk."
|
||||
|
||||
# first_meeting (smuggler path): smuggler is dock crew, Sera knows the district crowd.
|
||||
# Peer/insider access from the start -- Sera has social network, not institutional distance.
|
||||
# Peer/insider access from the start — Sera has social network, not institutional distance.
|
||||
- id: the-last-shift_d_177
|
||||
text: "Terminal crew? Grab a seat. Kael usually sits in the back if you're looking for him."
|
||||
role: bar-regular
|
||||
@@ -685,7 +685,7 @@ lines:
|
||||
mood: [content]
|
||||
topic: [colleague, personal]
|
||||
tags: [sera, greeting, first-meeting, smuggler-path, layer2]
|
||||
notes: "Layer 2 greeting — first meeting, smuggler path. Sera recognizes dock crew on sight and extends the social network. Mentioning Kael is casual intel -- she knows everyone's connections."
|
||||
notes: "Layer 2 greeting — first meeting, smuggler path. Sera recognizes dock crew on sight and extends the social network. Mentioning Kael is casual intel — she knows everyone's connections."
|
||||
|
||||
# post-confrontation: confrontation logged. Sera's surface warmth is present but qualified.
|
||||
# She doesn't know where they stand. The welcome is real but uncertain.
|
||||
|
||||
+1
@@ -220,6 +220,7 @@ lines:
|
||||
access: [insider]
|
||||
trust: real
|
||||
situation: [routine]
|
||||
mood: [content]
|
||||
topic: [colleague]
|
||||
tags: [kael, ring-ops, drin, phase-2]
|
||||
knowledge_grant:
|
||||
|
||||
+3
-2
@@ -24,16 +24,17 @@ lines:
|
||||
notes: "Opening line. Reality matches the briefing — he arrived prepared. Establishes: detective as institutional outsider sent here. Cool-lit corridors per D-046 expressed through 'half-cycle' lighting observation. No contractions (analytical)."
|
||||
|
||||
- id: opening_m_d_002
|
||||
text: "Cargo lubricant, recycled atmosphere. Same mixture on every freight hub from here to the span gate threshold. First observation: consistent with Commission briefing profile."
|
||||
text: "Cargo lubricant, recycled atmosphere. Same mixture on every freight hub from here to the span gate hum. First observation: consistent with Commission briefing profile."
|
||||
role: player_character
|
||||
access: [public]
|
||||
trust: surface
|
||||
situation: [arrival, shift_start]
|
||||
trigger: enter_location
|
||||
mood: [focused]
|
||||
priority: 10
|
||||
cooldown: 9999
|
||||
tags: [opening-hook, tutorial-arc, atmospheric, analytical]
|
||||
notes: "Environmental sensory in analytical register. Colon usage (detective verbal pattern, section 2.2). No contractions. 'span gate threshold' is canonical terminology (D-036). Contrast with smuggler's 'Home sweet home' — same smell, opposite emotional valence. He's working, not home."
|
||||
notes: "Environmental sensory in analytical register. Colon usage (detective verbal pattern, section 2.2). No contractions. 'span gate' is canonical terminology (D-036); 'hum' is sensory detail. Contrast with smuggler's 'Home sweet home' — same smell, opposite emotional valence. He's working, not home."
|
||||
|
||||
- id: opening_m_d_003
|
||||
text: "Lattice overlay initializing. Four identity flags in immediate range — cross-referencing against Commission case file."
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# 13 situation values (D-035, D-028 Layer 2)
|
||||
# 14 situation values (D-035, D-028 Layer 2)
|
||||
# Situation context for dialogue line eligibility — engine-state-to-situation mapping
|
||||
name: situations
|
||||
decision_ref: D-035
|
||||
|
||||
@@ -201,6 +201,8 @@ Content lines use `situation: [greeting]` as their tag. The engine currently pus
|
||||
|
||||
**Schema note (dialogue-line.schema.json):** `"'greeting' is not yet in server/src/content/line_pool.rs — lines using it will be skipped until Rust is updated."`
|
||||
|
||||
**Current fallback behavior:** Until the Rust update lands, lines tagged `situation: [greeting]` are excluded from the candidate pool entirely — they never fire. NPCs greet the player using their `situation: [routine]` or `situation: [social]` lines instead, filtered by access tier and mood as usual. This means Layer 2 relationship-aware greetings are functionally dormant; the content exists and is schema-valid, but the engine skips it. No error is raised — the line pool query simply finds no match for the `greeting` situation and falls through to other eligible lines.
|
||||
|
||||
**Intended resolution (pending Rust update):** When `server/src/content/line_pool.rs` is updated to include `Situation::Greeting`, `greeting`-tagged content lines will fire. The Layer 2 relationship history distinction will then work through the access tier filtering that is already implemented:
|
||||
|
||||
- `access: [public]` + `situation: [greeting]` → first meeting lines (Unknown relationship)
|
||||
|
||||
Reference in New Issue
Block a user