# {PROJECT_NAME} — Characters

> **Validation:** This document is validated by `validate_behavioral_dna.py` before promotion.
> **Template:** `/templates/dev_templates/characters_template.md`

---

## PURPOSE: WHY THIS DOCUMENT EXISTS

**This document constrains episode generation.** Every behavior, voice pattern, and trait defined here must appear ON SCREEN in the generated scripts.

### How This Document Is Used

| Phase | How It's Used |
|-------|---------------|
| **Development** | Define specific, filmable behaviors that make characters feel real |
| **Validation** | Gate checks that all required elements exist before promotion |
| **Promotion** | Copied directly to `/bible/characters.md` (no transformation needed) |
| **Generation** | **LOADED INTO CONTEXT EVERY BATCH** — generator writes these behaviors into action blocks |

### The Core Principle

**Characters are defined by what they DO on screen, not their history.**

| Good (Filmable Behavior) | Bad (Backstory/Abstraction) |
|--------------------------|----------------------------|
| "Counts on fingers when calculating" | "Is good at math" |
| "Touches debt counter when lying" | "Has trust issues" |
| "Gets LOUDER when cornered" | "Is defensive" |

Backstory explains. **Behavior constrains action and creates drama.**

### Generation Contract

When generating episodes, the system MUST:
1. **Load** `characters.md` into context at start of each batch
2. **Show** behavioral DNA elements naturally (see BATCH-LEVEL GUIDANCE below)
3. **Maintain** voice patterns in all dialogue
4. **Reload** character file between batches to prevent drift

**BATCH-LEVEL GUIDANCE (not per-episode):**
- Show 2-3 behavioral DNA elements per character per BATCH (5 episodes)
- Vary which elements appear — don't repeat same behavior consecutively
- Signature behaviors (stress, contradiction) reserved for KEY MOMENTS only

**If a behavior is in this document, it must eventually appear on screen. If it never appears, it shouldn't be here.**

---

## DOCUMENT STRUCTURE

Each character section contains:
1. **Sketch** — Identity, visual design, role
2. **Behavioral DNA** — On-screen behaviors (what we SEE)
3. **Voice DNA** — Speech patterns (what we HEAR)
4. **Need Layers** — Motivation hierarchy
5. **Character Arc** — Transformation over 60 episodes

---

## {PROTAGONIST_NAME} — {PROTAGONIST_ROLE}

### Sketch

**Name:** {NAME}
**Age:** {AGE}
**Role:** {ROLE_DESCRIPTION}

**Archetype:** {ARCHETYPE}
**Personality Compression:** {ONE_LINE_PERSONALITY}

**Visual Design:**
- {VISUAL_1}
- {VISUAL_2}
- {VISUAL_3}

**Competence:** {WHAT_SKILL_DRIVES_PLOT}

---

### Behavioral DNA

> **Characters are defined by what they DO on screen, not their history.**

**On-Screen Behaviors:**
1. {BEHAVIOR_1} — {brief context}
2. {BEHAVIOR_2} — {brief context}
3. {BEHAVIOR_3} — {brief context}
4. {BEHAVIOR_4} — {optional}
5. {BEHAVIOR_5} — {optional}

**Stress Behavior:** {SPECIFIC_SURPRISING_RESPONSE}
> Must be SPECIFIC. "Gets quiet" = FAIL. "Gets LOUDER and more flippant" = PASS.

**Signature Line:** "{LINE_ONLY_THEY_WOULD_SAY}"
> Swap Test: Could another character say this? If yes, it's not a signature line.

**Orthogonal Trait:** {TRAIT_NOT_SERVING_THEME}
> Something about them that has NOTHING to do with the story's theme — but DOES reveal character or create relationship beats.

