roughcut
Skill: Roughcut Build
Turns an approved plan into a working roughcut YAML and exported XML. The sub-agent runs async — it commits to a complete cut and returns with notes you can dialogue about.
1. Locate the Plan
A plan path must be passed in as a skill argument (the format produced by cut-planner step 7: libraries/[library-name]/plans/plan_[short-name]_[timestamp].md). If no plan path is passed in, stop immediately and return a message to the parent saying a plan path is required and cut-planner should be run first. Do not search for plans, do not pick one, do not proceed without one.
2. Resolve the Editor (Parent Only)
The sub-agent receives a final editor value:
- If
library.yamlhaseditorset, use it. - Otherwise fall back to
libraries/settings.yaml'seditorand write the value back tolibrary.yaml. - If neither has one, ask the user (Final Cut Pro X / Adobe Premiere Pro / DaVinci Resolve), then save the choice to both
library.yamlandlibraries/settings.yaml.
3. Launch Build Agent
Agent tool with:
- subagent_type: "general-purpose"
- description: "Build roughcut YAML and XML from approved plan"
- prompt: [see template below]
Agent Prompt Template
You are a video editor AI agent for the "{library_name}" library. The plan below is approved direction — beats, intent, rough length, format. The specific clips are yours to find inside the library. Work iteratively, then review and refine before returning.
LIBRARY YAML: libraries/{library_name}/library.yaml
APPROVED PLAN:
{paste full plan markdown}
EDITOR: {editor}
TASK:
1. Read `.claude/skills/roughcut/agent_prompt.md`
2. Follow the steps there in order (the plan is already approved — don't re-propose)
3. Return paths to the YAML and XML, plus your editorial notes (alternatives, judgment calls, plan deviations) in conversational prose
4. Context Contract
This sub-agent reads library.yaml directly — it needs the full inventory plus footage_summary and user_context. This is a deliberate carve-out from the parallel-skill contract: roughcut runs as a single agent (no race risk), and editorial work needs broader library context than inline-passing comfortably supports.
5. Copy XML to Desktop (if enabled)
Check libraries/settings.yaml for save_to_desktop_after_export:
- If the key is
true, copy the exported XML to~/Desktop/so it's easy to grab and import into the editor. - If the key is
false, skip this step. - If the key is missing, ask the user whether to drop a copy of every export on the Desktop, save their answer (
true/false) tolibraries/settings.yaml, then act on it.
cp [library xml path] ~/Desktop/
The library copy stays as the canonical artifact; the desktop copy is a convenience drop.
6. Backup the Library
Run the backup-library skill. This snapshots the library (yaml, transcripts, summaries, plans, roughcuts) so progress can be restored if needed.
7. Report Results
Surface the agent's return message to the user — the YAML path, the library XML path, the desktop XML path (only if step 5 actually copied one), plus the editorial notes. The notes are the conversational hook for what comes next; small fixes you can do directly in the YAML, larger restructures relaunch this skill with a revised plan.
More from barefootford/buttercut
analyze-video
Adds visual descriptions to transcripts by extracting and analyzing video frames with ffmpeg. Creates visual transcript with periodic visual descriptions of the video clip. Use when all files have audio transcripts present (transcript) but don't yet have visual transcripts created (visual_transcript).
68transcribe-audio
Transcribes video audio using WhisperX, preserving original timestamps. Creates JSON transcript with word-level timing. Use when you need to generate audio transcripts for videos.
46setup
Sets up a Mac for ButterCut. Installs all required dependencies (Homebrew, Ruby, Python, FFmpeg, WhisperX). Use when user says "install buttercut", "set up my mac", "get started", "first time setup", "install dependencies" or "check my installation".
37update-buttercut
A skill to automatically download and install the latest ButterCut version from GitHub while preserving libraries. Use when user wants to check for updates or update their installation for new features.
35backup-library
Backs up user libraries and all their contents (external video excluded). This skill can also be useful when you need to restore a library.
34release
Creates a new ButterCut release with version bump, changelog, git tag, gem build, and GitHub release. Use when publishing a new version.
32