# Round 2 — Mellanie (Copywriter) ## v0.1 Content Scoping Workshop --- ## Task 1: Canonical PC Voice Registers These are authoring specs, not narrative documents. Every monologue line I write gets checked against these parameters. If a line doesn't match the register, it gets cut. --- ### Smuggler — Internal Voice Register **One-line summary:** Watches people, not systems. Thinks in fragments. Worries about friends the way a dock worker worries — practically, physically, with the knot in the stomach, not the word for it. #### Voice Parameters | Parameter | Value | Example | |---|---|---| | **Sentence length** | Short. Fragments welcome. Rarely more than 2 sentences per monologue fire. | "Kael's here. Good." | | **Vocabulary** | Concrete, physical, sensory. Uses trade jargon (containers, manifests, shifts, routes) without explaining it. No institutional language. | "Recycled air and cargo lubricant." Not: "Standard atmospheric recycling." | | **Emotional register** | Feeling-first, analysis second. Names the gut before the brain catches up. | "Starting to worry" before "something's off." | | **Relationship mode** | First-name basis with everyone. Thinks relationally — people are defined by connection, not role. | "Kael" not "Davan." "Voss is tense" not "the shift supervisor seems agitated." | | **Observation priority** | People > environment > objects. Notices body language before noticing cargo. | "Kael keeps checking his lattice" before "Container 4471 is still in temp." | | **Operational thinking** | Present when thinking about the job. Time-aware, route-aware, schedule-aware. But always filtered through "is this safe for my people?" | "Transition window opens in fifty minutes. After that, twenty minutes of reduced oversight." | | **Self-reference** | Rare. The smuggler thinks about others, not herself. When self-reference occurs, it's through physical sensation. | "My stomach dropped" not "I feel betrayed." | | **Humor** | Dry, situational, understated. Dark when stressed. Never witty — that's a different register. | "Home sweet home" about a cargo bay. | | **What she doesn't do** | Doesn't analyze systems. Doesn't use institutional vocabulary. Doesn't explain things to herself that she already knows. Doesn't monologue in paragraphs. | #### Voice Anchors (Reference Lines) These 5 lines define the boundaries. Every smuggler monologue line should feel like it could sit next to these without register collision. 1. **Baseline warm:** *"Kael's already at the dock. Good. The day's better when he's on shift."* — Short. Personal. Physical presence matters. 2. **Operational:** *"Shift transition in thirty minutes. If Voss kept the schedule thin, the route's clear."* — Time-specific. Practical. Other people's actions determine safety. 3. **Concerned:** *"Kael keeps checking his lattice. Waiting for a message? Not like him to be jumpy."* — Observation leads to interpretation. Interpretation is relational ("not like him"), not clinical. 4. **Hurt:** *"He looked left. He always looks left when he's making something up. Two years I've known that tell. Kael is lying to me."* — Personal history weaponized. The "two years" is the knife. Ends with a flat declaration, not a question. 5. **Atmospheric:** *"Morning shift. Recycled air and cargo lubricant. Home sweet home."* — Three fragments. Sensory detail. Irony through understatement. #### Anti-Patterns (What the Smuggler Does NOT Sound Like) - "I should investigate this anomaly further." (Too clinical. She'd think: "That's not right.") - "The scheduling irregularity suggests systemic manipulation." (Institutional vocabulary. She'd think: "Voss changed the rotation again.") - "I need to consider the implications of Kael's behavior for our operational security." (Analytical distance. She'd think: "What the hell is Kael doing?") - "According to the manifest, container 4471 should weigh 240 kilograms." (Explaining what she already knows. She'd think: "4471's heavy. Too heavy.") --- ### Detective — Internal Voice Register **One-line summary:** Categorizes first, feels second. Thinks in complete sentences. The institutional training runs in the background like an operating system — it never turns off, but sometimes the human overrides it. #### Voice Parameters | Parameter | Value | Example | |---|---|---| | **Sentence length** | Complete sentences, but not long ones. More structured than the smuggler. Occasional fragments for emphasis or snap judgments. | "Standard prefab, heavy foot traffic. Let's see what the shift change tells me." | | **Vocabulary** | Institutional layer over plain speech. Professional terms leak in: "case file," "filing it," "noted," "flagged." Not technical jargon — investigative habit. | "Dock worker. Davan, K. Unremarkable on paper." The surname-comma-initial is institutional reflex. | | **Emotional register** | Analysis-first, personal second. When personal breaks through, it's notable — a crack in the professional surface that signals emotional weight. | "She's not lying. But she's not telling me everything. Sera, what do you know?" — The first-name appeal at the end IS the emotion. | | **Relationship mode** | Surname-first for targets and unknowns. First-name for allies and people he trusts. The shift from surname to first-name (or back) IS a relationship marker. | "Davan, K." early → "Kael" never (smuggler's FRIEND, not detective's). "Sera" always (detective's FRIEND). | | **Observation priority** | Patterns > people > environment. Notices deviations from expected behavior before noticing the person. | "That's twice now" before "Sera leaves." The count matters more than the actor. | | **Analytical thinking** | Automatic. Counts things, tracks frequencies, flags inconsistencies. Self-directs: "filing it," "noted," "coincidence?" These are internal bookkeeping prompts. | "Three times. Three excuses. That's data." | | **Self-reference** | More common than the smuggler, but always through the professional lens. The detective monitors his own state as evidence. | "I'm reading too much into this" — self-aware about analytical bias. | | **Humor** | Wry, observational. Appreciates irony at a distance. Can laugh at himself. Never cruel. | "Only place in this district that doesn't smell like freight lubricant." | | **What he doesn't do** | Doesn't think in fragments (that's the smuggler). Doesn't use trade jargon he hasn't learned. Doesn't name-drop relationships he doesn't have. Doesn't express vulnerability directly — it leaks, he doesn't pour. | #### Voice Anchors (Reference Lines) 1. **Clinical baseline:** *"Logistics hub. Standard prefab, heavy foot traffic. Let's see what the shift change tells me."* — Categorize. Evaluate. Self-direct. Three operations in three sentences. 2. **Pattern recognition:** *"That's the third time. Sera leaves when Torek arrives. Three different excuses, same result. That's not coincidence."* — Counting is automatic. Conclusion is flat and declarative. No hedging. 3. **Personal leak:** *"Good to see Sera. She always was the reliable one. At least someone in this district speaks my language."* — First-name. Past tense ("always was") implies shared history. "My language" is institutional belonging. 4. **Conflicted:** *"Same booth. Same warm smile. Same offer to buy me a drink. ...Everything except whatever she's not saying."* — Repetition builds the pattern. The ellipsis is the human catching up to the analyst. The final clause is the knife. 5. **Atmospheric:** *"Grain spirit and low conversation. Only place in this district that doesn't smell like freight lubricant."* — Sensory but evaluative. The detective doesn't just notice smells — he catalogs them as data points. #### Anti-Patterns (What the Detective Does NOT Sound Like) - "Kael's here. Good." (Too terse. That's the smuggler. The detective would think: "Davan's on shift. Standard.") - "I feel uneasy about Sera's behavior." (Direct emotional vocabulary. He'd think: "Something's off with Sera. Can't place it yet.") - "This container has been tampered with, indicating smuggling activity." (Explaining the obvious. He'd think: "Weight's wrong. Noted.") - "My heart sank when I saw the evidence." (Physical emotion — that's the smuggler's register. The detective: "Didn't want to see that. But there it is.") --- ### Voice Register Comparison — Same Observation, Two Characters **Trigger: Seeing a container in temp storage overnight.** - **Smuggler:** *"That container's been in temp since yesterday. Someone forgot to process it, or someone's stalling."* — Concrete. Two explanations, both practical. No judgment yet. - **Detective:** *"Container in overnight temp. Unusual for a hub this size — turnaround is normally sub-eight hours. Flag it."* — Categorical. Quantified deviation. Self-directed action. **Trigger: Entering the bar.** - **Smuggler:** *"Lera's. Grain spirit and noise. Could use both right now."* — Informal name. Sensory. Personal need. - **Detective:** *"The Last Shift. Same crowd as yesterday. Let's see who's NOT here tonight."* — Official name. Pattern comparison. Investigative frame. **Trigger: Noticing Naia Tamm is upset.** - **Smuggler:** *"Naia looks rough today. Should check on her later."* — First-name. Immediate concern. Plans to act. - **Detective:** *"Tamm seems distressed. Not her baseline. Something at home, or something she's heard?"* — Surname. Clinical assessment. Hypothesizes cause. **Trigger: Hearing raised voices behind a door.** - **Smuggler:** *"Raised voices from the back room. Devra's in there. That's not a brokering call."* — Identifies the person. Interprets through operational knowledge. - **Detective:** *"Arguing behind that door. The bartender didn't flinch. Either she's used to it or she knows what it is."* — Notes the non-reaction. Third-party behavior is data. --- ### Display Constraints (per Stig's R1 proposal) Adopting Stig's parameters as authoring constraints: | Constraint | Value | Implication for Writing | |---|---|---| | Max length | ~160 characters | Hard ceiling. Most lines should be 80-120. | | Max visual lines | 2 | No three-line monologue. If it wraps to 3, cut it. | | Display time | 4-6 seconds (length-adjusted) | Player reads at ~250 WPM = ~20-25 words in 5 seconds. Target: 15-25 words per line. | | Fade behavior | Fade in/out | No abrupt text pops. Lines must read cleanly mid-fade. | | Character tint | Smuggler: amber-white `#f0e0c8`, Detective: blue-white `#c8d8f0` | Voice must be distinguishable WITHOUT color — color confirms, doesn't create. | **The 25-word rule:** If a monologue line exceeds 25 words, it better be the most important line in the pool. Most lines should be 10-18 words. The authoring guide examples average 14 words. That's the target. --- ## Task 2: THE FRIEND Content Pack — Kael Davan (Structure) ### What's In the Pack The Kael Davan content pack is a single deliverable containing everything the engine needs to run THE FRIEND arc for the smuggler's path. It's also the benchmark — if this pack validates against the tag taxonomy, loads correctly, triggers appropriately, and sounds right, every subsequent content pack follows the same structure. ### Pack Contents ``` content/ districts/ sova-transit/ terminal/ dialogue.yaml # Kael's dialogue lines at The Terminal (shared pool) monologue-smuggler.yaml # Smuggler monologue at Terminal (includes Kael observations) monologue-detective.yaml # Detective monologue at Terminal (includes Kael observations) bar/ dialogue.yaml # Kael's dialogue lines at The Last Shift monologue-smuggler.yaml monologue-detective.yaml corridor/ dialogue.yaml # Kael's dialogue lines in Corridor B-7 monologue-smuggler.yaml monologue-detective.yaml ``` **Note:** Kael's content lives inside location files, not a per-NPC file. Per D-035 and Tyre's directory design, dialogue is organized by location. Kael's lines appear in `terminal/dialogue.yaml` alongside other NPCs who speak at the Terminal. The `role: dock_worker` tag identifies which lines belong to Kael's template role. The pack is authored as a single document, then split into location files during content conversion. For authoring purposes, I'll write it as one file with location headers and deliver the split files. ### Line Budget (Kael Davan) | Content Type | Lines | Location Split | |---|---|---| | **Kael dialogue** | | | | Greetings (5 access tiers) | 5 | Terminal: 3, Bar: 2 | | Shift/work talk (insider, peer) | 8 | Terminal: 6, Bar: 2 | | Bar casual (peer) | 4 | Bar: 4 | | Ring coordination (insider) | 6 | Terminal: 3, Corridor: 3 | | Deflection/evasion (post-contradiction) | 6 | Terminal: 3, Bar: 2, Corridor: 1 | | Confrontation responses | 4 | Terminal: 1, Bar: 1, Corridor: 2 | | Hael references (casual, unprompted) | 3 | Terminal: 1, Bar: 2 | | **Dialogue subtotal** | **36** | | | | | | | **Smuggler monologue about Kael** | | | | Phase 1 — Comfort (warmth, baseline) | 4 | Terminal: 2, Bar: 2 | | Phase 2 — First Crack (concern, tells) | 4 | Terminal: 3, Bar: 1 | | Phase 3 — Contradiction (alarm, shock) | 3 | Corridor: 2, Terminal: 1 | | Phase 4 — Confrontation aftermath (hurt, conflict) | 3 | Terminal: 1, Bar: 1, Corridor: 1 | | Phase 5 — Contaminated trust (doubt over warmth) | 4 | Terminal: 2, Bar: 1, Corridor: 1 | | **Smuggler monologue subtotal** | **18** | | | | | | | **Detective monologue about Kael** | | | | Identification / first observation | 2 | Terminal: 2 | | Behavioral observation (tells noted) | 3 | Terminal: 2, Bar: 1 | | Suspicion / analytical escalation | 3 | Terminal: 2, Corridor: 1 | | Informant potential assessment | 2 | Terminal: 1, Bar: 1 | | **Detective monologue subtotal** | **10** | | | | | | | **Tell observation lines** | | | | Lattice checking (first + repeat) | 2 | Terminal: 2 | | Shortened interactions / evasive | 2 | Terminal: 1, Bar: 1 | | Looks-left tell (casual + confirmation) | 2 | Bar: 1, Corridor: 1 | | Spatial deviation (Corridor B-7) | 2 | Corridor: 2 | | **Tell subtotal** | **8** | | | | | | | **Trust-gated lines** (Kael's deeper dialogue) | | | | Insider: ring operational talk | 6 | Terminal: 4, Corridor: 2 | | Insider: close colleague warmth | 4 | Terminal: 2, Bar: 2 | | Secret: hints about wanting out (pre-contradiction, rare) | 3 | Bar: 2, Corridor: 1 | | **Trust-gated subtotal** | **13** | | | | | | | **Unprompted lines** (Kael volunteers) | | | | Early: offers information, warmth | 3 | Terminal: 2, Bar: 1 | | Late: warnings, deflections | 3 | Terminal: 1, Bar: 1, Corridor: 1 | | **Unprompted subtotal** | **6** | | | | | | | **PACK TOTAL** | **91** | | 91 lines. Within the 70-100 range from D-034. The slight overcount gives me room to cut — better to write 91 and kill 10 weak ones than write 70 and wish I had more coverage. ### Arc Phase Mapping to Triggers + Prerequisites This is the structural skeleton. Every line in the pack maps to one of these slots. #### Phase 1: Comfort (0-10 min, RelationshipState: Friendly) | Trigger | Prerequisite | Content Type | Count | |---|---|---|---| | `observe_npc` | `relationship_state: Friendly, subject: kael_davan` | Smuggler monologue: warmth | 2 | | `observe_npc` | `relationship_state: Friendly, subject: kael_davan` | Smuggler monologue: routine fondness | 2 | | `post_conversation` | `relationship_state: Friendly, subject: kael_davan` | Smuggler monologue: social comfort | 1 | | NPC dialogue | `access: [insider, peer], trust: surface` | Kael greetings, shift talk | 8 | | NPC dialogue | `access: [insider], trust: real` | Kael ring talk, colleague warmth | 6 | | NPC dialogue (unprompted) | `access: [insider]` | Kael volunteers info | 2 | **Phase 1 total: ~21 lines.** Heavy on dialogue (establish Kael's voice), lighter on monologue (smuggler's comfortable, not reflective). #### Phase 2: First Crack (10-15 min, still Friendly, flags accumulating) | Trigger | Prerequisite | Content Type | Count | |---|---|---|---| | `observe_anomaly` | `behavior_flags: lattice_checking` | Smuggler monologue: mild concern | 2 | | `post_conversation` | `behavior_flags: evasive` | Smuggler monologue: worry | 2 | | `observe_npc` (detective) | `relationship_state: Known, subject: kael_davan` | Detective monologue: behavioral note | 2 | | NPC dialogue | `access: [insider, peer], trust: surface` | Kael: shorter, deflective | 4 | | Tell observation | `behavior_flags` gates | Tells: lattice, shortened interactions | 3 | **Phase 2 total: ~13 lines.** Tell observations ramp up. Dialogue gets clipped. Smuggler monologue shifts from fond to concerned. #### Phase 3: The Contradiction (15-20 min, Friendly -> PersonOfInterest) | Trigger | Prerequisite | Content Type | Count | |---|---|---|---| | `witness_interaction` | `relationship_state: Friendly, subject: kael_davan` | Smuggler monologue: shock/alarm (THE moment) | 2 | | `observe_anomaly` | `contradiction_flagged: meeting_unknown_contact` | Smuggler monologue: processing | 1 | | `observe_npc` (detective) | behavioral flags accumulating | Detective monologue: suspicion spike | 2 | | Tell observation | `contradiction_flagged` | Spatial deviation tell | 2 | **Phase 3 total: ~7 lines.** Fewest lines, highest stakes. Every word carries maximum weight. The contradiction monologue is the most important line in the pack. #### Phase 4: Confrontation (20-25 min, PersonOfInterest) | Trigger | Prerequisite | Content Type | Count | |---|---|---|---| | `post_conversation` | `tell_observed: looks_left_when_lying` | Smuggler monologue: the tell confirmation | 2 | | `post_conversation` | `relationship_state: PersonOfInterest` | Smuggler monologue: hurt/conflict | 1 | | NPC dialogue | `access: [insider], trust: surface` | Kael: deflection, evasion | 6 | | NPC dialogue | `access: [insider]` | Kael: confrontation responses | 4 | | NPC dialogue (unprompted) | `access: [insider]` | Kael: warnings | 2 | | Tell observation | `tell_observed` gate | Looks-left confirmation | 1 | **Phase 4 total: ~16 lines.** Dialogue-heavy — the confrontation is a conversation. Kael's evasion lines are the hardest to write because they must be plausible without being convincing. #### Phase 5: Contaminated Trust (25-30 min, PersonOfInterest, new equilibrium) | Trigger | Prerequisite | Content Type | Count | |---|---|---|---| | `observe_npc` | `relationship_state: PersonOfInterest, subject: kael_davan` + `contradiction_flagged` | Smuggler monologue: doubt over warmth | 3 | | `return_visit` | `relationship_state: PersonOfInterest` | Smuggler monologue: location contamination | 1 | | `time_idle` | `relationship_state: PersonOfInterest, subject: kael_davan` | Smuggler monologue: rumination | 1 | | `observe_npc` (detective) | `secret_confidence: confirmed/suspected` | Detective monologue: informant potential | 2 | | NPC dialogue | `access: [public], trust: surface` | Kael: surface normal (warmth locked out) | 4 | | NPC dialogue | `access: [insider], trust: real` (if smuggler chose understanding path) | Kael: confession hints | 3 | | Trust-gated: secret | Path A only | Kael: deeper truth | 2 | **Phase 5 total: ~16 lines.** The contamination lines are the ones where voice discipline matters most — same warmth, new subtext. "Same old Kael" lines where the smuggler hears what used to be comfort and now hears a question. ### Cross-Phase Lines (Not Phase-Specific) | Content Type | Count | Notes | |---|---|---| | Detective identification/first observation | 2 | Fires before detective has context on Kael | | Kael Hael references (casual, any phase) | 3 | Establish relationship before it's load-bearing | | Kael bar casual (not phase-gated) | 4 | Social texture | | Detective pattern-forming observations | 3 | Cumulative, phase-independent | | Kael insider ring coordination | 4 | Operational dialogue, pre-contradiction | **Cross-phase total: ~16 lines.** ### Phase Total Reconciliation | Phase | Lines | % of Pack | |---|---|---| | Phase 1: Comfort | 21 | 23% | | Phase 2: First Crack | 13 | 14% | | Phase 3: Contradiction | 7 | 8% | | Phase 4: Confrontation | 16 | 18% | | Phase 5: Contaminated Trust | 16 | 18% | | Cross-phase | 16 | 18% | | **Total** | **89** | ~98% (rounding) | Close to the 91 estimate. The 2-line gap is margin for lines that emerge during writing — there's always one observation or reaction that only becomes obvious while you're in the character's head. ### Format (Sample YAML) Each line in the pack looks like this. Showing one per phase to demonstrate prerequisite progression: ```yaml # Phase 1: Comfort — smuggler sees Kael, no concerns - id: terminal_m_010 character: smuggler trigger: observe_npc prerequisite: relationship_state: Friendly subject: kael_davan text: "Kael's already at the dock. Good. The day's better when he's on shift." mood: [fond] topic: [colleague] situation: [shift_start] access: [insider, peer] trust: surface tags: [kael, baseline, pre_contradiction] notes: "Phase 1 warmth. Establishes the bond." # Phase 2: First Crack — smuggler notices tell - id: terminal_m_011 character: smuggler trigger: observe_anomaly prerequisite: all: - relationship_state: Friendly subject: kael_davan - known_attributes: subject: kael_davan key: behavior_flags value_contains: lattice_checking text: "Kael keeps checking his lattice. Waiting for a message? Not like him to be jumpy." mood: [concerned] topic: [colleague] situation: [routine] access: [insider] trust: real tags: [kael, tell, first_crack] # Phase 3: Contradiction — the moment - id: corridor_m_010 character: smuggler trigger: witness_interaction prerequisite: relationship_state: Friendly subject: kael_davan text: "Kael? Down here? And that's — I don't know them. Not crew, not ring. Who the hell is that?" mood: [concerned] topic: [colleague] situation: [observation] access: [insider] trust: real tags: [the_friend, contradiction, kael, critical_moment] notes: "THE CONTRADICTION. Sets contradiction_flagged. Green -> amber." # Phase 4: Tell confirmation — the knife - id: corridor_m_011 character: smuggler trigger: post_conversation prerequisite: all: - relationship_state: PersonOfInterest subject: kael_davan - known_attributes: subject: kael_davan key: tell_observed value: looks_left_when_lying text: "He looked left. Always looks left when he's making something up. Two years, Kael. I know your tells." mood: [conflicted] topic: [trust] situation: [confrontation] access: [insider] trust: real tags: [the_friend, kael, tell_confirmation] # Phase 5: Contaminated trust — the new normal - id: terminal_m_015 character: smuggler trigger: observe_npc prerequisite: all: - relationship_state: PersonOfInterest subject: kael_davan - known_attributes: subject: kael_davan key: contradiction_flagged value: meeting_unknown_contact text: "Same old Kael. Same jokes, same routine. ...What are you not telling me?" mood: [conflicted] topic: [colleague] situation: [routine] access: [insider] trust: real tags: [kael, the_friend, contaminated_trust] ``` ### Dependencies Before I Can Write the Full Pack | Dependency | Owner | Status | Impact if Missing | |---|---|---|---| | Content directory structure confirmed | Tyre | Round 2 (expected) | I write the pack as a single doc and split later — not blocking | | FactId catalog (smuggler path entries) | Gestalt / Paula | Gap 5 from tracking | I use authoring-guide FactIds as placeholders, replace when catalog lands | | EntityKnowledge key resolution (4 vs 8 keys) | Gestalt / Paula | D-03 disagreement | I write prerequisites using the Round 1 key names, adapt to winner | | Monologue display constraints | Stig | R1 proposal: ~160 char, 2-line, 4-6 sec | Adopted. Writing to these constraints now. | | NPC pattern/motivation mapping finalized | Gestalt | Round 2 (lead awarded to Gestalt) | Doesn't change Kael's content — he's FRIEND+OPERATOR regardless | **None of these are hard blockers.** The biggest risk is FactId placeholder drift — if the final catalog changes `contraband.ring_exists` to `smuggling.ring_confirmed`, I have to search-replace across the pack. Manageable, but annoying at scale. I'd rather the catalog stabilizes before I author all 695 items. ### Authoring Timeline **Kael pack (91 lines):** I can draft the full pack once this workshop closes. Dialogue lines require the most iteration (Kael's voice under pressure is tricky — evasive without sounding scripted). Monologue lines are faster (I've been living in both character registers for two workshops now). Tell lines are mechanical — they map directly to the wiki's tell system table. Estimate: full draft in one session. Review pass in a second. Revision after Gestalt validates tags and Dudley confirms prerequisites fire correctly. **Sera pack follows immediately.** Different contradiction mechanics (cumulative pattern vs. single observation), different voice (Sera's precision vs. Kael's brevity), same structure. Lessons from Kael's pack inform Sera's. --- ### Note on the 695 Number Round 1 tracking (A-06) flags my 695 total as "needs validation from others." Let me be clear about what it is and isn't: - **695 is the authored floor.** Below this, the 30-minute session has gaps — locations without environmental text, NPCs without enough dialogue variation, monologue pools that repeat. - **695 is not the generation-expanded total.** D-028 specifies a 4x generation pass for dialogue ("write 10, generate 40"). If we apply that to the ~350 dialogue lines, the engine sees ~1,400 dialogue lines. But the 350 are what I hand-write. - **695 doesn't include content the engine generates.** Routine greetings, time-of-day variations, personality-trait transformations — those are generation-pass output, not authored input. The number to track is **695 authored items.** That's the scope. That's what I deliver. --- *Mellanie, Round 2. Voice registers defined, pack structure mapped, dependencies identified. Ready to write the benchmark.*