# Studio stage definitions (DRAFT) Draft for Aydan and Caelan, Nov 12 2026. Status: PROPOSED, with Aydan's Nov 12 decisions in section 6. **Where section 6 disagrees with anything above it, section 6 wins.** Sections 1 to 5 still say "stills"; read that as **keyframes** (the decided name). Sources (first pass): the Nov 11 call transcript, H3-RULES.md (with the Nov 12 additions), TEST-GAPS.md, REFINED-LEARNINGS-REPORT.md, VIDEO-PLAN-FOR-CAELAN.md, REMIX-SPEC.md, TEST-RUN-MAP.html (the proposed Studio screens), the Back Nine storyboard, the sheets, the keyframe folders, the storyboard style test and the T2 contact sheet. Sources (second pass, read-only): the full test history in `remix-test` (Nov 7 learnings, run log, tuning plan, lip-sync and setup research, look recipes, library, analysis packs, the reel playbook, brand bundle, brand prompt pack, review pages, all of `work/test_run_2`), the `factory-core` and `factory-infra` repos including their unmerged branches, and the shared drive admin docs (START-HERE, AGENTS, PRODUCTION-PROCESS, DECISIONS, HQ-STATUS, Runs). The Studio app's own code is not on this PC, so Studio is described from the drive status doc only. The "More to the Map" drive folder holds only a YouTube channel scaling guide. It has no stage or style notes, so Caelan's 2D stages here still come from the call and the T4 intake. --- ## 1. The short answer: sheets vs storyboard vs stills These are three different pictures that answer three different questions. A **sheet** answers "what does this thing look like?". It shows one character, one location or one prop, alone, in the final look, with no story in it. It is made once, locked, and reused in every shot that thing appears in. A **storyboard frame** answers "what happens in this shot and where is everything?". It is a cheap, colourless drawing of one shot's layout: who is where, the camera angle, the key action. It does not use the real characters or the real look, and it is never the finished picture. A **still** answers "what should this exact shot look like on screen?". It is one shot's layout from the storyboard, redrawn in the real look with the real characters from the sheets. It is handed to the video model as the picture to open on, and sometimes a second one to finish on. In short: sheets are the cast and sets, the storyboard is the plan, stills are the plan dressed in the cast and sets. ### One real example of each, from Back Nine | Thing | Example file | What it shows | |---|---|---| | Sheet (character) | `work/golf_sheets/locked/fulltimer_LOCKED.png` | The Full-Timer alone, PS2 look. No patio, no story. | | Sheet (location) | `work/golf_world/loc_patio.png` | The bar patio, empty. | | Sheet (prop) | `work/golf_world/prop_cart.png` | The golf cart on its own. | | Storyboard frame | Shot 1B, style S3, in `work/test_run_2/storyboard_styles/storyboard_styles_sheet.jpg` (top row, third panel) | Black ink and grey tone. A man in a visor slides a scorecard across a table. He is a generic man in a dark polo, not the real Full-Timer. That is correct: it only shows layout. | | Still (start) | `work/test_run_2/t2_keyframes/T2_G1A_start.png` | Shot 1A in the PS2 look. The real Mike and Jess sit at the patio table with beers. | | Still (end) | `work/test_run_2/t2_keyframes/T2_G1A_end.png` | Same shot, 10 seconds later. The real Full-Timer is now seated with them. | There is a fourth picture in the T2 test that does not fit any of the three: `T2_G1A_grey.png`. It is a grey 3D blockout with faceless dummies, fed straight to video with no still in between. It is closest to a storyboard frame used as a shortcut. See open question 4. ### Why the confusion happened - The folder `work/keyframes/v2` holds both sheets (`mascot_sheet.png`, `dex_sheet.png`) and stills (`shot1_start.png`). Two kinds of thing, one folder name. - H3-RULES.md uses "storyboard / keyframe image" for the S3 ink drawings. On the call, "keyframe" meant the in-style picture. - TEST-RUN-MAP.html calls the storyboard "the shot list" and says "we skip drawing panels". Caelan means drawn frames. - On the call Aydan asked if "storyboard feeds sheets". It does not. The storyboard and the sheets both feed the stills. --- ## 2. The stage table "Standard" means every production has it. "Some" means only some video types. | # | Stage | Standard? | In | Out | Human approves | Tool or model | |---|---|---|---|---|---|---| | 0 | Brand pack | Standing (once per brand, not per video) | Brand idea, look, tone | Look line, locked brand sheets, voice cast, locked models, rules | The whole pack | gpt-image-2.6 flare for the PS2 look, ElevenLabs for casting | | R | Reverse-engineer | Some (only when starting from a reference video) | A reference video | Breakdown, a preset (format, pacing, look), the source clip saved for motion copy | The preset, after one test video proves it | rea-video analysis module in the Factory | | 1 | Idea and research | Some (Caelan's narrated style, or autopilot later) | Brand pack, trends, presets | 2 to 3 concept options | Picks one | Text model, research feeds | | 2 | Brief | Standard | Chosen idea or a typed request | Concept, format, length, cast list, places, props, list of sheets needed | The brief | Text model | | 3 | Story arc | Some (story-led and narrated videos) | Brief | Hook, progression, payoff | The arc | Text model | | 4 | Script | Some (any video with narration or dialogue) | Brief, arc | Exact lines with speaker | The lines | Text model | | 5 | Timing | Standard | Brief, script, preset | Shot list: each shot's length, beats, which lines land where, how many storyboard frames each shot needs | The shot list | Text model, real audio lengths once voice exists | | 6 | Voice | Some (any video with speech) | Script, voice cast, shot lengths | One audio file per shot, padded with real silence to the shot length | Each line by ear | ElevenLabs | | 7 | Sheets | Standard (only new sheets, the rest come from the brand pack) | Brief's sheet list, look line | One locked sheet per new character, place, recurring prop | Each sheet | gpt-image-2.6 flare | | 8 | Storyboard | Standard, skipped for a copycat | Shot list | Colourless frame or frames per shot, style S3 ink + grey tone | Each frame, with mark-up | gpt-image-2 low, the cheapest usable | | 9 | Stills | Standard if T2 passes, skipped for a copycat | Approved storyboard frame, the shot's sheets | Start still per shot, end still where needed, in the real look, 9:16 | Each still, with mark-up | gpt-image-2.6 flare, tall size (see gap in 3.9) | | 10 | Video drafts | Standard | Sheets, stills, pinned audio, optional motion clip, prompt | 4 draft takes per shot at 480x864 | The prompt can be edited. The feed size choice for motion copy | MiniMax H3, reference-to-video only | | 11 | Review and pick | Standard | The 4 takes | One pick per shot with a reason, or a retake request | The pick | Studio review screen | | 12 | Final render | Standard | The pick, its seed, stills cut from it | One 768x1344 render per shot | Final matches the pick | MiniMax H3. Never an upscaler | | 13 | Edit | Standard | Finals, narration, music, captions, crop settings | Finished video | Rough cut, then final cut | Edit script (ffmpeg), one settings table per video | | 14 | Sign-off and delivery | Standard | Finished video | Files in B2 and the drive, run record | Named sign-off | Archive job | ### The order, and what can run side by side `Brief → (Story arc → Script) → Timing → Voice → Sheets + Storyboard → Stills → Drafts → Pick → Final → Edit → Sign-off` - Sheets and Storyboard do not depend on each other. The storyboard is colourless and generic, so it does not need the sheets. They can run at the same time. Both must be approved before Stills starts. - Timing and Voice touch each other twice. Timing sets a target length per shot. Voice then produces real audio. If a line runs long, Timing adjusts before the storyboard is drawn. ### Which video types use which stages | Video type | Uses | Skips | |---|---|---| | PS2 character sketch (Back Nine) | 2, 4, 5, 6, 7, 8, 9, 10 to 14 | 1 and 3 are optional | | Narrated 2D flat (Caelan, More to the Map) | All of 1 to 14. Narration is frozen first and sets every shot's length. Stills matter most here because the look is abstract | Nothing | | Music or beat-led, no speech (Same Day split screen) | 2, 5 (timed to the beat), 7, 8, 9, 10 to 14 | 3, 4, 6 | | Copycat of a reverse-engineered video | R, 2 (short), 5 (copied from the source cuts), 7, 10 with motion copy, 11 to 14. 6 only if it has speech | 1, 3, 8, 9. The source clip already fixes layout and motion | --- ## 3. Each stage Every stage has one sub-agent that owns it (one skill). The orchestrator sits above all of them. Humans talk to the orchestrator in plain English. Comments left in a stage go to the orchestrator, which decides which stage must redo work. ### 0. Brand pack - **In / out:** the brand idea goes in. Out comes the look line, the brand-level locked sheets, the voice cast (one voice per character, used on every clip), the locked image and video models, and the brand rules. - **Human:** approves each part once. Changes are rare. - **Agent on its own:** keeps versions, tells productions which sheets already exist. - **Loops back:** nothing. Everything below reads from it. ### R. Reverse-engineer (some) - **In / out:** a reference video goes in. Out comes a breakdown (cuts, pacing, captions, sound) and a preset. - **Human:** names and saves the preset. Per Caelan, a preset is only saved after one test video made with it comes out close to the source. - **Agent on its own:** runs the analysis, keeps the source clip as a motion reference, marks the production as "copycat" or "inspired by". - **Loops back:** a failed test video sends the preset back for changes. ### 1. Idea and research (some) - **In / out:** brand pack and trend feeds go in. 2 to 3 concepts come out. - **Human:** picks one, or types their own idea and skips this stage. - **Agent on its own:** research, matching ideas to saved presets. ### 2. Brief (standard) - **In / out:** the idea goes in. Out comes the concept, format, length, which characters and places are in it, and the list of sheets needed (which exist, which are new). - **Human:** approves, or comments and asks for a rewrite. - **Agent on its own:** checks the brand pack for existing sheets, flags anything H3 should not make (readable text, logos, real people). - **Loops back:** a missing sheet found later (stage 7 or 10) is added to the brief's list. ### 3. Story arc (some) - **In / out:** brief in. Hook, progression and payoff out. - **Human:** approves the arc. - **Agent on its own:** drafts options against the preset's pacing. ### 4. Script (some) - **In / out:** arc in. Exact lines out, each with its speaker, marked as on-screen dialogue or off-screen narration. - **Human:** approves the wording. - **Agent on its own:** checks each line fits the physical scene ("Have a seat" on an open green did not). - **Loops back:** a line that sounds wrong in Voice comes back here. ### 5. Timing (standard) - **In / out:** script and preset go in. Out comes the shot list: length of each shot (5 or 10 s so far), timed beats, where each line lands, which shots depend on another shot, and how many storyboard frames each shot needs. - **Human:** approves the shot list. For split screen, sets the crop box here so later stages frame for it. - **Agent on its own:** keeps every shot inside the video model's length limit, checks pacing against the preset, re-times when real voice lengths arrive. - **Loops back:** receives real audio lengths from Voice. Receives "this shot feels rushed" from Review or Edit. ### 6. Voice (some) - **In / out:** approved lines and the cast go in. Out comes one audio file per talking shot, the full length of the shot, with silence where nobody speaks. This is locked: H3 invents sounds in any gap that is not fed as silence. - **Human:** listens and approves each line. Off-screen narration is approved here too but goes to the Edit, not into H3. - **Agent on its own:** generates takes, pads with silence, checks word timing with a transcriber. - **Loops back:** sends real lengths to Timing. A bad read goes back to Script only if the wording is the problem. ### 7. Sheets (standard) - **In / out:** the brief's sheet list goes in. One locked sheet comes out per new character, place and recurring prop. One subject per sheet (two people on a sheet bleed together). One-off props get no sheet, the video model invents them. - **Human:** approves each sheet. Can circle part of the image and comment, for example "the cart has no golf bag on the back". Can add a sheet. - **Agent on its own:** writes the prompts, generates, regenerates from comments, versions and checksums each sheet. - **Loops back:** a character going off model in Review can send a sheet back for a fix. Changing a locked sheet makes every still and take that used it out of date. ### 8. Storyboard (standard, skipped for copycat) - **In / out:** the shot list goes in. Out comes one colourless frame per shot (more for busy shots), in style S3 ink + grey tone. The current image worker makes 1024x1024 squares, with the 9:16 video crop marked as a box. - **Human:** clicks into a frame, circles or draws on it, comments. Approves frame by frame. Success means the layout is right, not that the drawing is pretty. - **Agent on its own:** turns each shot's beats into a layout prompt, generates, redraws from mark-up, checks that no cutaway repeats another shot. - **Loops back:** a layout that cannot fit the shot length goes back to Timing. An approved frame is also what the prompt writer in stage 10 reads to describe positions. ### 9. Stills (standard if T2 passes, skipped for copycat) - **In / out:** the approved storyboard frame and the shot's sheets go in. Out comes a start still in the real look, and an end still when the shot must land somewhere exact. - **Human:** approves each still, with circle-and-comment mark-up. Sees the neighbouring shots' stills beside it to check flow. - **Agent on its own:** composes the still from frame plus sheets, checks characters are on model, regenerates from mark-up. - **Known gap:** the Factory image worker is hard-set to 1024x1024 at low quality. Stills for 9:16 video need a tall size and the locked look model. This must be fixed before the stage can run from Studio. - **Untested:** the T2 stills were not made from a storyboard frame. The storyboard to still step has never been run. - **Loops back:** wrong layout goes back to Storyboard. Wrong face or outfit goes back to Sheets. ### 10. Video drafts (standard) - **In / out:** up to 9 picture references (sheets, stills, continuity frame), the pinned audio from frame 0, an optional motion clip, and the prompt go in. 4 seeds per shot come out at 480x864. - **Human:** can read and edit the prompt. For motion-copy shots, chooses big or small reference feed. The UI shows the time warning first (about 39 vs 23 min per 5 s clip). - **Agent on its own:** builds the prompt as timed physical beats, passes only the references the shot needs, queues jobs, keeps the GPU busy, raises an alert if a card sits idle for 2 minutes. Shots in one scene run in order using the last frame of the picked take, unless a still already fixes the layout. It never picks the feed size silently. - **Loops back:** a prop that keeps coming out wrong asks Sheets for a new sheet. A shot that needs more time asks Timing. ### 11. Review and pick (standard) - **In / out:** 4 takes go in. One pick and a one-line reason come out, or a retake request. - **Human:** watches all takes side by side in story order, picks, writes the reason, can ask for 4 more or 1 more. For split screen, the page darkens what the crop will cut off. - **Agent on its own:** tries free fixes first (mirror flip, trim), turns each complaint into a prompt fix, retakes only the failed shot, builds a rough cut once every shot has a pick. - **Loops back:** this is the main source of feedback. The orchestrator routes each comment to Prompt (10), Stills (9), Storyboard (8), Sheets (7) or Timing (5). ### 12. Final render (standard) - **In / out:** the pick goes in with the same prompt, same seed and stills cut from the picked take. One 768x1344 render comes out. - **Human:** approves that the final matches the pick. Draft and final are shown side by side. - **Agent on its own:** cuts the stills from the pick, renders, checks the first second for a flash frame and trims it. - **Loops back:** a final that drifts gets re-locked with a third still, or goes back to Review. ### 13. Edit (standard) - **In / out:** finals, narration, music, captions and crop settings go in. The finished video comes out. - **Human:** reviews the rough cut and the final cut. Changes are a one-line settings edit and a 1 to 2 minute rerun. - **Agent on its own:** runs the edit script, ducks music under voices, sets loudness, lands cuts on the beat. - **Loops back:** a change to one scene after the full edit exists goes to the orchestrator. It sends the work back to the right stage, reruns only what changed, and re-cuts. ### 14. Sign-off and delivery (standard) - **In / out:** the finished video goes in. Out go the files to storage, plus the run record. - **Human:** a named person signs off. Publishing is a separate step. - **Agent on its own:** checksums, archives, confirms the GPU box is off. ### How feedback travels (the orchestrator's job) | Comment | Goes back to | |---|---| | "Wrong face, wrong outfit, missing bag on the cart" | Sheets (7) | | "He should be on the left, camera too wide" | Storyboard (8), then Stills (9) | | "Layout is right but the look is off" | Stills (9) | | "Hand goes through the cup, cart has no driver" | Prompt in Drafts (10) | | "Shot feels rushed, line is cut off" | Timing (5), and Voice (6) if the audio changes | | "The joke does not land" | Script (4) | | "Caption is wrong, music too loud" | Edit (13) only | Anything changed upstream marks the work below it as out of date. The orchestrator says what must be redone and what it will cost before it starts. --- ## 4. Review of the proposed Studio screens (TEST-RUN-MAP.html) The map shows six screens: Style pack, Script + voice, Shot board, Run, Review, Finals + sign-off. Compared with what was agreed on the call: - **No Brief screen.** The call puts approve, comment and rewrite on the brief first. - **No Sheets screen for the production.** Sheets only appear inside "Style pack". The call wants per-video sheets with regenerate-from-comment and "add a sheet". - **No Timing step.** The process strip goes Script, Voice, Style pack, Storyboard. Caelan asked for timing before the storyboard. - **Storyboard is text only.** The Shot board shows length, refs and a "layout" tag. There is no drawn frame to approve. - **No Stills screen.** "Keyframes" is one box in the strip with no screen. - **No mark-up anywhere.** Circle, draw and comment on an image is not shown. - **No motion-copy feed choice** with the time warning (added to the rules on Nov 12). - **No crop box** on the review page for split screen. - **No Edit screen.** Edit is folded into "Finals + sign-off". - **No orchestrator chat or activity log.** - **No way to show a skipped stage** for a copycat or a no-voice video. - **Good as is:** the Review screen (4 seeds side by side, pick plus reason) and the Run screen (cards, spend against cap). --- ## 5. What already exists vs what each stage needs built Three places hold existing work: - **By hand, on Aydan's PC** (`remix-test`): scripts and pages a Claude session drove. They work, but nothing in the Factory runs them. - **In the Factory** (`factory-core`, server set up by `factory-infra`): the queue, workers, project backend, registry. Much of it is on unmerged branches, and most workers are installed but switched off. - **In Studio:** deployed with private creation, review, library and a read-only Brands view (per HQ-STATUS, Nov 10). A major redesign is deferred under decision D-003 until Caelan has the evidence. ### 5.1 Stage by stage | Stage | Exists by hand | Exists in the Factory | Needs built | |---|---|---|---| | 0 Brand pack | `work/brand_bundle/back-nine-holdings/` (manifest with brand, cast, world, storyboard, shots, takes) and `work/brand_prompt_pack/export/` (BRAND.md, prompts, refs) | Character and brand library on a branch (`asset_registry/LIBRARY.md`). It stores "character" and "style" entries that point at registered images. Studio has a read-only Brands view | Library kinds for locations and props. Voice cast per character. Locked models and the look line as brand fields. A way to load the existing bundle in | | R Reverse-engineer | `work/ref_videos/PLAYBOOK.md`, LIBRARY.md (6 formats, 4 looks), LOOK-RECIPES.md, ANALYSIS-PACKS.md | Analysis worker ("breakdown"), installed but inactive, key missing at last check. Makes scene cuts, 3 frames per scene, transcript, notes, then a draft project | GAP-LIST.md says it covers about a third of what rea-video gives. Preset storage (format + look). The "test the preset before saving it" step. A copycat flag that skips stages | | 1 Idea and research | Nothing | Nothing. The chief role is agreed (D-001) but not deployed | The whole stage | | 2 Brief | Nothing dedicated. The playbook has one line per episode | Project backend: a project has a title, brand, brief, script and up to 100 shots, with unchangeable revisions and a human approval record | A brief agent. A cast and sheet list on the project. Comments that trigger a rewrite | | 3 Story arc | Playbook section 4 (beat table) | Nothing | The whole stage | | 4 Script | Playbook section 6 (lines with times) | A script field on the project and on each shot | Speaker per line. A flag for on-screen dialogue vs off-screen narration | | 5 Timing | The storyboard page's shot lengths and beats | Shot records hold a length. The pipeline driver (built, disabled) supports stages that depend on other stages | A timing agent. Shot-to-shot links ("uses 1A's pick"). The crop box. Re-timing from real audio | | 6 Voice | ElevenLabs lines and padded tracks in `work/test_run_2/audio/`, built by `make_test_queue.py` | Voice worker on a branch, inactive. ElevenLabs with timestamps, MP3 out. One voice per project, with per-shot overrides | Cast per character. Padding with silence to the shot length. Handing the audio to the video stage. Today the Factory treats voice as a step after video | | 7 Sheets | Locked sheets in `work/golf_sheets/locked/` and `work/golf_world/`, prompts in the bundle manifest | Image worker, live on the server as a queue consumer. Generate and edit-with-references both work. Registry stores the files | Sheet as its own kind of asset with a locked state. The locked look model (see 5.2). Regenerate from a comment | | 8 Storyboard | `storyboard_styles/make_job.py` (6-style test), `storyboard_pick/make.py` (contact sheet) | Image worker at 1024 square, low quality. That already fits storyboards | A storyboard agent. Frames tied to shots. The 9:16 crop overlay. Mark-up | | 9 Stills | `work/keyframes/v1` and `v2` (review pages, prompt files), `work/test_run_2/t2_keyframes/` | Image worker edit mode takes reference images, which is what a still needs | Tall output and full quality (see 5.2). Start and end stills as a pair on a shot. Mark-up | | 10 Video drafts | The H3 runner and one shared queue file (`h3_queue.py`, `make_test_queue.py`), prompt files, a per-take record with 36 fields (prompt, seed, refs, audio, timings, checksums) | Video worker on a branch, not live. It only does image-to-video from one first frame, the mode the tests rejected. Three H3 workflow files exist (i2v, r2v, t2v) | Reference-to-video in the worker. Up to 9 ordered references with roles. Pinned audio. Reference video for motion copy with the feed-size choice. 4 seeds per shot. GPU rent, idle alert and shut-down from the server | | 11 Review and pick | Review pages (`run1/review_page.html`, `golf_run/clips/review_page.html`, `test_run_2/page/`), pick files in `test_run_2/lock/` | Studio has a review area. The backend has no idea of several takes per shot | Takes, a pick and a reason per shot. Retake linked to the rejected take. Side by side playback. Crop darkening | | 12 Final render | `lock/jobs.txt` and the `SD_*_F.txt` prompts (same seed, stills from the pick, "recreate that take") | Nothing | A final tied to its picked draft. Stills cut from the pick. Draft and final side by side | | 13 Edit | `golf_run/edit/build_edit.py` (captions, transitions, music, loudness, one settings block per clip), Same Day edits in `test_run_2/edit/` | Assembly worker on a branch, inactive. It joins shots, lays voice over, checks size, length and loudness. No music, captions or transitions | Music, captions, graphics, transitions, split screen, beat-locked cuts. Or adopt the edit script as the worker | | 14 Sign-off and delivery | Run records and checksum manifests on the drive | Final-output approval on a branch (a named human approves one exact file). Registry and B2 are live | Wiring to Studio. Moving run media from Aydan's PC into B2 | | Orchestrator and stage agents | Claude sessions, by hand | Queue is live for results and images. The pipeline driver is built and disabled. Chief role agreed, not deployed | One skill per stage. Routing comments back up the chain. Marking downstream work out of date. Activity log | | Mark-up (circle, draw, comment) | Nothing | Nothing | The whole feature, on sheets, storyboard frames and stills | ### 5.2 Places where the Factory, as built, disagrees with the tested method These are facts about the code and docs, not decisions. - **Stage words.** The queue's board vocabulary (`factory_queue/stages.json`) is Draft, Approved, Image, Video, Voice, Assembly, Tech check, Review, Final approved. It has one "Image" stage for "keyframe or still". It has no sheets, storyboard, timing, takes or final render. It puts Voice after Video. - **Video mode.** The Factory video worker supports H3 image-to-video with one first frame. The tests locked reference-to-video and rejected image-to-video. - **Voice.** The assembly worker replaces a shot's own sound with the voiceover file. The tested method bakes the voice into the clip so the lips match. - **Final size.** The assembly worker scales every clip to 1080x1920. The tested finals are 768x1344 and the rule says no upscaling. - **Image size.** The image worker's API route is fixed at 1024x1024, low quality. The Nov 7 stills were made at 1152x2048. - **Image model.** Decision D-004 says API first. The drive process doc says the "Flare" name has no verified provider model ID and must not be configured from prose. - **Older test docs that the later tests overturned:** LOOK-RECIPES.md still says "i2v with start frame and end frame" and "upscale to 1080x1920". H3-TUNING-PLAN.md plans i2v from keyframes. The keyframes v1 and v2 pages label shots "i2v, start + end frame". The brand bundle says "no start frames unless a shot keeps failing". - **Storyboard test outfit.** The style test prompt dressed the Full-Timer in a navy polo. His locked sheet is a teal and coral polo. It did not matter for a style test, but it shows the storyboard agent needs a rule on how much of the real outfit to draw. --- ## 6. Decisions (Aydan, Nov 12) and the questions left for Caelan The 38 open questions from the first version are answered below. The pre-decision copy is `STAGE-DEFINITIONS-DRAFT.pre-decisions-2026-11-12.md`. ### Names - The in-style frame is a **keyframe**. The word is never used for storyboard frames or sheets. - "Storyboard" means the loose drawn frames. **Timing owns the shot list**: each shot's number, length and what happens in it. Later stages read it and never change it. ### Order - Brief, Script, Timing, Voice, then Sheets and Storyboard side by side, then Keyframes, Drafts, Pick, Final, Edit, Sign-off. - Timing and Voice are two stages: Timing, then Voice, then a quick timing recheck against the real audio. - Shot length is the longer of the spoken line plus a short pad, or the time the action needs. Timing records which one set it. - Voice comes before the storyboard, because the real audio sets shot lengths. ### Keyframes - Keyframes are a standard stage. The old H3-RULES line "don't make keyframes before drafting" is replaced. - Start keyframe only, never an end one. An end frame makes H3 force weird moves to reach it (T8). - The first shot gets a keyframe. A shot that continues the same camera starts from the last frame of the previous picked take, with no new keyframe. A cut to a new angle or place gets its own keyframe, made from the storyboard frame, the sheets and the previous pick's last frame. (Last frame as the next start is untested.) - A loose S3 storyboard frame may go straight to video as a reference (T8 V2L). V2L vs a keyframe made from it (V3L) as the standard is still open. - Keyframes are made at 768x1344. The image worker change is a separate brief to Caelan. ### Storyboard - One frame per shot by default. Timing can call for more on a busy shot. - S3 loose ink everywhere for now. Generic figures and block props, no outfits: detailed frames get copied exactly, mistakes included (T8). ### Copycat and presets - A copycat skips idea, story arc, storyboard and keyframes. The real reference video fixes layout and motion; one style picture plus the sheets lock the look (T3). Script and Voice run only when the copy has speech. - The human flags a copycat in the brief; the reverse-engineer agent can suggest it. - A preset is saved when a human approves its one test video. ### Approvals and mark-up - The orchestrator decides what kind of fix a comment needs and asks before any spend. - Every gate is human for now. Either Aydan or Caelan can approve. - A prop gets its own sheet once it appears in 2 or more shots. ### Voice, crop, storage - Voice uses ElevenLabs directly. No Sume. - Two speakers in one shot is fine. It takes a couple of draft runs to get right (Aydan has done it). No split rule. - Turbo drafts are not the default until a turbo pick locks the same at full size. - The split-screen crop box is set on the real picked video, in Pick or Edit. - "Did you just come from work?" is Mike's line, as in the test. - Raw media in B2, finished files on the drive, briefs and storyboards in the project backend. - Older docs that describe rejected methods are marked replaced. - Caelan tests the 2D narrated path himself. ### Questions left for Caelan (Factory code) 1. What is the exact provider model ID for "gpt-image-2.6 flare"? 2. Do the new stage names replace the queue's stage list, or sit inside its "Image" stage as sub-steps? 3. Does the video worker get reference-to-video with pinned audio and motion copy, or does Aydan's hand runner become the worker? 4. Assembly scales to 1080x1920. Is that an acceptable delivery resize? (Upscaling inside generation is banned.) 5. Edit stage: extend the assembly worker, or adopt the edit script as the worker? 6. Locations and props: new library kinds, or project assets? 7. Is this package plus the test runs the evidence D-003 asks for, and which stage screen gets built first?