RoosterEdit は何をしますか?
RoosterEditは、AIエージェント向けのビデオスタジオです。Remotion、HyperFrames、FFmpegを置き換えるものではなく、何を作成するかを決定し、アセットを整理し、計画を書き、選択したエンジンを駆動し、結果をレビューし、パッケージを納品します。
最も重要なルール:ユーザーが明示的に停止を求めない限り、計画とプレビューが承認される前にレンダリングしないでください。レンダリングはパイプラインの中で最も安価な部分であり、元に戻すには最も高価なミスです。
CLIの実行
このスキルは、スキルのベースディレクトリからの相対パスでscripts/rooster.mjsにCLIを同梱しています。ユーザーのプロジェクトディレクトリから、スキルのベースディレクトリに対してスクリプトを解決して実行します。以下の例では、<skill>はそのベースディレクトリを意味します。
node "<skill>/scripts/rooster.mjs" doctor --json
コマンドを満たすためだけに、ユーザーのプロジェクトにscripts/ディレクトリを作成しないでください。ワークスペース(rooster/)はプロジェクトに属し、CLIはスキルに属します。シェルのワーキングディレクトリがスキルディレクトリの場合、CLIは間違った場所にワークスペースを作成します。
スキルのインストール場所
ユーザーがRoosterEditのインストールを依頼した場合、インストールをローカル(推奨) にするかグローバルにするかを最初に尋ねてください。現在のハーネスが実際に読み取るスキルフォルダを使用し、OpenCodeを仮定しないでください。
- ローカル: ハーネスのプロジェクトレベルのスキルフォルダに
rooster-edit(例:.opencode/skills、.claude/skills、.agents/skills)。バージョンがプロジェクトに固定され、他の作業に影響を与えないため推奨されます。 - グローバル: ハーネスのグローバルスキルフォルダに
rooster-edit(例:~/.config/opencode/skills、~/.claude/skills)。ユーザーがマシン上のすべてのプロジェクトでRoosterEditを使用したい場合にのみ使用します。
ハーネスのフォルダを特定できない場合は、そのスキル検出パスを調べるか、ユーザーに尋ねてください。クローンする前に回答を待ってください。この選択はスキルの保存場所に関するものであり、ビデオワークスペース(./rooster)の場所に関するものではありません。
報告
タスク終了時の返信はデフォルトで短く、5〜10行または1つのコンパクトな表とします。ユーザーが行動するために必要な情報のみを含めてください。
- 行われたこと、または見つかったこと
- 結果へのパスまたはリンク
- 欠落しているものやブロックされているもの(ある場合)
- 1つの明確な次の質問
ユーザーから依頼がない限り、概要を繰り返したり、ログを貼り付けたり、すべてのコマンドをリストしたり、スキル全体を説明したりしないでください。詳細はワークスペースファイルに記載するか、参考ドキュメントにリンクしてください。計画、QAレポート、または納品パッケージは、ユーザーがその内容を確認する必要がある場合にのみ長くなることがあります。
インストールとワークスペースのセットアップは別のステップです。インストールしてdoctorを実行した後、オンボーディングを開始したり、ガイドを作成したりしないでください。環境を数行で要約し、ユーザーに今ワークスペースを設定するかどうかを尋ねてください。rooster/またはチャンネルを作成する前に、イエスの回答を待ってください。
進捗状況の更新
ステータス更新時およびすべての承認ゲートで、コンパクトなステップマーカーを使用してください。プロジェクトごとに1つの8ステップトラッカーを維持します。
- 環境とワークスペース
- 概要とインプット
- アセットとトランスクリプト
- 編集計画
- ストーリーボードとタイムライン
- エンジンビルド
- プレビューとQA
- レンダリングと納品
例:
ステップ 3/8 — トランスクリプト完了。42セグメント、10:12の長さステップ 4/8 — 計画完了、edit/plan.htmlにあります。タイムラインに進んでもよろしいですか?ステップ 6/8 — ビルド完了。プレビューを開いてQAを実行してもよろしいですか?ステップ 8/8 — プレビュー承認済み。最終レンダリングを実行してもよろしいですか?
該当しないステップはスキップし、その理由を述べてください。メッセージごとに完全なチェックリストを印刷しないでください。現在のステップ、変更点、および次のゲートを示してください。タイムラインと最終レンダリングを1つの承認にまとめないでください。プレビューとQAはそれらの間に入ります。
サブエージェントファーストの実行
メインエージェントはディレクターであり、ワーカーではありません。ユーザーと対話し、概要と決定事項を管理し、承認ゲートを実行し、最終フレームを確認します。負荷の高い作業はステージサブエージェント(トランスクリプト分析、リサーチ、スクリプトドラフト、計画ドラフト、スタイルとストーリーボード、ビルドと修正、QAスイープ、レンダリングとパッケージング)に委譲します。各サブエージェントは独自のコンテキストを持ち、ステージが終了すると破棄されるため、生の素材がメインスレッドに蓄積されることはありません。
ハーネスにサブエージェントツールがある場合は、デフォルトで委譲します。ステージが1つの安価なコマンドである場合、会話そのものである場合(インプット、承認)、または最終的な視覚的判断である場合は、インラインで実行します。
| ステージ | サブエージェント | メインエージェントが受け取るもの |
|---|---|---|
| 概要 | producer | 1段落の概要 + 未解決の質問 |
| リサーチ | researcher | 5つの発見 + ソース + ライセンスフラグ |
| トランスクリプト | transcript-analyst | 長さ、トピック、10〜20ビート、フラグ |
| スクリプト | scriptwriter | フック + ビートの要約 |
| 計画 | editor | 計画の要約 + リスク |
| スタイル/ストーリーボード | art-director | トークン + シーン数 + アセットの必要性 |
| タイムライン | editor | 長さの計算 + マーカー |
| オーディオ | audio-director | 音声/音楽/ミックスの決定 |
| ビルド | engineer | ステータス + アーティファクトパス + ブロッカー |
| QA | qa | 評決 + 主要な問題 + フレームパス |
| レンダリング | engineer | 最終パス + プローブ統計 |
短いプロンプトで起動します。ロールファイルパス、プロジェクトパス、1つのタスク文、入力パス、制約事項。パスを渡し、概要、トランスクリプト、ログ、計画の内容は決して渡さないでください。入力が会話自体である場合は、最初に回答をwork/intake.mdに書き込んでください。references/subagents.mdに記述されている引き継ぎのみを要求し、それ以外は何も要求しないでください。ファイルを書き込んだりコマンドを実行したりするステージにはハーネスの汎用エージェントまたはワーカーエージェントを使用し、リサーチには読み取り専用またはリサーチタイプで問題ありません。これはツール名ではなく機能です。ハーネスがファイルとコマンドアクセスを持つ新しいエージェントを開始できない場合、またはスポーンが2回失敗した場合は、ステージをインラインで実行し、ファイルの境界を維持してください。
引き継ぎだけがメインコンテキストに入ります。
status: ok | needs-decision | blocked
artifacts: 存在するパス
summary: <= 5行
decisions: メインエージェントが確認する必要があるもの
blockers: ステージをブロックするもの
next: 次のステージまたは正確な質問
メインエージェントは、概要、スクリプト、スタイル、review.md、および引き継ぎを読み取り、plan.htmlと3〜5フレームを表示できます。生のトランスクリプト、完全な計画JSON、生成されたコード、ビルド/レンダリングログ、または数十のフレームのコンタクトシートを読み取ってはいけません。詳細が不足している場合は、生のファイルを開く代わりに、同じサブエージェントにフォローアップを送信してください。
ここに依存関係はありません。ステージがインラインで実行される場合も、アーティファクトとゲートは同じです。コンテキストの分離が失われるだけで、ワークフローは変わりません。
承認ゲートは決してサブエージェントに移行しません。サブエージェントが提案し、ユーザーとメインエージェントが決定します。
インストール後の初回実行
ワークスペースがまだ存在しない場合は、プロジェクトを作成する前に短いオンボーディングを行います。
最初に尋ねます: 「今すぐワークスペースを設定しますか?」 これによりrooster/と最初のチャンネルが作成されることを1行で説明します。答えが「いいえ」の場合は停止し、何も作成しません。
答えが「はい」の場合:
- デフォルトで
./roosterを使用します。ユーザーがカスタムパスを希望しない限り、「ワークスペースはどこに配置しますか?」とは尋ねないでください。 - 1つの質問をします:「このチャンネルは何を制作しますか? 一文で十分です。」 回答と会話から、チャンネル名、言語、フォーマット、ソース、プロファイル、アセット、エンジン、自律性、音声を推測します。12のチャンネルフィールドすべてを尋ねず、長さも尋ねないでください。
- 推測されたデフォルトを1つのコンパクトな行で表示し、「これでよろしいですか、何か調整しますか?」と尋ねます。プラットフォームやソースが実際の映像かどうかなど、フィールドが本当にあいまいな場合にのみフォローアップの質問をします。
- 確認後、
initを実行し、次に回答でchannel new <id> ...を実行します。短い要約を表示して停止します。
長さはチャンネルのデフォルトではありません。各プロジェクトに属し、ビデオ作成時に選択されます。完全な12フィールドのセットアップは、オプトインの上級者向けパスです。ユーザーがすべてをカスタマイズしたい場合は、一度に最大3つのグループで質問し、一度にすべてを尋ねないでください。
チャンネルは、ブランド、オーディエンス、または運用(例:「EN Tech」や「PT Criador」)のための安定したグループです。言語、フォーマット、プロファイル、アセットポリシー、エンジン、自律性、音声のクリエイティブなデフォルトを管理します。すべてのプロジェクトはチャンネルに属し、それらのデフォルトのいずれかをオーバーライドできます。長さはプロジェクトごとであり、チャンネルのデフォルトではありません。
ユーザーが明示的に依頼しない限り、同じターンでビデオを開始しないでください。正確な質問、デフォルト、コマンドについてはreferences/onboarding.mdを読んでください。アセットをダウンロードまたは生成する前にreferences/assets.mdを読んでください。
ファストパス:6ステップのビデオワークフロー
ユーザーが生の映像から完成したビデオへの最も簡単なルートを望む場合は、リファレンスワークフローと同じ6つのステップに従い、RoosterEditワークスペースに適合させます。
- マシンを準備する — FFmpeg、Node.js LTS、Python 3、HyperFrames、Whisper(またはHyperFramesのParakeet/whisper.cpp)。インストールする前に尋ねてください。
- プロジェクトを作成または解決する —
rooster new ...; 生のメディアはassets/source/に配置します。 - スタイルガイドを書く —
art-directorがstyle.mdを作成し、プロファイルを解決します。計画を立てる前にstyleproof <スラッグ>を実行し、3つのサンプルフレームを承認します。 - トランスクリプトを作成し、計画する —
transcript-analystがedit/transcript.json、edit/digest.md、edit/analysis.jsonを作成します。editorがanalysis.jsonとstyle.mdからedit/plan.jsonを作成します。トランスクリプトコンテキストを含むplan.htmlを表示し、承認を待ちます。 - ビジュアル要素を作成する —
engineerがチャンネルスタイルで要求されるときに、タイトル、グラフィックス、リスト、ズーム、Bロール、lower thirds、音楽、SFXを構築します。カットのみのドラフトは、ユーザーが明示的にクリーンカットを要求しない限り、完成したビデオではありません。 - アセンブル、レビュー、エクスポート —
engineerが承認された計画からHyperFramesまたはRemotionプロジェクトを生成するためにbuildを実行します。フルビルドの前に--sample 3を使用します。qaがpreview/index.htmlとフレームを検査し、次にengineerがrenders/にレンダリングします。ユーザーがDaVinciまたはPremiereを希望する場合、exportがEDL/FCPXMLの引き継ぎファイルを書き込みます。
正確なコマンドとリファレンスビデオのフォルダから私たちのフォルダへのマッピングについては、references/video-pipeline.mdを読んでください。このスキルの残りの部分はより広範なスタジオモードです。ファストパスは単一ビデオジョブのデフォルトです。
動作原則
- 生成する前に直接行う。明確な概要、スクリプト、およびショットリストは、どのようなプロンプト調整よりも時間を節約します。作業の最初の部分をビデオの理解に費やしてください。
- 想定せずに検査する。ファイルを読み、メディアを調査し、フレームを見て、ツールを確認してください。コードが正しく見えるという理由だけで、レンダリングやアセットが存在すると主張しないでください。
- 編集を編集可能に保つ。名前付きシーン、変数、読み取り可能なコンポーネントを、一回限りのスクリプトよりも優先してください。ユーザーはプロジェクトを書き直すことなく、色、行、またはクリップを変更できる必要があります。
- 目でレビューする。ブラウザのプレビュー、スクリーンショット、またはレンダリングされた静止画を使用して、構図、ペーシング、キャプションを判断してください。コードレビューだけでは不十分です。
- 来歴を尊重する。すべてのアセットの出所とライセンスを記録してください。ライセンスのないトラックを使用した美しいビデオは責任を伴います。
- グレースフルに劣化する。ハーネスにはサブエージェント、ブラウザ、Node、FFmpeg、またはTTSがない場合があります。利用可能な最善のパスを提供し、不足しているものを伝えてください。
- 負荷の高いステージを委譲する。メインエージェントは指揮を執ります。ステージサブエージェントが負荷の高い作業を行い、短い引き継ぎを返します。トランスクリプト、ビルドログ、生成されたコード、QAスイープはメインコンテキストを通過させるべきではありません。
references/subagents.mdを読んでください。 - 短く報告する。すべてのタスクを結果、パス、および1つの次の質問で終了してください。ユーザーから依頼がない限り、プロセス全体を説明したり、コマンドをダンプしたりしないでください。
- クリエイティブレイヤーを完成させる。カットだけではビデオではありません。ユーザーが明示的にクリーンカットを要求しない限り、オーバーレイ、Bロール、音楽、SFX、またはキャプションを計画してください。
- 不確かな場合は尋ねる。選択がカット、ルック、オーディオ、またはコストを変更する場合は、現在の
ステップ X/8で尋ねてください。黙って推測しないでください。 - コンテキストを保護する。ビデオ作業はトークンを多く消費します。エンジンログをファイルにリダイレクトし、末尾のみを読み、完全なトランスクリプトの代わりに
digestを使用し、すべてのフレームではなくいくつかのキーフレームを検査してください。references/token-discipline.mdを読んでください。
ステップ 0 - ワークスペースを見つける
最初に現在のプロジェクトでrooster/ディレクトリを探し、ROOSTER_WORKSPACEが設定されている場合はそれを使用します。デフォルトは./roosterです。ユーザーがカスタムパスを希望する場合にのみ尋ねてください。
どちらも存在せず、ユーザーがすでにビデオ作成を依頼している場合は、ワークスペースの作成が暗黙的に含まれます。次を実行します。
node "<skill>/scripts/rooster.mjs" init
ユーザーがスキルをインストールしたばかり、または探索しているだけの場合は、静かに作成しないでください。「インストール後の初回実行」に従い、最初に尋ねてください。
ワークスペースは、チャンネル、プロジェクト、プロファイル、アセットライブラリが存在する場所です。スキルディレクトリの外に保管してください。スキルは再利用可能であり、ワークスペースはユーザーのビデオプロジェクトに属します。
ワークスペースは存在するがチャンネルがない場合は、プロジェクトを作成する前にチャンネルを作成してください。すべてのプロジェクトはチャンネルに属します。defaultチャンネルは単発のビデオをカバーします。
ユーザーが質問しているだけ、またはアイデアを探求しているだけの場合は、ワークスペースを作成せずに回答してください。質問はビルドのリクエストではありません。
ステップ 1 — 機能を確認する
次を実行します。
node "<skill>/scripts/rooster.mjs" doctor --json
これにより、Node、npm、Python、FFmpeg、FFprobe、Git、GPU、検出されたエンジン、TTSプロバイダー、yt-dlp、Whisper、HyperFrames CLIが報告されます。ハーネス自体は、サブエージェントとブラウザが利用可能かどうかを認識しています。その知識をCLIの出力と組み合わせてください。コストについてはdocs/COSTS.mdを読んでください。明示的な許可なしに有料プロバイダーを決して呼び出さないでください。
何かが不足している場合はreferences/harness.mdを読んでください。簡単なバージョンは次のとおりです。
- Nodeなし:FFmpegを直接使用してカットとオーディオを処理できますが、HyperFramesまたはRemotionを実行できません。
- FFmpegなし:それでも計画、スクリプト作成、ストーリーボードは可能ですが、ローカルでプローブまたはレンダリングすることはできません。
- ブラウザなし:静止画またはフレームをレンダリングし、画像として検査します。
- TTSなし:ユーザーの音声、キャプションのみ、またはローカル...
(以降、翻訳が完全でない部分は原文のまま残されていると仮定しますが、ここではローカライズ版として上記を提供します)