Populate 9 enum YAML files (situations, topics, moods, triggers, access-tiers, trust-tiers, activities, patterns, motivations) from D-035 taxonomy and 16 canonical entity attribute keys from D-024 with A7 workshop updates. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1 +1,41 @@
|
|||||||
# Access tiers: public, insider, authority, peer, hostile
|
# 5 access tier values (D-035, D-028 Layer 1)
|
||||||
|
# Hard filter on every dialogue line — determines who can hear what
|
||||||
|
name: access-tiers
|
||||||
|
decision_ref: D-035
|
||||||
|
description: >
|
||||||
|
Access tiers control which dialogue lines are available to the player based
|
||||||
|
on their current social standing at the NPC's social site. This is a hard
|
||||||
|
filter — lines are invisible if access doesn't match. A line can be eligible
|
||||||
|
for multiple access tiers (access is a list). The detective's institutional
|
||||||
|
Commission lattice registers as 'authority'; the smuggler's ring membership
|
||||||
|
provides 'insider' access.
|
||||||
|
|
||||||
|
values:
|
||||||
|
- value: public
|
||||||
|
description: >
|
||||||
|
Available to anyone. Surface-level conversation, safe topics, the social
|
||||||
|
wallpaper that everyone hears. Greetings, weather, the local complaint.
|
||||||
|
|
||||||
|
- value: insider
|
||||||
|
description: >
|
||||||
|
Available to people who belong. Ring members, established regulars, anyone
|
||||||
|
the NPC considers part of their social group. The smuggler starts here at
|
||||||
|
the logistics hub.
|
||||||
|
|
||||||
|
- value: authority
|
||||||
|
description: >
|
||||||
|
Available to institutional figures. Commission agents, station security,
|
||||||
|
anyone with formal investigative standing. The detective's default tier.
|
||||||
|
NPCs are more careful, more formal, less revealing.
|
||||||
|
|
||||||
|
- value: peer
|
||||||
|
description: >
|
||||||
|
Available to social equals who have earned personal trust. Not institutional,
|
||||||
|
not group membership — individual relationship. Requires repeated positive
|
||||||
|
interactions. The tier where real conversation happens.
|
||||||
|
|
||||||
|
- value: hostile
|
||||||
|
description: >
|
||||||
|
Available when the relationship has broken down. Accusations, threats,
|
||||||
|
defensive responses. Activates when trust drops below threshold or after
|
||||||
|
a confrontation event.
|
||||||
|
|||||||
@@ -0,0 +1,55 @@
|
|||||||
|
# NPC activity types for routine scheduling
|
||||||
|
# Derived from Gestalt routine format + Miri cultural patterns (Sova Transit District)
|
||||||
|
name: activities
|
||||||
|
decision_ref: D-024
|
||||||
|
description: >
|
||||||
|
Activity categories for NPC routine entries. Each routine schedule entry has a
|
||||||
|
phase (morning/afternoon/evening/night) and an activity describing what the NPC
|
||||||
|
is doing. Activities are used by the observation event generator to determine
|
||||||
|
what the player sees when observing an NPC, and by the situation activation
|
||||||
|
system to set dialogue context.
|
||||||
|
|
||||||
|
values:
|
||||||
|
- value: working
|
||||||
|
description: On-shift job duties — processing cargo, inspecting manifests, operating equipment
|
||||||
|
|
||||||
|
- value: supervising
|
||||||
|
description: Overseeing others' work — shift supervisor role, checking quality, giving orders
|
||||||
|
|
||||||
|
- value: maintaining
|
||||||
|
description: Maintenance and repair tasks — fixing equipment, cleaning, infrastructure upkeep
|
||||||
|
|
||||||
|
- value: patrolling
|
||||||
|
description: Security rounds — checking access points, monitoring areas, enforcement presence
|
||||||
|
|
||||||
|
- value: socializing
|
||||||
|
description: Casual social interaction — chatting at the bar, break room conversation, gossip
|
||||||
|
|
||||||
|
- value: drinking
|
||||||
|
description: At The Last Shift or similar — consuming drinks, unwinding after shift
|
||||||
|
|
||||||
|
- value: eating
|
||||||
|
description: Meal time — food vendors, break room, bar food
|
||||||
|
|
||||||
|
- value: resting
|
||||||
|
description: Off-shift downtime — in quarters, low activity, recuperating
|
||||||
|
|
||||||
|
- value: commuting
|
||||||
|
description: Moving between locations — corridor transit, shift change movement
|
||||||
|
|
||||||
|
- value: gambling
|
||||||
|
description: Card game at the bar — the regular social ritual, information exchange venue
|
||||||
|
|
||||||
|
- value: trading
|
||||||
|
description: Legitimate commerce — buying, selling, negotiating, market activity
|
||||||
|
|
||||||
|
- value: operating
|
||||||
|
description: >
|
||||||
|
Ring operations — contraband handling, manifest doctoring, coordination.
|
||||||
|
Only visible to characters with sufficient knowledge or direct observation.
|
||||||
|
|
||||||
|
- value: waiting
|
||||||
|
description: Idle between activities — lingering, watching, killing time
|
||||||
|
|
||||||
|
- value: meeting
|
||||||
|
description: Arranged or coincidental encounter with specific NPCs — planned conversation
|
||||||
@@ -1 +1,36 @@
|
|||||||
# 8 mood values
|
# 8 mood values (D-035, D-028 Layer 4)
|
||||||
|
# Mood tags for weighted dialogue selection
|
||||||
|
name: moods
|
||||||
|
decision_ref: D-035
|
||||||
|
description: >
|
||||||
|
NPC mood tags for Layer 4 weighted selection. The engine matches NPC current
|
||||||
|
mood state against line mood tags to weight selection. NPC mood changes based
|
||||||
|
on simulation events (triangle pressure, time of day, recent interactions).
|
||||||
|
Lines can be appropriate for multiple moods.
|
||||||
|
|
||||||
|
values:
|
||||||
|
- value: fond
|
||||||
|
description: Warm, affectionate. Genuine positive feeling toward the listener.
|
||||||
|
|
||||||
|
- value: comfortable
|
||||||
|
description: At ease, relaxed. Default positive-neutral state.
|
||||||
|
|
||||||
|
- value: worried
|
||||||
|
description: Anxious about something specific. Distracted, checking surroundings.
|
||||||
|
|
||||||
|
- value: suspicious
|
||||||
|
description: Guarded, measuring words. Something feels off to this NPC.
|
||||||
|
|
||||||
|
- value: analytical
|
||||||
|
description: Thoughtful, assessing. Processing information rather than emoting.
|
||||||
|
|
||||||
|
- value: conflicted
|
||||||
|
description: >
|
||||||
|
Torn between competing impulses. Loyalty vs. self-preservation, duty vs.
|
||||||
|
friendship. The mood of someone who hasn't decided what to do yet.
|
||||||
|
|
||||||
|
- value: concerned
|
||||||
|
description: Worried about someone else's wellbeing. Empathetic distress.
|
||||||
|
|
||||||
|
- value: relieved
|
||||||
|
description: Tension has eased. Something feared didn't happen, or a burden lifted.
|
||||||
|
|||||||
@@ -1 +1,41 @@
|
|||||||
# 6 functional motivations (System B)
|
# 6 functional motivations — System B (D-050)
|
||||||
|
# NPC functional role in the conspiracy/investigation structure
|
||||||
|
name: motivations
|
||||||
|
decision_ref: D-050
|
||||||
|
description: >
|
||||||
|
Functional motivations (System B) define an NPC's role relative to the
|
||||||
|
conspiracy and investigation structure. Combined with thematic patterns
|
||||||
|
(System A) to produce the full NPC generation model. Motivations are
|
||||||
|
uppercase enum values referenced by npc-profile.schema.json.
|
||||||
|
|
||||||
|
values:
|
||||||
|
- value: HANDLER
|
||||||
|
description: >
|
||||||
|
Manages or coordinates others within the ring structure. Has authority
|
||||||
|
over ring operations and knowledge of the network. Devra-type.
|
||||||
|
|
||||||
|
- value: WITNESS
|
||||||
|
description: >
|
||||||
|
Has seen or knows something significant, possibly without realizing it.
|
||||||
|
Their testimony or observations are valuable to the investigation.
|
||||||
|
|
||||||
|
- value: TURNCOAT
|
||||||
|
description: >
|
||||||
|
Wavering loyalty. Could flip sides given the right pressure or
|
||||||
|
incentive. The uncertain element in any conspiracy.
|
||||||
|
|
||||||
|
- value: CIVILIAN
|
||||||
|
description: >
|
||||||
|
Genuinely uninvolved. Their mundane concerns and daily life provide
|
||||||
|
the substrate that makes the conspiracy invisible. The honest majority.
|
||||||
|
|
||||||
|
- value: OPERATOR
|
||||||
|
description: >
|
||||||
|
Active participant in ring operations. Handles logistics, moves product,
|
||||||
|
takes direct action. Kael, Renn — the workers of the conspiracy.
|
||||||
|
|
||||||
|
- value: SKEPTIC
|
||||||
|
description: >
|
||||||
|
Questions the status quo — institutional, criminal, or both. May be
|
||||||
|
suspicious of the ring, critical of the Commission, or both. Asks
|
||||||
|
uncomfortable questions.
|
||||||
|
|||||||
@@ -1 +1,57 @@
|
|||||||
# 9 thematic patterns (System A)
|
# 9 thematic patterns — System A (D-050)
|
||||||
|
# NPC archetype patterns for character generation and narrative role
|
||||||
|
name: patterns
|
||||||
|
decision_ref: D-050
|
||||||
|
description: >
|
||||||
|
Thematic patterns (System A) define an NPC's narrative archetype — their
|
||||||
|
structural role in the story. Combined with functional motivations (System B)
|
||||||
|
to produce the full NPC generation model. Patterns are uppercase enum values
|
||||||
|
referenced by npc-profile.schema.json.
|
||||||
|
|
||||||
|
values:
|
||||||
|
- value: FRIEND
|
||||||
|
description: >
|
||||||
|
Production-level complex NPC bonded to a playable character (D-034).
|
||||||
|
Full 10-axis depth, contradiction arc, multi-phase relationship.
|
||||||
|
One per playable character in v0.1.
|
||||||
|
|
||||||
|
- value: MIRROR
|
||||||
|
description: >
|
||||||
|
Reflects the player character's situation from a different angle.
|
||||||
|
What the player could become, or what they might have been.
|
||||||
|
|
||||||
|
- value: ANCHOR
|
||||||
|
description: >
|
||||||
|
Stabilizing presence in the community. The person everyone knows,
|
||||||
|
who provides continuity and normalcy. The bar owner, the shift lead.
|
||||||
|
|
||||||
|
- value: GHOST
|
||||||
|
description: >
|
||||||
|
Absent or barely-present figure whose influence is felt through
|
||||||
|
others. Referenced in dialogue, effects visible, person rarely seen.
|
||||||
|
|
||||||
|
- value: CATALYST
|
||||||
|
description: >
|
||||||
|
Triggers change in others. Their actions or arrival destabilize
|
||||||
|
existing equilibria. The new hire, the returning contact.
|
||||||
|
|
||||||
|
- value: THRESHOLD
|
||||||
|
description: >
|
||||||
|
Gatekeeper between social worlds. Controls access to information,
|
||||||
|
spaces, or people. Their cooperation or opposition shapes player options.
|
||||||
|
|
||||||
|
- value: REMNANT
|
||||||
|
description: >
|
||||||
|
Carries the past. Remembers how things were before the current
|
||||||
|
situation. Provides historical context and perspective.
|
||||||
|
|
||||||
|
- value: SYSTEM
|
||||||
|
description: >
|
||||||
|
Represents institutional power. Their actions reflect organizational
|
||||||
|
priorities, not personal ones. The Commission agent, the inspector.
|
||||||
|
|
||||||
|
- value: NOBODY
|
||||||
|
description: >
|
||||||
|
Deliberately flat. Social wallpaper with one memorable trait.
|
||||||
|
Part of the 30% truly flat population (D-029). Provides the noise
|
||||||
|
floor that makes investigation signal meaningful.
|
||||||
|
|||||||
@@ -1 +1,53 @@
|
|||||||
# 13 situation values (D-035)
|
# 13 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
|
||||||
|
description: >
|
||||||
|
Dialogue situation tags. The engine activates situations based on simulation
|
||||||
|
state (time of day, interaction history, NPC routine state, triangle pressure).
|
||||||
|
Content authors tag lines with situations; the engine decides which situations
|
||||||
|
are currently active for a given NPC encounter.
|
||||||
|
|
||||||
|
values:
|
||||||
|
- value: arrival
|
||||||
|
description: Player has just arrived at this location (first visit this game-day)
|
||||||
|
|
||||||
|
- value: shift_start
|
||||||
|
description: NPC is beginning their work shift — settling in, task-focused
|
||||||
|
|
||||||
|
- value: shift_end
|
||||||
|
description: NPC is wrapping up their work shift — tired, ready to leave
|
||||||
|
|
||||||
|
- value: shift_transition
|
||||||
|
description: >
|
||||||
|
The gap between shifts when oversight is thinnest. Key operational window
|
||||||
|
for the ring. People are moving, handoffs happening, attention divided.
|
||||||
|
|
||||||
|
- value: bar_evening
|
||||||
|
description: Social hours at The Last Shift — off-duty, relaxed, drinks flowing
|
||||||
|
|
||||||
|
- value: night_shift
|
||||||
|
description: Late hours, skeleton crew. Quieter, more intimate conversations.
|
||||||
|
|
||||||
|
- value: investigation
|
||||||
|
description: Player is actively asking pointed or probing questions
|
||||||
|
|
||||||
|
- value: confrontation
|
||||||
|
description: >
|
||||||
|
Triangle tension has escalated past the pressure threshold. NPCs are
|
||||||
|
agitated, defensive, or aggressive. Activated by triangle pressure system.
|
||||||
|
|
||||||
|
- value: social
|
||||||
|
description: NPC is in a social activity — bar, break room, casual conversation
|
||||||
|
|
||||||
|
- value: alone
|
||||||
|
description: NPC is by themselves, no other NPCs nearby
|
||||||
|
|
||||||
|
- value: emergency
|
||||||
|
description: An urgent event is occurring — alarm, accident, security incident
|
||||||
|
|
||||||
|
- value: routine
|
||||||
|
description: Normal daily activity, nothing notable happening
|
||||||
|
|
||||||
|
- value: observation
|
||||||
|
description: Player is watching from a distance, not directly interacting
|
||||||
|
|||||||
@@ -1 +1,44 @@
|
|||||||
# 9 topic values
|
# 9 topic values (D-035, D-028 Layer 4)
|
||||||
|
# Topic tags for weighted dialogue selection
|
||||||
|
name: topics
|
||||||
|
decision_ref: D-035
|
||||||
|
description: >
|
||||||
|
Dialogue topic tags for Layer 4 weighted selection. The engine matches NPC
|
||||||
|
current concern topics against line topic tags to weight selection. Lines can
|
||||||
|
cover multiple topics. Note: 'crime' is deliberately excluded — NPCs think
|
||||||
|
of smuggling as 'cargo' or 'money', not crime. The dual-lens interpretation
|
||||||
|
is what makes those topics crime-adjacent for the detective.
|
||||||
|
|
||||||
|
values:
|
||||||
|
- value: colleague
|
||||||
|
description: Talk about coworkers, workplace relationships, team dynamics
|
||||||
|
|
||||||
|
- value: routine
|
||||||
|
description: Daily schedules, habits, shift patterns, the rhythm of station life
|
||||||
|
|
||||||
|
- value: cargo
|
||||||
|
description: >
|
||||||
|
Freight, manifests, shipments — setting-specific. For ring members,
|
||||||
|
this covers contraband discussion without calling it that.
|
||||||
|
|
||||||
|
- value: money
|
||||||
|
description: Finances, costs, wages, spending. The economic squeeze.
|
||||||
|
|
||||||
|
- value: trust
|
||||||
|
description: Reliability, loyalty, who can be counted on, who's changed
|
||||||
|
|
||||||
|
- value: danger
|
||||||
|
description: Threats, risks, things to watch out for, security concerns
|
||||||
|
|
||||||
|
- value: institution
|
||||||
|
description: >
|
||||||
|
The Commission, station administration, regulations, official procedures.
|
||||||
|
How institutional power affects daily life.
|
||||||
|
|
||||||
|
- value: personal
|
||||||
|
description: Family, health, aspirations, feelings — non-work life
|
||||||
|
|
||||||
|
- value: investigation
|
||||||
|
description: >
|
||||||
|
Direct references to the detective's work, evidence, suspicions.
|
||||||
|
Typically only surfaces at higher trust levels or under pressure.
|
||||||
|
|||||||
@@ -1 +1,56 @@
|
|||||||
# 9 monologue trigger types
|
# 9 monologue trigger types (D-035, D-032)
|
||||||
|
# What causes an internal monologue line to fire
|
||||||
|
name: triggers
|
||||||
|
decision_ref: D-035
|
||||||
|
description: >
|
||||||
|
Monologue trigger types. The observation event generator detects simulation
|
||||||
|
events and fires triggers consumed by the monologue system. Each trigger type
|
||||||
|
selects from character-specific pools (D-032 hard partition) and applies
|
||||||
|
prerequisite knowledge gates before selection.
|
||||||
|
|
||||||
|
values:
|
||||||
|
- value: enter_location
|
||||||
|
description: >
|
||||||
|
Player enters a new area. First impressions, atmosphere, spatial awareness.
|
||||||
|
"The Last Shift. Lera's already got my usual poured."
|
||||||
|
|
||||||
|
- value: observe_npc
|
||||||
|
description: >
|
||||||
|
Player sees an NPC doing something notable — an activity, a posture, a
|
||||||
|
tell. "Kael's at the corner booth. He looks rough tonight."
|
||||||
|
|
||||||
|
- value: hear_sound
|
||||||
|
description: >
|
||||||
|
Sound event from fog edge — voices through walls, footsteps in corridors,
|
||||||
|
machinery changes. The player interprets what they can't see.
|
||||||
|
|
||||||
|
- value: observe_anomaly
|
||||||
|
description: >
|
||||||
|
NPC deviates from known routine. The character notices something out of
|
||||||
|
place. "That's not where they usually go." Requires prerequisite knowledge
|
||||||
|
of the NPC's normal pattern.
|
||||||
|
|
||||||
|
- value: post_conversation
|
||||||
|
description: >
|
||||||
|
After dialogue ends. The character reflects on what was said, what wasn't
|
||||||
|
said, what felt off. Processing and interpretation.
|
||||||
|
|
||||||
|
- value: discover_evidence
|
||||||
|
description: >
|
||||||
|
Player examines an informational object — a manifest, a terminal, a
|
||||||
|
personal item. The character interprets what they find.
|
||||||
|
|
||||||
|
- value: witness_interaction
|
||||||
|
description: >
|
||||||
|
Player sees two NPCs interacting with each other. The character reads the
|
||||||
|
body language, the tone, the context. Social observation.
|
||||||
|
|
||||||
|
- value: time_idle
|
||||||
|
description: >
|
||||||
|
Player hasn't acted for a while. The character's mind wanders — ambient
|
||||||
|
thoughts, rumination, noticing background details.
|
||||||
|
|
||||||
|
- value: return_visit
|
||||||
|
description: >
|
||||||
|
Player returns to a previously visited area. Changed perspective, new
|
||||||
|
details noticed, comparison to last time. "Something's different."
|
||||||
|
|||||||
@@ -1 +1,28 @@
|
|||||||
# Trust tiers: surface, real, secret
|
# 3 trust tier values (D-035, D-028 Layer 3)
|
||||||
|
# Hard filter for trust-gated gossip disclosure
|
||||||
|
name: trust-tiers
|
||||||
|
decision_ref: D-035
|
||||||
|
description: >
|
||||||
|
Trust tiers control information disclosure depth. Each NPC tracks trust
|
||||||
|
progression per player character, starting at surface. Trust advances
|
||||||
|
through repeated positive interactions. This is a hard filter — lines at
|
||||||
|
'real' or 'secret' trust are invisible until the player earns that level.
|
||||||
|
|
||||||
|
values:
|
||||||
|
- value: surface
|
||||||
|
description: >
|
||||||
|
Default tier. Safe, non-committal responses. What the NPC tells
|
||||||
|
strangers and acquaintances. The public face.
|
||||||
|
|
||||||
|
- value: real
|
||||||
|
description: >
|
||||||
|
Earned through repeated positive interactions. The NPC shares genuine
|
||||||
|
opinions, workplace complaints, personal concerns. What they tell
|
||||||
|
people they trust.
|
||||||
|
|
||||||
|
- value: secret
|
||||||
|
description: >
|
||||||
|
Highest tier. The NPC reveals information they'd normally hide —
|
||||||
|
involvement in the ring, knowledge of the smuggling operation,
|
||||||
|
fears and vulnerabilities. Reaching this tier with THE FRIEND is
|
||||||
|
where the contradiction arc becomes explicit.
|
||||||
|
|||||||
@@ -1 +1,235 @@
|
|||||||
# Entity attributes — 16 canonical EntityKnowledge keys (D-055)
|
# Entity Knowledge Attributes — 16 canonical keys
|
||||||
|
# Source: D-024 (10-axis model), wiki-review workshop A7, v01-content-scoping workshop
|
||||||
|
# All keys are observer->target, stored in EntityKnowledge.known_attributes BTreeMap<String, String>
|
||||||
|
# Reference: docs/wiki/knowledge/entity-attributes.md
|
||||||
|
|
||||||
|
# Categories: identity (4), social (2), behavioral (2), leverage (2), investigation (2), role-perspective (4)
|
||||||
|
# History: 14 original keys + 4 new role-perspective keys + 2 renames (secret_held -> leverage_held, secret_confidence -> leverage_confidence)
|
||||||
|
|
||||||
|
attributes:
|
||||||
|
|
||||||
|
# --- Identity Attributes (4) ---
|
||||||
|
|
||||||
|
- key: name
|
||||||
|
category: identity
|
||||||
|
value_type: freeform
|
||||||
|
description: >
|
||||||
|
Full name as known to the observer. If absent or generic,
|
||||||
|
monologue and dialogue use role descriptor instead.
|
||||||
|
examples:
|
||||||
|
- "Kael Davan"
|
||||||
|
- "Kael"
|
||||||
|
- "the dock worker"
|
||||||
|
|
||||||
|
- key: role
|
||||||
|
category: identity
|
||||||
|
value_type: freeform
|
||||||
|
description: >
|
||||||
|
Occupational or social role. Default descriptor when name is unknown.
|
||||||
|
Used in access tier calculation.
|
||||||
|
examples:
|
||||||
|
- "dock worker"
|
||||||
|
- "shift supervisor"
|
||||||
|
- "bartender"
|
||||||
|
- "ring coordinator"
|
||||||
|
|
||||||
|
- key: faction
|
||||||
|
category: identity
|
||||||
|
value_type: freeform
|
||||||
|
description: >
|
||||||
|
Institutional or organizational allegiance. Commission-tagged individuals
|
||||||
|
trigger different NPC behavior. Used for authority/peer dialogue filtering.
|
||||||
|
examples:
|
||||||
|
- "Commission"
|
||||||
|
- "civilian"
|
||||||
|
- "ring member"
|
||||||
|
- "unknown"
|
||||||
|
|
||||||
|
- key: species
|
||||||
|
category: identity
|
||||||
|
value_type: freeform
|
||||||
|
description: >
|
||||||
|
Species identifier. Not load-bearing in v0.1 (all human).
|
||||||
|
Placeholder for future non-human NPCs.
|
||||||
|
examples:
|
||||||
|
- "human"
|
||||||
|
|
||||||
|
# --- Social Attributes (2) ---
|
||||||
|
|
||||||
|
- key: relationship_type
|
||||||
|
category: social
|
||||||
|
value_type: freeform
|
||||||
|
description: >
|
||||||
|
Relationship category from observer's perspective.
|
||||||
|
Drives RelationshipState calculation and monologue emotional tone.
|
||||||
|
examples:
|
||||||
|
- "colleague"
|
||||||
|
- "friend"
|
||||||
|
- "authority figure"
|
||||||
|
- "suspect"
|
||||||
|
- "partner"
|
||||||
|
- "stranger"
|
||||||
|
|
||||||
|
- key: trust_level
|
||||||
|
category: social
|
||||||
|
value_type: enum
|
||||||
|
values:
|
||||||
|
- trusted
|
||||||
|
- reliable
|
||||||
|
- uncertain
|
||||||
|
- suspicious
|
||||||
|
- compromised
|
||||||
|
description: >
|
||||||
|
Trust assessment — observer's subjective judgment. Encompasses both the
|
||||||
|
read action and the state. No separate trust_read key. Gates trust-tier
|
||||||
|
dialogue (surface/real/secret).
|
||||||
|
|
||||||
|
# --- Behavioral Attributes (2) ---
|
||||||
|
|
||||||
|
- key: routine_pattern
|
||||||
|
category: behavioral
|
||||||
|
value_type: freeform
|
||||||
|
description: >
|
||||||
|
Observed routine description. Deviation detection triggers monologue
|
||||||
|
when current behavior doesn't match known pattern.
|
||||||
|
examples:
|
||||||
|
- "morning shift 06:00-14:00, bar after shift"
|
||||||
|
- "arrives 06:00, break 10:30, departs 14:00"
|
||||||
|
- "irregular schedule, seen at odd hours"
|
||||||
|
|
||||||
|
- key: behavior_flags
|
||||||
|
category: behavioral
|
||||||
|
value_type: freeform
|
||||||
|
description: >
|
||||||
|
Comma-separated behavioral observations. Multiple flags accumulate
|
||||||
|
as evidence. Detective's analytical lattice auto-flags some behaviors.
|
||||||
|
examples:
|
||||||
|
- "nervous,lattice_checking"
|
||||||
|
- "avoidance_pattern,evasive"
|
||||||
|
- "spending_beyond_means"
|
||||||
|
- "reliable,punctual"
|
||||||
|
|
||||||
|
# --- Leverage Attributes (2) ---
|
||||||
|
# Renamed from secret_held/secret_confidence per workshop A7
|
||||||
|
|
||||||
|
- key: leverage_held
|
||||||
|
category: leverage
|
||||||
|
value_type: freeform
|
||||||
|
renamed_from: secret_held
|
||||||
|
description: >
|
||||||
|
What the observer believes gives them power over this entity.
|
||||||
|
Covers secrets, debts, promises, obligations, and compromising positions.
|
||||||
|
Drives PersonOfInterest state. Gates confrontation dialogue.
|
||||||
|
examples:
|
||||||
|
- "ring membership"
|
||||||
|
- "unreported evidence"
|
||||||
|
- "gambling debt"
|
||||||
|
- "exit attempt"
|
||||||
|
- "owes favor to Voss"
|
||||||
|
|
||||||
|
- key: leverage_confidence
|
||||||
|
category: leverage
|
||||||
|
value_type: enum
|
||||||
|
renamed_from: secret_confidence
|
||||||
|
values:
|
||||||
|
- suspected
|
||||||
|
- likely
|
||||||
|
- confirmed
|
||||||
|
description: >
|
||||||
|
How certain the observer is about the leverage. Suspected allows
|
||||||
|
fishing questions; confirmed enables direct confrontation.
|
||||||
|
|
||||||
|
# --- Investigation Attributes (2) ---
|
||||||
|
|
||||||
|
- key: tell_observed
|
||||||
|
category: investigation
|
||||||
|
value_type: freeform
|
||||||
|
description: >
|
||||||
|
Specific tell noted by observer. Captures the observer's interpretive
|
||||||
|
conclusion about behavior. Accumulated tells build case strength.
|
||||||
|
Monologue references specific tells when they recur.
|
||||||
|
examples:
|
||||||
|
- "looks left when lying"
|
||||||
|
- "leaves when Torek arrives"
|
||||||
|
- "checks lattice before answering"
|
||||||
|
- "forced casualness after shift supervisor passes"
|
||||||
|
implementation_note: >
|
||||||
|
Server may track tells via behavior_flags internally. tell_observed is
|
||||||
|
retained as a content-authoring key for its distinct narrative purpose.
|
||||||
|
|
||||||
|
- key: contradiction_flagged
|
||||||
|
category: investigation
|
||||||
|
value_type: freeform
|
||||||
|
description: >
|
||||||
|
Boolean-ish flag — presence of value means contradiction detected.
|
||||||
|
THE FRIEND arc trigger. When set, monologue tone shifts, dialogue
|
||||||
|
options change, RelationshipState moves toward PersonOfInterest.
|
||||||
|
examples:
|
||||||
|
- "meeting_unknown_contact"
|
||||||
|
- "avoidance_inconsistency"
|
||||||
|
- "manifest_access_mismatch"
|
||||||
|
implementation_note: >
|
||||||
|
Server may track via behavior_flags with contradiction: prefix.
|
||||||
|
Retained as documented key for arc transition gating.
|
||||||
|
|
||||||
|
# --- Role-Perspective Attributes (4 new per workshop A7) ---
|
||||||
|
# Same enums across all archetypes; interpretation is archetype-dependent.
|
||||||
|
# Smuggler reads "risk" as operational exposure; detective reads it as
|
||||||
|
# threat to investigation. See wiki entity-attributes.md for full mapping.
|
||||||
|
|
||||||
|
- key: risk_assessment
|
||||||
|
category: role-perspective
|
||||||
|
value_type: enum
|
||||||
|
values:
|
||||||
|
- none
|
||||||
|
- low
|
||||||
|
- moderate
|
||||||
|
- high
|
||||||
|
- critical
|
||||||
|
description: >
|
||||||
|
Observer's assessment of how much danger this entity poses or attracts.
|
||||||
|
Gates operational monologue. High-risk triggers cautionary dialogue.
|
||||||
|
Nature of "risk" depends on observer archetype.
|
||||||
|
|
||||||
|
- key: loyalty_assessment
|
||||||
|
category: role-perspective
|
||||||
|
value_type: enum
|
||||||
|
values:
|
||||||
|
- solid
|
||||||
|
- dependable
|
||||||
|
- uncertain
|
||||||
|
- wavering
|
||||||
|
- hostile
|
||||||
|
description: >
|
||||||
|
Observer's assessment of this entity's reliability and loyalty.
|
||||||
|
Determines how much the observer relies on or confides in the target.
|
||||||
|
Wavering triggers monitoring; hostile triggers defensive posture.
|
||||||
|
|
||||||
|
- key: position_integrity
|
||||||
|
category: role-perspective
|
||||||
|
value_type: enum
|
||||||
|
values:
|
||||||
|
- solid
|
||||||
|
- thin
|
||||||
|
- cracking
|
||||||
|
- blown
|
||||||
|
- "N/A"
|
||||||
|
description: >
|
||||||
|
Observer's assessment of this entity's cover, position stability,
|
||||||
|
or facade status. When degraded, monologue reflects increasing anxiety
|
||||||
|
or strategic recalculation. N/A when cover concept does not apply.
|
||||||
|
|
||||||
|
- key: moral_weight
|
||||||
|
category: role-perspective
|
||||||
|
value_type: enum
|
||||||
|
values:
|
||||||
|
- innocent
|
||||||
|
- peripheral
|
||||||
|
- complicit
|
||||||
|
- compromised
|
||||||
|
- willing
|
||||||
|
description: >
|
||||||
|
Observer's assessment of this entity's moral involvement. Shapes the
|
||||||
|
observer's moral arc and internal conflict. Smuggler assesses complicity
|
||||||
|
in ring operations; detective assesses culpability in the crime.
|
||||||
|
Same scale, different lens.
|
||||||
|
|||||||
Reference in New Issue
Block a user