中
Appendix B. The Complete Episode Pack Master

Appendices

Appendix B. The Complete Episode Pack Master#

In this chapter
B.1 Package directoryB.2 ManifestB.3 Episode contractB.4 Fact locksB.5 Entry stateB.6 The beat sheet masterB.7 The beat contract cardB.8 Scene cardB.9 Line registryB.10 Narration and inner voiceB.11 Shot requirementsB.12 Sound planB.13 Asset dependenciesB.14 Continuity snapshot and eventsB.15 Risks and fallback routesB.16 Acceptance criteriaB.17 Pack approval recordB.18 Pack diff and change requestB.19 Pack lintB.20 Minimum pack and full packB.21 Common counterexamplesB.22 Usage checklistB.23 Exercises and deliverables

The episode pack is the single approved input from which an episode enters shot design, assets, voice, generation, editing and QC. It does not replace the script with YAML, and it does not ask writers to give up natural language. It puts literary expression and the production facts that must not be lost into one versioned package.

This master can be trimmed, but never at the cost of versions, fact locks, entry and exit state, asset dependencies, risks, acceptance and the change record. A small project can keep it in one Markdown file; a large one can split it into database entities. The field semantics stay the same.

B.1 Package directory#

EP_E001_PACK_v12/
  manifest.yaml
  episode_contract.yaml
  facts.yaml
  states_in.yaml
  beats.yaml
  scenes.yaml
  lines.yaml
  narration.yaml
  shot_requirements.yaml
  sound_plan.yaml
  assets.yaml
  continuity.yaml
  risks.yaml
  acceptance.yaml
  decisions.yaml
  attachments/

B.2 Manifest#

episode_pack:
  id: EP_E001_PACK
  version: 12
  status: approved
  project: PRJ_NIGUANG
  episode: E001
  schema: episode_pack@1.4
  created_at: 2026-07-05T10:00:00Z
  approved_at: 2026-07-05T18:30:00Z
  approved_by: [SHOWRUNNER, PRODUCER]
  sources:
    season_bible: SEASON_NGSG@v08
    character_bible: CHAR_BIBLE@v11
    continuity_snapshot: CONT_E001_IN@v06
    rights_snapshot: RIGHTS_PRJ_NGSG@v05
  content_hash: sha256:example
  supersedes: EP_E001_PACK@v11
  change_summary:
    - authorization readable duration raised from 18 to 24 frames
    - one duplicated humiliation reaction removed

The manifest describes the package; it does not carry the business content. Every downstream task records the actual pack hash — "uses the latest version" is not acceptable.

B.3 Episode contract#

episode_contract:
  episode: E001
  target_duration_sec: 75
  acceptable_range_sec: [68, 82]
  business_mode: paid_unlock
  episode_function:
    - establish that Lin Yun has been excluded
    - prove she holds procedural standing to enter
    - open the question of a dead man's account still paying
  opening_contract:
    first_visible_conflict_max_sec: 3
    promise_confirmation_max_sec: 8
  payoff:
    debt_paid: can Lin Yun get into the meeting
    debt_opened: who is using her father's account
  card:
    type: proof_leads_to_larger_mystery
    exact_question: why is her late father still a payee
  forbidden:
    - Lin Yun gets in through somebody's charity
    - the authorization appears with no provenance
    - the cut lands before the document is readable

B.4 Fact locks#

Fact locks hold the truths that downstream may not rewrite.

fact_locks:
  - id: FACT_E001_001
    statement: Lin Yun holds an authorization personally signed by the chair
    source: SEASON_FACT_014
    visible_to: [LINYUN]
    revealed_to: [ZHOULAN, LINWEI, BOARD]
    reveal_beat: E001_B05
  - id: FACT_E001_002
    statement: the anomalous payment lists Lin Yun's father as the payee
    source: SEASON_FACT_021
    revealed_to: [LINYUN, AUDIENCE]
    reveal_beat: E001_B09
  - id: FACT_E001_003
    statement: at this point Lin Yun does not know whether her father is alive
    type: knowledge_constraint

Numbers, proper nouns, relationships, dates and negations must all be structured. If a line, a graphic or a narration contradicts a fact lock, the pack cannot be approved.

