/edit-recording — long-form edit
Target: $ARGUMENTS (a Resolve project name, a recording file, or empty = the project open in Resolve).
Before anything: read the profile (video-toolkit §0) and follow editing-rules — the recordings folder is
read-only, no audio/picture processing unless asked, propose before applying. Check toolbox_status, and that the
Resolve MCP answers project_manager get_current (free edition: the user must run Workspace → Scripts → Utility →
resolve_bridge with the project open).
Project folder: <channel folder>/<ResolveProject>/ (video-toolkit §0).
Plan first. If plan.md in the project folder has Status: approved, follow it: its goal, which parts to keep,
which overlays, graphics, B-roll and sounds to add, and with which tool. Without an approved plan, steps 1–3 (reading
the timeline, transcribing, proposing cuts) are fine because they change nothing, and they inform the plan. But before
adding overlays, new footage, Blender shots, a new screen recording or SFX, run the plan skill: the recording is the
"what already exists", and the plan decides what each part needs. Never record new screen footage unless the plan
calls for it.
Steps
- Get the timeline — current project + timeline from Resolve. If there's no project yet, create one from the
recordings: set timeline fps (
recordings.fps/resolve.timeline_fps) and resolution before importing, then ask the user to set Playback frame rate to match (the API can't). Import the screen file(s) and, ifrecordings.separate_camera_file, the camera files (recordings.camera_file_pattern). - Capture the layout — read the timeline items (Audio 1 = the voice track) into
timeline/<timeline>.audio1.json. A session may span several files that Audio 1 plays back to back; note every source file it uses. If extra recorder audio tracks (desktop audio, a duplicate mic) are on the timeline, point them out and leave them. - Transcribe —
transcribeevery source file Audio 1 uses (mic =recordings.mic_audio_stream,vocabfrom the profile) intotranscripts/, thentimeline_transcript→<timeline>.timeline.json/.srt/.txtin timeline time. Re-run this after any edit that moves or trims Audio 1. - Propose cuts — filler words, long pauses, false starts and retakes, with timeline timecodes and the words around each cut, in a table. Wait for the user to approve (all, some, or adjusted).
- Apply cuts — non-destructively in Resolve (on a duplicated timeline, e.g.
<timeline>_cut), then read the items back and check for gaps/overlaps. Re-run step 3'stimeline_transcripton the new timeline. - Overlays — propose cards (titles, callouts, lower thirds, subscribe) anchored to spoken words. Measure face-safe
zones from the camera clips first. Build a HyperFrames project in
animations/(use thehyperframesskills; local render only), rendermovwith alpha at the timeline fps viarender_hyperframes, import, and place each on an empty video track at the word's record frame. Overlapping cards go on separate tracks. Read back and compare. - Sound — SFX for overlays:
sfx_searchfirst, thensfx_generate; user auditions;sfx_markthe verdicts. Pre-mix each overlay's cues into one WAV with ffmpeg (the API ignores clip volume) and place it on an empty audio track, never Audio 1. - Render —
render prepare_delivery_job(YouTube 1080p/4K at the timeline fps) into<project>/renders/,start,verify_output. Check loudness on the result.
Done = an approved render in <project>/renders/, with transcripts and overlay projects kept for later changes.