roughcut について
roughcutは、承認済みの編集プランからタイムラインを作成し、編集ソフト向けのXMLを書き出す動画編集スキルです。プランの具体性に応じて、直接構築するかサブエージェントに素材探索を任せます。
主な機能
- 01編集プランの作成と承認
- 02プランからタイムライン YAML を作成
- 033種類の編集ソフト向け XML 書き出し
- 04XML のデスクトップへのコピー設定
- 05動画ライブラリのバックアップ
活用シーン
- 01クリップとタイムコードを含む案からタイムラインを作成
- 02素材ライブラリからビートに合う映像を探索
- 03ノンリニア編集ソフト用のラフカットを書き出し
- 04編集後にライブラリのスナップショットを保存
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ barefootford/ buttercut --skill roughcutインストール後、Claude Code で/roughcutを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agent_prompt.mdexport.rbplanning.md詳細
スキル:Roughcut
ユーザーとカットを計画してから、タイムラインを作成し、編集アプリ用に書き出します。
1. カットを計画する
スキルの引数としてプランのパス(libraries/[library-name]/plans/plan_[short-name]_[timestamp].md)が渡され、そのファイルがすでに存在する場合は、ステップ 2 に進みます。プランはすでに承認されています。
それ以外の場合は、skills/roughcut/planning.md を読み、ユーザーと一緒にそのフローを進めます。フローでは、クリップの網羅性の確認、台本またはペーパー編集案の提示依頼、長さの選択、コンセプトの提案、ビートの具体化、明示的な承認の取得、プランの Markdown ファイルへの保存を行います。
libraries/[library-name]/plans/plan_[short-name]_[timestamp].md にプランファイルが存在するまで、ステップ 1 を終えて先に進まないでください。
2. 編集アプリを決定する(親エージェントのみ)
サブエージェントには、最終的な編集アプリの値が渡されます。
library.yamlにeditorが設定されている場合は、その値を使用します。- それ以外の場合は、
libraries/settings.yamlのeditorを使用し、その値をlibrary.yamlに書き戻します。 - どちらにも設定されていない場合は、ユーザーに(Final Cut Pro X / Adobe Premiere Pro / DaVinci Resolve)から選んでもらい、その選択を
library.yamlとlibraries/settings.yamlの両方に保存します。
3. 直接作成するか、サブエージェントを起動するかを決める
残っている編集作業の量に応じて、2 つの方法があります。
プランが具体的な場合は、メインスレッドで直接作成します。 承認済みのプランに特定のクリップと特定のイン/アウトのタイムスタンプが記載されている場合(または、音声トランスクリプトを grep すればタイムスタンプに対応付けられるほど正確な台詞の範囲が指定されている場合)は、素材を探す作業は完了しています。計画中にメインスレッドですでにクリップとトリムを把握しているため、サブエージェントに引き継いでも、わかっている内容を作り直すだけです。agent_prompt.md(YAML の構造、台詞の修正、書き出しコマンド)に従って、自分で YAML を作成して書き出します。追いかけて探す必要がないよう、書き出しコマンドをここに記載します。
# Final Cut Pro X
mise exec -- ruby -Ilib ./.claude/skills/roughcut/export.rb --editor fcpx libraries/[library-name]/roughcuts/[slug]_[timestamp].yaml libraries/[library-name]/roughcuts/[slug]_[timestamp].fcpxml
# Premiere Pro
mise exec -- ruby -Ilib ./.claude/skills/roughcut/export.rb --editor premiere libraries/[library-name]/roughcuts/[slug]_[timestamp].yaml libraries/[library-name]/roughcuts/[slug]_[timestamp].xml
# DaVinci Resolve
mise exec -- ruby -Ilib ./.claude/skills/roughcut/export.rb --editor resolve libraries/[library-name]/roughcuts/[slug]_[timestamp].yaml libraries/[library-name]/roughcuts/[slug]_[timestamp].xml
mise が利用できない場合は、mise exec -- のプレフィックスを削除します。
プランがビート単位の指示の場合は、サブエージェントを起動します。 プランが「X の瞬間を探す」「ミートアップの到着シーンに B ロールを重ねる」といった意図でビートを記述している場合や、多数のクリップにまたがる数分間のラフカットの場合、作成にはライブラリ全体を幅広く調べる必要があります。概要を読み、トランスクリプトを確認し、数十の候補から選ぶ作業です。メインスレッドのコンテキストを保護するため、この作業はサブエージェントに任せます。
目安:台詞が正確に指定されていて、クリップが 5~6 個だけなら、自分で直接作成します。探索が必要なラフカットを生成する場合は、サブエージェントを使います。
サブエージェントの呼び出し
Agent tool with:
- subagent_type: "general-purpose"
- description: "Build roughcut YAML and XML from approved plan"
- prompt: [see template below]
エージェントプロンプトのテンプレート
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. Create an initial draft that focuses on a coherent story with coherent dialogue, then review your work, focusing on the dialogue, consider what improvements should be made, then make those improvements 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. コンテキストの取り決め
サブエージェントを起動すると、library.yaml を直接読み込みます。全インベントリに加え、footage_summary と user_context が必要なためです。これは並列スキルの取り決めに対する意図的な例外です。roughcut は単一のエージェントとして実行されるため競合のリスクがなく、編集作業には、インラインで渡すには量が多すぎる、より広範なライブラリのコンテキストが必要だからです。
5. XML をデスクトップにコピーする(有効な場合)
libraries/settings.yaml の save_to_desktop_after_export を確認します。
- キーが
trueの場合、書き出した XML を~/Desktop/にコピーして、編集アプリに簡単に取り込めるようにします。 - キーが
falseの場合、この手順を省略します。 - キーが存在しない場合は、すべての書き出しファイルのコピーをデスクトップに保存するかユーザーに確認し、回答(
true/false)をlibraries/settings.yamlに保存してから、その設定に従います。
cp [library xml path] ~/Desktop/
ライブラリ内のコピーを正式な成果物として維持し、デスクトップのコピーは手軽に利用するためのものとします。
6. ライブラリをバックアップする
backup-library スキルを実行します。ライブラリ(yaml、トランスクリプト、概要、プラン、ラフカット)のスナップショットが作成されるため、必要に応じて作業を復元できます。
7. 結果を報告する
エージェントの返答メッセージ(ライブラリ XML のパス、または有効にしている場合はデスクトップ XML のパス)をユーザーに提示します。また、エージェントによる簡潔な編集メモも含めてください。YAML のパスは含めないでください。これは内部ビルド成果物であり、ユーザーが開くものではありません。メモは次の作業につなげるための会話のきっかけになります。小さな修正であれば、YAML を直接編集してから再エクスポートすればよく、別のサブエージェントは必要ありません。大規模な変更の場合は、サブエージェント(Claude Sonnet または同等のもの)に作業を割り当てることができます。
使用したエディターに応じて、次の 1 行のインポート手順も含めてください。
- Final Cut Pro X: Final Cut Pro でカットを開き、File → Import → XML を選択します
- Adobe Premiere Pro: Premiere でカットを開き、File → Import を選択してから、XML ファイルを選択します
- DaVinci Resolve: Resolve でカットを開き、File → Import → Timeline を選択してから、XML ファイルを選択します