B.5 Entry state#

state_in:
  timeline: DAY_01_16_20
  location: LOC_MEETING_ENTRANCE@v05
  characters:
    CH_LINYUN:
      zone: door_outside
      wardrobe: WD_LINYUN_GREY_SUIT@v04
      props:
        authorization: concealed_inside_folder
        old_pen: left_inner_pocket
      emotion: controlled_anger_2
      knows: [FACT_FATHER_DECLARED_DEAD, FACT_MEETING_TODAY]
      does_not_know: [FACT_FATHER_POSSIBLY_ALIVE]
    CH_LINWEI:
      zone: door_inside
      wardrobe: WD_LINWEI_IVORY@v03
      emotion: public_confidence_3
      tactic: define_linyun_as_intruder
  location_state:
    passage: blocked_by_guard
    screen: agenda_idle
    lighting: MEETING_DUSK@v02

B.6 The beat sheet master#

Beat Target sec Function Trigger Visible action Audience gains State out Debt
B01 0–6 Pressure Lin Yun reaches the door The guard's arm blocks her She is publicly excluded passage=blocked Can she get in
B02 6–15 Framing Lin Wei speaks Calls her an intruder The exclusion rests on an identity story board_belief=outsider Who is entitled
B03 15–25 Strategy Lin Yun does not argue Records, observes She is preparing evidence evidence=concealed What does she have
B04 25–39 Proof begins The order to remove her The document slides onto the table A formal document exists evidence=visible Is it genuine
B05 39–50 Reversal Zhou Lan verifies it A nod, the guard stands aside The authorization is valid access=granted Who signed it
B06 50–61 Consequence Lin Yun crosses the threshold Takes the empty seat Power is redistributed power=contested How does Lin Wei fight back
B07 61–75 New debt The system opens the accounts A payee name appears A dead man's account is still paying mystery=open Is her father alive

Each row also carries a stable beat ID. Times are targets, not locks; state outputs and debts cannot change without a new version.

B.7 The beat contract card#

beat:
  id: E001_B04
  scene: E001_SC01
  state_in:
    authorization: concealed
    passage: blocked
  objective:
    CH_LINYUN: turn a dispute over identity into a procedural verification
    CH_LINWEI: end her eligibility before the document is seen
  trigger: CH_LINWEI_orders_removal
  tactic: proof_without_argument
  visible_action:
    subject: CH_LINYUN
    action: takes the authorization from the folder and slides it into the shared area of the table
    world_direction: east_door_to_table_head
  audience_gain: she holds formal proof
  state_out:
    authorization: visible_unverified
    board_attention: on_document
  min_duration_sec: 8
  max_duration_sec: 14
  assets: [PROP_AUTHORIZATION@v07, LOC_MEETING@v05]
  risk: hand_document_interaction_high
  fallback: approach_occlusion_result

B.8 Scene card#

scene:
  id: E001_SC01
  slugline: DAY_01 / Shenghua boardroom door area / dusk / continuous
  dramatic_question: can Lin Yun force the board to acknowledge her right to enter
  power_in: LINWEI_controls_access
  power_out: PROCEDURE_FORCES_ACCESS
  location_version: LOC_MEETING@v05
  primary_axis: door_to_table_head
  camera_side: south
  scene_delta:
    before: {access: denied, evidence: hidden, belief: outsider}
    after: {access: granted, evidence: public, belief: authorized}
  enters:
    CH_LINYUN: door_outside
  exits: []
  sound_space: ROOM_MEETING_DUSK@v03
  transition_in: hard_cut_from_elevator_ding
  transition_out: screen_hum_J_cut

B.9 Line registry#

lines:
  - id: LINE_E001_014
    beat: E001_B02
    speaker: CH_LINWEI
    text: She has no right to come through that door.
    action: defines Lin Yun as an outsider
    subtext: as long as the document stays out of public space, I control the interpretation
    target_duration_sec: 2.3
    emphasis: [right, door]
    interruptible_after: right
    lipsync: visible
  - id: LINE_E001_021
    beat: E001_B04
    speaker: CH_LINYUN
    text: My right is right here.
    action: converts an argument into a verification
    subtext: I do not accept your definition
    target_duration_sec: 1.4
    pronunciation: {}
    lipsync: visible_then_offscreen_allowed

