Communitygithub.com

robertomanfroi/videos-opus

ポータルスキル:スマートフォンで撮影した動画を編集し、リールに変換するための入り口。常にこのスキルを使用して、動画編集のリクエストを処理し、適切なスタイルスキルに委任して最終動画を完成させます。

videos-opus とは?

このスキルは、ユーザー(主にクリエイター)がスマートフォンで撮影した動画を編集し、リール(ショート動画)に変換するための入り口となる多段階ワークフローを提供します。ユーザーはパスやターミナル操作を知らなくても、動画ファイルのパスを貼り付けたり、「この動画を編集して」と自然言語でリクエストするだけで、自動的に最新の動画を探し出し、適切な編集スタイル(スマートフォン風、エディトリアル風、解説風、コラージュ風、広告風)を選択して、専門のスタイルスキルに処理を委任します。このスキルはClaude Code用に設計されており、動画の検索、スタイルの決定、プロファイルの読み込み、必要な素材(スクリーンショットなど)の確認、そして最終的なレンダリングと納品までを一貫して行います。作業中は進行状況をユーザーにわかりやすく伝え、編集後も細かな調整リクエストに応えることができます。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/robertomanfroi/videos-opus/tree/HEAD/kit/.claude/skills/editar

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

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

ドキュメント

編集 — 入り口

ユーザーはフォルダ、パス、ターミナルについて知る必要はありません(知る必要もありません)。スマートフォンで撮影し、動画をコンピュータ(ダウンロード、デスクトップ、WhatsApp Web、Google Driveなど)に転送し、日本語で話しかけます。ユーザーが見るのは、応答と完成した動画だけです。簡潔な日本語で、専門用語は使わずに話してください。

M=.claude/skills/_motor · K = videos-opus スキルのランチャー: "<VO>\bin\node.exe" "<VO>\scripts\video.mjs" kit、ここで <VO> は videos-opus スキルのフォルダ(このガイドを読むように指示した SKILL.md があるフォルダ)です。これはポータブルプログラムをパスに追加し、キットのワークフォルダ($K pasta で表示)ですべてを実行します。このガイドのパス(video-projects/…、prontos/…、perfil.json)はすべてこのワークフォルダからの相対パスです。ファイルを読み書きするには、このパスと結合してください。$K --em <サブフォルダ> … は、サブフォルダ内で実行されます。npx、Python、または単独の node は使用せず、すべて $K を経由します。

プレミアムビジュアル標準(必須、すべてのスタイルに適用): 文字の輪郭線は使用禁止、光線/スパイラル、火花、白いフラッシュ、震えも禁止。読みやすさはソフトなシャドウまたはダークベールで確保。動きはゆっくりと滑らかに。サウンドは控えめに。詳細は videos-opus スキルの SKILL.md の「プレミアムビジュアル標準」セクションを参照してください。これはスタイルガイドの指示よりも優先されます。

ステップ 0 — 再開または調整?

