| name | script-write |
| description | Write and time the voiceover script in every delivery language, sizing word count to the target runtime before any shot exists. Trigger - /script-write, after concept-brief and before keyframe-generate. |
Script Write
The script sets the runtime, the runtime sets the shot count, and the shot count sets the budget. Write it before anything is generated.
Size it by words, not by feel
| Language | Narration pace | 60s | 120s |
|---|
| Arabic | ~1.5 words/sec | ~90 words | ~180 words |
| English | ~2.2 words/sec | ~130 words | ~280 words |
These are starting estimates. The only real measurement is ffprobe on a rendered take — see voice-casting.
Structure
Write to an act structure with a stated intent per act, then break each act into shots. Every shot must earn its place in the argument — if you cannot say what a shot is for, cut it.
A reliable arc for a product or institutional film:
- The problem, felt rather than described — no product, no brand
- The turn — the product arrives
- What it does — capability, one beat each
- Who else it serves — widen beyond the primary audience
- The payoff — the human outcome, then the call to action
Multi-language is not translation
Write each language natively. A literal translation inherits the source language's rhythm and will not fit the picture. Match meaning and beat count, not word order.
Expect a 20%+ runtime difference between languages on the same content. Plan for it: either write the shorter language longer, or let the end card absorb the difference.
Claims discipline
Every claim must be true of the product as it actually ships. Narrow anything the client cannot defend — "supports lecturers in the teaching process" survives review where "designs their exams" does not. Flag claims that will need marketing or legal sign-off.
Lock it
Record the locked script in 01_Concept/script/ and set gates.script_locked. Changes after this point cost picture time.