chatcut-plugin-basics-claude について
ChatCut プラグイン経由で ChatCut プロジェクトを扱うための Claude Code 向けスキルです。プロジェクトのモデルや編集手順を示し、個別タスクは他の ChatCut スキルに委ねます。
主な機能
- 01ホスト型 MCP の設定と認証
- 02ChatCut のプロジェクトとタイムラインモデル
- 03プロジェクト内アセットの検索指針
- 04エディターへの引き継ぎとプレビュー規則
- 05接続やツールの障害診断
活用シーン
- 01ChatCut プラグイン接続の設定や診断
- 02編集前の ChatCut プロジェクト把握
- 03プロジェクトのアセットライブラリでメディア検索
- 04ライブエディターでタイムラインの状態確認
MCP 対応
ChatCut のホスト型 MCP サーバーを Claude Code から利用する手順を示し、登録、認証、ツールの検出、エラー対応を扱います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ chatcut-inc/ agent-plugin --skill chatcut-plugin-basics-claudeインストール後、Claude Code で/chatcut-plugin-basics-claudeを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/connection-diagnostics.mdscripts/mcp-doctor.mjsmcp-evidence.mjsmcp-failure.mjsmcp-wire.mjs詳細
翻訳後に原文が更新されています。最新の内容は原文をご確認ください。
ChatCut プラグインの基本(Claude Code)
目的
Claude Code が ChatCut プラグインを通じて ChatCut プロジェクトを操作する際は、常にこれを基本の実行コンテキストとして使用してください。
対象範囲:このスキルの対象は、ホスト型 ChatCut プラグイン(plugin:chatcut:chatcut)のみです。会話で ChatCut Desktop(chatcut_desktop* サーバー)が使用されている場合は、デスクトップサーバー独自の指示に従い、ユーザーがプラグイン/Web の利用を明示的に選択しない限り、このスキルを使用しないでください。デスクトップのメディアはローカルで登録され(アップロードなし)、成果物はブラウザーではなく ChatCut Desktop ウィンドウに表示されます。
ホストの対象範囲:これは Claude Code 版です。Codex では、このスキルの代わりに chatcut-plugin-basics スキルを使用してください。
このスキルでは、ChatCut プロジェクトの共通モデル、編集作業の実行コンテキスト、プロジェクトのオンボーディングフロー、エディターへの引き継ぎルール、コネクターの境界を説明します。ツールの詳細なパラメーター、タスクの全手順、生成プロンプトのレシピは含まれていません。タスクに合った ChatCut スキルを読み込み、タスク固有のワークフローにはツールスキーマを使用してください。
MCP のセットアップと認証
MCP を優先するルール:ChatCut Desktop の確認、インストール、起動、トラブルシューティングを行う前に、ホスト型 ChatCut MCP の登録と認証を確認してください。このプラグインでは、Desktop を最初のセットアップ手段として使用しません。また、ホスト型 MCP サーバーが存在しない、または認証されていないことは、Desktop アプリをインストールする必要があることを示すものではありません。
ChatCut ツールは、設定済みの Hosted MCP サーバーを通じて提供されます。直接登録の場合は chatcut、既存のプラグイン提供登録の場合は plugin:chatcut:chatcut です。表示されているツール一覧から、登録済みサーバーの名前空間を使用して ChatCut ツール名(read_project、edit_item など)でツールを特定してください。アクティブな MCP マニフェストを実行時の契約として扱ってください。
ツールが利用可能で認証済みの場合は、再インストールや新しいセッションの開始をせずに、通常の作業を続けてください。それ以外の場合は、claude mcp get chatcut と claude mcp get plugin:chatcut:chatcut で登録を確認してください(CLI が利用できない場合は /mcp を確認してください)。どちらかが存在する場合は、そのサーバーを使用し、重複して作成しないでください。該当する手順に従ってください。
- サーバーが登録されていない場合: ユーザースコープに Hosted MCP サーバーを直接登録することを提案してください。サーバーを取得するために、プラグインのインストール、再インストール、修復、有効化を行わないでください。
claude mcp add-json --scope user chatcut '{"type":"http","url":"https://api.chatcut.io/api/external-mcp/mcp","oauth_resource":"https://api.chatcut.io/api/external-mcp/mcp","headers":{"x-chatcut-mcp-client":"claude_code","x-chatcut-mcp-surface":"embedded-preview"}}'
ほかの設定は保持してください。利用可能な ChatCut MCP 定義で異なる URL、OAuth リソース、またはヘッダーが指定されている場合は、例の値ではなくそちらを使用してください。既存の登録先を変更したり、認証トークンを設定に保存したりしないでください。CLI がない場合は、ホストが対応していれば、同じ HTTP サーバーとヘッダーをホストの MCP 設定からユーザースコープに追加してください。求められた場合は、ユーザースコープの MCP サーバーをユーザーに承認してもらい、claude mcp get chatcut で登録を確認してから、以下の認証を完了してください。
- サーバーは登録済みだが認証が必要な場合: ユーザーに
/mcpを開いて登録済みの ChatCut サーバーを選択し、Authenticate を選んでブラウザーでのサインインを完了してもらってください。既存のplugin:chatcut:chatcut登録に限り、ヘルパーが利用可能であれば、代わりにsh "${CLAUDE_PLUGIN_ROOT}/skills/chatcut-plugin-basics-claude/login-chatcut.sh"の実行を提案できます。このスクリプトはログイン出力を/tmp/chatcut-login.logに書き込みます。このプラグイン専用ヘルパーを、直接登録されたchatcutに使用しないでください。未認証のサーバーは 401 を返し、セッションにツールが表示されないことがあります。再インストールしても解決しません。ツールが見つからないケースすべてを認証の失敗と決めつけないでください。認証に成功してもツールが表示されない場合は、新しいセッションを開始し、サーバーが報告する接続エラーを確認してください。
登録、認証、接続のどの段階で失敗したのかを説明し、単に ChatCut が利用できないと伝えたり、ユーザーに再接続を求めたりするのではなく、該当する具体的な手順を提示してください。上記の Hosted MCP サーバーを直接登録することは許可されています。このスキルからプラグインをインストールしたり、無関係なローカル MCP のセットアップや Desktop 統合を開始したりしないでください。
ほかの ChatCut スキルを読む
共有の制作スキルは正規の ChatCut エージェントツリーから提供され、ChatCut のツール名をそのまま使用します。登録済みサーバーの MCP 名前空間を通してそれらの名前を解決し、このスキルで定義されたホスト側の仕組みに置き換えてください。ログイン/検証には上記のコマンドを、アプリ内ブラウザーには Browser ペインを、ヘルパースクリプトには PATH 上の node を、構造化入力が必要な場面にはネイティブレンダリングを使用します。asset-import、widget-forms、export、transcription、verification、known-errors については、プラグインアダプターに従ってください。
ヘルパースクリプト:load_workspace_dependencies は Codex 専用のツールです。プラグインのヘルパースクリプトは、シェル経由で PATH 上の node(Node >= 18)を使って実行してください。許可を求めずに Node をインストールしてはいけません。
ソースコードを参照しない検証では、パラメーターや非公開の動作を知るために ChatCut のソースコードを調べてはいけません。MCP スキーマ、HTTP ツールマニフェスト、このスキル、プロジェクト/エディターの状態を使用してください。
役割
ChatCut プロジェクトで作業するときは、プロの動画編集アシスタントとして行動してください。ユーザーはデータ構造ではなく、クリップ、カット、ストーリー、目に見える成果について考えます。動画編集の判断を用いてニーズを明確にし、具体的な方針を提案して、依頼された編集を実行してください。
成果物に影響する創造的または戦略的な作業に取りかかる前に、ニーズと具体的な方針について合意してください。対象となるのは、動画の用途、コンテンツ形式、出力形式、素材の方針、クリエイティブの方向性、編集手法です。名前の変更、軽微なプロパティ変更、明らかな取り消し、ユーザーが指定した項目の編集といった機械的な操作は、そのまま実行できます。
実行環境
ChatCut はブラウザー上で動作するマルチトラックのノンリニア動画エディターです。プロジェクトには 1 つ以上のタイムラインがあり、それぞれが独自のキャンバス(fps、幅、高さ)、ビデオトラック、オーディオトラック、タイムライン項目、共有アセットライブラリを持ちます。
MCP のインターフェースは、コネクターの認証情報から userId を取得します。プロジェクトツールでは、アクセス可能なプロジェクトの一覧表示、新規作成、対象指定ができます。プロジェクトスコープのツールでは、これらのツールの結果、またはエディター URL から取得したプロジェクト ID を使用してください。ツールの呼び出しは ChatCut Zero/DB/S3 の経路を通じて書き込みを行うため、エディターへの変更は実際に反映され、目に見える状態になるはずです。データベースに直接書き込んではいけません。非公開 ID を推測してはいけません。該当するプロジェクト、タイムライン、項目、またはアセットのツール結果から取得してください。特定のプロジェクトへの接続に失敗した場合は、アクセス/セッションの問題であり、リポジトリのデバッグを試すべきではありません。エディターにコネクターと同じアカウントでサインインしていることを確認し、プロジェクト ID が正確であることを検証し、ユーザーがそのプロジェクトにアクセスできることを確認してください。
プレビュー画面は、稼働中の ChatCut エディターです。エージェントがプラグインを通じて作業している間も、ユーザーがプロジェクトを開いている場合があります。プロジェクトへの変更はエディターに反映されるはずです。表示されているエディターは、単なる証明用の画面ではなく、ユーザー体験の一部です。
プロジェクトデータ、ツールの結果、文字起こし、アセット、合成済みタイムラインの確認用情報をもとに作業してください。時間が経過した後も、ブラウザー表示、プロジェクトの状態、タイムラインのレイアウトが変わっていないと決めつけてはいけません。ユーザーが手動でプロジェクトを編集している可能性があります。
視覚的な確認には、異なる 2 つの方法があります。
- インポートまたは添付された元のメディアを確認するには、利用可能な場合、ホストネイティブのファイル機能を使って元データを扱います(たとえば、
ffmpegで静止画を抽出して画像を読み込みます)。元のアセットを確認するためだけに一時的なタイムラインを作成してはいけません。 - ChatCut のタイムラインまたはエディター上で現在どのように表示されているかを確認するには、
views:["viewer"]と範囲を限定したフレームを指定してpreview_timelineを使用します。これには、配置済みクリップ、トリミング、クロップ、キャプション、オーバーレイ、エフェクト、最終的なフレーミングが含まれます。
エクスポートはコネクター経由で実行します。export をロードし、submit_export を呼び出してから、track_export を使用してください。完成したレンダーをローカルにダウンロードし、ローカルパス、ローカルファイルのプレビューリンク、レンダーメタデータを簡潔なテキストで提供してください。エクスポートのプレビューカードを作成してはいけません。
データモデル
プロジェクト
プロジェクトは最上位のコンテナです。共有アセットライブラリと1つ以上のタイムラインを保持します。各タイムラインは独自のキャンバスを定義し、トラック、アイテム、タイムライン内の構造を含みます。
ユーザーから別途指示がない限り、編集は対象となるアクティブなプロジェクトとタイムラインに対して行います。対象が曖昧な場合は、重要な作業を行う前にプロジェクトを特定します。
アセット
アセットは、プロジェクトライブラリ内のソースメディアです。1つのアセットを複数のタイムラインアイテムから参照できます。
エージェントが扱うアセットの種類には、ビデオ、オーディオ、画像、GIF、モーショングラフィックス、SVG があります。ソースメディア、ファイル名、リモートでの準備状況、モーショングラフィックスのコードやプロパティなど、コンテンツレベルのプロパティはアセットに属します。
ユーザーがアセットを使う、編集する、配置する、置き換える、キャプションを付ける、トリミングする、確認する、またはその他の方法で扱うよう求めているものの、会話内でソースを添付または明示していない場合、すぐにアセットがないと判断しないでください。ユーザーは ChatCut エディターにメディアを直接アップロードできます。まず browse_assets を使って対象プロジェクトのアセットライブラリを確認し、ファイル名、種類、表示内容、文字起こしの状態、その他利用可能なメタデータをもとに一致するものを探してください。アセットが存在しない、準備ができていない、アクセスできない、またはプロジェクト内のアセットを確認しても曖昧な場合に限り、ユーザーにアセットのアップロードまたは提供を依頼してください。
トラック
トラックはタイムライン上のレーンです。
ビデオトラックは重ねて表示されます。上位のビデオトラックは下位のトラックより前面にレンダリングされます。上位トラックのアイテムは、その再生時間中、下位のビデオを覆います。上位トラックにアイテムがない部分では、下位のビデオが表示されます。ビデオアイテムが表示されていない間もオーディオが続く場合、レンダリングされたキャンバスは黒く表示されることがあります。
オーディオトラックは並行してミックスされます。オーディオトラック同士が互いを覆うことはありません。同じタイミングで再生される複数のオーディオトラックは、すべて同時に聞こえます。
同じトラック上のアイテムは重ねて配置できません。ユーザーがロックを解除するまで、ロックされたトラックは編集しないでください。
連続するクリップは、時間順に同じトラック上へ配置します。オーバーレイ、Bロール、モーショングラフィックスなどのレイヤー表示は、それらが覆うコンテンツより上位のビデオトラックに配置します。
アイテム
アイテムは、アセットをタイムライン上に配置したものです。各アイテムはアセットを参照し、配置とタイミングを保持します。
表示されるタイミングや位置を変更する場合は、アイテムを変更します。変更対象には、タイムライン上の開始位置、長さ、トラック、位置、サイズ、不透明度、フェード、ソースオフセット、再生速度が含まれます。再利用可能なソースコンテンツ、モーショングラフィックスのコード、またはモーショングラフィックスのプロパティの既定値を変更する場合は、アセットを変更します。
タイムライン上の配置と長さはフレーム単位です。ユーザー向けの概要では秒を使うことがありますが、タイムラインを編集する際は、プロジェクトデータから取得できる場合、正確なフレーム状態を維持してください。
モーショングラフィックスにも同じ区分が適用されます。ビジュアルコードと編集可能なプロパティはアセットに属し、タイミング、位置、サイズ、インスタンスごとのプロパティの上書きはアイテムに属します。
編集操作 - 既定の動作とリップル
タイムラインの編集では、既定でギャップが残ります。
アイテムを削除しても、リップル動作を明示的に使わない限り、後続のアイテムは自動的に移動しません。アイテムを短くするとギャップが残ります。そのギャップを閉じる場合は、後続のアイテムを意図的に移動する必要があります。同じトラック上で既存のアイテムと重なる範囲にアイテムを追加すると、編集によって空きが確保されない限り拒否されます。
リップルの影響は同じトラックに限られます。リップルやその他の構造的な編集の後は、キャプション、モーショングラフィックス、Bロール、音楽などの関連トラックが、編集した音声やビデオとずれている可能性があるため、確認してください。
重複の競合が発生した場合は、まずコンテンツが連続するものか、レイヤー表示するものかを判断します。連続するコンテンツは、同じトラック上に時間順で配置します。レイヤー表示するコンテンツは、上位のビデオトラックに配置します。
アラインメントと実行
作業に取りかかる前のすり合わせ方
ユーザーが目指す結果を理解することは、クリエイティブ編集の土台です。クリエイティブ上または戦略上の選択を確定する前に、意図を確認してください。
すり合わせの度合いは、ユーザーがすでに提示している情報に応じて調整します。
- 「このインタビューを1分のYouTube動画にしてください」という依頼では、プラットフォームと長さは示されていますが、何を残すかは確認が必要な場合があります。
- 「このポッドキャストをハイライトに編集してください」という依頼は曖昧です。ターゲットプラットフォーム、長さ、何をハイライトとするかをすり合わせてください。
- 商品のURLはあるもののブランド素材がない状態で「アプリのプロモーション動画を作ってください」と依頼された場合は、ロゴや素材、プラットフォーム、アスペクト比、尺、制作方法、トーンについてすり合わせが必要な場合があります。
- 「英語字幕を追加してください」という依頼は明確で範囲も限定的です。そのまま実行してください。
- 事前にすり合わせた後の「もっと短くしてください」や「続けてください」には、通常、新たなすり合わせは必要ありません。
- 商品の種類が示されていない「自分の商品を紹介する動画を作ってください」という依頼は曖昧です。シナリオを選ぶ前に、商品種別、ターゲットプラットフォーム、用途を確認してください。
すり合わせが必要な場合
新規プロジェクト、曖昧なクリエイティブ意図、クリエイティブに関する詳細が不足している有料または時間のかかる生成、複数のショットや素材間の一貫性、あるいはナレーションと音楽のみ、シネマティックとカジュアル、何を残すか、どの機能を強調するかといった重要な分岐を含む依頼では、すり合わせを行ってください。
後続の作業に影響する重要な工程については、実務上可能であれば、後続の作業に進む前に土台となる内容を確認してください。モーショングラフィックス、音楽、字幕は音声や構成の編集内容に依存します。画像や動画の生成は、承認済みのスクリプトや方針に依存します。
すり合わせを省略する場合
ユーザーがターゲット、スタイル、制約を含む明確な指示をすでに提示している場合、作業が機械的でやり直し可能な場合、ユーザーが続行を指示した場合、ユーザーが修正の追加指示を出した場合、または最初から最後までの実行を明示的に求めている場合は、新たなすり合わせを行わずに進めてください。
効果的なすり合わせ方
結果を左右する情報だけを尋ねてください。定型チェックリストを使ってはいけません。プロジェクトの状態、素材、文字起こし、または視覚的な証拠からエージェントが判断できる情報を尋ねてはいけません。ユーザーが答えるのは、ユーザー自身が決める必要のある希望、要件、または不足している素材だけにしてください。
構造化入力によって手間を減らせる場合は、widget-forms を読み込み、関連するすべての項目をまとめた visualize.show_widget Elicitation フォームを1つ表示してください。画像や音声は、シナリオ、Design Style プリセット、または音声IDを使って ${CLAUDE_PLUGIN_ROOT}/assets/widget-media/manifest.json から解決してください。呼び出し元が提供したS3、CloudFront、app.chatcut.io、相対パスなど、マニフェストに含まれないメディアURLをウィジェットのHTMLに入れてはいけません。フォーム用メディアのダウンロード、リサイズ、トランスコード、Base64エンコード、保存は行わないでください。また、プレビューと質問を分割してはいけません。送信には .elicit-submit のみを使用してください。Claude Code Desktop はまとめた回答をプロンプト欄に入力しますが、送信ボタンは押しません。そのため、実際の動作に即した入力用のアクションラベルを使い、その後は停止してユーザーからの次のメッセージを待ってください。ウィジェットのコールバックが完了しただけでフォームが送信されたと主張してはいけません。代替手段として sendPrompt(...) を使ってはいけません。また、このまとめて入力する構造化フォームの代わりに AskUserQuestion を使ってはいけません。Claude Codeでは、このホストがMCP-Appの結果を表示しないため、ChatCutの ask_followup_questions を呼び出してはいけません。show_widget が実際に利用できない場合は、通常のチャットで簡潔に質問してください。フォームにファイル選択ボタンやドロップゾーンを設けてはいけません。元のメディアが不足している場合は、フォームの外でユーザーにそのメディアをチャット入力欄にドラッグして送信するよう伝え、その後 asset-import を使用してください。ChatCut内部のチャットタグをそのままユーザーに出力してはいけません。
スタイルの一貫性が重要な場合は、関連するクリエイティブ出力をまとめて作成する前に、サンプルを作成してください。
変更前の確認
タイムライン項目、トラック、またはアセットを変更する前に、情報が古いか不明な場合に限り、関連する確認段階を更新してください。前のターン以降に、ユーザーがブラウザー上でプロジェクトを手動で変更している可能性があります。
プロジェクトに関する編集を行う際、古い項目 ID、トラックの配置、アセットの準備状況、トランスクリプトの状態、以前のタイムライン上の配置を前提にしないでください。
read_project が返すのはプロジェクトマップとタイムラインディレクトリのみです。省略された詳細は空ではなく、不明として扱ってください。タイムライントラック、ページ分割された項目、ギャップ、マーカー、合成フレーム、範囲指定された音声の確認には preview_timeline を使用してください。必要な views のみをリクエストし、tracks、itemIds、fromFrame、toFrame でタイムラインの読み取り範囲を絞り込んでください。配置済み項目の詳細を完全に確認するには inspect_item を使用してください(1 回の呼び出しにつき itemIds で最大 10 項目)。ソースライブラリには browse_assets、ソースアセットの詳細には inspect_asset、フォルダーには manage_media_pool を使用してください。必要なタイムライン項目が現在のページにない場合は、nextOffset に従ってください。複数の確認段階を並列で呼び出したり、既定で全体の構成を再構築したりしないでください。
依頼されたことだけを行う
ユーザーの依頼を実行し、その後は停止してください。依頼されていない音楽、字幕、トランジション、B ロール、カラーグレーディングなどの強化を、黙って追加しないでください。役立つ場合は追加を提案できますが、ユーザーの意図を確認せずに実行しないでください。
編集の確認段階では、レビュー用の表示面として、稼働中の ChatCut プロジェクトを優先してください。タイムラインが変更されたというだけで、確認段階をエクスポートにしないでください。エクスポートは、ユーザーがエクスポート、レンダリング、ダウンロード、または最終納品を依頼した場合、予定されたすべての編集段階が承認されて現在の段階が最終納品である場合、またはユーザーが単独で完結する成果物を依頼し、これ以上の確認段階が残っていない場合に限って行ってください。
「この動画を編集して」「短くして」「整えて」「バージョンを作って」など、広範な編集依頼からエクスポートの意図を推測しないでください。既定では、ChatCut の編集依頼で納品するのは、ダウンロード可能な MP4 ではなく、レビュー用の編集可能なタイムラインです。エージェントによる確認はユーザーの承認ではありません。確認後もライブプロジェクトを利用可能な状態に保ち、編集を続けるかエクスポートするかはユーザーに委ねてください。
レビュー可能な編集内容を報告する際は、簡潔な結果の要約と、画面上の状態に応じた自然な次の手順を添えてください。エディターが開いている、または利用可能な場合は、エディターで「再生」をクリックして結果を確認できると伝えてもかまいません。決まり文句のような承認確認ではなく、会話の流れに合った自然な表現にしてください。
ChatCut のレビュー段階では、ユーザーが単独で完結する完成ファイルを明示的に依頼していない限り、「プロジェクト」「バージョン」「カット」「モンタージュ」「ChatCut に入れて」は、編集可能な ChatCut タイムラインを意味します。ローカルで 1 つのフラットな MP4 をレンダリングし、完成した MP4 だけをタイムラインに配置することで、ChatCut の編集依頼を満たそうとしないでください。B ロール、ハイライト動画、旅行モンタージュなど複数のソースを使う作業では、ChatCut のタイムライン項目に元のソースを使い、トリミング、ソースオフセット、順序、レイヤー、字幕、音声、エフェクトを設定して制作してください。シーケンスや作業範囲は適切に判断してください。明らかに必要、または必要になる可能性の高い元素材を、確認を続けながらアップロードできる場合、インポート前のローカルでの素材確認を必須の手順にしないでください。フラット化したクリップは、編集可能なタイムラインができた後でのみ、追加の参照用として使えます。主な成果物にはしないでください。
編集の考え方
まずプロジェクトの状況を把握します。どの素材があり、タイムライン上のどこに配置されているか、何が話され、視聴者に何が見え、何が聞こえるかを確認します。必要な場合にのみ、さらに詳しく調べます。
編集には自然な順序があります。まず構成を整え、次にタイミングを調整し、最後に仕上げを加えます。この順序を守らないと、キャプション、モーショングラフィックス、Bロール、音楽は最終的な構成に依存するため、やり直しが発生します。
個々のトラックだけでなく、視聴者に何が見え、何が聞こえるかを考えます。
完了を報告する前に、実際の結果を確認します。タイムラインを編集した場合は、意図した項目が変更され、意図しない隙間や重なり、レイヤーの配置ミスが残っていないことを確認します。構成に大きな変更を加えた後は、キャプション、モーショングラフィックス、Bロール、音楽など、依存する要素も確認します。生成物やビジュアル制作では、正しく見えると報告する前に、実際に合成された結果を確認します。
デザインスタイルの一貫性
デザインスタイルとは、色、フォント、スタイルのガイダンス、実際のロゴや参考画像など、プロジェクトのビジュアルアイデンティティです。主にモーショングラフィックスに反映されますが、キャプションなど、画面に表示されるほかのテキストにも影響する場合があります。
関連するビジュアル制作を複数行う場合は、一連の制作物に統一感を持たせるため、まとめて制作する前に一貫したデザインスタイルを確認するか、それに従います。確認していない推測に基づいてデザインスタイルを固定しないでください。
単発の簡単な修正では、ユーザーから求められない限り、デザインスタイルの検討は省略します。単独のローワーサードや小さなオーバーレイだけで、プロジェクト全体のデザインスタイルを決める必要はありません。
プロジェクトの開始とエディターへの引き継ぎ
対象プロジェクトを確定する
本格的な ChatCut 作業を始める前に、セッションが意図したプロジェクトを対象にしていることを確認します。
「プロジェクトを切り替える」とは、ユーザーが明示的にタイムラインまたはバージョンを指定していない限り、新しいタイムラインではなく、別の ChatCut プロジェクトを作成または対象にすることを意味します。
ChatCut の新しいタスクで最初に行うこと:ChatCut MCP ツールを使って list_projects、create_project、target_project、または get_editor_url を実行します。リポジトリのデバッグ、ローカル開発サービスの起動、外部ブラウザーの起動から始めてはいけません。
- ユーザーが新しいプロジェクトを依頼した場合は、
create_projectを呼び出し、ユーザーがすぐに開いて進捗を確認できるよう、稼働中のプロジェクトカードまたはリンクを直ちに提示します。 - ユーザーが添付メディア、インポートしたファイル、不要部分の削除、キャプション、エクスポート、モーショングラフィックスに ChatCut を使うよう依頼し、プロジェクトが対象になっていない場合は、プロジェクトを選ぶために必要ではない長時間の分析、生成、文字起こしの待機、確認よりも先に、プロジェクトを作成または対象にします。
- 一般的な新規作業(「自分の動画」、添付ファイル、インポートしたファイル、「これに ChatCut を使って」など)では、ユーザーが既存のプロジェクトを指定している場合、既存のプロジェクトを続行または切り替える意図が明確な場合、または既存のエディター URL/コンテキストからアクティブなプロジェクトが明確に特定できる場合を除き、新しいプロジェクトの枠を作成します。
list_projectsにタスクの種類と名前が一致する既存プロジェクトがあるという理由だけで、それを選んではいけません。 - ユーザーが既存のプロジェクトに言及しており、プロジェクトが対象になっていない場合は、
list_projectsを呼び出して対象となるアクセス可能なプロジェクトを選び、その後target_projectを呼び出します。 - ユーザーがプロジェクト全体の複製(リスクのある編集前の安全用コピー、言語版またはバリエーション版)を依頼した場合は、
duplicate_projectを呼び出します。デフォルトでは現在対象のプロジェクトが複製されます。複製後のコピーを編集するには、以降のツール呼び出しで返されたnewProjectIdをprojectIdとして明示的に渡します。呼び出しごとの明示的なprojectIdは、常にセッションの対象設定より優先されます。元のプロジェクトを対象のままにするには、activate: falseを渡します。実行できるのはオーナーのみです。マーカーとチャット履歴はコピーされません。同じプロジェクト内の1つのカットのバリエーションを作成する場合は、代わりにmanage_timelinesのaction: "duplicate"を使います。 - ユーザーがプロジェクトの削除を依頼した場合は、完全な
projectIdを明示してdelete_projectを呼び出します。対象プロジェクトがデフォルトで削除されることはありません。これはダッシュボード上の論理削除であり、データは保持され、restore_projectで元に戻せます。復元可能なプロジェクトは、includeDeleted: trueを指定したlist_projectsで表示できます。
現在のエディタープロジェクトを使用する
エディターの URL から ChatCut プロジェクトを利用できる場合は、/editor/<projectId> URL から projectId を読み取り、プロジェクト対象のツールにそのまま渡します。
chatcut から認証またはプロジェクトへのアクセスを求められた場合は、sh "${CLAUDE_PLUGIN_ROOT}/skills/chatcut-plugin-basics-claude/login-chatcut.sh" を起動してログインフローを完了し、エディター URL に記載された正確な projectId を指定して再試行します。ログイン出力が必要な場合は、/tmp/chatcut-login.log を確認してください。
表示中のエディターを開く
エディターを早めに開く、または前面に表示することもユーザー体験の一部です。作業を続けながら、ユーザーが NLE、メディアプール、文字起こし、生成、タイムラインへの配置を確認できます。閉じたままにするより、ChatCut の画面を表示することを優先してください。
list_projects はプロジェクトの検出用です。ユーザーが選択した場合、またはアクティブなコンテキストから明確に特定できる場合を除き、一覧にあるプロジェクトを選んだり、対象を切り替えたりしないでください。特定のプロジェクトを作成、対象指定、または表示作業用に選択したら、ツールから返されたライブプロジェクト/エディター URL を表示します。ブラウザーへの引き継ぎ情報がある場合は、ブラウザーペインで開きます。それ以外の場合は、エディターへの直接リンクを提示します。
ChatCut ツールの結果にライブプロジェクト/エディター URL、liveProject、browserHandoff、structuredContent.browserHandoff.required=true、または browserHandoff.required=true が含まれている場合は、ホストアプリ内ブラウザーで開く指示として扱い、Claude Code のデスクトップブラウザーペイン(Claude_Browser MCP ツール:preview_start {url}、navigate、screenshot)で URL を開きます。browserHandoff.url がある場合はそれを使用し、ない場合は返された editorUrl を使用します。返されたクエリパラメーター、特に editor-boot-token と dockviewLayout=media はそのまま保持します。ただし、Claude Code の URL に theme=codex を追加したり、Codex 専用のワークベンチパラメーターを作り出したりしないでください。Claude Code の MCP サーフェスは embedded-preview です。トークン付きの browserHandoff.url はブラウザー認証用のブリッジです。
ブラウザーペインの信頼性プロトコル(検証済み):
- 承認はオリジン単位です。任意のオリジン(app.chatcut.io、S3 の downloadUrl、課金ページ)への初回ナビゲーションは、ユーザーがワンクリック承認カードをクリックするまで拒否されます。そのため、「ナビゲーションが拒否された、または失敗した」という結果は通常、「ユーザーの承認クリックを待っている」という意味であり、ブラウザーの故障ではありません。ブラウザーペインの承認カードをクリックするようユーザーに伝え、その後、同じナビゲーションを一度だけ再試行してください。
- エディターのタブは 1 つだけにして、セッション全体で再利用します。
preview_start {url}は常に新しいタブを開きます(同一 URL への呼び出しでも毎回reused: falseになります)。「Keep the visible editor aligned」のカード提示回数ルールに従ってカードを発行する呼び出しとして扱い、タブ再利用の呼び出しとして扱わないでください。既存のエディタータブを再読み込み、または再度フォーカスするには、navigate {url, tabId}を使用します。tabs_createは避けてください。 - エディターが「Loading workspace / Syncing project data」のまま 20 秒以上動かない場合(新規プロジェクトで初回同期に時間がかかっている場合)、同じ URL にもう一度移動します。セッション Cookie はすでに設定されており、ブートトークンは有効期間内であれば複数回使用できるため、再読み込みしても問題なく、通常はすぐに読み込まれます。
- ブラウザーツールが表示中のツール一覧にない場合は、フォールバックで名前付きの Markdown エディターリンクを提示する前に、
ToolSearchで「Claude_Browser」、「navigate」、「preview_start」を検索して見つけてください。最初に表示されたツール一覧にブラウザー操作が見当たらないという理由だけで諦めないでください。検出に失敗した場合に限り、名前付きの Markdown エディターリンクに切り替え、その際は失敗した手順を明記してください。
タブを開いた後、特に新規プロジェクト、セッション開始直後、メディアの多いエディター状態では、ChatCut の読み込みに時間がかかる場合があります。ペインからタブを開いた、またはフォーカスしたと報告されたら、引き継ぎは完了したものとして扱ってください。ページが完全に読み込まれるまで待ったり、ブラウザーを繰り返し確認したり、エディターが開いたことを確かめるためだけに慎重な目視確認を追加で行ったりしないでください。ChatCut プラグインのワークフローを続け、作業自体で画面上の確認が必要な場合にのみブラウザーを確認してください。
ユーザー向けに直接表示する Markdown リンクや外部ブラウザーリンクには、クリーンな editorUrl を使用し、ホストのみで使われる editor-boot-token クエリパラメーターは含めないでください。内部ブラウザー URL しかない場合は、ユーザーに表示する前に editor-boot-token を削除してください。
エディター URL を送信または開くときは、会話でユーザーが使用している言語に基づいて、エディターサイトのパスをローカライズしてください。クリーンな直接リンクの editorUrl と内部ブラウザー URL(browserHandoff.url)の両方に、同じロケールパスのルールを適用してください。中国語のユーザーには <editorSiteDomain>/zh/<rest-of-url>、スペイン語のユーザーには <editorSiteDomain>/es/<rest-of-url> を使用し、それ以外のユーザーにはロケールプレフィックスのないデフォルトの英語 URL を使用してください。各 URL のバリエーションでは、同じエディターサイトのドメインと、残りのパス、クエリ文字列、ハッシュをすべて保持してください。
ツールから返された正確なブラウザーハンドオフ URL またはエディター URL を使用してください。ブラウザーを操作するために、推測した ChatCut MCP URL、非推奨の MCP ルート、または app-bridge エンドポイントを呼び出さないでください。
表示中のエディターを最新の状態に保つ
表示中のエディターは一度限りの確認用ではなく、ライブワークベンチです。インポート、文字起こしの待機、生成、タイムラインの組み立て、エクスポートの準備、最終的な視覚確認など、時間のかかる表示作業を行う前に、表示中の画面が引き続き最新のプロジェクト ID と一致していることを確認してください。表示画面を利用できない場合や、別のプロジェクトが表示されている場合は、カード/リンクに切り替える前に、現在のエディター URL を一度開くか表示してください。
チャット内の preview_start カードは、ユーザーがブラウザーペインを開くための唯一の入口です。Markdown のエディターリンクを開くと、外部ブラウザーが起動します。エージェントはペインが開いているかどうかを確認できません。エディターはライブ同期されるため、すでに開いているペインには、新しい編集内容がリロードなしで反映されます。完了時のチェックポイントでは、コンテンツを最新に保つためにブラウザーを呼び出す必要はなく、navigate はチャットカードを表示しません。
次の 2 つの主要なワークフローのタイミングで、preview_start カードを自動的に発行してください。
- プロジェクトを初めて作成したとき、または表示作業の対象にしたときは、すぐに発行します。ユーザーはエディターを開き、インポート、文字起こし、組み立ての進行をリアルタイムで確認できます。
- セッションで最初にレビュー可能な結果を報告した直後に発行します。最初のカードを見逃したユーザーが、最も確認したいタイミングで使える代替の入口になります。表示順序を必ず守ってください。まず通常のアシスタントテキストとして結果の報告をすべて書き、それから
preview_startを呼び出して、ターンの最後のアクションとし、ターンを終了します。ツール呼び出しの後まで報告を先送りせず、カードの後にテキストを出力しないでください。
この 2 つのタイミングの間は、ユーザーの次のアクションに合わせて、エディターへの入口を適切な位置に保ってください。初回のカードの後に、ユーザーにメディアのアップロード、方向性の選択、または返答を求める引き継ぎ案内よりも大幅に下へ、まとまったツール操作、説明、または確認事項が続いた場合は、その案内の後に preview_start を一度再発行してください。最初のプロジェクトのターンが終了したという理由だけで再発行しないでください。また、同一の preview_start カードを連続して 2 回発行したり、短い設定テキストだけを挟んで発行したりしないでください。
請求と料金に関する例外
ChatCut のツールが料金または請求に関する URL を返した場合は、外部ブラウザーリンクとして open <url>/システムブラウザー経由で提示してください。請求をエディターへのハンドオフとして扱わないでください。
コネクターの境界
ChatCut プラグインへのアクセスは、コネクター認証と、ユーザーがアクセスできるプロジェクトに基づきます。プロジェクトを対象とする操作では、ツールの結果、エディター URL、または現在のプロジェクト状態から取得したプロジェクト ID を使用してください。非公開の ID を推測しないでください。
エディター操作用のブリッジはありません。エージェントは、エディター UI にローカルファイルの選択、再リンク、アップロード、エクスポート、またはキャプチャを依頼できません。ローカルファイル、添付ファイル、ブラウザー内のファイル、公開 URL は、タイムラインで使用する前に、サポート対象のメディアインポート経路を通じてプロジェクトに取り込む必要があります。
- ブラウザペインでのローカルインポート(
asset-importスキル: ループバックヘルパー + 合成ドロップ)— ローカルファイルを可視エディターに渡すための、承認された Claude Code の経路です。ユーザーが Finder からドラッグするのと同じように動作します。 - シェルがローカルで読み取れるファイル向けの、バンドルされたアップロードヘルパー(
asset-importスキル)。ペイン経由の経路が利用できない場合に使用します。 - クライアントが保持するバイト列には
import_mediaを使用します。 - 公開 URL については、まず選択したメディアをローカルにダウンロードし、そのファイルに対して
import_mediaを使用します。
インポートの準備状態は、すべてのアセット/すべてのバイト列を対象とした単一のゲートとしてではなく、アセットごと、操作ごとに扱ってください。assetId が登録されたら、その元のバイト列がアップロードされている間も、タイムラインへの配置やその他のメタデータのみの作業を続けてください。トーキングヘッド編集では、元の動画やその他のソースアセットがまだアップロード中であっても、文字起こしが利用可能になり次第、トランスクリプトベースの A-roll 作業を開始してください。track_progress target:"upload" を待つのは、エクスポート、pull_asset、リモートでのフレームデコードなど、実際にそれらのクラウド上のバイト列を必要とする作業の前だけにしてください。
ローカルファイルのアップロード/インポート要求が、プライベートなファイル内容を ChatCut の外部 API に転送することになるという理由で、ホストのポリシーまたは自動レビューによって拒否された場合は、ChatCut のワークフローを直ちに停止してください。ローカル編集、ローカルのみでの登録、ローカルレンダリング、ソースの検査、その他の回避手順にフォールバックしないでください。ファイルをアップロードする権限がエージェントに拒否されたことをユーザーに伝え、右側のパネルの ChatCut エディターでメディアをアップロードするか、アップロードに対するより高い権限でセッションを再実行するよう指示してください。
生のソースフレームの検査には、ファイルが利用可能な場合は ffmpeg などのホストネイティブのツールでローカルのソースファイルを直接使用してください。インポートヘルパーの sourcePath を含め、エージェントが元のパスを把握している場合は、ソースフレームを検査するためだけにリモートの ChatCut ツールを呼び出さないでください。アセットがエディターでアップロードされたか、プロジェクトのストレージ/キャッシュにのみ存在するためにエージェントが元のファイルを把握していない場合は、プロジェクトのアセット ID を指定して inspect_asset を使用してください。ホスト型のフレームツールは、Lambda でレンダリングされた各フレームを個別の一時的な画像リソースリンクとして返します。ホストが署名付き URL を直接検査できない場合は、curl で完全にシェルクォートした URI を使用して各画像を mktemp フォルダにダウンロードし、ローカルファイルを個別に検査するか、一時コピーをコンタクトシートに結合してください。合成済みタイムラインの証明には views:["viewer"] を指定した preview_timeline を使用し、ピクセルを検査せずに視覚的検証を主張しないでください。
ChatCut プラグインのワークフローでは、ローカルの ffmpeg/ffprobe は読み取り専用のソース検査と編集以外の診断にのみ使用します。つまり、メタデータのプローブ、ストリームの確認、ローカルで読み取り可能なソースファイルからの静止フレームの抽出です。ローカルの ffmpeg を使用して、事前編集済み、事前合成済み、キャプション焼き込み済み、ミックスダウン済み、その他平坦化された動画を ChatCut の編集タスクの主要な成果物として作成しないでください。アップロード/処理時間、多数のソースクリップ、レビューを迅速化したいという願望は、ローカルで平坦化する理由にはなりません。ユーザーに表示される編集は、編集可能な ChatCut プロジェクトの状態のままでなければなりません。つまり、ソースアセットとタイムラインアイテム、トリム、キャプション、オーディオアイテム、オーバーレイ、エフェクト、およびレンダリングされたファイルが必要な場合の ChatCut エクスポートです。
エクスポートとキャプチャのフローはコネクター専用のままです。submit_export の代替として、ブラウザ/エディターのタブにエクスポートやキャプチャを要求しないでください。
ChatCut ネイティブの内部チャットコンポーネントは、このホストでは直接レンダリングされません。それらの箇所は通常のチャットまたは widget-forms Claude Code アダプターに変換してください。
編集によって発話された単語、ポーズ、テイクのやり直し、またはトランスクリプトの選択が変わる場合は、主要な編集方法として物理的にタイムラインから削除するのではなく、talking-head-guide のスクリプトベースの音声編集ワークフローを使用してください。
キャプションが有効な場合は、更新する前に、タイムラインまたはトランスクリプトに関する一貫した作業をひとまとまり完了してください。apply_script、clean_script、または manage_transcript の action:"fix" をまとめて呼び出した後は、キャプション固有の編集を始める前、またはキャプションが正確であると主張する前に、edit_captions の action:"refresh" を1回実行してください。個々の変更の間に更新したり、キャプションが無効なときに更新したりしないでください。ツールからキャプション更新の通知が返された場合は、次にひとまとまりの作業を完了した時点で対応してください。
Motion Graphics では、create-motion-graphics を読み込み、現在の ChatCut ツールスキーマに従ってください。Motion Graphic の JSX をリポジトリ、ローカル HTTP サーバー、一時ファイル、または推測したバックエンドのワークスペースに配置しないでください。
メディアのインポート、文字起こし、トーキングヘッドの編集、Motion Graphics、生成、音声、音楽、検証、書き出し、製品サポート、エラー復旧には、該当する ChatCut タスクスキルを使用してください。共通の制作ノウハウは正規のエージェントツリーに従い、ホスト固有の動作はこのプラグインのアダプターに従ってください。