Character schema and builds: - #179: Character definition schema (6-section formal spec) - #180: Smuggler character build (full schema instantiation) - #181: Detective character build (full schema instantiation) - #182: Divergent starting knowledge (master comparison table) - #183: Divergent relationships (NPC web per character) Institutional design: - #322: Detective chain of command (Veth, Pres, Tsev backstory) NPC pattern documents: - #332: Contradiction arc — reusable FRIEND pattern (5 phases, checklist) - #329: Mirror moment design — 10 paired dual-lens observations Experience design: - #259: First 5 minutes (narrative texture additions to Gestalt's systems doc) - #307: Flat NPC trait pass (Pael, Ren, Tev — traits, routines, dual-lens) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
462 lines
18 KiB
Markdown
462 lines
18 KiB
Markdown
# Character Build: The Detective
|
|
|
|
**Ticket:** #181 | **Priority:** Critical | **Sprint:** 12
|
|
**Status:** v0.1 Draft
|
|
**Blocked by:** #179 (Character definition schema)
|
|
**Blocks:** #182 (Divergent starting knowledge), #183 (Divergent relationships)
|
|
**Decisions referenced:** D-005, D-016, D-027, D-028, D-032, D-034, D-035, D-037, D-041, D-053, D-065, D-075
|
|
|
|
---
|
|
|
|
## identity
|
|
|
|
```yaml
|
|
identity:
|
|
canonical_id: "pc:detective"
|
|
display_name: "[Player-set name]"
|
|
archetype: "detective"
|
|
occupation: "Commission Liaison Officer, Manifest Irregularity Investigation"
|
|
posting_duration: "3 days (newly arrived)"
|
|
faction: "Commission"
|
|
lattice_tier: "professional"
|
|
description: >
|
|
Commission Liaison Officer posted to Sova Transit District three days ago.
|
|
Official mandate: routine compliance review. Actual mandate: investigate
|
|
manifest irregularities suggesting organized freight smuggling. The distinction
|
|
between "official" and "actual" is itself the first lesson about how
|
|
Sova works.
|
|
|
|
Trained investigator. Professional analytical lattice. Institutional
|
|
authority that opens doors and closes conversations. An outsider in a
|
|
community that has learned, over forty years of prefab-modular life,
|
|
to handle outsiders with polite minimal disclosure.
|
|
|
|
Stands to lose: professional credibility (if the case goes cold), Sera
|
|
(the investigation, if pressed too hard, could compromise the only
|
|
trusted relationship in the district), and the clean institutional
|
|
clarity that makes the job feel justified — which the community's
|
|
moral complexity is already beginning to erode.
|
|
```
|
|
|
|
---
|
|
|
|
## starting_knowledge
|
|
|
|
```yaml
|
|
starting_knowledge:
|
|
confidence_floor: "KnowsOf"
|
|
|
|
known_facts:
|
|
# Investigation data
|
|
- key: "investigation.manifest_discrepancies"
|
|
confidence: "KnowsDetails"
|
|
source: "institutional"
|
|
notes: >
|
|
Case file from Commission records. Containers logged but not reconciled
|
|
with incoming manifests. Pattern suggests systematic manipulation, not
|
|
clerical error. Three clusters of anomalies over the past six months.
|
|
|
|
- key: "investigation.freight_pattern"
|
|
confidence: "KnowsDetails"
|
|
source: "institutional"
|
|
notes: >
|
|
Anomalies cluster around shift transition windows. Same container series
|
|
recurring across discrepant manifests. Pattern analysis flagged this
|
|
posting as warranting investigation.
|
|
|
|
# Persons of interest (case file, not personal knowledge)
|
|
- key: "person.voss_poi"
|
|
confidence: "KnowsOf"
|
|
source: "institutional"
|
|
notes: >
|
|
Voss, shift supervisor. Scheduling authority. In position to create the
|
|
oversight gaps that explain the manifest anomalies. Name from case file.
|
|
Not met yet.
|
|
|
|
- key: "person.maret_poi"
|
|
confidence: "KnowsOf"
|
|
source: "institutional"
|
|
notes: >
|
|
Maret Korr, freight scheduler. Access to manifest data. Could be source
|
|
of the falsification or could be covering for someone else. Name from
|
|
case file.
|
|
|
|
- key: "person.drin_poi"
|
|
confidence: "KnowsOf"
|
|
source: "institutional"
|
|
notes: >
|
|
Drin Rosta, dock inspector. Responsible for container verification.
|
|
Failure to flag discrepancies suggests either incompetence or complicity.
|
|
Name from case file.
|
|
|
|
# Institutional context
|
|
- key: "world.previous_liaison"
|
|
confidence: "KnowsDetails"
|
|
source: "institutional"
|
|
notes: >
|
|
The previous Commission liaison rotated out 3 months ago. Rotation
|
|
was described as routine. The detective's case file notes that the previous
|
|
liaison filed no irregularity reports despite the same pattern being
|
|
detectable in their tenure. This warrants investigation.
|
|
|
|
- key: "world.commission_presence"
|
|
confidence: "KnowsDetails"
|
|
source: "institutional"
|
|
notes: >
|
|
Sera Venn, Commission field tech. Not an investigator. Has been on Sova
|
|
for 1 year. Pre-existing relationship — same institutional background,
|
|
different postings. Reliable. Social anchor in unfamiliar district.
|
|
|
|
- key: "world.district_geography"
|
|
confidence: "KnowsOf"
|
|
source: "institutional"
|
|
notes: >
|
|
The Terminal (logistics hub), The Last Shift (bar, social nexus),
|
|
maintenance corridors (off-books access routes noted in district layout
|
|
documentation). Three days in — still orienting to physical space.
|
|
|
|
- key: "world.torek_compliance_connection"
|
|
confidence: "KnowsOf"
|
|
source: "institutional"
|
|
notes: >
|
|
Torek Lintar is a Commission compliance officer on Sova. Known from
|
|
institutional channels. Not a friend, but a professional known name.
|
|
|
|
# Sera knowledge
|
|
- key: "person.sera_background"
|
|
confidence: "KnowsDetails"
|
|
source: "direct"
|
|
notes: >
|
|
Sera Venn: same career path, different posting. Reliable under pressure.
|
|
Transferred to Sova after a stressful posting elsewhere. Has been the
|
|
district's Commission presence for a year. The detective's one genuinely
|
|
friendly face in Sova.
|
|
|
|
unknown_facts:
|
|
- key: "contraband.ring_exists"
|
|
notes: >
|
|
Does not know a ring exists. Suspects organized smuggling from the manifest
|
|
pattern, but "ring" implies structure, membership, coordination — the
|
|
detective doesn't know that yet.
|
|
|
|
- key: "contraband.ring_members"
|
|
notes: >
|
|
Does not know any ring members by their ring membership. Kael Davan
|
|
is not in the case file. The smuggler is not in the case file.
|
|
|
|
- key: "contraband.cargo_type"
|
|
notes: >
|
|
Does not know what the cargo is. The manifests show discrepancies;
|
|
they don't reveal what's being moved. The "what" is a layer below
|
|
the "that something is wrong."
|
|
|
|
- key: "person.kael_exit_attempt"
|
|
notes: >
|
|
Completely unknown. Kael's unauthorized contact and exit attempt are
|
|
not visible to any institutional data source.
|
|
|
|
- key: "person.sera_unreported_evidence"
|
|
notes: >
|
|
CRITICAL unknown. Sera has run an unofficial compliance check on Kael's
|
|
work patterns and is sitting on unreported evidence. The detective
|
|
trusts Sera completely. This gap is the structural basis for THE FRIEND arc.
|
|
|
|
- key: "person.naia_confided_in_sera"
|
|
notes: >
|
|
Naia Tamm's worry about Kael, confided to Sera, is the emotional engine
|
|
behind Sera's concealment. The detective doesn't know Naia exists as
|
|
anything except a district resident.
|
|
|
|
- key: "relationship.ring_membership"
|
|
notes: >
|
|
Who is in the ring, who is complicit, who is protecting whom. The detective
|
|
has names (Voss, Maret, Drin) without understanding the social web that
|
|
holds them together.
|
|
|
|
- key: "person.smuggler_identity"
|
|
notes: >
|
|
Does not know the smuggler is in the ring. If the smuggler is in the case
|
|
file at all, it's as a name on a shift roster — no significance attached.
|
|
|
|
- key: "world.previous_liaison_arranged"
|
|
notes: >
|
|
The detective wonders whether the previous Commission liaison's rotation
|
|
was routine or arranged. This suspicion is in the case file as a note;
|
|
it remains unconfirmed. (Canonical answer: arranged. But the detective
|
|
doesn't know this yet.)
|
|
```
|
|
|
|
---
|
|
|
|
## starting_relationships
|
|
|
|
```yaml
|
|
starting_relationships:
|
|
- target: "npc:sera-venn"
|
|
relationship_state: "Friendly"
|
|
access_tier: [peer]
|
|
trust_level: "trusted"
|
|
relationship_type: "friend"
|
|
known_attributes:
|
|
name: "Sera Venn"
|
|
role: "Commission field technician"
|
|
faction: "Commission"
|
|
notes: >
|
|
Pre-existing friend. Same institutional background, different posting.
|
|
Transferred to Sova a year ago. Social anchor. The detective's guide
|
|
to an unfamiliar place — Sera fills in background on the district,
|
|
introduces the detective to regulars. Completely trusted at session start.
|
|
|
|
- target: "npc:voss"
|
|
relationship_state: "Known"
|
|
access_tier: [authority]
|
|
trust_level: "uncertain"
|
|
relationship_type: "contact"
|
|
known_attributes:
|
|
name: "Voss"
|
|
role: "shift supervisor"
|
|
faction: "civilian"
|
|
notes: >
|
|
Person of interest. Name from case file, scheduling authority. Has
|
|
met once for credentials review. Stiffens when the detective enters
|
|
the hub. Professional, terse. No warmth. Institutional interaction only.
|
|
|
|
- target: "npc:maret-korr"
|
|
relationship_state: "Known"
|
|
access_tier: [authority]
|
|
trust_level: "uncertain"
|
|
relationship_type: "contact"
|
|
known_attributes:
|
|
name: "Maret Korr"
|
|
role: "freight scheduler"
|
|
faction: "civilian"
|
|
notes: >
|
|
Person of interest. Manifest access. Has cooperated professionally with
|
|
data requests — provided clean set of schedules. Slightly nervous.
|
|
Cooperation is compliance, not friendliness.
|
|
|
|
- target: "npc:drin"
|
|
relationship_state: "Known"
|
|
access_tier: [authority]
|
|
trust_level: "uncertain"
|
|
relationship_type: "contact"
|
|
known_attributes:
|
|
name: "Drin Rosta"
|
|
role: "dock inspector"
|
|
faction: "civilian"
|
|
notes: >
|
|
Person of interest. Responsible for container verification. Has met
|
|
once. More evasive than Voss or Maret. The detective notes the evasion
|
|
without yet understanding the cause.
|
|
|
|
- target: "npc:torek-lintar"
|
|
relationship_state: "Known"
|
|
access_tier: [public]
|
|
trust_level: "uncertain"
|
|
relationship_type: "colleague"
|
|
known_attributes:
|
|
name: "Torek Lintar"
|
|
role: "Commission compliance officer"
|
|
faction: "Commission"
|
|
notes: >
|
|
Commission compliance officer on Sova — professional known name, not a
|
|
friend. Has seen him at the bar with Sera. Slightly off in a way the
|
|
detective can't yet articulate.
|
|
|
|
- target: "npc:lera-sessik"
|
|
relationship_state: "Unknown"
|
|
access_tier: [public]
|
|
trust_level: "uncertain"
|
|
relationship_type: null
|
|
known_attributes:
|
|
name: "Lera Sessik"
|
|
role: "bar owner"
|
|
faction: null
|
|
notes: >
|
|
Sera mentioned The Last Shift. The detective has visited once or twice.
|
|
Lera is polite, guarded, watching. Not hostile. Not warm.
|
|
|
|
- target: "npc:kael-davan"
|
|
relationship_state: "Unknown"
|
|
access_tier: [public]
|
|
trust_level: "uncertain"
|
|
relationship_type: null
|
|
known_attributes:
|
|
name: null
|
|
role: "dock worker"
|
|
faction: null
|
|
notes: >
|
|
Unknown at session start. Name might appear on a shift roster without
|
|
significance. No personal knowledge. No case file entry. The detective
|
|
has no reason to flag Kael — yet.
|
|
|
|
- target: "npc:naia-tamm"
|
|
relationship_state: "Unknown"
|
|
access_tier: [public]
|
|
trust_level: "uncertain"
|
|
relationship_type: null
|
|
known_attributes:
|
|
name: null
|
|
role: null
|
|
faction: null
|
|
notes: "No connection at session start. Exists as a district resident without individual identity."
|
|
|
|
- target: "npc:pc-smuggler"
|
|
relationship_state: "Unknown"
|
|
access_tier: [public]
|
|
trust_level: "uncertain"
|
|
relationship_type: null
|
|
known_attributes:
|
|
name: null
|
|
role: "dock worker"
|
|
faction: null
|
|
notes: >
|
|
One of many dock workers. No individual significance at session start.
|
|
Knowledge accumulates through observation and tell accumulation.
|
|
May shift to PersonOfInterest if tells compound and manifest
|
|
discrepancy connection is made.
|
|
```
|
|
|
|
---
|
|
|
|
## access_permissions
|
|
|
|
```yaml
|
|
access_permissions:
|
|
can_unlock:
|
|
- tier: "public"
|
|
condition: "Always available"
|
|
max_npcs: "unlimited"
|
|
|
|
- tier: "authority"
|
|
condition: "RelationshipState is Unknown, Known, or PersonOfInterest — credential presentation"
|
|
max_npcs: "unlimited for institutional NPCs; does not work with hostile or fully closed NPCs"
|
|
|
|
- tier: "peer"
|
|
condition: "RelationshipState reaches Friendly"
|
|
max_npcs: "limited — Sera at session start; others require sustained positive interaction"
|
|
|
|
structurally_locked:
|
|
- tier: "insider"
|
|
reason: >
|
|
The detective can never access insider-tier ring dialogue. Not because
|
|
institutional authority is insufficient — authority and insider are
|
|
different axes. Insider requires social belonging within the ring network.
|
|
The ring recognizes the detective as Commission. The ring closes, not opens,
|
|
when institutional authority is applied. Pressing harder does not unlock
|
|
insider content; it triggers defensive behavior and hostile tone. This is
|
|
architecturally fundamental to the two-keyhole design.
|
|
|
|
- tier: "authority (failed)"
|
|
reason: >
|
|
Authority access fails when RelationshipState is Hostile. Once an NPC
|
|
has turned against the detective's investigation, credential presentation
|
|
produces refusal or evasion, not compliance. The detective cannot
|
|
authority-tier their way through a hostile source.
|
|
```
|
|
|
|
---
|
|
|
|
## skills
|
|
|
|
```yaml
|
|
skills:
|
|
lattice_tier: "professional"
|
|
movement_default: "walk" # D-053 MovementProfile
|
|
inventory_slots: 2 # D-065
|
|
evidence_display: "case_file"
|
|
|
|
capability_flags:
|
|
- "authority_credentials" # Badge/ID; unlocks authority tier with Unknown/Known NPCs
|
|
- "manifest_access" # Can formally request freight manifests from institutional NPCs
|
|
- "analytical_lattice" # Pattern recognition overlay; flags behavioral anomalies at Careful stance
|
|
|
|
starting_items:
|
|
- item_id: "detective_case_file"
|
|
description: "Institutional case file: manifest discrepancy analysis, persons of interest, previous liaison notes."
|
|
leverage_type: "proof"
|
|
notes: >
|
|
The detective's starting information in physical form. Can be referenced
|
|
in dialogue to trigger authority-tier responses — "according to case file X."
|
|
Contains the manifest discrepancy data that links to Kael's work patterns,
|
|
though the detective doesn't know this yet.
|
|
|
|
- item_id: "detective_commission_credentials"
|
|
description: "Commission identification and liaison officer authorization."
|
|
leverage_type: "access"
|
|
notes: >
|
|
Credential presentation triggers authority tier access with Unknown/Known NPCs.
|
|
Does not work with ring-network NPCs in insider mode — they recognize
|
|
Commission credentials as a threat, not an access grant. Carried on person;
|
|
visible as a status marker to any NPC with institutional awareness.
|
|
```
|
|
|
|
---
|
|
|
|
## presentation
|
|
|
|
```yaml
|
|
presentation:
|
|
monologue_pool: "detective"
|
|
evidence_display: "case_file"
|
|
|
|
voice_register:
|
|
sentence_length: "complete sentences, occasional fragments for emphasis"
|
|
vocabulary: "institutional layer over plain speech — investigative habit without jargon"
|
|
emotional_mode: "analysis-first, personal second"
|
|
relationship_mode: "surname-first for targets, first-name for trusted"
|
|
|
|
emotional_baseline:
|
|
state: "professional-cautious"
|
|
description: >
|
|
Trained to observe, analyze, withhold judgment until evidence accumulates.
|
|
But also human — isolated in an unfamiliar community, reliant on Sera for
|
|
social grounding, aware that non-cooperation is the district default.
|
|
|
|
The analytical habit runs in the background like an operating system.
|
|
Counts things. Tracks frequencies. Flags inconsistencies. Internal bookkeeping
|
|
is automatic: "filing it," "noted," "coincidence?" The institutional training
|
|
doesn't turn off; sometimes the human overrides it. When it does, the crack
|
|
in the professional surface IS the emotional payload.
|
|
|
|
Believes in the work. Smuggling isn't victimless — unlicensed lattice
|
|
components can cause neural degradation, medical replacements diverted from
|
|
Syndic supply chains mean someone else doesn't get what they need. The
|
|
investigation is justified. But the moral clarity is starting to erode —
|
|
the community is beginning to read as more complex than "crime scene."
|
|
|
|
opening_monologue:
|
|
lines:
|
|
- "Sova Transit District. Third day on station. The briefing said routine compliance review."
|
|
- "The briefing is always wrong about something."
|
|
- "Manifest discrepancies clustered around the freight hub. Start there. Watch the shift change."
|
|
- "Good to know Sera's here. At least someone in this district speaks my language."
|
|
emotional_payload: >
|
|
Isolation, professional caution, guarded optimism about Sera. The detective
|
|
is an outsider. The district doesn't want them here. The player should feel
|
|
the gap between institutional authority and social belonging.
|
|
```
|
|
|
|
---
|
|
|
|
## Authoring Notes
|
|
|
|
**What makes the detective's experience distinct:**
|
|
|
|
- The district is a CRIME SCENE. Every NPC is a potential witness, informant, or subject. The detective categorizes before connecting. Kael is "dock worker, Davan, K." before he's Kael. The shift to first names — if it happens — is itself a relationship marker.
|
|
- The monologue is ANALYTICAL and complete-sentence. Counts things. Notices deviations. The emotional register leaks through the analytical frame rather than leading it.
|
|
- The emotional journey of the vertical slice moves from professional isolation to specific, personal betrayal — but the betrayal is different: not "Kael lied to me," but "Sera, who I trusted completely, is compromised by something she did to protect someone I've never met."
|
|
|
|
**What the detective's authority access buys:** Conversations happen faster. NPCs answer direct questions. But answers are framed for compliance, not candor. The detective gets facts from people who don't want to give them — which means incomplete facts, deflected facts, facts that look complete but aren't. Authority access is a key that opens the door. It doesn't make what's inside visible.
|
|
|
|
**Voice anchors (mandatory reference for all detective monologue):**
|
|
1. *"Logistics hub. Standard prefab, heavy foot traffic. Let's see what the shift change tells me."*
|
|
2. *"That's the third time. Sera leaves when Torek arrives. Three different excuses, same result. That's not coincidence."*
|
|
3. *"Good to see Sera. She always was the reliable one. At least someone in this district speaks my language."*
|
|
4. *"Same booth. Same warm smile. Same offer to buy me a drink. ...Everything except whatever she's not saying."*
|
|
5. *"Grain spirit and low conversation. Only place in this district that doesn't smell like freight lubricant."*
|
|
|
|
---
|
|
|
|
*Ticket #181 — Detective character build. v0.1 scope.*
|