**Orthogonal Trait Quality Gate:**
A good orthogonal trait is NOT just a quirk. It passes at least 2 of these 3 tests:
1. **Character Revelation** — Does it show WHO this person is beneath the plot? (e.g., a gambler who talks to machines reveals superstition and loneliness)
2. **Arc Potential** — Can it CHANGE over 60 episodes in a way that tracks growth? (e.g., mirroring gestures that start unconscious and become deliberate)
3. **Relationship Work** — Does another character noticing it create a beat? (e.g., "Are you talking to a door?" becomes a callback)

| Quality Level | Example | Verdict |
|---|---|---|
| **BAD** (just a quirk) | "Hums old songs" / "Doodles geometric shapes" | Wallpaper. Doesn't reveal or evolve. |
| **GOOD** (does work) | "Names things — talks to machines like they're alive" | Reveals superstition, creates humor, evolves when she starts talking to Kian the same way |
| **GOOD** (does work) | "Unconsciously mirrors partner's gestures as he humanizes" | Invisible arc marker, relationship beat when noticed, tracks transformation |

**Contradiction:** {PATTERN_BREAK_DESCRIPTION}
> The moment where they break their established pattern.

---

### Voice DNA

**Idiom:** {SPEECH_PATTERN_DESCRIPTION}
- {IDIOM_EXAMPLE_1}
- {IDIOM_EXAMPLE_2}
- {IDIOM_EXAMPLE_3}

**Humor Type:** {GALLOWS_HUMOR / DRY_DEADPAN / CRUEL_WIT / EARNEST / NONE}

**Anti-Patterns (NEVER says):**
- {NEVER_1}
- {NEVER_2}
- {NEVER_3}

**Sample Dialogue:**
> "{CASUAL_LINE}"
> "{UNDER_PRESSURE_LINE}"
> "{EMOTIONAL_CRACK_LINE}"

**Relational Address:**
- To {ANCHOR}: {HOW_THEY_ADDRESS_ANCHOR}
- To {ANTAGONIST}: {HOW_THEY_ADDRESS_ANTAGONIST}
- To strangers: {HOW_THEY_ADDRESS_STRANGERS}

---

### Need Layers

| Layer | Need | When Revealed |
|-------|------|---------------|
| **Surface** | {TANGIBLE_GOAL} | Episode 1 |
| **Deeper** | {EMOTIONAL_NEED} | Episode ~15-20 |
| **Deepest** | {TRANSFORMATION_NEED} | Episode 45+ |

---

### Character Arc

**Arc Type:** {POSITIVE / FLAT / NEGATIVE / DISILLUSIONMENT / REVELATION}

**The Lie (Start):**
> "{WHAT_THEY_BELIEVE_AT_START}"

**The Truth (End):**
> "{WHAT_THEY_LEARN}"

**The Wound:** {FORMATIVE_DAMAGE}

**The Mask:** {HOW_THEY_PRESENT_THEMSELVES}

**Mask Crack Schedule:**

| Episode | Event | What's Revealed |
|---------|-------|-----------------|
| 10 | First Crack | {REVEAL} |
| 20 | Deepening | {REVEAL} |
| 30 | Midpoint Break | {REVEAL} |
| 45 | Shattered | {REVEAL} |
| 55+ | Integrated | {REVEAL} |

**Transformation Beats:**

| Episode Range | State | Key Moment |
|---------------|-------|------------|
| 1-10 | {STATE} | {MOMENT} |
| 11-20 | {STATE} | {MOMENT} |
| 21-30 | {STATE} | {MOMENT} |
| 31-45 | {STATE} | {MOMENT} |
| 46-60 | {STATE} | {MOMENT} |

---

## {ANTAGONIST_NAME} — {ANTAGONIST_ROLE}

### Sketch

**Name:** {NAME}
**Role:** {ROLE_DESCRIPTION}
**Threat Level:** {1-10}

**What Makes Them SMART:** {WHY_THEYRE_FORMIDABLE}

**Visual Design:**
- {VISUAL_1}
- {VISUAL_2}
- {VISUAL_3}

---

### Behavioral DNA

**On-Screen Behaviors:**
1. {BEHAVIOR_1} — {brief context}
2. {BEHAVIOR_2} — {brief context}
3. {BEHAVIOR_3} — {brief context}

