5 seed-time pools (single-candidate for deterministic v0.1 testing), 3 social site templates (logistics-hub, bar, smuggling-ring) with role slot definitions per D-025, and 5 triangles (3 active fork, 2 passive) per D-024 workshop synthesis. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,78 @@
|
|||||||
|
# Pool definitions for Sova Transit District
|
||||||
|
# Seed-time selection system. Architecture supports N candidates; v0.1 has 1 each.
|
||||||
|
# Format per seed-configuration-schema.md section 5.2
|
||||||
|
# Referenced by: seed config generation (Sprint 5+), content loader (#408)
|
||||||
|
|
||||||
|
pools:
|
||||||
|
- pool_id: "transit:friend_smuggler"
|
||||||
|
category: npc_role
|
||||||
|
description: >
|
||||||
|
Smuggler's FRIEND (D-034) — closest colleague, emotional anchor.
|
||||||
|
Production-level complex NPC exercising every content pipeline.
|
||||||
|
v0.1: Kael Davan (dock worker, ring member). v0.2+: expand to
|
||||||
|
multiple dock worker candidates with different contradiction arcs.
|
||||||
|
constraints:
|
||||||
|
- must_be_in_template: "logistics-hub"
|
||||||
|
- must_have_pattern: "FRIEND"
|
||||||
|
- bonded_character: "smuggler"
|
||||||
|
candidates:
|
||||||
|
- npc_id: "npc:kael-davan"
|
||||||
|
weight: 1
|
||||||
|
|
||||||
|
- pool_id: "transit:friend_detective"
|
||||||
|
category: npc_role
|
||||||
|
description: >
|
||||||
|
Detective's FRIEND (D-034) — social anchor, information holder.
|
||||||
|
Production-level complex NPC. Contradiction: sitting on unreported
|
||||||
|
evidence about Kael's manifest discrepancies, protecting Naia.
|
||||||
|
v0.1: Sera Venn (Commission field tech, bar regular).
|
||||||
|
constraints:
|
||||||
|
- must_have_pattern: "FRIEND"
|
||||||
|
- bonded_character: "detective"
|
||||||
|
candidates:
|
||||||
|
- npc_id: "npc:sera-venn"
|
||||||
|
weight: 1
|
||||||
|
|
||||||
|
- pool_id: "transit:bar_regulars"
|
||||||
|
category: npc_group
|
||||||
|
description: >
|
||||||
|
NPCs who frequent The Last Shift as regulars. Fills bar-regular
|
||||||
|
template slots. v0.1: fixed set (all selected). v0.2+: seeder
|
||||||
|
draws a subset from a larger candidate pool for variety.
|
||||||
|
Note: regulars include cross-template visitors (reference links)
|
||||||
|
who frequent the bar location but are owned by other templates.
|
||||||
|
constraints:
|
||||||
|
- frequents_location: "the-last-shift"
|
||||||
|
candidates:
|
||||||
|
- npc_id: "npc:sera-venn"
|
||||||
|
weight: 1
|
||||||
|
- npc_id: "npc:resha"
|
||||||
|
weight: 1
|
||||||
|
- npc_id: "npc:kael-davan"
|
||||||
|
weight: 1
|
||||||
|
- npc_id: "npc:torek-lintar"
|
||||||
|
weight: 1
|
||||||
|
- npc_id: "npc:drin"
|
||||||
|
weight: 1
|
||||||
|
|
||||||
|
- pool_id: "transit:compromised_inspector"
|
||||||
|
category: npc_role
|
||||||
|
description: >
|
||||||
|
The Commission inspector compromised by the ring. Access to authority
|
||||||
|
systems, gambling debt makes them vulnerable. v0.1: Torek Lintar.
|
||||||
|
constraints:
|
||||||
|
- must_have_access: "authority"
|
||||||
|
- must_have_faction: "Commission"
|
||||||
|
candidates:
|
||||||
|
- npc_id: "npc:torek-lintar"
|
||||||
|
weight: 1
|
||||||
|
|
||||||
|
- pool_id: "transit:primary_contraband"
|
||||||
|
category: contraband
|
||||||
|
description: >
|
||||||
|
What the ring is smuggling (D-037). v0.1: unlicensed lattice
|
||||||
|
components — aftermarket neural lattice modifications. Moral
|
||||||
|
ambiguity: the ring is smuggling access, not weapons.
|
||||||
|
candidates:
|
||||||
|
- id: "contraband:lattice-components"
|
||||||
|
weight: 1
|
||||||
+101
@@ -0,0 +1,101 @@
|
|||||||
|
# Social site template: The Last Shift (bar)
|
||||||
|
# D-025: functional cluster as atomic template unit
|
||||||
|
# 4 role slots, 4+ NPCs in v0.1 (regulars are reference links). 4-8 NPC capacity.
|
||||||
|
|
||||||
|
template_id: bar
|
||||||
|
display_name: "The Last Shift"
|
||||||
|
description: >
|
||||||
|
Mid-grade bar in Sova Transit District. Converted maintenance staging area.
|
||||||
|
Irregular layout, long bar, corner booth. Where working people go after shift.
|
||||||
|
Informally known as "Lera's." The social nexus where investigation and
|
||||||
|
mundane life overlap.
|
||||||
|
location: the-last-shift
|
||||||
|
|
||||||
|
capacity:
|
||||||
|
min: 4
|
||||||
|
max: 8
|
||||||
|
|
||||||
|
role_slots:
|
||||||
|
- role: bar-owner
|
||||||
|
display_name: "Bar Owner"
|
||||||
|
count: 1
|
||||||
|
required: true
|
||||||
|
description: >
|
||||||
|
Owns and operates the bar. Observant, careful, knows everyone's business.
|
||||||
|
ANCHOR pattern — the stabilizing social presence. Hears everything,
|
||||||
|
says little. Access tier: insider for regulars.
|
||||||
|
pool_ref: null
|
||||||
|
flags:
|
||||||
|
- social_anchor
|
||||||
|
- information_hub
|
||||||
|
- bar_permanent
|
||||||
|
|
||||||
|
- role: bartender
|
||||||
|
display_name: "Bartender"
|
||||||
|
count: 1
|
||||||
|
required: true
|
||||||
|
description: >
|
||||||
|
Serves drinks, manages the floor. Different from the owner — the
|
||||||
|
bartender is staff, not the proprietor. Younger, less established.
|
||||||
|
pool_ref: null
|
||||||
|
flags:
|
||||||
|
- bar_permanent
|
||||||
|
|
||||||
|
- role: bar-regular
|
||||||
|
display_name: "Bar Regular"
|
||||||
|
count:
|
||||||
|
min: 2
|
||||||
|
max: 5
|
||||||
|
required: true
|
||||||
|
description: >
|
||||||
|
Off-duty workers and social visitors. Regulars are typically owned by
|
||||||
|
other templates (logistics hub, Commission) with reference links here.
|
||||||
|
Their presence during bar_evening creates the social observation space.
|
||||||
|
pool_ref: "transit:bar_regulars"
|
||||||
|
flags:
|
||||||
|
- evening_presence
|
||||||
|
- cross_template
|
||||||
|
|
||||||
|
# v0.1 NPC assignments
|
||||||
|
v01_assignments:
|
||||||
|
bar-owner: "npc:lera-sessik"
|
||||||
|
bartender: "npc:pell"
|
||||||
|
bar-regular-1: "npc:sera-venn" # Reference: Commission field tech, evening regular
|
||||||
|
bar-regular-2: "npc:resha" # Owned by bar template
|
||||||
|
# Additional regulars via reference links:
|
||||||
|
# npc:kael-davan (from logistics-hub, evening presence)
|
||||||
|
# npc:torek-lintar (from Commission, evening presence)
|
||||||
|
# npc:drin (from logistics-hub, occasional)
|
||||||
|
|
||||||
|
# Reference links — NPCs owned by other templates who visit the bar
|
||||||
|
reference_links:
|
||||||
|
- npc: "npc:sera-venn"
|
||||||
|
owning_template: null # Sera is Commission, not bar staff
|
||||||
|
relationship: "social anchor — evening regular"
|
||||||
|
presence_phases: [evening]
|
||||||
|
- npc: "npc:kael-davan"
|
||||||
|
owning_template: logistics-hub
|
||||||
|
relationship: "after-shift regular"
|
||||||
|
presence_phases: [evening]
|
||||||
|
- npc: "npc:torek-lintar"
|
||||||
|
owning_template: null # Commission inspector
|
||||||
|
relationship: "off-duty regular, gambling participant"
|
||||||
|
presence_phases: [evening]
|
||||||
|
- npc: "npc:drin"
|
||||||
|
owning_template: logistics-hub
|
||||||
|
relationship: "occasional visitor"
|
||||||
|
presence_phases: [evening]
|
||||||
|
|
||||||
|
triangle_constraints:
|
||||||
|
- triangle: bar-tensions
|
||||||
|
required_roles:
|
||||||
|
- bar-owner # Lera: owner mediating
|
||||||
|
- bar-regular # Resha: regular with grievance
|
||||||
|
- bartender # Pell: caught in the middle
|
||||||
|
- triangle: worried-knowledge
|
||||||
|
required_roles:
|
||||||
|
- bar-regular # Sera: avoiding Torek at the bar
|
||||||
|
|
||||||
|
dialogue_pools:
|
||||||
|
- location: the-last-shift
|
||||||
|
roles: [bar-owner, bartender, bar-regular]
|
||||||
+106
@@ -0,0 +1,106 @@
|
|||||||
|
# Social site template: The Terminal (logistics hub)
|
||||||
|
# D-025: functional cluster as atomic template unit
|
||||||
|
# 5 role slots, 6 NPCs in v0.1. 4-8 NPC capacity.
|
||||||
|
|
||||||
|
template_id: logistics-hub
|
||||||
|
display_name: "The Terminal"
|
||||||
|
description: >
|
||||||
|
Freight logistics hub — the beating heart of Sova Transit District. Cargo
|
||||||
|
processing, manifest management, shift rotations. The smuggler's workplace
|
||||||
|
and the ring's operational cover.
|
||||||
|
location: the-terminal
|
||||||
|
|
||||||
|
# Capacity range per D-025: 4-8 NPCs in connected space with internal sightlines
|
||||||
|
capacity:
|
||||||
|
min: 4
|
||||||
|
max: 8
|
||||||
|
|
||||||
|
role_slots:
|
||||||
|
- role: shift-supervisor
|
||||||
|
display_name: "Shift Supervisor"
|
||||||
|
count: 1
|
||||||
|
required: true
|
||||||
|
description: >
|
||||||
|
Authority figure. Oversees dock operations, manages shift schedules,
|
||||||
|
enforces procedures. Access tier: authority within the hub.
|
||||||
|
pool_ref: null # Fixed assignment in v0.1
|
||||||
|
flags:
|
||||||
|
- authority_figure
|
||||||
|
- hub_permanent
|
||||||
|
|
||||||
|
- role: dock-worker
|
||||||
|
display_name: "Dock Worker"
|
||||||
|
count:
|
||||||
|
min: 2
|
||||||
|
max: 4
|
||||||
|
required: true
|
||||||
|
description: >
|
||||||
|
Core workforce. Processes cargo, handles manifests, operates equipment.
|
||||||
|
One dock-worker slot is reserved for the smuggler's FRIEND (pool draw).
|
||||||
|
pool_ref: "transit:friend_smuggler" # One slot drawn from FRIEND pool
|
||||||
|
flags:
|
||||||
|
- hub_permanent
|
||||||
|
- ring_candidate
|
||||||
|
|
||||||
|
- role: new-hire
|
||||||
|
display_name: "New Hire"
|
||||||
|
count: 1
|
||||||
|
required: false
|
||||||
|
description: >
|
||||||
|
Recent arrival to the logistics hub. Asks questions, doesn't know the
|
||||||
|
social norms yet, provides a fresh perspective. CATALYST pattern.
|
||||||
|
pool_ref: null
|
||||||
|
flags:
|
||||||
|
- catalyst
|
||||||
|
- newcomer
|
||||||
|
|
||||||
|
- role: scheduler
|
||||||
|
display_name: "Freight Scheduler"
|
||||||
|
count: 1
|
||||||
|
required: true
|
||||||
|
description: >
|
||||||
|
Manages freight scheduling and manifest coordination. Has access to
|
||||||
|
cargo records — a key information source for both smuggler and detective.
|
||||||
|
pool_ref: null
|
||||||
|
flags:
|
||||||
|
- hub_permanent
|
||||||
|
- information_access
|
||||||
|
|
||||||
|
- role: courier
|
||||||
|
display_name: "Courier"
|
||||||
|
count: 1
|
||||||
|
required: false
|
||||||
|
description: >
|
||||||
|
Moves between locations. Off-duty security or delivery runner.
|
||||||
|
Bridge NPC who connects the hub to other social sites.
|
||||||
|
pool_ref: null
|
||||||
|
flags:
|
||||||
|
- bridge_npc
|
||||||
|
|
||||||
|
# v0.1 NPC assignments (matches seed config design doc section 4.4)
|
||||||
|
v01_assignments:
|
||||||
|
shift-supervisor: "npc:voss"
|
||||||
|
dock-worker-1: "npc:kael-davan"
|
||||||
|
dock-worker-2: "npc:drin"
|
||||||
|
new-hire: "npc:renn"
|
||||||
|
scheduler: "npc:maret-korr"
|
||||||
|
courier: "npc:harek"
|
||||||
|
|
||||||
|
# Triangles that involve members of this template
|
||||||
|
triangle_constraints:
|
||||||
|
- triangle: hub-power
|
||||||
|
required_roles:
|
||||||
|
- shift-supervisor # Voss: authority
|
||||||
|
- dock-worker # Kael: subordinate
|
||||||
|
- scheduler # Maret: caught-between
|
||||||
|
- triangle: worried-partner
|
||||||
|
required_roles:
|
||||||
|
- dock-worker # Kael: partner under ring pressure
|
||||||
|
- triangle: informant-question
|
||||||
|
required_roles:
|
||||||
|
- dock-worker # Drin: notices Torek's inspection irregularities
|
||||||
|
|
||||||
|
# Dialogue pool locations (maps to dialogue/ subdirectory)
|
||||||
|
dialogue_pools:
|
||||||
|
- location: the-terminal
|
||||||
|
roles: [shift-supervisor, dock-worker, new-hire, scheduler, courier]
|
||||||
+88
@@ -0,0 +1,88 @@
|
|||||||
|
# Social site template: Smuggling Ring (maintenance corridors)
|
||||||
|
# D-025: functional cluster as atomic template unit
|
||||||
|
# Smallest template: 2-4 NPCs. Operates in infrastructure gaps.
|
||||||
|
|
||||||
|
template_id: smuggling-ring
|
||||||
|
display_name: "The Ring"
|
||||||
|
description: >
|
||||||
|
Smuggling operation using repurposed maintenance infrastructure. Not a
|
||||||
|
dedicated room — a corridor between hub sections where old and new
|
||||||
|
construction don't quite meet. Access through service hatches. The ring
|
||||||
|
didn't build this space; they found it. Operates during night shift and
|
||||||
|
shift transitions when oversight is thinnest.
|
||||||
|
location: maintenance-corridors
|
||||||
|
|
||||||
|
capacity:
|
||||||
|
min: 2
|
||||||
|
max: 4
|
||||||
|
|
||||||
|
role_slots:
|
||||||
|
- role: ring-operative
|
||||||
|
display_name: "Ring Coordinator"
|
||||||
|
count: 1
|
||||||
|
required: true
|
||||||
|
description: >
|
||||||
|
Coordinates ring operations. HANDLER motivation — manages logistics,
|
||||||
|
maintains contacts, makes decisions. Capable, not theatrical.
|
||||||
|
pool_ref: null
|
||||||
|
flags:
|
||||||
|
- ring_leader
|
||||||
|
- night_presence
|
||||||
|
- restricted_access
|
||||||
|
|
||||||
|
- role: ring-contact
|
||||||
|
display_name: "Ring Contact"
|
||||||
|
count:
|
||||||
|
min: 1
|
||||||
|
max: 2
|
||||||
|
required: true
|
||||||
|
description: >
|
||||||
|
Active ring member with dual role — legitimate job at the logistics hub
|
||||||
|
by day, ring operations by night. Reference link from logistics-hub
|
||||||
|
template. Their presence here is the core secret the smuggler protects
|
||||||
|
and the detective investigates.
|
||||||
|
pool_ref: "transit:friend_smuggler" # The FRIEND is the primary ring contact
|
||||||
|
flags:
|
||||||
|
- dual_role
|
||||||
|
- night_presence
|
||||||
|
- ring_member
|
||||||
|
|
||||||
|
- role: external-contact
|
||||||
|
display_name: "External Contact"
|
||||||
|
count: 1
|
||||||
|
required: false
|
||||||
|
description: >
|
||||||
|
Off-station connection. Arrives with shipments, departs quickly.
|
||||||
|
Not a permanent presence — appears during ring operation windows.
|
||||||
|
pool_ref: null
|
||||||
|
flags:
|
||||||
|
- transient
|
||||||
|
- external
|
||||||
|
|
||||||
|
# v0.1 NPC assignments
|
||||||
|
v01_assignments:
|
||||||
|
ring-operative: "npc:devra"
|
||||||
|
ring-contact: "npc:kael-davan" # Reference from logistics-hub (dual role)
|
||||||
|
external-contact: "npc:sabel" # Off-system contact
|
||||||
|
|
||||||
|
reference_links:
|
||||||
|
- npc: "npc:kael-davan"
|
||||||
|
owning_template: logistics-hub
|
||||||
|
relationship: "ring member — dual role, night operations"
|
||||||
|
presence_phases: [night]
|
||||||
|
- npc: "npc:sabel"
|
||||||
|
owning_template: null # External, transient
|
||||||
|
relationship: "off-station buyer/receiver"
|
||||||
|
presence_phases: [night] # Irregular, tied to shipments
|
||||||
|
|
||||||
|
triangle_constraints:
|
||||||
|
- triangle: worried-partner
|
||||||
|
required_roles:
|
||||||
|
- ring-contact # Kael: under pressure from ring work
|
||||||
|
- triangle: hub-power
|
||||||
|
required_roles:
|
||||||
|
- ring-contact # Kael: subordinate to Voss by day, ring by night
|
||||||
|
|
||||||
|
dialogue_pools:
|
||||||
|
- location: maintenance-corridors
|
||||||
|
roles: [ring-operative]
|
||||||
+49
-1
@@ -1 +1,49 @@
|
|||||||
# Triangle: bar-tensions
|
# Triangle 3: Bar Tensions — mundane social friction at The Last Shift
|
||||||
|
# Passive — runs on background simulation, no storyteller intervention
|
||||||
|
canonical_id: bar-tensions
|
||||||
|
display_name: "Bar Tensions"
|
||||||
|
description: >
|
||||||
|
Mundane social friction at The Last Shift. Lera Sessik (bar owner) runs
|
||||||
|
a tight establishment. Resha (regular) has a grievance — could be about
|
||||||
|
the bar, another regular, or community politics. Pell (bartender) is
|
||||||
|
caught in the middle, trying to keep both the boss and the customers
|
||||||
|
happy. This is the 50% of life that has nothing to do with conspiracy —
|
||||||
|
the noise floor that makes investigation signal meaningful.
|
||||||
|
|
||||||
|
members:
|
||||||
|
- npc: "npc:lera-sessik"
|
||||||
|
role: "owner — mediates disputes, protects her establishment"
|
||||||
|
- npc: "npc:resha"
|
||||||
|
role: "regular — has a grievance, vocal about it"
|
||||||
|
- npc: "npc:pell"
|
||||||
|
role: "bartender — caught between boss and customers"
|
||||||
|
|
||||||
|
forks:
|
||||||
|
- id: grievance-escalation
|
||||||
|
condition: >
|
||||||
|
Resha's grievance reaches a tipping point. Lera must decide whether
|
||||||
|
to take sides or maintain neutrality. Pell gets drawn in.
|
||||||
|
outcomes:
|
||||||
|
- id: lera-sides-with-resha
|
||||||
|
description: >
|
||||||
|
Lera validates Resha's complaint. Pell adjusts service accordingly.
|
||||||
|
Social dynamics shift — Resha becomes more central, the bar's
|
||||||
|
atmosphere changes slightly.
|
||||||
|
effects:
|
||||||
|
- "resha.behavior_flags += vindicated"
|
||||||
|
- "pell.behavior_flags += accommodating"
|
||||||
|
- "bar atmosphere = tense but resolving"
|
||||||
|
- id: lera-shuts-it-down
|
||||||
|
description: >
|
||||||
|
Lera tells Resha to drop it. Her bar, her rules. Resha sulks.
|
||||||
|
Pell is relieved. The grievance goes underground.
|
||||||
|
effects:
|
||||||
|
- "resha.behavior_flags += resentful,quiet"
|
||||||
|
- "pell.behavior_flags += relieved"
|
||||||
|
- "bar atmosphere = business as usual"
|
||||||
|
|
||||||
|
resolution_states:
|
||||||
|
- id: grievance-resolved
|
||||||
|
description: The dispute is settled one way or another. Normal bar dynamics resume.
|
||||||
|
- id: grievance-simmering
|
||||||
|
description: The issue goes underground. Occasional flare-ups provide social texture.
|
||||||
|
|||||||
+70
-1
@@ -1 +1,70 @@
|
|||||||
# Triangle: hub-power
|
# Triangle 1: Hub Power — workplace hierarchy under ring pressure
|
||||||
|
# Active fork — smuggler decision (3 paths, self-contained per D-053/A-17)
|
||||||
|
canonical_id: hub-power
|
||||||
|
display_name: "Hub Power"
|
||||||
|
description: >
|
||||||
|
Workplace hierarchy tension at The Terminal. Voss (shift supervisor) has
|
||||||
|
positional authority but takes operational orders from the ring. Kael
|
||||||
|
(dock worker, THE FRIEND) is caught between his boss and the ring's demands.
|
||||||
|
Maret (freight scheduler) sees manifest discrepancies and doesn't know
|
||||||
|
whom to tell. The triangle's resting tension: Voss needs quiet, Kael
|
||||||
|
needs everything to hold together, Maret is too smart not to notice.
|
||||||
|
|
||||||
|
members:
|
||||||
|
- npc: "npc:voss"
|
||||||
|
role: "authority — shift supervisor with ring complicity"
|
||||||
|
- npc: "npc:kael-davan"
|
||||||
|
role: "subordinate — dock worker, ring member, caught between boss and ring"
|
||||||
|
- npc: "npc:maret-korr"
|
||||||
|
role: "caught-between — freight scheduler who sees the discrepancies"
|
||||||
|
|
||||||
|
forks:
|
||||||
|
- id: volume-escalation
|
||||||
|
condition: >
|
||||||
|
Ring demands double-volume shipment via intermediary. Smuggler
|
||||||
|
must decide how to handle the pressure on Voss and Kael.
|
||||||
|
outcomes:
|
||||||
|
- id: escalate
|
||||||
|
description: >
|
||||||
|
Side with ring (escalate). Convince Voss to widen the shift gap.
|
||||||
|
Investigation accelerates — manifest discrepancies spike, Voss
|
||||||
|
becomes visibly anxious. Detective reads organizational stress.
|
||||||
|
effects:
|
||||||
|
- "voss.behavior_flags += nervous,schedule_changes,evasive"
|
||||||
|
- "voss.position_integrity = thin"
|
||||||
|
- "ring.exposure_risk increases"
|
||||||
|
- "detective.investigation_pace = accelerated"
|
||||||
|
- id: stabilize
|
||||||
|
description: >
|
||||||
|
Side with Voss (stabilize). Reject or delay the double shipment.
|
||||||
|
Hub runs quiet but Kael absorbs redirected pressure from ring
|
||||||
|
coordinator. Detective reads personal stress on Kael instead.
|
||||||
|
effects:
|
||||||
|
- "kael.behavior_flags += lattice_checking,distracted,evasive"
|
||||||
|
- "kael.trust_level (from ring) drops"
|
||||||
|
- "friend_arc timing = accelerated"
|
||||||
|
- "detective.investigation_pace = slowed"
|
||||||
|
- id: mediate
|
||||||
|
description: >
|
||||||
|
Compromise — half volume, phased across two shipments. Nobody's
|
||||||
|
happy, nobody's exposed. Detective reads inconsistent operational
|
||||||
|
tempo. Creates a deferred second decision point.
|
||||||
|
effects:
|
||||||
|
- "ring.exposure_risk = moderate"
|
||||||
|
- "smuggler.operational_trust (from ring) drops"
|
||||||
|
- "kael.behavior_flags += uncertain,distracted"
|
||||||
|
- "detective reads organizational confusion"
|
||||||
|
|
||||||
|
resolution_states:
|
||||||
|
- id: ring-exposed-via-voss
|
||||||
|
description: >
|
||||||
|
Voss's anxiety becomes the detective's thread to pull. Investigation
|
||||||
|
arrives at the ring through institutional signals.
|
||||||
|
- id: ring-exposed-via-kael
|
||||||
|
description: >
|
||||||
|
Kael's personal strain becomes the detective's signal. Investigation
|
||||||
|
arrives through behavioral tells on THE FRIEND.
|
||||||
|
- id: ring-exposed-via-inconsistency
|
||||||
|
description: >
|
||||||
|
Irregular operational tempo reveals internal disagreement. Detective
|
||||||
|
infers organizational structure from pattern disruption.
|
||||||
|
|||||||
+56
-1
@@ -1 +1,56 @@
|
|||||||
# Triangle: informant-question
|
# Triangle 5: Informant Question — mundane workplace gossip and suspicion
|
||||||
|
# Passive — runs on background simulation, provides investigation noise
|
||||||
|
canonical_id: informant-question
|
||||||
|
display_name: "The Informant Question"
|
||||||
|
description: >
|
||||||
|
Torek Lintar (dock inspector, compromised by gambling debt) is observed
|
||||||
|
by Drin (dock worker) and Olin (bystander/new arrival). Drin has noticed
|
||||||
|
Torek's inspection patterns are irregular. Olin overhears workplace gossip
|
||||||
|
and doesn't know what's significant. This triangle generates the kind
|
||||||
|
of low-level workplace suspicion that exists in any tight community —
|
||||||
|
people notice things, talk about them, and form theories. For the
|
||||||
|
detective, it's signal mixed with noise.
|
||||||
|
|
||||||
|
members:
|
||||||
|
- npc: "npc:torek-lintar"
|
||||||
|
role: "inspector — compromised, inspection patterns irregular"
|
||||||
|
- npc: "npc:drin"
|
||||||
|
role: "worker — notices Torek's odd behavior, gossips about it"
|
||||||
|
- npc: "npc:olin"
|
||||||
|
role: "bystander — overhears gossip, forms theories, asks questions"
|
||||||
|
|
||||||
|
forks:
|
||||||
|
- id: gossip-spreads
|
||||||
|
condition: >
|
||||||
|
Drin's observations about Torek's inspection patterns reach
|
||||||
|
enough people that the gossip becomes ambient social knowledge.
|
||||||
|
outcomes:
|
||||||
|
- id: dismissed-as-gossip
|
||||||
|
description: >
|
||||||
|
The community dismisses Drin's observations as workplace gossip.
|
||||||
|
Torek's reputation survives. The information exists but isn't
|
||||||
|
treated as significant — noise floor functioning as intended.
|
||||||
|
effects:
|
||||||
|
- "torek.position_integrity unchanged"
|
||||||
|
- "community treats observations as routine gossip"
|
||||||
|
- "detective must distinguish signal from noise"
|
||||||
|
- id: torek-noticed
|
||||||
|
description: >
|
||||||
|
Enough people notice Torek's patterns that his behavior becomes
|
||||||
|
a topic of casual conversation. Not accusatory — just curious.
|
||||||
|
The detective can pick up on ambient awareness.
|
||||||
|
effects:
|
||||||
|
- "torek.behavior_flags += noticed,defensive"
|
||||||
|
- "ambient dialogue includes references to inspection patterns"
|
||||||
|
- "detective gains investigation.inspection_anomaly (suspects level)"
|
||||||
|
|
||||||
|
resolution_states:
|
||||||
|
- id: gossip-fades
|
||||||
|
description: >
|
||||||
|
The topic loses interest. Workplace gossip moves on. Torek's
|
||||||
|
irregularities are forgotten by everyone except potentially
|
||||||
|
the detective.
|
||||||
|
- id: ambient-suspicion
|
||||||
|
description: >
|
||||||
|
A low-level awareness persists in the community. Nothing actionable,
|
||||||
|
but Torek is slightly more careful and slightly more defensive.
|
||||||
|
|||||||
+63
-1
@@ -1 +1,63 @@
|
|||||||
# Triangle: worried-knowledge
|
# Triangle 2: Worried Knowledge — unreported evidence and protective silence
|
||||||
|
# Active fork — Sera's choice about what to do with what she knows
|
||||||
|
canonical_id: worried-knowledge
|
||||||
|
display_name: "Worried Knowledge"
|
||||||
|
description: >
|
||||||
|
Sera Venn (Commission field tech, detective's FRIEND) is sitting on
|
||||||
|
unreported evidence about Kael's manifest discrepancies. She's protecting
|
||||||
|
Naia Tamm (Kael's partner, who confided in her about Kael's late nights).
|
||||||
|
Torek Lintar (compromised inspector) is the subject — his gambling debt
|
||||||
|
makes him the institutional weak point, and Sera's evidence implicates
|
||||||
|
his inspection lapses. Sera's avoidance of Torek at the bar is the
|
||||||
|
observable tell.
|
||||||
|
|
||||||
|
members:
|
||||||
|
- npc: "npc:sera-venn"
|
||||||
|
role: "holder — Commission tech sitting on unreported evidence"
|
||||||
|
- npc: "npc:torek-lintar"
|
||||||
|
role: "subject — compromised inspector whose lapses Sera has documented"
|
||||||
|
- npc: "npc:naia-tamm"
|
||||||
|
role: "protected — Kael's partner, confided worries to Sera"
|
||||||
|
|
||||||
|
forks:
|
||||||
|
- id: evidence-disclosure
|
||||||
|
condition: >
|
||||||
|
Detective builds enough trust with Sera to trigger the disclosure
|
||||||
|
decision. Sera must choose between institutional duty, friendship
|
||||||
|
with Naia, and protecting the detective from a compromised colleague.
|
||||||
|
outcomes:
|
||||||
|
- id: sera-reports
|
||||||
|
description: >
|
||||||
|
Sera reports her evidence through official channels. Torek's
|
||||||
|
inspection lapses are flagged. The investigation gains institutional
|
||||||
|
data but Naia loses her protective buffer.
|
||||||
|
effects:
|
||||||
|
- "torek.position_integrity = cracking"
|
||||||
|
- "sera.trust_level (from naia) drops"
|
||||||
|
- "detective gains investigation.inspection_lapses fact"
|
||||||
|
- id: sera-protects
|
||||||
|
description: >
|
||||||
|
Sera stays silent to protect Naia. The evidence remains buried.
|
||||||
|
Detective must find the institutional thread through other means.
|
||||||
|
Sera's avoidance pattern intensifies as she manages the secret.
|
||||||
|
effects:
|
||||||
|
- "sera.behavior_flags += avoidance_pattern,evasive"
|
||||||
|
- "sera.position_integrity = thin"
|
||||||
|
- "naia remains protected"
|
||||||
|
- id: sera-confides
|
||||||
|
description: >
|
||||||
|
Sera tells the detective privately, off the record. The detective
|
||||||
|
gains the information but must decide what to do with it. Tests
|
||||||
|
the detective's institutional loyalty.
|
||||||
|
effects:
|
||||||
|
- "detective gains investigation.inspection_lapses fact (informal)"
|
||||||
|
- "sera.trust_level (toward detective) = trusted"
|
||||||
|
- "sera.risk_assessment = moderate (off-book disclosure)"
|
||||||
|
|
||||||
|
resolution_states:
|
||||||
|
- id: torek-exposed
|
||||||
|
description: Torek's compromised status becomes known to the investigation.
|
||||||
|
- id: knowledge-buried
|
||||||
|
description: Sera's evidence stays unreported. Avoidance pattern is the only tell.
|
||||||
|
- id: informal-disclosure
|
||||||
|
description: Detective knows but has no official evidence. Must find formal proof.
|
||||||
|
|||||||
+67
-1
@@ -1 +1,67 @@
|
|||||||
# Triangle: worried-partner
|
# Triangle 4: Worried Partner — ring pressure on personal relationships
|
||||||
|
# Active fork — the emotional heart of the smuggler's FRIEND arc
|
||||||
|
canonical_id: worried-partner
|
||||||
|
display_name: "Worried Partner"
|
||||||
|
description: >
|
||||||
|
Kael Davan (dock worker, ring member, smuggler's FRIEND) is under
|
||||||
|
increasing ring pressure from Devra (ring coordinator). Naia Tamm
|
||||||
|
(Kael's partner) is worried about his late nights and evasive answers.
|
||||||
|
The smuggler knows why Kael is busy and can't say. This is the most
|
||||||
|
emotionally loaded triangle — it connects THE FRIEND's contradiction
|
||||||
|
arc to personal relationships. If Naia asks the smuggler directly,
|
||||||
|
there's no good answer.
|
||||||
|
|
||||||
|
members:
|
||||||
|
- npc: "npc:kael-davan"
|
||||||
|
role: "partner under pressure — ring work destroying home life"
|
||||||
|
- npc: "npc:naia-tamm"
|
||||||
|
role: "worried — sees the changes, doesn't understand the cause"
|
||||||
|
- npc: "npc:devra"
|
||||||
|
role: "cause — ring coordinator whose demands increase Kael's burden"
|
||||||
|
|
||||||
|
forks:
|
||||||
|
- id: naia-confronts
|
||||||
|
condition: >
|
||||||
|
Naia's worry reaches a threshold. She confronts Kael directly, or
|
||||||
|
asks the smuggler what's going on. The smuggler faces a loyalty test.
|
||||||
|
outcomes:
|
||||||
|
- id: smuggler-deflects
|
||||||
|
description: >
|
||||||
|
Smuggler deflects Naia's questions. Protects Kael's cover but
|
||||||
|
damages trust with Naia. Kael is grateful but the lie costs.
|
||||||
|
effects:
|
||||||
|
- "naia.trust_level (toward smuggler) drops"
|
||||||
|
- "kael.behavior_flags += relieved,guilty"
|
||||||
|
- "smuggler.moral_weight (toward naia) = complicit"
|
||||||
|
- id: smuggler-hints
|
||||||
|
description: >
|
||||||
|
Smuggler gives Naia a partial truth — Kael's under work pressure,
|
||||||
|
it'll pass. Not a lie, but not the truth. Naia is temporarily
|
||||||
|
reassured but the pattern continues.
|
||||||
|
effects:
|
||||||
|
- "naia.behavior_flags += cautiously_reassured"
|
||||||
|
- "kael.behavior_flags += unaware"
|
||||||
|
- "smuggler.moral_weight (toward naia) = peripheral"
|
||||||
|
- id: kael-snaps
|
||||||
|
description: >
|
||||||
|
Before the smuggler can intervene, Kael snaps at Naia under
|
||||||
|
pressure. The argument is public enough to be observed. Devra's
|
||||||
|
pressure has become visible through personal fallout.
|
||||||
|
effects:
|
||||||
|
- "kael.behavior_flags += agitated,public_argument"
|
||||||
|
- "naia.behavior_flags += hurt,withdrawn"
|
||||||
|
- "detective observes domestic stress (behavioral signal)"
|
||||||
|
|
||||||
|
resolution_states:
|
||||||
|
- id: relationship-strained
|
||||||
|
description: >
|
||||||
|
Kael and Naia's relationship is visibly strained. The domestic
|
||||||
|
tension becomes an observable signal for the detective.
|
||||||
|
- id: temporary-calm
|
||||||
|
description: >
|
||||||
|
The immediate crisis passes but the underlying cause remains.
|
||||||
|
Another confrontation is inevitable.
|
||||||
|
- id: naia-investigates
|
||||||
|
description: >
|
||||||
|
Naia starts looking into Kael's activities independently. She
|
||||||
|
becomes a potential variable the ring didn't account for.
|
||||||
|
|||||||
Reference in New Issue
Block a user