---
name: supermovie-init
description: |
  SuperMovie動画編集プロジェクトを自動生成するスキル。
  ヒアリングで動画の方向性を確認 → Remotionプロジェクトを構築。
  「動画プロジェクト作成」「supermovie init」「新しい動画を編集」と言われたときに使用。
argument-hint: <動画ファイルパス> [プロジェクト名]
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Agent, AskUserQuestion
---

# SuperMovie Init — 動画編集プロジェクト自動生成

Senior video production engineer として、ユーザーの動画素材から
最適なRemotionプロジェクトを構築する。**必ずヒアリングから始める。**

## ワークフロー概要

```
┌─────────────┐    ┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│  1. ヒアリング │ → │ 2. 動画解析  │ → │ 3. プロジェクト│ → │ 4. カスタマイズ│
│  動画の方向性  │    │  FPS/尺検出  │    │  テンプレコピー│    │  設定反映     │
└─────────────┘    └─────────────┘    └─────────────┘    └─────────────┘
```

---

## Phase 1: ヒアリング（必須）

> ★例外: オーケストレーター（/supermovie）経由でヒアリング結果が確定済みで渡された場合は
> **再ヒアリングせず**、渡された設定をそのまま project-config.json に反映する。

**プロジェクト作成先の既定**: `/Users/noguchimasatomo/Desktop/動画編集/supermovie-<MMDD>`
（同名が存在する場合は `-2` 等のサフィックス。ユーザー指定があればそちらを優先）

動画ファイルパスを確認した後、**1回のメッセージで以下を全て聞く**。
回答は箇条書きでOKと伝える。

```
プロジェクトを作成する前に、動画の方向性を確認させてください。
（箇条書きでサクッと答えてもらえればOKです）

1. 動画のフォーマットは？
   → YouTube通常（16:9） / ショート動画（9:16） / 正方形（1:1）

2. 動画の種類は？
   → YouTube解説 / セミナー録画 / プロモーション / Vlog / インタビュー / その他

3. ターゲット視聴者は？
   → ビジネスパーソン / 初心者 / エンジニア / 一般層 / その他

4. 動画のトーンは？
   → プロフェッショナル / カジュアル / エンタメ / 教育的

5. テロップのスタイル希望は？（おまかせOK）
   ┌──────────┬──────────────────────────────┐
   │ カテゴリ  │ 選択肢                        │
   ├──────────┼──────────────────────────────┤
   │ メイン    │ 白青テロップ / 白青ver2（立体） │
   │ 強調     │ 赤文字 / オレンジグラデーション   │
   │ ネガティブ │ 黒文字白背景 / 残酷紺 / 黒紫グラデ│
   └──────────┴──────────────────────────────┘

6. BGMの雰囲気は？
   → アップテンポ / 落ち着いた / なし / おまかせ

7. 特に意識したいこと・注意点は？
   → 例: テンポ重視 / 特定キーワード強調 / 情報量多め
```

### ヒアリング結果 → `project-config.json`

回答を以下のJSON形式で保存（プロジェクトルートに配置）:

```json
{
  "format": "youtube",
  "resolution": { "width": 1920, "height": 1080 },
  "videoType": "YouTube解説",
  "targetAudience": "ビジネスパーソン",
  "tone": "プロフェッショナル",
  "telopStyle": {
    "main": "白青テロップver2",
    "emphasis": "オレンジグラデーション",
    "negative": "黒紫グラデ"
  },
  "bgmMood": "アップテンポ",
  "notes": "テンポ重視、キーワード「AI」を強調",
  "createdAt": "2026-03-25"
}
```

**「おまかせ」の場合のデフォルト選択ロジック:**

| トーン | メイン | 強調 | ネガティブ |
|--------|--------|------|-----------|
| プロフェッショナル | 白青ver2 | オレンジグラデーション | 黒紫グラデ |
| エンタメ | 白青テロップ | 赤文字 | 残酷紺 |
| カジュアル | 白青テロップ | オレンジグラデーション | 黒文字白背景 |
| 教育的 | 白青ver2 | オレンジグラデーション | 黒文字白背景 |

---

## Phase 2: 動画解析

```bash
ffprobe -v quiet -print_format json -show_format -show_streams "$VIDEO_PATH"
```

抽出する値:
- `duration`（秒）
- `r_frame_rate`（FPS — "30/1" → 30, "25/1" → 25）
- `DURATION_FRAMES = Math.round(duration * fps)`

---

## Phase 3: プロジェクト生成

### 3-1. テンプレートコピー
```bash
cp -r /Users/noguchimasatomo/.claude/plugins/supermovie/template "<PROJECT_DIR>"
```

### 3-2. 動画配置（★画面収録は正規化してから配置）

画面収録は Retina解像度(例 3022x1700)・60fps・大容量になりがち。
**レンダリング高速化と尺安定のため、1920x1080 / 30fps に正規化してから配置する。**

```bash
# format=youtube の場合 1920x1080、short は 1080x1920、square は 1080x1080
ffmpeg -y -loglevel error -i "$VIDEO_PATH" \
  -vf "scale=<W>:<H>:flags=lanczos" -r 30 \
  -c:v libx264 -crf 18 -preset medium -c:a aac -b:a 192k \
  "<PROJECT_DIR>/public/main.mp4"
```