**Stress Behavior:** {SURPRISING_RESPONSE_WHEN_LOSING}

**Signature Line:** "{LINE_ONLY_THEY_WOULD_SAY}"

**What They're RIGHT About:** {THEIR_VALID_POINT}
> The antagonist must have a defensible position.

**Contradiction:** {PATTERN_BREAK_DESCRIPTION}

---

### Voice DNA

**Idiom:** {SPEECH_PATTERN_DESCRIPTION}
- {IDIOM_EXAMPLE_1}
- {IDIOM_EXAMPLE_2}

**Humor Type:** {GALLOWS_HUMOR / DRY_DEADPAN / CRUEL_WIT / EARNEST / NONE}

**Anti-Patterns (NEVER says):**
- {NEVER_1}
- {NEVER_2}

**Sample Dialogue:**
> "{THREATENING_LINE}"
> "{PHILOSOPHICAL_LINE}"
> "{CRACKING_LINE}"

---

### Character Arc

**Arc Type:** {TYPE}

**Their Truth (Counter-Thesis):**
> "{WHAT_THEY_BELIEVE}"

**Why They're Not Entirely Wrong:** {VALIDITY}

**Their Wound:** {WHAT_MADE_THEM_THIS_WAY}

**Shadow Function:** {HOW_THEY_REPRESENT_PROTAGONISTS_POTENTIAL_FATE}

**Transformation Beats:**

| Episode Range | State | Key Moment |
|---------------|-------|------------|
| 1-15 | {STATE} | {MOMENT} |
| 16-30 | {STATE} | {MOMENT} |
| 31-45 | {STATE} | {MOMENT} |
| 46-60 | {STATE} | {MOMENT} |

---

## {ANCHOR_NAME} — {ANCHOR_ROLE}

### Sketch

**Name:** {NAME}
**Relationship to Protagonist:** {RELATIONSHIP}

**Anchor Type:** {CUB / GHOST / MIRROR / SKEPTIC / TETHER / WITNESS / FOIL / COST}
> Or hybrid: {TYPE_1} + {TYPE_2}

**How They Challenge Protagonist:** {CHALLENGE}
**How They Support Protagonist:** {SUPPORT}

**Visual Design:**
- {VISUAL_1}
- {VISUAL_2}

---

### Behavioral DNA

**On-Screen Behaviors:**
1. {BEHAVIOR_1} — {brief context}
2. {BEHAVIOR_2} — {brief context}
3. {BEHAVIOR_3} — {brief context}

**Stress Behavior:** {RESPONSE_WHEN_PROTAGONIST_IN_DANGER}

**Signature Line:** "{LINE_ONLY_THEY_WOULD_SAY}"

**Orthogonal Trait:** {NON_THEME_TRAIT}
> Must pass the Orthogonal Trait Quality Gate (see protagonist section): at least 2 of 3 tests (Character Revelation, Arc Potential, Relationship Work).

**Contradiction:** {PATTERN_BREAK}

**Truth They Hold:** {WHAT_PROTAGONIST_NEEDS_TO_LEARN_FROM_THEM}

---

### Voice DNA

**Idiom:** {SPEECH_PATTERN_DESCRIPTION}
- {IDIOM_EXAMPLE_1}
- {IDIOM_EXAMPLE_2}

**Humor Type:** {TYPE}

**Anti-Patterns (NEVER says):**
- {NEVER_1}
- {NEVER_2}

**Sample Dialogue:**
> "{TYPICAL_LINE}"
> "{PROTECTIVE_LINE}"
> "{VULNERABLE_LINE}"

---

### Need Layers

| Layer | Need |
|-------|------|
| **Surface** | {TANGIBLE_GOAL} |
| **Deeper** | {EMOTIONAL_NEED} |
| **Deepest** | {TRANSFORMATION_NEED} |

---

### Character Arc

**Transformation Beats:**

