Files
settled-reach/docs/workshops/v01-content-scoping/round2-mellanie.md
T
jpmschweitzerandClaude Opus 4.6 3944b4e79f docs(workshops): archive v0.1 content scoping workshop (2 rounds + closing)
Scoped the vertical slice: 16 EntityKnowledge keys, v0.1 mechanical
NPC mapping, YAML content format, 7-verb interaction model, server-
authoritative pause, 38 tickets created across copy/server/client/ci.
20 decisions (D-042 through D-061). 8 agents, 2 rounds + closing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:19:05 +01:00

462 lines
26 KiB
Markdown

# 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.*