name: reel-edit-style description: Turn a script or voiceover into a shot-by-shot edit plan and a build (Remotion or After Effects) for a vertical reel in a measured editing style. Two presets - Flash Tutorial (from @dope.motions: stepped colour flash transitions, pose flashes, one fixed caption line, UI micro-slides) and Editorial Argument (from @ashokreddyai: mono pill captions, script-and-roman serif word stacks, poster flurries, cut-out hook). Every preset carries frame counts, easing, hex colours, font sizes and SFX placement. Use it whenever the user wants to edit, cut, plan, storyboard or build a reel, short or TikTok, add captions, transitions, motion graphics or SFX in one of these styles, mentions flash transitions, pose flashes, pill captions or serif word stacks, or wants to break down another reference reel to add a new style, even if they never say "skill". Not for writing the script (reel-script, untold-story-script).
Reel edit style
You turn a voiceover into an edit that matches a measured style, down to frame counts. Each preset came from stepping through a real reel frame by frame, so follow its numbers instead of your instincts about what "looks good". Several of the findings go against instinct: the Editorial Argument's "kinetic" type has no animation at all, and the Flash Tutorial's flash never goes fully white.
Choosing a preset
| Flash Tutorial | Editorial Argument | |
|---|---|---|
| Use for | How-to, VFX or tool demo with a result to show | Opinion or commentary with visual evidence |
| fps | 30 | 24 |
| Shots in about 75 s | 38 (median 1.60 s) | 59 (median 0.58 s) |
| Text | One fixed caption line, never changes | Mono pill or serif stack, never both |
| Main motion | Flash transitions, micro-slides, slow zooms | Almost none. Energy comes from timing |
| Transitions | 11 stepped colour flashes, otherwise hard cuts | Hard cuts, at most two 7-frame flashes |
| Footage needed | Talking head, locked-off composite shots, screen recordings | Talking head, optional cut-out, many posters or stills, AI clips |
| Spec | references/preset-flash-tutorial.md | references/preset-editorial-argument.md |
If the user doesn't name one, recommend one from this table and say why in a line. Read only the chosen preset. If breakdown-*.md files are present, read them when you need something the preset leaves out, like exact coordinates or the full shot list as a model. They aren't in the public repo, because they quote the reference creators' speech.
Workflow
1. Gather inputs
- VO or script. The edit is driven by word timing, so get recorded audio if you can. A script alone gives a draft plan with estimated timing (197 WPM for Flash Tutorial, 224 for Editorial Argument). Mark that plan as provisional.
- Footage inventory. List what exists against what the preset needs. Flash Tutorial needs a real payoff shot for the first 2 s. Editorial Argument needs a lot of stills: the 74 s reference used 36 full-frame posters and 11 more in collages.
- Build target. Remotion or After Effects.
2. Get word timing
python3 <skill-dir>/scripts/transcribe_words.py <audio> <outdir>
This needs mlx-whisper (Apple Silicon) and writes words.json. The other scripts need numpy and pillow, and ffmpeg on PATH; a virtual environment with all three is easiest. Whisper mishears names and terms, and can invent text at the very end of a file, so read the transcript against the script and fix it before planning.
3. Write the edit plan
Save edit-plan.md with one row per shot:
Timestamp | Duration | What's on screen | Text/Caption | Motion | Transition | Sound
Work in this order, because each step depends on the last:
- Sections: map the script onto the preset's section map.
- Text: chunk every word into captions, using the preset's rules. Time each to come on about 3 frames after its first word starts.
- Pictures: assign a shot to every section, using the preset's shot lengths and layouts.
- Motion: place flashes, zooms and recipes. Check them against word gaps.
- Sound: place SFX from the preset's table.
Show the user the plan before building. Changing a plan is cheap. Changing a render isn't.
4. Build
- Copy the preset's constants exactly. Frame numbers there are relative to the event, so re-time them to the new VO.
- Keep stepped tables stepped. Don't smooth a table of per-frame values into a curve, because the steps are part of the look.
- Use the fps in the preset. Its frame counts only hold at that rate.
- Keep captions and pills out of any zoom or blur layer.
Remotion: one <Sequence> per shot, driven from a shot list. Text is plain elements inside <Sequence from={onFrame}> with no interpolate unless the preset says so. For motion blur use @remotion/motion-blur. Per-frame tables are arrays indexed by frame - start.
After Effects: text layers with no animators unless the preset says so. Set flash tables as hold keyframes, not eased ones.
5. Check it against the reference
Compare the render with the preset's target table:
python3 <skill-dir>/scripts/video_metrics.py <render.mp4> <outdir>
python3 <skill-dir>/scripts/sheet.py <render.mp4> <outdir>/first5s --range 0 4.75 0.25 --cols 7 --rows 3 --thumb 220
Look at the sheets next to the descriptions in the preset. The detector over-counts: flash frames and fast motion show up as cuts, so read cuts.txt by eye. Report what you checked, and say so if you couldn't compare something.
What stays honest
- Each preset comes from one reel. Treat its numbers as that reel's choices, not proof of the creator's whole style, and say so if the user is relying on them heavily.
- "(estimate)" and "(not sure)" labels carry over. Keep them in the plan when a decision rests on one.
- Sound identities weren't heard. Placement and timing were measured, but words like "boom" and "click" describe waveforms. Ask the user to judge SFX choices by ear.
- Fonts are close matches. Flash Tutorial's caption font and Editorial Argument's roman serif weren't identified. Show the user a rendered sample before committing, and check font licences for commercial use.
Use the technique, not the content
Rebuild the style with the user's own footage, images and sound. Don't reuse the reference creators' clips, posters, Firefly frames or other assets. The Editorial Argument's opening uses another creator's clip, so check that the user has a defensible reason and rights when they reuse that device.
Adding a new style
To break down another reel, read references/analyze-reference.md, then add a preset-<name>.md and a row to the table above.
Files
references/preset-flash-tutorial.md,references/preset-editorial-argument.md: the specs to build from.references/breakdown-dope-motions.md,references/breakdown-ashokreddyai.md(local copies only, not published): full evidence, shot-by-shot tables, every transition, open questions. Paths they mention (likeashok/analysis/) were working files and aren't included.references/analyze-reference.md: how to break down a new reel.scripts/:transcribe_words.py,video_metrics.py,audio_events.py,sheet.py,probe_frame.py.