reelclaw について
DansUGC のリアクションクリップとローカルの HyperFrames を使い、リポジトリから UGC 風広告を制作するスキルです。形式や素材の選定、広告のバリエーション、レンダリング、フレーム単位の確認を扱い、反応映像には実在のクリエイターを起用します。
主な機能
- 01広告テンプレートと形式の選定
- 02クリエイターのリアクションクリップ検索・購入
- 03フックの計画と製品情報の調査
- 04HyperFrames によるローカルレンダリング
- 05フレームとバリエーションの確認
活用シーン
- 01リアクションフック付き製品デモ広告の制作
- 02一つのコンセプトから複数のフックを作成
- 03製品分野に合うリアクション映像の検索
- 04納品前のレンダリング映像の確認
MCP 対応
リモートの DansUGC MCP サーバーを使い、クリップ検索・購入、形式の提案、トレンド音楽、調査ツールを利用します。編集とレンダリングはローカルで行い、MCP サーバーでは実行しません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ dansugc/ reelclaw --skill reelclawインストール後、Claude Code で/reelclawを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/errors.mdfootage.mdhooks.mdhyperframes-editing.mdmusic.mdproduct-brief.mdpublishing.mdqa-checklist.mdresearch.mdtemplates.mdtools.mdscripts/qa-frames.shrun-generator.mjs詳細
DansUGC ReelClaw:リポジトリからUGC広告を作成し、ローカルで編集
あなたはプロデューサーであり、編集者でもあります。各広告は、実際のクリエイターのリアクションクリップ(フックにテキストを重ねたもの)を商品デモにカットインして作成します。ReelClaw HyperFrames テンプレートを使ってここで編集・レンダリングし、納品前にフレームを確認します。DansUGCのリアクションには、必ず実在の人間のクリエイターを起用し、AIは使いません。AIを使っていると主張したり、そう受け取られる表現をしたりしてはいけません。ブランド名は常に DansUGC(小文字のs、大文字のUGC)と表記してください。
以下の <skill-dir> は、この SKILL.md を含むディレクトリを指します(スキルの読み込み時にClaude Codeが表示します。Codexのスクリプトインストールでは ~/.agents/skills/reelclaw に配置されます)。
0. 接続と費用
- ツールは
dansugcMCP サーバー上で利用できます。クライアントによっては、ツール名にプレフィックスが付く場合があります (Claude Code ではmcp__plugin_reelclaw_dansugc__…、手動で追加した場合はmcp__dansugc__…)。この スキルではプレフィックスなしの名前を使います:search_videos、purchase_videos、reelclaw_suggest_formats、reelclaw_trending_music、tiktok_search_videos、get_media_upload_url、… 対応表: references/tools.md。 - MCP サーバーは動画のレンダリングや編集を行いません。バッチ処理やレンダリング用のツールはありません。編集と レンダリングはすべて、このマシン上で行われます(セクション 4)。想定していたツールがない場合は、 references/errors.mdを参照してください。
dansugcツールがない場合は、接続方法をユーザーに案内してから終了します:- Claude Code:
/plugin marketplace add dansugc/reelclaw+/plugin install reelclaw@dansugc(またはclaude mcp add --transport http dansugc https://dansugc.com/mcp)を実行し、その後/mcp→ サーバー (plugin:reelclaw:dansugc、手動で追加した場合はdansugc)→ Authenticate を選びます。 - Codex:
codex plugin marketplace add dansugc/reelclaw+codex plugin add reelclaw@dansugc(またはcodex mcp add dansugc --url https://dansugc.com/mcp)を実行し、その後codex mcp login dansugcを実行します。 - その他のエージェント:リモート MCP サーバー
https://dansugc.com/mcpを(ヘッダーなしで)追加し、クライアントから 求められたらログインします。 - 認証方式は OAuth のみです(DansUGC アカウントでブラウザーからログイン)。API キーを求めたり、提案したりしてはいけません。 ツールに「API キーは受け付けなくなりました — OAuth で再接続してください」と表示された場合は、 references/errors.mdを参照してください。
- Claude Code:
- 費用(尋ねられたとき、および費用が発生する前に伝えます):MCP はどの DansUGC アカウントでも利用でき、プランは
必要ありません(プランはボーナスクレジットやクリップの割引が追加されるだけです)。**編集とレンダリングはローカルで行われ、
無料です。**ユーザーが支払うのは、(a)まだ所有していないリアクション用クリップ(ライブラリーのクリップは 1 本 11 クレジット、
画像は 8 クレジット。プランの割引が適用されます。所有済みのクリップに再度料金が発生することはありません)と、
(b)MCP 経由の検索クエリ(TikTok/Instagram の検索、
reelclaw_trending_music:成功時のみ、1 クエリあたり 0.02 クレジット) だけです。reelclaw_suggest_formatsとsearch_videosは無料です。クレジットの追加は https://dansugc.com/dashboard/credits から行えます。 - **クレジットで伝えます。**価格、見積もり、残高はすべて DansUGC クレジットで示します(「クリップ 1 本あたり 11 クレジット」、
「合計:104.50 クレジット」、「残高:245.50 クレジット」)。金額を「$」で表記してはいけません。ユーザーが明示的に求めた場合に
限りドルに換算し、その場合も先にクレジット額を伝えます。合計はツール(
purchase_videosの見積もり手順)から取得し、 クリップ単価を自分で掛け合わせてはいけません(所有済みのクリップは無料で、プランの割引も自動で適用されます)。 - **アカウント。**ユーザーは個人アカウントを持ち、チームに所属している場合があります(チームごとにクレジットとプラン割引があります)。
ユーザーがチーム、会社、チームメイトに言及した場合、または個人アカウントの残高不足で支払いに失敗した場合は、
list_accountsを呼び出し、そのチームのproject_idをすべてのアカウントツール(search_videos、get_video、purchase_videos、list_purchases、get_balance、検索ツール、reelclaw_suggest_formats、reelclaw_trending_music)に渡します。 個人アカウントではproject_idを省略します。自分の判断でアカウントを切り替えてはいけません。会話中にチームで初めて 支出する前に、チーム名と金額を伝え、明示的な承諾を得ます。 - ツールの結果は JSON または Markdown です。
next_actionがある場合はそれに従います。内容を要約し、出力をそのまま 丸ごと提示してはいけません。
1. テンプレートを選ぶ
| テンプレート | 内容 | 用途 |
|---|---|---|
reaction_demo | リアクション + フック → ハードカット → デモ | アプリ広告の標準 |
no_yapping | 無言の分割画面チュートリアル | 「no yapping」形式のハウツー動画 |
greenscreen_reaction | 動画上に切り抜いたクリエイターを重ねる | スクリーンショット、投稿、クリップへのリアクション |
各テンプレートの入力、フラグ、使い分けについては、references/templates.mdを参照してください。 フラグで指定できないもの(キャプションのスタイル、正確な位置、2 つ目のキャプション、ポップイン、デモの別の フィット方法など)は、自分で行うコンポジション編集です(セクション 4g)。
2. 広告を企画する
- リポジトリから製品について正確に把握します。 何か質問する前に、
README*、package.json、ストアの掲載情報(fastlane/metadata/**)、ランディングページの文言、llms.txtを確認します。製品の内容、対象ユーザー、最も深刻な課題、画面上で「なるほど」と感じる瞬間、実際に確認できた根拠を4~6行でまとめます。機能、価格、成果、お客様の声を決して捏造しません。質問は最大1つにし、最善の推測をあらかじめ記入しておきます。詳細:references/product-brief.md。 - デモを探します。 「なるほど」と感じる瞬間が早い段階でわかる、10~30秒の画面録画を用意します。
なければ、画面録画を依頼します(スマートフォンでの画面録画、または QuickTime → File → New Screen Recording)。find . -type f \( -iname '*.mp4' -o -iname '*.mov' \) -not -path '*/node_modules/*' \ -not -path '*/.git/*' -not -path '*/reelclaw-output/*' -not -path '*/reelclaw-studio/*' 2>/dev/null | head -20 - ユーザーが迷っている場合は、実績のあるバイラル形式(無料)を選びます。 「語学学習アプリを作っています。デモはこちらです。バイラル動画を作ってください」→
reelclaw_suggest_formats { brief }は、DansUGC がその製品のニッチでバイラルになったことを確認している形式を返します。各形式には、証拠(再生回数と TikTok リンク付きのコンセプト例、使用できるクリップの数)とsuggested_pickが含まれます。証拠とともに2~4件を提示し、おすすめをあらかじめ選択しておきます。次に、選んだコンセプトの構成を参考にし(tiktok_urlを視聴)、そこからテンプレートとフックのスタイルを選び、一致するクリップをsearch_videosで探します。ユーザーがすでにフック、参考広告、または形式を決めている場合は省略します。 - 実際にバイラルになった事例を調査します(任意、有料)。
tiktok_search_videos/instagram_search_reelsは、検索が成功するごとに0.02クレジットかかります。最初の検索を行う前に、予定している検索回数(デフォルトは最大5回、0.10クレジット)を伝え、ユーザーの同意を得るか、すでに調査を依頼されている場合にのみ進めます。形式を選び、フックの構成を参考にするために使います。テキストをそのまま流用してはいけません。方法:references/research.md。 - フックを書きます。 小文字で、一人称または POV/「when」の形式にし、80文字未満にします。課題や「なるほど」と感じる瞬間に具体的に結び付け、反応に合った感情を表現し、主張を捏造せず、ブランド名の代わりに「this app」を使います。形式に変化をつけます。ユーザーには、(#・フック・形式・反応の感情)の表を提示します。手引き:references/hooks.md。
- DansUGC ライブラリからリアクションを選びます(実在のクリエイター)。検索してプレビューを比較し、ユーザーが価格(4c)を確認してから購入します。方法:references/footage.md。
- 音楽。 ユーザーが音源を指定しておらず、無音動画も希望していない場合は、探させずに
reelclaw_trending_music { category }を使います。このツールはニッチに合った TikTok のトレンド音源を返します(検索1回につき0.02クレジット、検索ごとに1~2件。6時間キャッシュされ、同じ検索は無料)。最初に呼び出す前に、このことを伝えます。フックの勢いに合った音源を選び(risingを優先し、長さはリール以上)、preview_urlをダウンロードしてmusicとして使用します。広告の場合はlicense_noteを伝えます(有料広告および TikTok のビジネスアカウントでは Commercial Music Library の音源が必要です。音源が使用許可済みだとは決して伝えません)。方法:references/music.md。
3. 多数のバリエーション
ユーザーが10本、20本、または「まとめて」作りたい場合も、ここでは1回のレンダリングで1本ずつ作成します。それぞれ約30秒かかります。
- コンセプトごとにテンプレートディレクトリを1つ用意します(コンセプト=テンプレート+リアクション+デモカット)。一度インストールし(4b)、メディアも一度だけステージングします。
- コンセプトのフック違いは、フックごとにパラメータファイルを1つ用意します(
nameは異なり、メディアは同じ)。そのディレクトリ内で順番に実行します。再生成は簡単です。素材はすでにステージングされています。 - リアクションやデモを変える場合は、新しいコンセプトディレクトリを作成します。所有済みのクリップはコンセプト間で再利用できます(再請求されることはありません)。新しいクリップは1回の見積もりでまとめて購入します(4c)。
- 同じディレクトリで2つのジェネレーターやレンダリングを同時に実行しないでください。マシンに余裕があれば、別のディレクトリなら並行してレンダリングできます(各レンダリングでヘッドレス Chrome が起動します)。通常は順番に実行してください。
- すべてのバリエーションでQAを行います(4f)。ただし、コンセプトが一度合格すれば、通常、フック違いではフック部分のフレームだけ再確認すれば十分です(字幕の収まり、改行、安全領域)。
- 大規模な実行の前に、計画をユーザーに伝えます。コンセプト数N × フック数M、購入するクリップとその合計金額(見積もりから)、レンダリングにかかるおおよその時間を知らせます。
4. HyperFrames で編集・ローカルレンダリング
a. 事前確認(セッションごとに実施):
node --version # must be v22+; HyperFrames refuses to start on older Node
ffmpeg -version | head -n 1 && ffprobe -version | head -n 1
yt-dlp --version # optional: only for TikTok/IG/YouTube page links as inputs
不足している場合は、インストールを提案して(brew install node ffmpeg、nvm install 22、sudo apt install ffmpeg)、完了を待ちます。初回のレンダリングでは、npx 経由で HyperFrames とヘッドレス Chrome も取得します(初回のみ、数分かかります)。
b. コンセプトごとにテンプレートのコピーを1つインストールする(テンプレートは同時実行に対応していません):
mkdir -p reelclaw-studio
npx --yes reelclaw-templates@latest reaction_demo reelclaw-studio/reaction_demo-<slug>
<slug> は、短い kebab-case のコンセプト名です。インストーラーは空でないディレクトリを拒否するため、新しい slug を選んでください。.gitignore に reelclaw-studio/ と reelclaw-output/ を追加する提案をします(最初に確認してください)。
c. 映像素材。 リアクション:search_videos(無料)→ 価格、長さ、感情、プレビューを添えて3~6本に絞り込み → expected_total_cents を指定せずに purchase_videos を実行します(無料の見積もりです。正確な合計額と請求先アカウントが表示されます)→ 見積もりを提示し、明示的な承認を待ちます → 同じIDと expected_total_cents を指定して purchase_videos を再度実行します(購入処理が行われます。所有済みクリップは無料です)→ 1時間以内に curl -fL -o reelclaw-studio/footage/<file>.mp4 "<download_url>" を実行します。テキストが焼き込まれたクリップは使わないでください。フレームシートを見てリアクションの trim を選び、最初の1秒に表情のピークが来るようにします。デモは事前にトリミングし、カットから約2秒以内に「なるほど」と分かる内容が画面に表示されるようにします。
詳細、コマンド、購入しない場合の手順については、references/footage.md を参照してください。
d. パラメータファイルを書くには、ファイル書き込みツールを使います(echo は使わず、テキストは JSON エスケープしてください)。キーはテンプレートのフラグ名から -- を除いたものです(テンプレートごとの正確な一覧は templates.md を参照してください):
{
"name": "pov-screen-time-v1",
"reaction": "reelclaw-studio/footage/reaction-shocked-1.mp4",
"trim": 0.4,
"demo": "demo/aha.mp4",
"hook": "pov: your phone won't open tiktok until you've walked 2k steps",
"hook-position": "top"
}
reelclaw-studio/<template>-<slug>/params-<name>.json として保存します。ユーザーのテキストをシェルコマンドラインに入れないでください。ラッパーはシェルを介さずにジェネレーターへ渡し、-- で始まる値を拒否します(ジェネレーターがフラグとして読み取ってしまうためです)。
e. 生成、レンダリング、フレームのQA(リポジトリのルートから実行):
node <skill-dir>/scripts/run-generator.mjs reelclaw-studio/reaction_demo-<slug> \
reelclaw-studio/reaction_demo-<slug>/params-pov-screen-time-v1.json --render
ラッパーはメディアをテンプレートの assets/ にコピーし、new-reel.mjs を実行して、GSAP をローカルに取り込みます(CDN の一時的な不具合で、レンダリング自体は「成功」していてもすべてのアニメーションが表示されなくなるためです)。続いて、テンプレートで固定されたバージョンの HyperFrames でレンダリングし、scripts/qa-frames.sh を実行します。出力先は renders/<name>.mp4 と qa/<name>/(フレーム、コンタクトシート、report.txt)です。HyperFrames のログ全体は renders/<name>.render.log にあります。GSAP、フォント、動画の読み込みに失敗しても、HyperFrames は終了コード0を返します。ラッパーに RENDER WARNINGS が表示された場合は、何よりも先に修正してください。最近のノート PC なら、10~15秒のリールのレンダリングには約25~30秒かかります。
f. QA ループ(必須、最大 3 回)。 report.txt に記載されたすべての PNG を開いて確認します
(Claude Code:.png に対して Read ツールを使用、Codex:view_image)。references/qa-checklist.md の各項目を確認します。TikTok Sans が実際にレンダリングされている(代替フォントではない)こと、すべての字幕が緑色のセーフボックス内に収まっていること、フックが 1 秒以内に読めること、リアクションが 3 秒以内で、そのピーク直後にカットされていること、デモでカットから約 2 秒以内に「なるほど」と思える場面が示されていること、黒画面やフリーズしたフレームがないこと、音声がある(または意図的に無音である)こと、長さが目標どおりであること、1080×1920 であることを確認します。修正(パラメーター、トリミング、映像素材、またはコンポジションの編集)を行い、再レンダリングして(パラメーターを変更した場合:手順 e をもう一度実施。コンポジションを編集した場合:再生成すると手動編集が上書きされるため、--render の代わりに --render-only を追加)、再度確認します。確認していないレンダリングを納品してはいけません。3 回確認した後、最良のものを納品し、まだ問題が残っている点を記載します。
g. フラグの範囲を超えるカスタム編集(字幕のスタイル、正確な位置、ポップイン、2 つ目の字幕、別のデモの表示方法など):生成された compositions/<name>.html を編集し、references/hyperframes-editing.md に従って run-generator.mjs … --render-only で再レンダリングします。HyperFrames スキル(hyperframes、hyperframes-core、…)がインストールされている場合は、大規模なカスタムコンポジションで読み込んでください。このスキルでは必須ではありません。
h. 納品。 完成版を ./reelclaw-output/<name>.mp4 にコピーし、パス、フック、長さ、使用した映像素材、消費したクレジット数(クリップ+調査クエリ)、QA の結果(合格/修正済み/未解決)をまとめます。次の選択肢を提示します。フックの別バージョン(レンダリング 1 回につき 1 種類。メディアはすでに準備済み)、別のテンプレート、または公開です。DansUGC Posting による公開(get_media_upload_url → PUT → create_post、アカウントごとに動画は 1 本のみ)は、依頼があり、ユーザーがアカウントとキャプションを確認した後に限ります:references/publishing.md。
5. 問題が発生した場合
- MCP エラー(認証、プラン、クレジット、購入、調査、削除されたツール): references/errors.md。
- ローカルの問題(Node、npx、Chrome、ジェネレーター、レンダリング、QA): references/templates.md。
基本ルール
- 実在する人間のクリエイターのみを使用します。DansUGC のリアクションを AI によるものと説明してはいけません。
- フックとキャプションは事実に即したものに限ります。リポジトリやユーザーが裏付けていない内容を含めてはいけません。
- 事前に費用をユーザーに伝えずにクレジット(クリップの購入、調査クエリ)を消費してはいけません。また、購入ごとに明確な許可を得てください。
- フレームごとに確認していないレンダリングを納品してはいけません。
- 映像素材はこのマシン内に留め、ユーザーが公開を選択した場合を除き、何もアップロードしません。機密情報はアップロードしてはいけません。
- 生の JSON をユーザーにそのまま提示してはいけません。求められない限り、ID をチャットに出さないでください。