プロダクトデモ動画
技術プロジェクト向けの2分間のプロダクトデモ動画を、並列ビルドオプションと構造化された批評家レビューで生成します。
使用するタイミング
- GitHubリポジトリ、API、技術製品のデモを行う場合
- プロフェッショナルな説明動画を素早く作成したい場合
- 複数のアプローチオプション(アニメーション vs シンプル)を試したい場合
ワークフロー(7つのフェーズ)
ディスカバリー → スクリプト → 並列ビルド → 並列批評 → 反復 → 最終 → 納品
│ │ │ │ │ │ │
5-10分 10-15分 30-60分 10-15分 0-3ループ ゲート 出荷
フェーズ1: ディスカバリー
リポジトリをクローンして分析:
gh repo clone <owner/repo> /tmp/<repo>
抽出する内容:
- 何をするものか(1文)
- 誰のためか
- 3〜5つの主要機能
- アーキテクチャ/フロー
- ビジュアルアセット(ロゴ、図表)
質問(またはデフォルトを使用):
| 質問 | デフォルト |
|---|---|
| 時間 | 2分 |
| 対象者 | 混合(技術 + ビジネス) |
| トーン | プロフェッショナルかつ会話的 |
| 形式 | アニメーション説明動画 |
フェーズ2: スクリプト
references/script-template.md の構造を使用:
シーン1: フック (0:00-0:15) — 問題提起
シーン2: 背景 (0:15-0:30) — なぜこれが重要なのか
シーン3-5: 機能 (0:30-1:30) — 3つの主要機能、各20秒
シーン6: 技術的詳細 (1:30-1:50) — アーキテクチャ/信頼性
シーン7: CTA (1:50-2:00) — 次に何をすべきか
ガイドライン:
- 150ワード/分
- 1文あたり最大20ワード
- 能動態を使用
- 曖昧より具体的に
フェーズ3: 並列ビルド
2つのサブエージェントを起動して、オプションを同時にビルド:
// オプションA: Remotion(アニメーション)
sessions_spawn({
label: "demo-video-option-a",
task: `Remotionを使用してアニメーションデモ動画をビルドします。
スクリプト: [スクリプトを貼り付け]
音声: ElevenLabs、音声ID CcEB0ARKH8qIyzh2I1OR を使用
出力: /tmp/demo-video/option-a.mp4
アプローチ:
1. シーンごとにナレーションを生成(ElevenLabs API)
2. シーンコンポーネントを含むRemotionプロジェクトを作成
3. アニメーションをオーディオのタイミングに同期
4. 1080p 30fpsでレンダリング`
})
// オプションB: スライド + ffmpeg(シンプル)
sessions_spawn({
label: "demo-video-option-b",
task: `スライドベースのデモ動画をビルドします。
スクリプト: [スクリプトを貼り付け]
音声: ElevenLabs、音声ID CcEB0ARKH8qIyzh2I1OR を使用
出力: /tmp/demo-video/option-b.mp4
アプローチ:
1. ナレーションを生成(ElevenLabs API)
2. Puppeteerでスライドを作成(HTML → PNG)
3. ffmpegで結合し、オーディオに同期
4. シンプルなトランジションを追加`
})
両方の完了を待機。 ユーザーにオプションを提示するか、品質に基づいて自動選択。
フェーズ4: 並列批評
2つの批評家ペルソナを起動(詳細は references/ を参照):
// ビジネス批評家
sessions_spawn({
label: "critic-business",
task: `ビジネス批評家「Mike」としてデモ動画をレビューします。
動画: [パス]
スクリプト: [内容]
完全なペルソナとルーブリックについては、references/critic-business.md を参照。
スコア: 明確さ、プロフェッショナリズム、ビジネス価値(各1〜10)
出力: 全体スコアと具体的な修正箇所を含む構造化レビュー。`
})
// 技術批評家
sessions_spawn({
label: "critic-technical",
task: `技術批評家「シニアエンジニア」としてデモ動画をレビューします。
動画: [パス]
スクリプト: [内容]
完全なペルソナとルーブリックについては、references/critic-technical.md を参照。
スコア: 技術的正確性、信頼性、完全性(各1〜10)
出力: 全体スコアと具体的な修正箇所を含む構造化レビュー。`
})
フェーズ5: 反復
品質ゲート:
| ゲート | アクション |
|---|---|
| 両方の批評家が7.5以上、かつCriticalな問題なし | → 出荷 |
| いずれかの批評家が7.0未満、またはCriticalな問題あり | → 反復 |
| 3回の反復後も不合格 | → 人間にエスカレーション |
反復ループ:
- すべてのCritical/Importantな問題を収集
- 重大度順に修正
- 可能であれば影響を受けるシーンのみ再レンダリング
- 批評家を再実行
フェーズ6: 最終レビュー
出荷前に以下を確認:
- 両方の批評家が合格(7.5以上)
- Criticalな問題が残っていない
- オーディオが正しく同期している
- すべてのシーンがきれいにレンダリングされている
- CTAが明確
フェーズ7: 納品
出力:
✅ デモ動画が完了しました!
📹 動画: demo-video-final.mp4 (2:03)
🎯 対象者: [ターゲット]
📊 スコア: ビジネス 8.2/10 | 技術 7.8/10
カバー内容:
1. [主要ポイント1]
2. [主要ポイント2]
3. [主要ポイント3]
ファイル保存先: [場所]
配信先:
- Slackチャンネル(指定されている場合)
- workspace/outputs/ に保存
ツールと依存関係
| ツール | 目的 | 必須 |
|---|---|---|
| ElevenLabs | ナレーション生成 | はい |
| Remotion | Reactビデオフレームワーク(オプションA) | AまたはBのいずれか |
| ffmpeg | ビデオ処理(オプションB) | AまたはBのいずれか |
| Puppeteer | スライドスクリーンショット(オプションB) | AまたはBのいずれか |
| sessions_spawn | 並列サブエージェント | はい |
デフォルト音声: CcEB0ARKH8qIyzh2I1OR(Jeremy - 技術チュートリアルナレーター)
ファイル参照
references/critic-business.md— ビジネス批評家ペルソナとルーブリックreferences/critic-technical.md— 技術批評家ペルソナとルーブリックreferences/script-template.md— シーンごとのスクリプト構造templates/remotion/— コンポーネントを含むRemotionプロジェクトスキャフォールドscripts/generate-voiceover.py— ElevenLabs TTSヘルパーscripts/render-slides.sh— ffmpegスライド動画結合ツール