Line text, function, performance, duration and lip sync are stored separately. Changing the words requires a new version and a realignment.

B.10 Narration and inner voice#

Even with no narration, write none explicitly, so post cannot patch a hole with an improvised explanation.

narration:
  mode: none
  rationale: episode one establishes the rules through conflict in the room
  forbidden_information:
    - the father's true status
    - Lin Wei's private plan

A narrated comic version instead records POV, authority, target duration, overlapping text and the picture's job for each unit of thought.

B.11 Shot requirements#

These describe the information that must be covered; they do not lock every camera position on the shot designer's behalf.

shot_requirements:
  - id: SR_E001_B01_ACCESS
    must_observe:
      - the threshold, with Lin Yun outside it
      - the guard's arm forming the block
      - Lin Wei positioned inside
    acceptable_forms: [vertical_master, medium_two_shot]
    min_readability: passage_relationship_clear_on_phone
  - id: SR_E001_B04_PROOF
    must_observe:
      - the document entering publicly visible space
      - the authorization heading or signature legible
      - Lin Wei registering that the document exists
    acceptable_forms: [document_insert_plus_reaction, controlled_two_shot]
    blockers: [wrong_text, mirrored_signature, hand_swap]

B.12 Sound plan#

sound_plan:
  dialogue_master_required: true
  room_tone: ROOM_MEETING_DUSK@v03
  foley_events:
    - {id: SFX_E001_004, action: guard_arm_blocks, priority: low}
    - {id: SFX_E001_018, action: folder_on_table, priority: medium}
    - {id: SFX_E001_022, action: authorization_hits_table, priority: foreground}
  music:
    cue: CUE_E001_ACCESS@v04
    enter: after_public_humiliation
    clear_for: [LINE_E001_021, authorization_impact]
    motif_state: LINYUN_TRUTH_incomplete_two_notes
  silence_events:
    - before_authorization_impact_ms: 300

B.13 Asset dependencies#

Asset ID Version Use State Rights Action if missing
CH_LINYUN v03 Identity approved original/cleared None
WD_LINYUN_GREY v04 Base wardrobe approved project None
LOC_MEETING v05 Location locked original None
PROP_AUTHORIZATION v07 Hero prop approved original Re-check advertising use
VOICE_LINYUN v02 Dialogue approved project/zh-CN None
MUS_LINYUN_TRUTH v03 Theme approved sync only Clear advertising separately

The dependency table does not copy asset content; it references the registry. Any high-risk dependency in pending, blocked or expired blocks the pack from entering the corresponding workstation.

B.14 Continuity snapshot and events#

continuity_events:
  - id: EVT_E001_001
    at: E001_B01
    type: spatial_block
    before: passage_open
    after: passage_blocked_by_guard
  - id: EVT_E001_004
    at: E001_B04
    type: prop_reveal
    prop: PROP_AUTHORIZATION
    before: concealed_in_folder
    after: visible_on_table
  - id: EVT_E001_005
    at: E001_B05
    type: access_granted
    before: CH_LINYUN_door_outside
    after: CH_LINYUN_crosses_doorline

The exit state is obtained by replaying the events, and the pack still stores the approved snapshot so downstream can read and audit it quickly.

B.15 Risks and fallback routes#

risks:
  - id: RISK_E001_HANDOFF
    shot_requirement: SR_E001_B04_PROOF
    probability: medium
    impact: high
    symptom: hand and document merge, or left and right hands swap
    primary_route: static_keyframe_plus_short_slide
    fallback_A: hand_approach_cut_to_document_result
    fallback_B: separate_hand_plate_composite
    attempt_limit: 3
    decision_owner: DIRECTOR
  - id: RISK_E001_TEXT
    symptom: garbled text on the authorization
    route: clean_document_plane_plus_graphic_composite
    blocker: final_text_not_bound_to_FACTS_v07

B.16 Acceptance criteria#