| Episode Range | State | Key Moment |
|---------------|-------|------------|
| 1-15 | {STATE} | {MOMENT} |
| 16-30 | {STATE} | {MOMENT} |
| 31-45 | {STATE} | {MOMENT} |
| 46-60 | {STATE} | {MOMENT} |

**Voice Evolution:**

| Episodes | Stage | Key Trait |
|----------|-------|-----------|
| 1-{N} | {STAGE_1} | {TRAIT} |
| {N}-{M} | {STAGE_2} | {TRAIT} |
| {M}-60 | {STAGE_3} | {TRAIT} |

---

## VOICE CONSISTENCY RULES

### Distinct Patterns

| Character | Idiom | Humor | Signature |
|-----------|-------|-------|-----------|
| {PROTAGONIST} | {IDIOM} | {TYPE} | "{LINE}" |
| {ANTAGONIST} | {IDIOM} | {TYPE} | "{LINE}" |
| {ANCHOR} | {IDIOM} | {TYPE} | "{LINE}" |

### Swap Test

Pick any line of dialogue. Remove the character name. Can you identify the speaker?
- If YES → Voices are distinct
- If NO → Voices are contaminated

### Contamination Check

| Issue | How to Detect |
|-------|---------------|
| {PROTAGONIST} sounds like {ANCHOR} | Using {ANCHOR}'s idiom or patterns |
| {ANCHOR} sounds like {PROTAGONIST} | Using {PROTAGONIST}'s idiom or patterns |
| Generic dialogue | Could be spoken by ANY character |

---

## CHARACTER ENFORCEMENT RULES

### {PROTAGONIST_NAME}

**FORBIDDEN until Episode {N}:**
- {FORBIDDEN_1}
- {FORBIDDEN_2}

**REQUIRED per BATCH (validated at batch level, not per-episode):**
- 2-3 behavioral DNA elements visible per character per batch
- Vary which elements appear — don't repeat same behavior consecutively
- Stress behavior and contradiction reserved for KEY MOMENTS only

**VOICE DNA GUIDANCE (guidance, not validated):**
- Idiom presence: Naturally emerging, not forced — aim for 3-4 instances per batch
- Signature line: Save for high-stakes moments (2-3 uses per act)
- Let voice emerge from CHARACTER, not from checklist
- Ep {MASK_BREAK_EP}-60: Idiom can fade as arc completes
- Idiom drift caught by /dramatic-qc --lens voice, not automated validation
- Reason: Some idioms (poetic, philosophical) aren't regex-detectable

### {ANCHOR_NAME}

**FORBIDDEN until Episode {N}:**
- {FORBIDDEN_1}

**Voice Stage Markers:**
- Ep 1-{N}: {EARLY_VOICE}
- Ep {N}-{M}: {MIDDLE_VOICE}
- Ep {M}-60: {LATE_VOICE}

### {ANTAGONIST_NAME}

**FORBIDDEN always:**
- {FORBIDDEN_1}
- {FORBIDDEN_2}

**Crack Episodes (vulnerability shows):**
- Episode {N}: {CRACK_DESCRIPTION}

---

## VALIDATION CHECKLIST

Before promotion, verify per character:

**Behavioral DNA (HARD GATE):**
- [ ] 3+ on-screen behaviors (filmable, not backstory)
- [ ] Stress behavior (specific, not generic)
- [ ] Signature line (passes swap test)
- [ ] Orthogonal trait (non-theme-serving, passes Quality Gate: 2/3 of Revelation + Arc + Relationship)
- [ ] Contradiction (pattern-break defined)

**Voice DNA (SOFT GATE):**
- [ ] Idiom defined
- [ ] Humor type identified
- [ ] Anti-patterns listed
- [ ] Sample dialogue provided

**Arc (REQUIRED):**
- [ ] Arc type identified
- [ ] Lie/Truth defined
- [ ] Transformation beats mapped
- [ ] Mask crack schedule complete

---

*Template version: 2.1*
*Unified characters.md template — used in both development and production*
