Communitygithub.com

omniharmonic/agentic-video-editor

アセンブリ編集(アセンブリ、ラフ、ファイナルの3つのカット段階の最初)を作成します。すべてのカメラが同期され、発言者に応じて切り替えられ、何も削除されません。カメラがマッピングされ、カットリストが計画された後、またはユーザーがアセンブリを要求したときに使用します。マルチセッション録画のセッションごとのアセンブリも含みます。

agentic-video-editor とは?

このスキルは、映像編集ワークフローにおける最初のカット段階である「アセンブリ編集」を自動化します。すべてのカメラ映像を同期し、発言者に基づいて自動的にカメラを切り替えることで、会話全体を順序通りに構成します。この段階では一切の素材が削除されず、その後のラフカットやファイナルカットの安全な基盤となります。主にClaude CodeやCoder CLIなどのAIエージェントプラットフォーム上で動作し、`ave plan-cuts`、`ave assemble`、`ave render`、`ave handoff` という一連のコマンドを提供します。マルチセッション録画にも対応し、セッションごとに独立したアセンブリを作成したり、結合したアセンブリを生成できます。また、トリム機能により、録画の実際の開始点と終了点を人間と協力して決定し、セットアップトークや終了時の雑談を適切に除外できます。アセンブリが完了すると、EditDocのサマリーを確認し、バリデーションを実行してから人間のレビューに回すことが推奨されます。

対応~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/omniharmonic/agentic-video-editor/tree/HEAD/skills/ave-assembly

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

アセンブリ編集

アセンブリは、会話全体を順番に、適切なカメラで適切な話者を映したものです。まだ何もカットされていません。これはラフカット(クリーンアップ)の基盤となる安全なベースであり、人間が最初にレビューするものです。

ave plan-cuts <episode>          # ショット/リバースショット計画 -> work/cutlist.json   (スキル: ave-rough-cut のテイストノート参照)
ave assemble <episode>           # -> edits/assembly.vN.json   (EditDoc; docs/superpowers/specs 参照)
ave render <episode> --stage assembly --preset proxy     # クイック540pルック、オプション
ave handoff <episode> --stage assembly                   # 人間が使用するためにResolveに配置 (スキル: ave-resolve-handoff)

--canvas 1920x1080(デフォルト)で出力サイズを設定します。ソースはどのサイズでもレターボックスで拡大縮小され、歪むことはありません。

セッションと除外領域(1台のレコーダーでの複数テイク)

エピソード時間はレコーダーのタイムラインです。episode.json がセッションにカメラを割り当てると、各セッションは個別に計画およびアセンブルされます。

ave plan-cuts <episode>                  # すべてのセッションを計画 -> work/cutlist.s1.json, cutlist.s2.json   (または --session s1 で1つのみ)
ave assemble  <episode>                  # セッションごとに1つの名前付き編集: edits/assembly.s1.vN.json, assembly.s2.vN.json   (1つのみの場合は --session s1)
ave assemble  <episode> --combined       # セッションを結合し、カバーされていないギャップを削除 -> 名前なし edits/assembly.vN.json
ave cleanup <ep> --name s1   ;   ave final <ep> --name s1   ;   ave render <ep> --name s1   ;   ave handoff <ep> --stage assembly --name s1

セッションのアセンブリは、そのカメラが存在するスパンのみをカバーします。カメラカバレッジ(ドリフトを含む)の和集合を、オーディオとトランスクリプトにクリップしたものです。リードイン、セッション間のデッドスペース、テールは除外され、エラーにはなりません。カットリストとEditDocはこれらをリストします(regions、excluded)。e0 はレコーダー時間を保持するため、キャプションとクリーンアップは引き続き一致します。excluded を既知の情報(「4.3秒のリードイン、84.2秒のデッドスペース、3.2秒のテール」)と照らし合わせて確認してください。カメラに映っている人物が話しているにもかかわらず除外領域にある場合は、同期の問題を意味し、デッドスペースではありません。セッション内の穴(一方のカメラがもう一方より先に停止した場合)も同様にスキップされます。 シングルセッションのエピソードは変更されません。フラグも名前もなく、1つの assembly.vN.json のみです。ave status または ave resume で各セッションの段階をリストします。すべてのセッションがその段階を終えると、段階は完了と見なされます。

「実験的」またはその他の理由で異なるセッションは、人間が判断します。それを独自のタイムラインとして保持し、結合カットに加えるかどうかは人間が決定します。

トリム: 実際の開始と終了(クリーンアップ前のチェックポイント)

録画は準備の会話(「テイクワン…録画中…聞こえますか」)で始まり、停止についての会話で終わります。セッションのアセンブリは最初のカメラフレームから始まります。クリーンアップの前に、人間と実際のイン/アウトを見つけてください。

ave plan-cuts <ep>                                   # トリムスキャンはカットリストのセッションスパンを使用します
ave trim suggest <ep> [--session s1]                 # タイムスタンプ付きの証拠行 + 提案されたイン/アウトと信頼度。決して適用しません
ave trim set <ep> s1 --in 188.9 --out 7022.8         # 人間の決定を episode.json の `trim` に記録します(エピソード秒; セッションのないエピソードの場合は `main`)
ave assemble <ep> --session s1                       # トリムを尊重: より短いスパン、カットされた部分は `excluded` に追加され、依然として検証されます

suggest は、最初と最後の scan_minutes(6)内で、config/trim.default.yaml のフレーズ(スレート: 「テイクワン」、「録画中」、「テスティング」、「マイクを動かしてください」; ウェルカム; サインオフ; 「録画停止」、「終了しました」)と、episode.json の trim_hints: {"welcome": ["これはロングテーブルです"], "signoff": [...]} のショー固有の行を探します。証拠を読み、提案された時間に聞き、人間のために停止します。単なる「ウェルカム」はリハーサルのジョークであることが多く(信頼度0.4)、サインオフの後には残す価値のある雑談があるかもしれません。静かな開始にはトリムがまったく不要な場合もあります。ave resume は、誰も承認していない提案を未解決の質問としてリストします。トリムを変更するには、ave assemble を再実行し、次に ave cleanup を実行します(新しいバージョン; 何も上書きされません)。ave trim clear <ep> s1 でそれを忘れます。

引き渡す前の確認

  • ave status <ep>: assembly 完了、バージョン一覧表示。ave assemble を再実行すると、次のバージョンが書き込まれます。決して上書きしません。
  • EditDocのサマリーを読む: ビデオセグメント数、トランスクリプトの長さと等しい時間(またはセッションの場合はその regions の合計)、両方のカメラが使用されている。
  • reason のフォールバック理由(「camera not recording」)は、カメラの開始が遅れたことを意味します。人間に伝えてください。
  • 検証: python -c "from ave import editdoc; print(editdoc.validate(editdoc.load('edits/assembly.v1.json')))" で [] が出力される必要があります。

チェックポイント

構築したもの(長さ、ショット、どのカメラがどの話者をカバーしているか)を人間に伝え、Resolveでレビューするよう依頼してください。まだ何もクリーンアップされていないことを明確に述べてください。確認を得た後でのみ、ave-cleanup に進んでください。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

関連スキル