acceptance:
  story:
    - cold viewers can restate why the authorization changes her right to enter
    - the closing question points specifically at the father's account
  continuity:
    - Lin Yun crosses the threshold once, in a consistent direction
    - the authorization stays visible on the table after B04 until it is picked up
  visual:
    - lead close-ups pass the identity contract
    - the evidence text is readable for at least 24 frames on the target phone
  sound:
    - "My right is right here" is not masked by music
    - the document landing has mid-range weight and syncs with contact
  commercial:
    - E001 repays the entry promise before opening the father question
  rights:
    - every use in the episode is cleared

Criteria must be observable. Do not make "premium", "cinematic" or "the pacing feels good" the only acceptance.

B.17 Pack approval record#

approval:
  status: approved_with_conditions
  conditions:
    - advertising use of PROP_AUTHORIZATION does not affect episode production but blocks creative release
  review_evidence:
    - COLD_READ_E001@v03
    - TABLE_READ_E001@v04
    - TIMING_ANIMATIC_E001@v06
    - ASSET_PREFLIGHT_E001@v05
  blockers_open: []
  decisions:
    - DEC_E001_031 keep the shot of the guard lowering his arm

B.18 Pack diff and change request#

pack_change:
  from: EP_E001_PACK@v12
  to_candidate: EP_E001_PACK@v13
  request: change Lin Yun's line to "This is my right"
  changed_entities: [LINE_E001_021]
  direct_impacts: [dialogue_master, lipsync, subtitle]
  possible_impacts: [music_ducking, shot_duration]
  unaffected: [character_identity, location, authorization_graphic]
  estimated_cost_index: 3
  decision: rejected
  reason: the current version is shorter, and action and evidence complete the meaning together

B.19 Pack lint#

Automated checks include at minimum: IDs are unique; every reference exists; versions are approved or otherwise permitted; facts agree with lines and graphics; character knowledge stays in bounds; entry and exit states can be replayed; prop ownership has no break; total beat duration falls in range; every must-observe item has a coverage requirement; rights blocks are not ignored; the cut point has a payoff contract; every risk has an owner.

Passing lint does not mean the script is good. It only proves there is no known hard conflict in the structure. Performance, charm and feeling are still reviewed by humans.

B.20 Minimum pack and full pack#

A small experiment can keep only the manifest, episode contract, facts, beats, state, assets, risks and acceptance. Once you have several characters, long narration, musical themes, multiple languages or commercial distribution, use the full package. Trim by project risk, not by whether the team finds it tedious.

B.21 Common counterexamples#

  • The literary script is approved and each department copies it and edits by hand.
  • A line changes and the pack version does not, so lip sync and subtitles keep referencing old audio.
  • A risk that says only "AI might fail," with no symptom, route, attempt limit or owner.
  • Acceptance that says "consistent characters" without stating angles, shot sizes and tolerances.
  • An asset table listing filenames with no version, rights or state.
  • A cut point exists, and the next episode's pack has no payoff contract.

B.22 Usage checklist#

  • Manifest, schema, version, hash and approvers are complete.
  • The episode contract states this episode's function, payoff and new debt.
  • Fact locks cover numbers, proper nouns, knowledge and negations.
  • Every character, prop, space and emotion has an entry state.
  • Every beat has a trigger, an action, what the audience gains and an exit state.
  • Scenes produce a verifiable state delta.
  • Lines carry their action function, duration and lip sync strategy.
  • Shot requirements describe what must be seen without locking the shot design.
  • The sound plan covers dialogue, space, Foley, music and silence.
  • Asset dependencies carry version, approval, rights and the action if missing.
  • High-risk actions have alternative routes and an attempt limit.
  • Acceptance criteria are observable and bound to evidence.
  • A pack diff can compute downstream impact.

B.23 Exercises and deliverables#

Exercise one: compile one page of literary script into a minimum pack. Exercise two: deliberately introduce early knowledge, a swapped prop hand and a conflicting amount, then run a manual lint. Exercise three: change one key line and list the effects on sound, lip sync, subtitles, music and duration. Exercise four: design three narratively equivalent routes for one high-risk contact action.

Deliverables for this appendix: episode pack directory, manifest, episode contract, fact locks, state snapshot, beat contracts, scene cards, line registry, shot requirements, sound plan, asset dependencies, continuity events, risk and fallback, acceptance, approval, pack diff and lint report.