| 1 | # Shot Sequence Patterns |
| 2 | |
| 3 | This reference distills the useful structure from a long single-subject seafaring sequence without copying its repetition. |
| 4 | |
| 5 | ## What The Example Did Well |
| 6 | |
| 7 | - It locked one focal subject across many shots with a stable identity anchor. |
| 8 | - It advanced the story in small readable steps instead of giant jumps. |
| 9 | - It staged dialogue after a readable visual setup within the same shot. |
| 10 | - It used simple camera verbs that are easy for a shot-writing model to preserve. |
| 11 | - It kept the larger trajectory clear: |
| 12 | - horizon |
| 13 | - discovery |
| 14 | - approach |
| 15 | - landing |
| 16 | - move inland |
| 17 | |
| 18 | ## What Not To Copy Literally |
| 19 | |
| 20 | - Repeating bloated identity paragraphs wastes tokens. Every shot caption still needs compact but complete character anchors in every shot that shows people; use `shot-prompt-writer.md` for that stricter caption format. |
| 21 | - Repeating the same BGM and SFX boilerplate makes the sequence feel synthetic. |
| 22 | - Contradictory sound descriptions break immersion. |
| 23 | - Swapping style labels every shot without a real visual change creates noise, not control. |
| 24 | |
| 25 | ## Reusable Rules |
| 26 | |
| 27 | ### 1. Lock The Anchors |
| 28 | |
| 29 | Across a shot run, keep these stable unless the story explicitly changes them: |
| 30 | |
| 31 | - subject ID |
| 32 | - appearance and wardrobe |
| 33 | - voice identity |
| 34 | - core environment |
| 35 | - immediate objective |
| 36 | |
| 37 | ### 2. Move One Beat At A Time |
| 38 | |
| 39 | Every shot must be a compact but dramatically complete unit, not a thin literal |
| 40 | description. Give it a concrete situation, a motivated action, and at least one |
| 41 | development or payoff. Each shot should add one of these: |
| 42 | |
| 43 | - new information |
| 44 | - new intention |
| 45 | - new movement |
| 46 | - new obstacle |
| 47 | - new emotional turn |
| 48 | |
| 49 | If a shot adds none of them, cut it or merge it. |
| 50 | |
| 51 | Do not settle for a bare beat such as "looks at the door", "walks closer", or |
| 52 | "says one obvious sentence". Add specific performance, environmental, causal, |
| 53 | or emotional detail that makes the moment feel complete while preserving the |
| 54 | confirmed plot and keeping the action achievable within the shot duration. |
| 55 | |
| 56 | ### 3. Keep Adjacent Shots Distinct But Continuous |
| 57 | |
| 58 | Between neighboring shots, vary one or two of: |
| 59 | |
| 60 | - framing size |
| 61 | - camera motion |
| 62 | - body action |
| 63 | - information revealed |
| 64 | - speech state |
| 65 | |
| 66 | Do not change all five at once without a hard narrative reason. |
| 67 | |
| 68 | ### 4. Use Dialogue As A Turning Point |
| 69 | |
| 70 | Dialogue should appear when it does one of these: |
| 71 | |
| 72 | - confirms a discovery |
| 73 | - redirects the group |
| 74 | - reveals attitude |
| 75 | - commits to the next action |
| 76 | |
| 77 | Avoid filler lines that merely narrate the visible image. |
| 78 | |
| 79 | ### 5. Lock One Full-Content Language For The Whole Story |
| 80 | |
| 81 | Choose `caption_language` and the aligned `dialogue_language` exactly once while |
| 82 | writing `story_profile`. Their values must be `Simplified Chinese` plus |
| 83 | `Mandarin Chinese`, or `English` plus `English`. |
| 84 | |
| 85 | Use this priority: |
| 86 | |
| 87 | 1. An explicit user choice of language. |
| 88 | 2. Otherwise, infer it from the user's own conversational language: primarily |
| 89 | Chinese means the Chinese pair above; primarily English means the English pair. |
| 90 | 3. If the user's conversation mixes Chinese and English without an explicit |
| 91 | choice, use the primary language of the latest substantive user instruction. |
| 92 | |
| 93 | Consider only the user's own conversational messages when applying this |
| 94 | fallback. Ignore quoted story dialogue, pasted captions, character names, |
| 95 | ethnicity, nationality, appearance, and location. Also ignore the English |
| 96 | language of PE references, system prompts, tool instructions, or previously |
| 97 | generated content. Once chosen, the language is locked across the screenplay, |
| 98 | story profile, every speaker, and every shot; later wording cannot switch it. |
| 99 | |
| 100 | Unless the user explicitly requests another language, all natural-language |
| 101 | content follows the user's conversational language: displayed `story_md`, |
| 102 | `story_profile.summary`, every beat summary and dialogue intent, character and |
| 103 | scene anchors, semantic mapping prose, complete shot-caption prose, dialogue, |
| 104 | and user-facing Agent replies. Never mix Chinese and English natural-language |
| 105 | prose in one artifact. Technical tokens such as `ID_A`, `shot1:`, and `OCR` |
| 106 | may remain unchanged. |
| 107 | |
| 108 | Plan speech at story level instead of letting each shot guess. Unless the user |
| 109 | explicitly requests a silent, wordless, no-dialogue, or person-free outer shot, |
| 110 | every beat must produce spoken dialogue and have a non-empty |
| 111 | `"dialogue_intent"` describing the new information, decision, redirection, or |
| 112 | emotional turn the line contributes. Do not invent silent establishment, |
| 113 | transition, or reaction beats. Do not require or rely on a `speaks` field: it |
| 114 | may be absent after story-profile normalization, but the default-speech rule |
| 115 | still applies. |
| 116 | |
| 117 | In every finished outer-shot caption, each character who actually speaks must |
| 118 | have exactly one complete stable voice anchor beginning `ID_X's voice is ` and |
| 119 | describing register, timbre, resonance, accent, and articulation. A changing |
| 120 | delivery phrase before `ID_X says` must also match that shot's dialogue, |
| 121 | emotion, and scene with heightened, unmistakably dramatic intensity; it does |
| 122 | not replace the stable anchor. Use the full emotional range rather than making |
| 123 | every line calm or turning every line into a shout: fear may be tightly |
| 124 | panicked, grief close to breaking, joy explosively radiant, anger cutting and |
| 125 | volatile, suspicion controlled but dangerous, and tenderness fiercely |
| 126 | vulnerable. A character who does not speak must have no voice anchor and no |
| 127 | voice-quality description anywhere. |
| 128 | |
| 129 | The complete caption for one outer shot should target 1500 to 1800 Unicode |
| 130 | characters and must contain fewer than 2000 characters total (maximum 1999) |
| 131 | across all internal segments combined. Count every letter or Han character, |
| 132 | space, punctuation mark, quote, `This video has...` prefix, `shotN:` label, and |
| 133 | required declaration. Roughly 220 to 280 English words is only a soft planning |
| 134 | guide; the character budget always wins. Compose concisely from the start. If a |
| 135 | draft is too long, rewrite and compress secondary environment, lighting, |
| 136 | composition, and camera modifiers before output while preserving required |
| 137 | anchors, voice and delivery, dialogue, vocal/OCR declarations, and segment |
| 138 | syntax. Never truncate a finished caption. |
| 139 | |
| 140 | Never write, imply, or preserve a sigh, audible breathing or breath sound, |
| 141 | inhale, exhale, intake of breath, panting, gasping, sniff, snort, nasal hum, |
| 142 | nasal grunt, breathy or airy voice quality, microphone-caught respiration, or |
| 143 | nasal voice quality, even when the user explicitly requests one. Replace it |
| 144 | with facial expression, gaze, posture, action, or permitted spoken dialogue. |
| 145 | This prohibition applies while planning the story and while writing every shot |
| 146 | caption. |
| 147 | |
| 148 | ### 6. Build In Mini-Arcs |
| 149 | |
| 150 | For long sequences, every 4-6 shots should create a local progression: |
| 151 | |
| 152 | - setup -> notice -> react -> move |
| 153 | - scan -> reveal -> decide -> act |
| 154 | - approach -> inspect -> conclude -> commit |
| 155 | |
| 156 | This prevents the middle of the sequence from flattening out. |
| 157 | |
| 158 | ## Recommended Story Profile Shape |
| 159 | |
| 160 | When writing `story_profile`, keep it compact and tool-friendly. The English |
| 161 | sample below illustrates structure only; translate every natural-language value |
| 162 | to the selected Chinese language when the user is communicating in Chinese: |
| 163 | |
| 164 | ```json |
| 165 | { |
| 166 | "summary": "Short story summary", |
| 167 | "dialogue_language": "English", |
| 168 | "beats": [ |
| 169 | { |
| 170 | "shot_id": 1, |
| 171 | "summary": "The hero reaches the rain-soaked deck and discovers the navigation lights are dead.", |
| 172 | "dialogue_intent": "Reports the failed navigation lights and asks the crew to check the backup circuit." |
| 173 | }, |
| 174 | { |
| 175 | "shot_id": 2, |
| 176 | "summary": "The hero recognizes a signal on the horizon and commits to following it.", |
| 177 | "dialogue_intent": "Names the signal and commits the crew to the approach." |
| 178 | }, |
| 179 | { |
| 180 | "shot_id": 3, |
| 181 | "summary": "The hero reaches the transmitter and realizes the signal carries a familiar voice.", |
| 182 | "dialogue_intent": "Identifies the voice and reveals why the signal matters personally." |
| 183 | } |
| 184 | ], |
| 185 | "anchors": { |
| 186 | "characters": ["Stable identity facts"], |
| 187 | "environment": ["Stable world facts"], |
| 188 | "tone": ["Stable tone facts"] |
| 189 | }, |
| 190 | "shot_to_content": { |
| 191 | "shot_001": "establishes the hero on deck", |
| 192 | "shot_002": "hero notices the horizon", |
| 193 | "shot_003": "hero recognizes the transmitted voice" |
| 194 | }, |
| 195 | "content_to_shots": { |
| 196 | "signal discovery": ["shot_002", "shot_003"] |
| 197 | } |
| 198 | } |
| 199 | ``` |
| 200 | |
| 201 | Keep the mappings semantic. They are for lookup, not for prose. |
| 202 |