- 正規化後は **FPS=30 固定**、DURATION_FRAMES は `round(正規化後duration * 30)`。
- **正規化の判定ルール（明確化）**: `width != 目標W` または `height != 目標H` または `fps != 30` の
  いずれか1つでも該当すれば ffmpeg 正規化する。完全一致（例: 1920x1080/30fps）のときだけ `cp`。
  - 実例: CapCut書き出しの 1930x1080 は幅が10px違うだけでも正規化必須（約409MB→約36MBになり、レンダリングも安定）。
- 正規化後は **必ず ffprobe で duration を再計測**してから DURATION_FRAMES を計算する（元動画の値を流用しない）。

### 3-2b. 共通SEライブラリ + BGM の自動コピー（★必須）

**正規SEライブラリ:** `/Users/noguchimasatomo/Desktop/動画編集/_SEライブラリ/`
**既定BGM:** `/Users/noguchimasatomo/Desktop/動画編集/_SEライブラリ/_BGM/bgm.mp3`

新規プロジェクト作成時、ライブラリの全SEと既定BGMをコピーする。
これにより `/supermovie se` 実行前から全SE・BGMが揃い、レンダリングが即通る。

```bash
mkdir -p "<PROJECT_DIR>/public/se" "<PROJECT_DIR>/public/BGM"
cp /Users/noguchimasatomo/Desktop/動画編集/_SEライブラリ/*.mp3 "<PROJECT_DIR>/public/se/" 2>/dev/null || echo "⚠️ SEライブラリ未配置"
cp /Users/noguchimasatomo/Desktop/動画編集/_SEライブラリ/_BGM/bgm.mp3 "<PROJECT_DIR>/public/BGM/bgm.mp3" 2>/dev/null || echo "⚠️ 既定BGM未配置（BGMなしで続行可）"
```

⚠️ BGM(`public/BGM/bgm.mp3`)が無いと MainVideo の `<BGM>` が render時にエラーになる。
必ずコピーするか、BGM不要なら MainVideo.tsx の `<BGM .../>` 行を削除する。

### 3-3. ファイル更新（★videoConfig.ts が単一の正本）

設定は `src/videoConfig.ts` で一元管理されており、Root.tsx / telopData.ts /
titleData.ts / cutData.ts はすべてここを import する。**videoConfig.ts だけ書き換える。**

**src/videoConfig.ts:**
```typescript
export const FORMAT: VideoFormat = '<youtube|short|square>';
export const FPS = 30;                  // 正規化後は30固定
export const DURATION_FRAMES = <計算値>;  // round(正規化後duration * 30)
export const VIDEO_FILE = 'main.mp4';
```
- RESOLUTION/TELOP_CONFIG は FORMAT から自動解決されるため触らない。

**package.json:**
```json
{ "name": "<プロジェクト名>" }
```

※ cutData.ts は初期状態（恒等マッピング=カットなし）で同梱済み。
  `/supermovie-cut` がカット時に上書きする。MainVideo.tsx は CutPlayer 経由で
  常にカットデータを反映するので、init で MainVideo.tsx を編集する必要はない。

---

## Phase 4: ヒアリング結果のカスタマイズ反映

トーンに応じて `telopStyles.ts` のデフォルトマッピングコメントを追記:

| トーン | アニメーション傾向 | charByChar | テンポ |
|--------|-------------------|-----------|--------|
| プロフェッショナル | `fadeOnly` 中心 | 使わない | 落ち着き |
| エンタメ | `slideIn` 多め | 積極使用 | 速い |
| カジュアル | バリエーション豊富 | たまに | 普通 |
| 教育的 | `fadeOnly` 中心 | 使わない | ゆっくり |

---

## Phase 5: セットアップ

```bash
cd "<PROJECT_DIR>" && npm install
```

---

## Phase 6: 起動確認

```bash
cd "<PROJECT_DIR>" && npx remotion studio
```

---

## 完了時の報告フォーマット

```
✅ プロジェクト作成完了

📁 パス: <PROJECT_DIR>
🎬 動画: <duration>秒 / <fps>fps / <frames>フレーム
🎨 スタイル: <ヒアリング結果サマリー>

次のステップ:
→ /supermovie-transcribe で文字起こし
```

---

## エラーハンドリング

| エラー | 対応 |
|--------|------|
| 動画ファイルが存在しない | パスを再確認してもらう |
| ffprobeがインストールされていない | `brew install ffmpeg` を提案 |
| npm installが失敗 | node_modulesを削除して再実行 |
| テンプレートが見つからない | テンプレートパスを確認 |

---

## 連携マップ

```
/supermovie-init              ← ★ここ: ヒアリング → プロジェクト作成
    ↓
/supermovie-transcribe        ← 文字起こし（ローカル無料）
    ↓ transcript.json
/supermovie-transcript-fix    ← 誤字修正（辞書 + Claude LLM）
    ↓ transcript_fixed.json
/supermovie-cut               ← 不要区間カット（VAD + LLM分析）
    ↓ cutData.ts
/supermovie-subtitles         ← テロップ＆タイトル生成
    ↓ telopData.ts + titleData.ts
/supermovie-image-gen         ← 画像生成 + 配置データ
    ↓ insertImageData.ts
/supermovie-se                ← SE自動配置
    ↓
npm run dev                   ← プレビュー
```
