cut について
Cutは、処理済みのメディアライブラリから映像のタイムラインを作成するButterCutのスキルです。シーン、クリップ選定、台本編集、カスタム作業、エージェント主導のラフカットに対応し、Final Cut Pro X、Adobe Premiere Pro、DaVinci Resolve向けに書き出します。
主な機能
- 01メディアライブラリからタイムラインを作成
- 02シーン、選定、台本、カスタム編集
- 03エージェント主導のストーリーラフカット
- 04書き出し前の素材確認
- 053種類の編集ソフト向けに書き出し
活用シーン
- 01処理済み素材からシーンを作成
- 02テーマに合うクリップの検索
- 03台本に沿った素材編集
- 04編集ソフト用ラフカットの準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ barefootford/ buttercut --skill cutインストール後、Claude Code で/cutを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
cut_yaml_schema.mddirect_path.mdmissing_footage.mdroughcut_agent_prompt.mdroughcut_launch_prompt.mdroughcut_path.mdroughcut_planning.md詳細
スキル:カット
このスキルでは、ライブラリからタイムラインを構築します。
1. ライブラリと事前準備の状態を確認する
カット作業を始めるには、ライブラリが必要です。現在の会話ですでにライブラリがコンテキストに含まれている場合は、それを使用します。含まれていない場合は、最近のライブラリを表示し(ruby lib/buttercut/library.rb recent 5)、ユーザーに選んでもらいます。
ライブラリ名が分かったら、ライブラリの準備が整っているか(すべての映像素材が処理済みか)を確認します。
ruby lib/buttercut/library.rb <name> ready
終了コード 0 は、カットの作成にライブラリを使用できることを意味します(その定義の正確な基準は Library.ready? が示します。ここで基準を独自に再定義しないでください)。ゼロ以外で終了した場合は、作業を中止します。ruby lib/buttercut/library.rb <name> summary を実行して未完了のクリップを確認し、ライブラリの処理が完了する必要があることをユーザーに伝えます(process-library スキルを案内してください)。欠けているクリップを避けてカットしようとしないでください。
2. タスクの種類を決める
利用可能であれば AskUserQuestion ツールでユーザーに尋ねます。利用できない場合は、この順番でテキストを使って質問します。
率直に尋ねてください。「ラフカット」はユーザーの最初のリクエストで使われる慣れた用語であって、選択が確定したわけではありません。選択肢を提示し、ユーザーに選んでもらいます。なぜ質問しているのかを説明したり、もう一度尋ねることを謝ったりしないでください。質問そのものを提示します。
ここで、ユーザーは物語性のあるラフカットを本当に望んでいると判断して、先に進みたくなるかもしれません。しかし、ユーザーはこの用語を曖昧に使っているだけです。先に進む前に、必ず次の説明と質問を伝えてください。
ライブラリの処理が完了している場合は、準備が整っていることと、処理済みクリップの数を伝えます。その後、どの種類のカットを作りたいか尋ねます。ユーザーが「ラフカット」と言っていたとしても、この用語について説明したばかりです。必ず質問してください。
質問の例:「ライブラリの準備が整いました。すべての映像素材が処理済みです。どの種類のカットを作りますか?」
選択肢:
- シーン — 1つのストーリービート。通常は30~90秒です。
- セレクト/クリップを探す — 条件に一致するクリップをまとめたリール(ベストテイク、特定のトピックへの言及、テーマに沿ったBロールなど)。
- スクリプト編集 — ButterCut に台本を渡すと、エージェントが映像素材を探し、台本に沿って編集します。
- カスタムタスク — その他、希望する作業。
- エージェントラフカット — 物語全体の構成に沿ったカットです。エージェントと計画を立ててから、サブエージェントに大半の判断を任せます。(実験的な機能で、多くのトークンを使用することがあります)
ラフカットのフローでは、エージェントがライブラリを幅広く調査し、多くの概要を読み、新しいコンタクトシートを生成し、多数のクリップを通じて物語を構成する必要があるため、より詳細な処理を行います。その他の4つのフローは、メインスレッドでユーザーと直接進めます。
3. カットを作成する(YAML を生成)
どちらのフローでも、libraries/[library-name]/cuts/[slug]_[YYYYMMDD_HHMMSS].yaml に YAML が生成されます。
カットで指定できる内容
ユーザーとカットを調整するための簡単なメニューです。全フィールドと形式については、skills/cut/cut_yaml_schema.md を参照してください。
- トリミング済み動画 — イン点とアウト点でカットしたクリップです。
- 静止画 — 指定した時間だけ表示する画像です(時間情報がなく、無音です)。
- ミュート — クリップ自体の音声を消します(たとえば、音楽を付ける場合や、元の音声が使用できない場合)。
- タイムライン形式 — 出力のフレームレートと解像度を上書きします。デフォルトでは、最初の動画クリップに合わせます。
単一トラックです。クリップは順番に再生され、それぞれに独自の音声が含まれます。
ラフカットのフロー
skills/cut/roughcut_path.md を読み、その手順に従います。
シーン/セレクト/カスタム/スクリプトのフロー
skills/cut/direct_path.md を読み、その手順に従います。
4. フッテージにアクセスできることを確認する
書き出しでは、カットが参照するすべてのソースファイルを読み込みます。そのため、書き出す前にフッテージが実際に利用可能であることを確認してください。ライブラリを作成してから、ドライブが取り外されたり、名前が変更されたりしている可能性があります:
ruby lib/buttercut/library.rb <name> verify_media
すべてのクリップが ok ですか?問題なければ続行します。missing または phantom が返された場合は、書き出しを行わず、まず skills/cut/missing_footage.md を読んで、その手順に従ってフッテージを再接続してください。
カットの計画と作成には、ドライブを接続する必要はありません。必要なのは書き出し時だけです。そのため、この確認は最初ではなく、書き出しの直前に行います。ユーザーはドライブを取り外した状態でもカットを試し、タイムラインをエディターに渡す準備ができたときにだけ再接続できます。
5. 編集アプリケーションを決定する
カットの YAML が作成されたので、書き出しに使用するエディターを 1 つ決定します:
library.yamlにeditorが設定されている場合は、その値を使用します。- そうでなければ、
libraries/settings.yamlのeditorを使用し、その値をlibrary.yamlに書き戻します。 - どちらにも設定されていない場合は、ユーザーに(Final Cut Pro X/Adobe Premiere Pro/DaVinci Resolve)を確認し、選択した値を
library.yamlとlibraries/settings.yamlの両方に保存します。Windows では、Premiere と Resolve のみを選択肢として提示します。Final Cut は macOS 専用です。
6. カットを書き出す
手順 5 で決定したエディターと、手順 3 で作成した YAML を使って書き出しを実行します:
# Final Cut Pro X
ruby lib/buttercut/export.rb --editor fcpx libraries/[library-name]/cuts/[slug]_[timestamp].yaml libraries/[library-name]/cuts/[slug]_[timestamp].fcpxml
# Premiere Pro
ruby lib/buttercut/export.rb --editor premiere libraries/[library-name]/cuts/[slug]_[timestamp].yaml libraries/[library-name]/cuts/[slug]_[timestamp].xml
# DaVinci Resolve
ruby lib/buttercut/export.rb --editor resolve libraries/[library-name]/cuts/[slug]_[timestamp].yaml libraries/[library-name]/cuts/[slug]_[timestamp]_resolve.fcpxml
DaVinci Resolve のフォールバック(一時的な対応)。 上記の resolve がデフォルトであり、新しいカットにはすべてこれを使用してください。フォールバックの --editor resolve_legacy(FCPXML より前に Resolve が使用していた古い FCP7 XML 形式)を使うのは、次の 2 つの場合です:
- 書き出し時に警告が表示される場合。 カットに異なるフレームレートが混在していると(たとえば、24p のタイムラインに 23.976 のフッテージが含まれる場合)、
resolveでの書き出しに、フレームレートが一致しないクリップの名前を示す警告が表示されます。Resolve は FCPXML からこれらのクリップにリンクできず、オフラインとして読み込みます。そのファイルをエディターに渡してはいけません。すぐにresolve_legacyで再書き出しし、代わりに.xmlを渡して、理由を簡潔に伝えてください。(マルチカムクリップを含むカットではフォールバックを使用できません。警告に選択肢が示されるので、それを伝えてください。) - エディターから読み込みの問題が報告された場合。 Resolve の FCPXML 書き出しで問題が発生した場合は、
resolve_legacyで再書き出しすることを提案してください。
ruby lib/buttercut/export.rb --editor resolve_legacy libraries/[library-name]/cuts/[slug]_[timestamp].yaml libraries/[library-name]/cuts/[slug]_[timestamp]_resolve.xml
それ以外の場合はそのままにしてください。先回りして提案したり、デフォルトで使用したりしないでください。
7. ファイルをデスクトップにコピーする(有効な場合)
libraries/settings.yaml で save_to_desktop_after_export を確認します:
- キーが
trueの場合は、書き出した XML を~/Desktop/にコピーして、簡単に見つけてエディターに読み込めるようにします。 - キーが
falseの場合は、この手順を省略します。 - キーがない場合は、書き出しごとにデスクトップへコピーを配置するかユーザーに確認し、回答(
true/false)をlibraries/settings.yamlに保存してから、それに従って処理します。
cp [library xml path] ~/Desktop/
ライブラリ内のコピーが正式な成果物として維持され、デスクトップのコピーは利便性のために配置されます。
(このコマンドは Windows の Git Bash でも動作します。~/Desktop が存在しない場合(OneDrive によって移動されていることがあります)は、powershell -NoProfile -Command "[Environment]::GetFolderPath('Desktop')" で実際の場所を確認し、そこにコピーしてください。)
8. ライブラリをバックアップする
backup-library スキルを実行します。ライブラリディレクトリ全体のスナップショットを作成し、必要に応じて作業の進捗を復元できるようにします。
9. 結果を報告する
XML のパスを提示します。ライブラリのパス、または有効になっている場合はデスクトップのパスを示してください。ラフカットの場合は、サブエージェントからの返信メッセージにある編集メモもごく簡潔に含めてください。小さな修正であれば、別のサブエージェントを使わずに YAML を直接編集して再書き出しできます。YAML のパスは含めないでください。これは内部のビルド成果物であり、ユーザーが開くものではありません。
使用したエディターに応じて、次の 1 行の読み込み手順を含めます:
- Final Cut Pro X: Final Cut Pro で「ファイル → 読み込む → XML」を選択し、カットを開きます
- Adobe Premiere Pro: Premiere で「ファイル → 読み込み」を選択し、XML ファイルを選びます
- DaVinci Resolve: Resolve で「ファイル → 読み込み → タイムライン」を選択し、書き出した
.fcpxmlファイルを選びます(resolve_legacyのフォールバックを使用した場合は.xml)
10. エディターで開く(有効な場合)
libraries/settings.yaml で open_in_editor_after_export を確認します。
- キーが
trueの場合、エクスポートしたファイルをユーザーのエディターで直接開きます。 - キーが
falseの場合、この手順をスキップします。 - キーがない場合、エクスポートしたファイルを自動的に開くかユーザーに確認し、その回答(
true/false)をlibraries/settings.yamlに保存してから、回答に従って処理します。
macOS の場合、macOS がテキストエディターや Xcode に切り替わらないよう、正しいアプリケーション名を指定して open -a を使用します。
# Final Cut Pro X
open -a "Final Cut Pro" [xml path]
# Adobe Premiere Pro
open -a "Adobe Premiere Pro" [xml path]
# DaVinci Resolve
open -a "DaVinci Resolve" [xml path]
この機能が有効な場合、「ファイルを application_name で開きました。他にお手伝いできることがあればお知らせください。」と伝えます。
Windows の場合、XML を使ってエディターを起動しようとしないでください。Premiere と Resolve はこれらのファイルを開くのではなく インポート するため、.xml ファイルの関連付けによってブラウザーやテキストエディターが起動します。代わりにエクスプローラーでファイルを表示し、手順 9 のインポート方法をもう一度案内します。
explorer /select,"$(cygpath -w "[xml path]")"
(エクスプローラーは正常に動作していても、終了コード 1 を返すことがよくあります。失敗として扱わないでください。)その後、「エクスポートしたファイルをエクスプローラーで選択しました。application_name で、上記のインポートメニューを使って取り込んでください。」と伝えます。
手順 7 でデスクトップにコピーを配置した場合はデスクトップのコピーのパスを、そうでない場合はライブラリのパスを使用します。
ガイドライン
重要 ユーザーにはプログラマーではなく、動画編集者として接してください。技術的な詳細は伏せてください。YAML については一切触れないでください。em ダッシュや en ダッシュは使わないでください。
悪い例:「了解しました。3 秒の表彰台クリップだけですね。YAML を書きます。」 良い例:「了解しました。表彰台の 3 秒間のクリップだけですね。編集を始めます。」 悪い例:「48 個のクリップすべてを把握しました。これから YAML を作成します。」 良い例:「イベントの全体像を把握しました。これから編集を始めます。」
注:ユーザーから、動画エディターで ButterCut が標準ではサポートしていない作業を依頼された場合は、misc-task スキルを参照してください。