Rough cut with Edit Twin
Use the edit-twin MCP tools. The user's original project is never modified: the result is imported as a NEW project next to it. Times are seconds on the current timeline. Clip refs like "4" (storyline clip) and "4.0" (connected item) shift after every edit, so re-read get_timeline before using refs.
1. Get the project and the user's style
get_style: saved defaults (pause settings, audio chain, default look, notes learned from their edits). Follow the notes.fcp_export_project. If it warns the project is empty, ask the user to select the right project in Final Cut's Browser (or click in its timeline) and retry. If export fails, ask them to use File > Export XML… and give you the path, or usefind_fcpxml_files+open_timeline.get_timeline, then decide the format fromsummary.format(width/height) and duration, unless the user said which:- Reel / short: vertical (height > width), or under ~3 minutes.
- Vlog / landscape: horizontal, or longer pieces with B-roll, scenery, music or ambient moments. Tell the user which format you picked in one line.
2. Analyse (change nothing yet)
transcribe, withvocabularyset to names and jargon likely in the video.find_repeats: stutters, retakes and um/uh fillers. For each retake, compare the takes and choose. Keep the one with clearer delivery, no stumbles and a clean ending; if they're equal, keep the later take. When removing a retake, also drop a leftover connector ("and", "so") at the start of the kept take if it no longer reads naturally.- Pauses, depending on format:
- Reel:
find_silenceswith the saved defaults. - Vlog:
find_silenceswith looser overrides (min_silence0.6,keep_after_speech0.15,keep_before_speech0.15), and only propose pauses inside talking sections (between transcript words). Never cut silent stretches that are B-roll, scenery, music or reaction shots; useget_timelineandpreview_framewhen unsure.
- Reel:
- Stop and show a short plan: retakes (quote both takes, say which you'd keep and why), how many fillers, how many pauses and how many seconds they add up to, and the expected new length. Wait for the user's OK or changes.
3. Cut (after approval)
cut_rangesfor the approved retakes and fillers.- Reels:
remove_silenceswith the saved defaults. Vlogs:cut_rangeswith only the approved pause ranges. - Reels: check that the first ~3 seconds work as a hook, i.e. the first words state the topic or a surprising claim. If a stronger hook line comes later, suggest it, but don't move it without asking. Flag it if the reel runs over 90 seconds.
4. Look and sound
- If there's an adjustment clip with effects, run
fit_to_timeline. Otherwise, if the style has a default look, runapply_look. - If the style has an audio chain, run
apply_audio_style. If not, runmeasure_loudnessand suggest a gain (social video usually sits around -14 LUFS), or offernormalize_audio. - Leave music and connected audio alone unless asked.
5. Check and send
validate_timeline, thenrender_preview. Tell the user where the preview is and the new length.send_to_final_cutwith the project name " (rough cut)".- Summarise in a few lines: what was cut (retakes, fillers, pauses, seconds saved) and the look and sound applied.
- Finish by suggesting that, if they polish the edit by hand, they ask Claude to
learn_from_edit(withsave=trueandlook_name) so the next rough cut matches their style. For the first vlog after reels, run it withsave=falseand record the suggested vlog pause settings withupdate_styleadd_note, so the reel defaults aren't overwritten.
Rules
- Never change anything before the user approves the plan in step 2.4.
- Never edit their original project; always send a new one.
- Media on an external drive must be plugged in.
- If a tool fails because of macOS permissions, point them to System Settings > Privacy & Security (Accessibility, and Automation for the app running Claude Code).