新しい動画を探す前に、状態を確認してください:

  • 調整リクエスト(「この部分を削って…」「字幕を変えて」「最後の動画」)→ prontos/ULTIMO.json を読む:最後に納品した動画の slug とプロジェクトが書かれています。そのプロジェクトの調整に直接進んでください。
  • 何らかの video-projects/*/projeto.json で etapa が entregue 以外で、過去24時間以内に変更されたものがある → 確認:「<slug> という動画が途中(<etapa> で停止中)です。続けますか?」「はい」の場合、その段階から再開します。
  • レンダリング進行中(video-projects/<slug>/renders/progresso.json に fase: renderizando がある)→ $K node $M/renderizar.mjs <slug> --esperar を実行。

ステップ 1 — 動画を見つける

ユーザーの発言実行するコマンド
パスを貼り付けた(引用符の有無を問わず)$K node $M/achar-video.mjs "<パス>"
「最後の動画」「さっき送ったやつ」またはなし$K node $M/achar-video.mjs --ultimo
「どの動画だと思う?」または前回複数候補があった$K node $M/achar-video.mjs

JSON {ok, video, motivo, aviso, confirmar, candidatos[], checks{}} を読んでください:

  • ok: true かつ confirmar: false → video をそのまま使用します(スクリプトはすでに meus-videos/ にコピーを保存しています)。1行で確認:「IMG_2041.mp4 を見つけました。今日の14:02、3分 — 編集します。」
  • ok: true かつ confirmar: true → 時間をかける前に確認を取る:「これですか? IMG_2041.mp4、昨日の14:02受信、3分?」(meus-videos にないか、2時間以上前に受信したもの — ダウンロードフォルダ内の WhatsApp 動画の可能性があります)。
  • aviso(3分を超える動画)→ その旨を伝え、どの部分を使うか尋ねます。リールは最大90秒です。
  • motivo: "vários candidatos; escolher" → 最大4つの candidatos を名前、日時、サイズとともに表示し、どれか選んでもらいます。その後、選択されたパスでもう一度実行します。
  • motivo: "nenhum vídeo recente encontrado" → 説明:「新しい動画が見つかりませんでした。スマートフォンからコンピュータに動画を転送してください(例:自分宛てに WhatsApp Web で送信してダウンロード。ダウンロードフォルダに保存されます)。準備できたら教えてください。または、ファイルのパスをここに貼り付けてください。」
  • その他の motivo(音声無し、横向き、短すぎる、転送中、容量不足)→ 理由を1文で伝えて停止します。横向き動画の場合は、縦向きで再撮影するよう提案してください。使えない動画に何分も費やさないでください。

スクリプトはファイルの拡大が止まるのを待ちます(ダウンロード中のファイルを考慮)。回避しようとしないでください。

ステップ 2 — スタイル

リクエストを理解します:

ユーザーの発言スタイルスキル
スマホ、生、「Instagramで編集したみたい」、ナチュラル、シンプル、スタイル指定なし、動画は本人が話しているcelularestilo-celular
エディトリアル、雑誌、スタイリッシュ、エレガント、「編集された感」、セリフ体フォントeditorialestilo-editorial
解説、ニュース、説明、「上に画像をのせて」、教育的explicativoestilo-explicativo
コラージュ、切り抜き、切り抜いた写真、スクラップブックcolagemestilo-colagem
広告、アド、トラフィック、スポンサー付き、販売、オファーanúncioestilo-anuncio

ユーザーがスタイルを指定しておらず、推測できない場合は、1回だけ尋ね、カタログを5行(名前+1フレーズ)で表示します。そのスタイルのスキルがこのインストールにまだ存在しない場合は、その旨を伝え、スマホスタイルを提案します。

ステップ 3 — プロフィール

キットのワークフォルダにある perfil.json を読んでください。存在しないか、nome/usuario が不足している場合は、.claude/skills/perfil-criadora.md に従い、1回のメッセージですべてを尋ねます。続行する前に保存してください。

ステップ 4 — 追加素材(意味がある場合のみ)

  • スクリーンショット(デフォルト:なし)。動画が結果、数字、コメント、投稿、プロフィールについて言及している場合、今ここで、文字起こしの前に、1行で尋ねます:「動画にスクリーンショットを入れますか? 今すぐデスクトップの マイスクリーンショット フォルダに入れてください。なければ入れずに進めます。後で調整として追加することもできます。」 返答がないからといって止まらないでください。返答がなければ、スクリーンショットなしで進め、納品時に調整として提供します。これは、スタイルスキルが正確な画面を要求する場合よりも優先されます。最大で最新の12枚のスクリーンショットだけを、コンタクトシートで確認します。
  • 広告:商品/オファーと CTA を、1つの質問で尋ねます。
  • スクリーンショット、数字、ロゴ、証言を勝手に作成しないでください。不足している場合は、正確な画面を要求するか、省略します。

ステップ 5 — 委任

選択したスタイルの SKILL.md を読み、そのフローの最初から最後まで(プロジェクト → カット → 確認 → スクリーンショット → コンポジション → スナップショット → renderizar.mjs)従います。プロジェクトスラッグ:トピックの2~4語、小文字、ハイフン区切り(duas-noites-engrene)。novo-projeto が名前がすでに存在すると言った場合は、提案された名前(-2)を使用します。

各時間のかかるステップの前に、1行:「文字起こし中 — 数分かかる場合があります。」 / 「最終動画をレンダリング中…」 コラージュスタイルの場合は、最も時間がかかること(人物の切り抜き+レンダリング:GPUなしのPCでは40分を超える可能性あり)を事前に伝え、続行するかスマホスタイルを希望するか尋ねます。切り抜きはバックグラウンドで実行します。

ステップ 6 — 納品

前のステップの renderizar.mjs は、すでに確認、レンダリング、検証、prontos/ とデスクトップの 編集済み動画 フォルダへのコピーを行います — prontos.mjs を再度実行しないでください。コード3で終了した場合は、--esperar を実行して PRONTO が表示されるまで待ちます。

最終応答は3~5行で:

  1. 場所:「準備完了! デスクトップの 編集済み動画 に、duas-noites-engrene-2026-10-09.mp4(65秒)としてあります。」
  2. カットした内容:間、繰り返し、破棄した部分(秒数ではなく、ユーザーの言葉で)。
  3. 使用したもの:スクリーンショットとタイトル。
  4. 迷った点:文字起こしが誤っている可能性のある名前、確信が持てなかった部分。
  5. 調整方法:「何か変更しますか? 例:「価格の部分を削って」「字幕を少し下に」などと指示してください。」

動画を公開、送信、削除しないでください。元のファイルは元の場所に残ります(キットの meus-videos/ にもコピーが残ります)。

調整(納品後にユーザーが戻ってきた場合)

ユーザーがリクエストした箇所のみを、prontos/ULTIMO.json のプロジェクト(またはユーザーが指定したプロジェクト)で変更し、$K node $M/renderizar.mjs <slug> で1回レンダリングします。クイックリファレンス:

リクエスト変更するファイル再実行する処理
部分的な削除/短縮assets/keeps.jsonカット → 文字起こし → 組み立て → レンダリング
字幕の上下調整reel.json(capTop)組み立て → レンダリング
スクリーンショット/タイトルの交換・削除src/index.template.html組み立て → スナップショット → レンダリング
字幕の誤字修正assets/caption-fixes.json({"誤": "正"}、大文字/句読点は無視)組み立て → レンダリング
別の単語を強調assets/enfase.json(エディトリアル)/ assets/emphasis.json(コラージュ)組み立て → レンダリング
別のスタイル別のスラッグで新しいプロジェクトすべて

renderizar.mjs は -v2、-v3 のように上書きせずに納品します。部分をカットした後は、要素のタイミングが変わります。組み立て前に ancoras.mjs で再計算してください。

Individual skills in this repo

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

関連スキル