---
name: seminar-daihon-slide
description: 顧問生（受講者）に配布する「セミナー／講座動画の台本作成からスライド作成までを一気通貫で行うスキル」。Claude Code / Codex 両対応、macOS / Windows 両対応。テーマや構成案を受け取り、動画台本の生成→スライド構成案→台本×スライド対応表→ChatGPTプロンプト出力までを1スキルで完結させる。デザインは slide-kanzenban スキルの全レイアウト辞典×カラープリセットから選択可能（固定なし）。「/seminar-daihon-slide」「セミナー台本からスライドまで」「セミナー動画作って」「講座動画作って」「台本とスライド一気に」と言われたらこのスキルを使う。
---

# seminar-daihon-slide -- セミナー／講座動画 台本→スライド一気通貫スキル（顧問生配布用）

**対応環境**: Claude Code / Codex（OpenAI Codex CLI など） × macOS / Windows 両対応

セミナーや講座動画について、テーマや構成案を受け取り、以下を1スキルで一気通貫で出力する：
1. 動画台本
2. スライド構成案
3. 台本×スライド対応表（どこでスライドを切り替えるか）
4. ChatGPTスライド生成プロンプト（チャンク分割）

## このスキルの位置づけ

- **独立スキル**：他スキルへの強い依存なし。台本もスライドも本スキル内で完結する
- **slide-kanzenban との連携**：スライドのレイアウトパターン・カラープリセットは `slide-kanzenban` スキル（43パターン辞典×19ベースプリセット×100種以上の雰囲気モディファイア）を実行時に動的参照する。本家がブラッシュアップされても自動で最新を使う
- **配布パッケージング前提**：顧問生に渡すZIPには本スキル（seminar-daihon-slide）と `slide-kanzenban` スキルを同梱する。顧問生環境に slide-kanzenban が無いと動かないので、配布時には必ずセットで同梱する
- **デザインは固定しない**：ユーザーが好きなテーマ（教育者向け／高級感／POP／和風／ホラー風／黒金豪華 etc.）を選べる
- **台本のフィードバックループ**：台本承認が出るまで絶対にスライドに進まない（最重要）
- **口調はまさき口調がデフォルト**：教育者口調（僕・丁寧語ベース・たまにフランク）。ただしスキル発動時とフィードバックループ時に「あなた自身の口調にカスタマイズしたい場合はフィードバックしてください」と明示的に案内する

---

## 全体フロー（8フェーズ）

```
Phase 1: 基本ヒアリング（6項目）── 外側の条件
  - テーマ／長さ／元ネタ／追加要素／デザイン／保存先

Phase 1.5: 設計ヒアリング（5項目）── 誰に・なぜ・どう伝えるか
  - 対象者／視聴後のゴール／問いかけ／CTA／外せないメッセージ

Phase 1.75: 内容ヒアリング（5項目）── 何を・どんなエピソードで・どんな数字で
  - 具体エピソード／具体的な数字・データ／視聴者の悩み・つまずき
  - 自分ならではの切り口／構成順序の希望
  - ★ Phase 1.5 で「設計」が決まった上で、Phase 1.75 で「中身の素材」を集める

Phase 2: 台本作成（フィードバックループ）
  - まさき口調（教育者口調）をデフォルトで動画台本を生成
  - 台本出力後「フィードバックをお願いします」と明示
  - ★ 同時に「あなた自身の口調にしたい場合は『〇〇な言い回しに変えて』とFBください」と案内
  - ユーザーからフィードバック → 修正 → 再度フィードバック依頼（何度でも繰り返す）
  - ユーザーが「OK」「これで次に進めて」等と言うまでPhase 2に留まる
  ★ このフェーズだけが対話型。承認が出るまで絶対に次に進まない

Phase 3: 台本のローカル保存
  - 台本承認が出た時点で、台本をローカルにファイル保存
  - 保存先はカレントディレクトリ配下 or ユーザーが指定したパス

Phase 4+5: スライド一括出力（台本承認後に一気に出す）
  - 台本保存後、以下3つを一気に出力する：
    A. スライド構成案
    B. 台本×スライド対応表
    C. ChatGPTプロンプト（10枚ずつチャンク分割）
  - スライドのデザインは slide-kanzenban から動的取得したプリセットを適用

Phase 6: PDF結合
  - ChatGPTで生成したスライド画像/PDFをユーザーから受け取る
  - 全スライドを1つのPDFに結合する
  - pypdf で結合 → Finderで保存先を開く
```

### フロー図

```
基本ヒアリング(6項目) → 設計ヒアリング(5項目) → 内容ヒアリング(5項目) → 台本作成 → フィードバック ←（ループ）
                                                          ↓ 「OKです」「次に進めて」
                                                      台本をローカル保存
                                                          ↓
                          スライド構成案 + 対応表 + ChatGPTプロンプトを一括出力
                                                          ↓
                             ユーザーがChatGPTでスライド画像を生成
                                                          ↓
                                画像/PDFを受け取りPDFに結合
```

---

## Phase 1: 基本ヒアリング（6項目）

聞くのは以下6つ。**選択肢提示ではなく「問いかける形」で、相手の答えに合わせて掘り下げる**。

1. **テーマまたは構成案**: テキスト貼り付け or キーワード or 箇条書きでもOK
2. **想定尺**: 「どれくらいの長さの動画にしたいですか?」と問いかける形で聞く。目安として5分／10分／15分／20分／30分などを例示するが、強制しない。「○分前後」「短めで」など曖昧な答えでもOKで、その場合は最後にこちらで分数を提案する
3. **元ネタ（任意）**: 「参考にしたい動画URL／文字起こし／ブログ記事／構成メモ」があれば貼ってもらう。元ネタがある場合はそれを土台に台本を構成する。なければゼロから作る
4. **追加要素（任意）**: 盛り込みたいエピソード、具体例、メッセージ、章番号や講座名を明示したいか（**章番号を入れたい場合はここで指定。指定がなければデフォルトで章番号には触れない**）
5. **デザインの希望（任意）**: slide-kanzenban のプリセット名（例：「上品ホワイト植物風」「黒金豪華」「青白テック講座風」など） or 雰囲気キーワード（「シンプル」「高級感」「POP」「和風」など）。指定なしの場合は構成案を見て slide-kanzenban から最適なものを提案する
6. **成果物の保存先フォルダ**: 「完成した台本・対応表・スライドPDFをどこに保存しますか?」と聞き、顧問生さんが指定したフォルダパスに保存する（指定がない場合のみカレントディレクトリ配下に `seminar-output/` を作って保存）

ヒアリング例：
```
セミナー／講座動画の台本→スライド一気通貫で作りますね。

このスキルでは、まずまさき口調（教育者口調・僕・丁寧語ベース）で台本を生成します。
あなた自身の口調にカスタマイズしたい場合は、生成後のフィードバックで
「もっとフランクに」「『〜だよね』を使いたい」など教えてください。
何度でも調整します。

6つ教えてください：

1. どんなテーマ・内容の動画にしたいですか?
   （箇条書き・テキスト貼り付け・キーワード・構成案、どれでもOK）

2. どれくらいの長さの動画にしたいですか?
   （だいたい何分くらいを想定していますか? 5分／10分／15分／20分／30分が目安です。
    「短めで」「サクッと」など曖昧でもOK。こちらで分数を提案します）

3. 参考にしたい元ネタはありますか?（任意）
   - 動画URL（YouTube、Vimeo など）
   - 文字起こし／トランスクリプト
   - ブログ記事URL
   - 自分で書いた構成メモ
   元ネタがあればそれを土台にして台本を組み立てます。なければゼロから作ります。

4. 盛り込みたいエピソードや具体例、メッセージはありますか?（任意）
   章番号（「第3章」など）や講座名を入れたい場合もここで教えてください。
   特に指定がなければ、章番号や講座名には触れずに汎用的な構成で作ります。

5. スライドのデザイン希望はありますか?（任意）
   （例：「シンプル」「高級感」「POP」「和風」「黒金豪華」「上品ホワイト植物風」など。
    指定なしの場合はテーマに合うものをこちらで提案します）

6. 完成した台本・対応表・スライドPDFはどこに保存しますか?
   （フォルダパスを教えてください。例: `~/Desktop/セミナー素材/`
    指定がなければ、いま作業しているフォルダに `seminar-output/` を作って保存します）
```

### 元ネタが提供された場合の扱い

- **動画URL**：可能ならWebFetchで内容を取得して構造を分析
- **文字起こし**：そのままインプットとして台本構成の素材にする
- **ブログ記事URL**：WebFetchで取得して内容を要約・再構成
- **構成メモ**：ユーザーが既に組んだ流れを尊重して肉付けする

元ネタをそのまま転載するのではなく、**顧問生さん自身の動画として再構成**する（盗用にならないように、構造と論点を借りて表現は自分のものにする）。

### 元ネタが長文の場合の中間ステップ（★ 重要 ★）

文字起こしや長文記事が **5,000字を超える** 場合、台本生成の前に必ず中間ステップを挟む：

**Step A: 構造抽出**
- 元ネタを読み込み、以下の3つを箇条書きで抽出する
  1. **主要トピック一覧**（章立てレベル、5〜10個）
  2. **核となる論点・主張**（メインメッセージ、3〜5個）
  3. **使える具体例・データ・体験談**（流用候補、5〜15個）

**Step B: ユーザー確認**
- 抽出結果をチャットに出力し、以下を確認する：
  ```
  元ネタが長文だったので、まず構造を整理しました。
  
  【主要トピック】
  - ...
  
  【核となる論点】
  - ...
  
  【使える具体例・データ】
  - ...
  
  この中から、今回の動画で使いたいトピック・論点・具体例を教えてください。
  「全部使う」「上から3つ」「●●と××だけ」など、ざっくりでOKです。
  指定なしで進めていい場合は「お任せ」と返してください。
  ```

**Step C: 選定結果を踏まえて台本生成**
- ユーザーの指定（または「お任せ」判断）に従って、Phase 2の台本作成に進む
- 元ネタ全部を盛り込もうとせず、想定尺に収まる量だけ選んで構成する

**5,000字以下の元ネタ**の場合はこの中間ステップを省略し、そのまま Phase 1.5 に進んでOK。

---

## Phase 1.5: 設計ヒアリング（誰に・なぜ・どう伝えるか／5項目）

Phase 1 の6項目（テーマ／長さ／元ネタ／追加要素／デザイン／保存先）は「外側の条件」。
ここからは **台本の質を決める「内側の設計」** を深掘りする。

**設計思想（／参考：`/seminar` スキルの Phase 1）**
- 一発目から「完璧な指示」を出せる人はいない。多くの顧問生さんは「テーマだけは決まってる、あとは曖昧」の状態でスキルを発動する
- でも「対象者・ゴール・問いかけ・CTA・絶対外したくないこと」が決まれば、台本は10倍立体的になる
- 聞かなければ、AIは無難な内容で埋めてしまう → 視聴者に刺さらない／顧問生さんの色が出ない
- **だからここで「深掘り5項目」を必ず聞く**

### 切り出し方（Phase 1 の6項目に答えてもらったあと）

```
基本情報、ありがとうございます！

ここからは、台本の質を決める「内側の中身」を5つだけ深掘りさせてください。
全部「わかる範囲でOK／おまかせ」で大丈夫です。
ただ、ここを埋めるほど、台本が「あなたらしく・視聴者に刺さる」ものになります。

1. 対象者は具体的にどんな方を想定していますか？
   （年齢層／性別／知識レベル／抱えている悩み・状況。
    例：「30〜40代の女性、子育て中、投資未経験で不安が大きい」など。
    「ざっくりでOK」「おまかせ」も歓迎）

2. 視聴後、視聴者にどうなってほしいですか？（動画のゴール）
   （視聴後に「何を知ってる／何ができる／何を始める」状態が理想ですか？
    例：「NISAの仕組みを理解して、今日中に口座申込のリンクを開く」など）

3. 動画の中で、視聴者への「問いかけ」を入れたいですか？
   （例：「あなたは銀行にいくら預けていますか？」「もし子どもがいたら...と想像してみてください」など。
    入れる場合は「何回くらい」「どんなシーンで」かも教えてください。
    指定なし＝こちらで2〜3箇所、自然なタイミングに入れます）

4. 動画の最後に、視聴者にしてほしいアクション（CTA）はありますか？
   （例：
    - 公式LINE登録
    - コメント・いいね・チャンネル登録
    - プロフィールリンクから何かを見てほしい
    - 特になし＝知識提供だけで自然に締める
    - その他（自由に書いてください））

5. 絶対外したくないメッセージ・体験談・数字はありますか？
   （これだけは伝えたい主張、自分の原体験、受講生の事例、
    使いたい具体的な数字（〇〇万円、〇〇%など）。
    「ない」「おまかせ」でもOK）

▼ 任意追加（あれば教えてください）
- 触れたくないこと／NGトピック
- 過去に同じテーマで作ったコンテンツ（重複回避のため）
```

### 各項目の使い方（台本生成時にどう反映するか）

| 項目 | 台本への反映の仕方 |
|---|---|
| **1. 対象者** | オープニングで対象者像に語りかける呼びかけを入れる。専門用語の有無、たとえ話の選び方を調整 |
| **2. ゴール** | エンディングで「今日の動画で〇〇がわかったはず」と着地点を明確化。本編もそこから逆算 |
| **3. 問いかけ** | 指定回数 or デフォルト2〜3回、視聴者に「あなたはどう?」と投げかけるセクションを挟む。スライドも問いかけ型を使う |
| **4. CTA** | 指定があればエンディング直前に自然なCTAブロックを追加。「なし」なら知識提供だけで締める（押し付けない） |
| **5. 絶対外したくないこと** | 必ず本編のどこかに盛り込む。原体験は中盤の説得力強化に使うことが多い |

### 答え方の幅を許容する

- 全項目「おまかせ」と返ってきた場合 → こちらで妥当な設定を補完し、Phase 2 台本生成時に「こう設定しました」と冒頭で明示する
- 一部だけ答えた場合 → 答えた部分は厳密に反映、空欄部分はこちらで補完
- **追加質問を勝手に増やさない**。深掘りは5項目で打ち止め。それ以上必要な情報はPhase 2のフィードバックループで拾う

### Phase 1.5 が終わったら、Phase 1.75 へ

承認は取らない。「設計ありがとうございます。次は中身の素材を集めさせてください」と一言入れて、すぐ Phase 1.75 に進む。

---

## Phase 1.75: 内容ヒアリング（何を・どんなエピソードで／5項目）

Phase 1.5 で「誰に・なぜ・どう伝えるか」の **設計** が決まった。
Phase 1.75 では、その設計を埋める **「中身の素材」** を集める。

**設計思想**
- Phase 1.5 だけだと、まだ「骨組み」しかない状態。AIが書く台本は無難で抽象的になりがち
- 「実際に話したいエピソード／使いたい数字／視聴者がつまずく具体的なポイント」が入ると、台本が一気に **その人らしく・視聴者に届く** ものになる
- ここで集める素材は、AIが想像で埋めるより 10倍リアル になる（顧問生さんの一次情報だから）
- ただし、ここも全部「おまかせ」回答OK。AIが妥当な仮素材を補完する

### 切り出し方（Phase 1.5 に答えてもらった直後）

```
設計ありがとうございます！

次は、その設計を埋める「中身の素材」を5つだけ深掘りさせてください。
ここを埋めるほど、台本があなたの一次情報で立体化します。
全部「おまかせ／思いつかない」も大丈夫です。

1. 実際に話したいエピソード・体験談はありますか?
   （自分の失敗談／成功体験／受講生さんやお客様の事例／印象に残った出来事 など。
    1〜3個くらい、ざっくりでOK。「子どもの教育費でお金が必要になった時」みたいな
    1行メモでも、こちらで膨らませます）

2. 使いたい具体的な数字・データはありますか?
   （金額／割合／年数／人数など。
    例：「物価は10年で20%上がる」「月3,000円から始められる」など。
    手持ちの数字でも、こちらで調べてほしいテーマでもOK）

3. 視聴者がつまずきがちな悩み・誤解は何ですか?
   （「投資=怖い」「難しそう」「お金がない」など。
    視聴者のリアルな心の声を1〜3個。
    これがあると、視聴者の頭の中の声に「先回りして答える」台本になります）

4. このテーマでの「あなたならではの切り口」は何ですか?
   （他の発信者と何が違うか／なぜあなたが話す意味があるか。
    例：「自分も同じ悩みを抱えていたから」「3児の母として現場感がある」
    「現役の◯◯として」など。1行でOK）

5. 構成の順序の希望はありますか?
   （「最初に絶対◯◯から入りたい」「中盤で必ず◯◯の話を挟みたい」
    「最後は◯◯で終わりたい」など、決まっている流れがあれば。
    なければ「おまかせ」でOK、こちらで最適な順序を組みます）

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

▼ もっと内容を詰めたい場合

「上の5項目だけだと物足りない、もっと中身を深掘りしたい」と感じたら、
遠慮なく言ってください。追加で質問していきます。

そのとき、「こういう観点から質問してほしい」と教えてもらえると的確に深掘りできます。例えば：

- **ペルソナをもっと細かく詰めたい**
  （家族構成／年収／1日の過ごし方／普段使うSNS／お金に関する悩みの優先順位）

- **視聴者の感情の動きを設計したい**
  （オープニングで何を感じ、中盤で何を感じ、最後にどんな気持ちで動画を閉じてほしいか）

- **具体例・エピソードをもっと出したい**
  （自分の体験談／受講生・お客様の事例／ニュースや本で見た第三者の事例）

- **使う言葉・キーワード選びを深めたい**
  （NGワード／必ず使いたいワード／普段の自分の口癖／専門用語の扱い方）

- **数字・データの根拠を詰めたい**
  （出典を明示したい数字／自分で計算しておきたいシミュレーション）

- **競合との差別化を深めたい**
  （他の発信者が言ってないこと／自分だけが言えるポジション）

- **最後のメッセージを練りたい**
  （締めの一言で何を残したいか／視聴後に行動してほしいことの言語化）

▼ 観点の指定がなくても大丈夫

「もっと深掘りして」とだけ言ってくれれば、こちらで「いまの素材で一番弱い部分」を判断して、
そこを補強する観点で追加質問します。

▼ もう十分な場合

「OK、これで進めて」と言ってくれれば、すぐ台本作成（Phase 2）に進みます。
```

### 各項目の使い方（台本生成時にどう反映するか）

| 項目 | 台本への反映の仕方 |
|---|---|
| **1. エピソード** | 本編の説得力ブロックに必ず差し込む。1〜2分の体験談として展開。一次情報＝強い |
| **2. 数字・データ** | 数字インパクトスライドの中核に。「年2%のインフレ」など具体数字で抽象論を回避 |
| **3. つまずき・誤解** | オープニング or 各セクション冒頭で「こう思ってませんか?」と先回り共感 |
| **4. 切り口** | オープニングの自己紹介 or 動画後半の差別化メッセージに使う |
| **5. 順序の希望** | Phase 2 の台本構成で最優先。指定がなければセオリー順で組む |

### 答え方の許容範囲

- 全項目「おまかせ」「思いつかない」→ AIが仮素材を補完し、台本生成時に「補完しました」と冒頭で明示
- 1〜2個だけ答えた → 答えた素材は厳密に組み込み、空欄部分のみ補完
- **質問は飛ばさない**。1〜5を必ず通す（おまかせ回答は歓迎）
- 顧問生さんが「思いつかないけど何かヒントある?」と返してきた場合 → こちらから2〜3個の仮素材を例示して、選んでもらう（誘導しすぎない）

### Phase 1.75 が終わったら、Phase 2 へ

承認は取らない。「素材ありがとうございます。台本を書きます」と一言入れて、すぐ Phase 2 の台本作成に入る。

---

## Phase 2: 台本作成

### 口調のデフォルトとカスタマイズ案内（★ 重要 ★）

- **デフォルト口調**：まさき口調（教育者口調）
  - 一人称：「僕」
  - 文末：丁寧語ベース（〜です／〜ます）
  - フランクさ配分：丁寧95% / カジュアル5%
  - 「学習を進める」を使う（「講座を進める」ではなく）
  - 「刺さった」「刺さる」は使わない
  - 章番号には触れない（変更可能性があるため）

- **カスタマイズ案内**：台本を出力した直後に、必ず以下の文言を添える：
  ```
  ※ 現在はまさき口調（教育者口調・「僕」・丁寧語ベース）で書いています。
    あなた自身の口調にしたい場合、以下のような形でフィードバックしてください：
    - 一人称を「私」「俺」「自分」に変えたい
    - もっとフランクに（タメ口寄りに）
    - 「〜だよね」「〜なんですよ」など特定の言い回しを入れたい
    - 関西弁にしたい／硬めの講師っぽくしたい
    何度でも調整できます。
  ```

### 台本のフォーマット

```markdown
# （タイトル）

> セミナー／講座動画
> 想定尺: ○〜○分
> 口調: まさき口調（教育者口調）／カスタマイズ後の口調名

---

【セクションタイトル】

（台本本文）

---

（繰り返し）
```

### 台本出力のルール（★ 最重要 ★）

- **台本は必ず全文をチャットに出力する**。サンプル化・省略・「以下同様に...」は禁止
- 1セクションだけ出して残りを省略するのもNG。最初から最後まで全部書き切る
- 想定尺に応じた文字数目安：
  - 5分動画 ≒ 1,500字
  - 10分動画 ≒ 3,000字
  - 15分動画 ≒ 4,500字
  - 20分動画 ≒ 6,000字
  - 30分動画 ≒ 9,000字
- 上記文字数を満たすまで書き切る。短すぎる場合は具体例・体験談・補足を足して尺を合わせる

### 台本作成のルール

- まさき口調をデフォルトで使用（上記参照）
- 具体例や実体験を交えて説得力を持たせる
- **章番号や講座名は任意**：Phase 1で「章番号を入れたい」と指定があれば入れる。指定がなければ汎用化のため触れない（デフォルト）
- 1セクション = 1テーマで明確に区切る
- 元ネタがある場合は、構造・論点を借りつつ表現は顧問生さん自身のオリジナルにする（盗用回避）

### ★ Phase 1.5・1.75 のヒアリング素材の反映ルール（最重要）★

Phase 1.5 と Phase 1.75 で集めた素材を、台本の各セクションに **必ず反映する**。
「ヒアリングしたのに台本に反映されてない」「素材が宙に浮いている」という事故を防ぐ。

#### マッピング表（どのヒアリング項目が台本のどこに入るか）

| ヒアリング項目 | フェーズ | 台本のどこに反映するか |
|---|---|---|
| ① 対象者 | 1.5 | オープニングの呼びかけ／専門用語の扱い／たとえ話の選定基準 |
| ② 視聴後のゴール | 1.5 | エンディングの着地点／各セクションが目指す到達点 |
| ③ 問いかけ | 1.5 | 本編の指定回数の位置に「あなたはどう?」型ブロックを挟む |
| ④ CTA | 1.5 | エンディング直前のCTAブロック（指定なし＝知識提供で締める） |
| ⑤ 外せないメッセージ | 1.5 | 本編の中核セクションに必ず1回は明示 |
| ⑥ エピソード・体験談 | 1.75 | 本編の説得力強化セクションに1〜2分の展開として |
| ⑦ 数字・データ | 1.75 | 序盤の問題提起の根拠／数字インパクトセクションの中核 |
| ⑧ 視聴者のつまずき・誤解 | 1.75 | オープニング／各セクション冒頭の「こう思ってませんか?」 |
| ⑨ あなたならではの切り口 | 1.75 | オープニングの自己紹介／差別化メッセージ |
| ⑩ 構成順序の希望 | 1.75 | 全体構成の骨格として最優先反映 |

#### 台本生成手順（この順で組む）

**Step 1: 骨格を決める（構成順序）**
- ⑩ 構成順序の希望があれば、それを骨格として最優先で組む
- 希望なしの場合は、① 対象者 と ② ゴール から逆算してセオリー順を組む
  - セオリー：オープニング → 問題提起 → 解決策 → 具体方法 → 注意点 → アクション → エンディング

**Step 2: オープニングを書く**
- ① 対象者 への呼びかけ（誰に向けた動画かを明示）
- ⑧ 視聴者のつまずき・誤解 を冒頭で先回り共感（「こう思ってませんか?」）
- ⑨ あなたならではの切り口 で「なぜ自分が話すか」を明示（短く、押し付けず）

**Step 3: 本編を各セクションに分けて書く**
- 各セクション冒頭で、必要に応じて ⑧ つまずき を掘り出す
- ⑦ 数字・データ は問題提起 or 説得力強化に組み込む（具体数字で抽象論を回避）
- ⑥ エピソード・体験談 は本編中盤の説得力ブロックに1〜2分の展開として配置
- ⑤ 外せないメッセージ は中核セクションで必ず1回伝える
- ③ 問いかけ は指定回数を本編の自然なタイミングに挟む（指定なし＝2〜3回）

**Step 4: エンディングを書く**
- ② ゴール に合わせて「今日の動画で何がわかったか／何ができるようになったか」を整理
- ④ CTA に従って自然なアクションを促す（指定なし＝知識提供だけで自然に締める）

**Step 5: 書き終わったら、自己チェック**
- ①〜⑩ の10項目すべてが台本のどこかに反映されているか確認
- 漏れがあれば書き直す（サンプル化・省略は禁止）
- 反映できなかった項目がある場合は、台本の冒頭注釈で「この項目は意図的に省きました／補完しました」と明示

#### 「おまかせ」回答の補完ルール

ヒアリングで「おまかせ／思いつかない」と返ってきた項目は、AIが妥当な仮素材で補完する。
ただし **補完した内容は、台本の冒頭注釈ブロックで必ず明示する**（顧問生さんが「これは自分の意図と違う」と気づけるように）。

例：
```
※ 以下はAI補完です。修正したい場合はフィードバックください：
- 対象者：30〜40代の女性、子育て世帯（おまかせ補完）
- エピソード：物価上昇で家計が圧迫されている主婦の例（仮）
- 視聴者のつまずき：「投資=怖い／難しそう」（仮）
```

#### 元ネタがある場合の優先順位

元ネタ（Phase 1の③）がある場合、ヒアリング素材との優先順位は：

1. 元ネタの **構造・論点** は土台として使う
2. 顧問生さんの ⑥ エピソード／⑦ 数字／⑨ 切り口 で **オリジナルの肉付け** をする
3. 元ネタの表現はそのまま使わず、まさき口調（or 顧問生口調）で書き直す

→ 「元ネタの骨組み × ヒアリング素材の肉付け」で、盗用を回避しつつ顧問生さんの色を出す

### 承認フロー（フィードバックループ）

- 台本を出力後、以下の文言を必ず添える：

```
---
台本は以上です。フィードバックをお願いします。
修正したい箇所や追加したい内容があれば教えてください。

※ 現在はまさき口調（教育者口調・「僕」・丁寧語ベース）で書いています。
　あなた自身の口調にしたい場合は、上記のようにフィードバックしてください。

「OKです」「これで次に進めてください」と言っていただければ、
スライド構成案・対応表・ChatGPTプロンプトを一括で出力します。
```

- ユーザーからフィードバックが来たら → 修正して再出力 → 再度フィードバック依頼
- このループを何度でも繰り返す
- **「OK」「これでいい」「次に進めて」等の明確な承認があるまで、絶対にPhase 3+4に進まない**
- 承認が出たら、Phase 3+4を一気に出力する

---

## Phase 3: 台本のローカル保存

台本の承認が出た時点で、ローカルにファイル保存する。

### 保存先

**Phase 1 のヒアリングで聞いた顧問生さん指定の保存先フォルダを使う。**

| ファイル | 保存先 |
|---|---|
| 台本 | `{顧問生さん指定フォルダ}/YYYYMMDD_台本_（タイトル）.md` |

- 顧問生さんが指定したフォルダパスをそのまま使う（例: `~/Desktop/セミナー素材/`、`~/Documents/動画台本/` など）
- 指定がなかった場合のみ、フォールバックとしてカレントディレクトリ配下に `seminar-output/` を自動作成して保存
- 保存先フォルダが存在しない場合は自動作成（`mkdir -p`）

### 保存のタイミング

- ユーザーが「OK」「次に進めて」と言った時点で即座に保存
- 保存後、スライド一括出力（Phase 4+5）に進む

---

## Phase 4+5: スライド構成案 + 対応表 + ChatGPTプロンプト（一括出力）

### スライドデザインの取得（★ slide-kanzenban 動的参照 ★）

スライドのレイアウトパターンとカラープリセットは `slide-kanzenban` スキルから動的に取得する。

**手順**:
1. ヒアリングPhase 1の「デザイン希望」を確認
2. 指定がある場合 → そのプリセット名／雰囲気キーワードを slide-kanzenban のプリセット辞典に当てて取得し、確定として進む
3. **指定がない場合 → 3パターン提案フロー** に入る（下記）
4. 確定したプリセットの **HEXコード／フォント／雰囲気キーワードを必ずプロンプトに埋め込む**

slide-kanzenban の参照対象（実行時に最新版を読み込む）:
- レイアウト辞典（43パターン以上、随時追加）
- ベースカラープリセット（19種以上：上品ホワイト植物風／黒金豪華／青白テック講座風／桜ピンク春セミナー風／カラフルPOP講座風 等）
- 雰囲気モディファイア（100種以上）

### 指定なしの場合：3パターン提案フロー（★ ）

ヒアリングでデザイン希望の指定がなかった場合、台本承認直後に以下のフォーマットで **3パターン提案**してから選んでもらう。

```
スライドデザインの希望は伺っていなかったので、
台本のテーマ「（タイトル）」に合いそうなプリセットを3つ提案します。
番号で選んでください（または「全部別案で」と言えば再提案します）。

━━━━━━━━━━━━━━━━━━━━━━━━━━
【案1】（プリセット名）
━━━━━━━━━━━━━━━━━━━━━━━━━━
- 雰囲気：（一言で：清潔感／高級感／カジュアル etc.）
- メインHEX：#XXXXXX
- アクセントHEX：#XXXXXX
- フォント：（プリセット指定）
- 向いている用途：（このテーマと相性がいい理由）

━━━━━━━━━━━━━━━━━━━━━━━━━━
【案2】（プリセット名）
━━━━━━━━━━━━━━━━━━━━━━━━━━
（同上のフォーマット）

━━━━━━━━━━━━━━━━━━━━━━━━━━
【案3】（プリセット名）
━━━━━━━━━━━━━━━━━━━━━━━━━━
（同上のフォーマット）

どの案で進めますか?（1／2／3、または「全部別案で」）
```

**3パターン選定の考え方**:
- テーマと相性のいいものを軸に、**幅をもたせて選ぶ**（似た3案を出さない）
  - 例：「清潔感系」「高級感系」「カジュアル系」と方向性を散らす
  - 例：「明るい配色」「ダーク配色」「中間配色」と明度を散らす
- 顧問生さんが「コレ！」と直感で選べるように、雰囲気を一言で言語化する

**選択後の流れ**:
- ユーザーが番号を選んだら → そのプリセットでスライド構成案・対応表・ChatGPTプロンプトを一括出力
- 「全部別案で」と言われたら → 別の3パターンを再提案（最初の3案とは別軸で）

### 出力フォーマット（3つセットで一気に出力）

#### A. スライド構成案

```markdown
# スライド構成案：（タイトル）

## 基本情報
- 総枚数: ○枚
- デザインテーマ: （slide-kanzenban から選定したプリセット名）
- メインHEX: #XXXXXX / アクセントHEX: #XXXXXX
- フォント: （プリセット指定のフォント）
- 用途: 動画講義／セミナー

## スライド一覧

| # | パターン | タイトル | 役割 |
|---|---|---|---|
| 1 | タイトル型 | ○○ | 表紙 |
| 2 | AGENDA型 | 今日の流れ | 全体目次 |
| ... | ... | ... | ... |
```

#### B. 台本×スライド対応表（全文マーカー形式・一括コピー対応）

台本の全文を出力し、スライドを切り替えるポイントに視覚的なマーカーを挿入する。
動画編集時にそのまま使える指示書として機能させる。

**★ 重要：対応表全体を1つのコードブロック（```text ... ```）で囲んで出力する。**
**ユーザーがコードブロック右上のコピーボタンで一発で全文コピーできるようにするため。**

出力例：

````markdown
## B. 台本×スライド対応表

> 下のコードブロック右上の「コピー」ボタンで一括コピーできます。

```text
# 台本×スライド対応表：（タイトル）

> 台本全文にスライド切り替えマーカーを挿入しています。
> 📊マーカーが出てきたら、そのスライドに切り替えてください。

---

📊 SLIDE 1:（表紙）── 動画開始時に表示

---

📊 SLIDE 2: 今日の内容 ── ここで切り替え

最初にこの動画の流れをお伝えすると〜
（台本テキストがそのまま続く）

---

📊 SLIDE 3: ○○ ── ここで切り替え

じゃあまず〜についてお話しします。
（台本テキストがそのまま続く）

---

（以降、台本全文を途切れなく出力し、切り替えポイントごとに📊マーカーを挿入）

---

📊 SLIDE N: エンディング ── ここで切り替え

ということで、今回は〜
```
````

### 対応表作成のルール

- **対応表全体を1つの```text```コードブロックで囲む**（一括コピー対応・必須）
- **台本の全文をそのまま出力する**（省略・要約しない）
- スライドを切り替えるポイントに `📊 SLIDE #: タイトル ── ここで切り替え` マーカーを挿入する
- マーカーの前後に `---`（水平線）を入れて視覚的に区切る
- 台本テキストは一切改変しない（原文をそのまま使用）
- 表紙（SLIDE 1）は冒頭に置き、「動画開始時に表示」と記載
- 1スライドにつき1つのマーカーを、切り替えるべき箇所の直前に配置する
- 対応表ファイル（.md）への保存も併せて行う（保存先：`{顧問生さん指定フォルダ}/YYYYMMDD_対応表_（タイトル）.md`、指定なしなら `./seminar-output/` にフォールバック）

#### C. ChatGPTプロンプト（10枚ずつチャンク分割）

##### 出力ルール（★ 一括コピー対応 ★）

- 10枚ずつチャンク分割
- **各チャンクは1つのコードブロック（```text ... ```）にまとめて出力する**
- ユーザーがチャンクごとに「コピーボタン」一発で10枚分のプロンプトを一括コピーできるようにする
- 各SLIDEは `========================================` の区切り線で視覚的に分離（コードブロック内で）
- 各チャンクは自己完結型（共通設定をフルセットで含める）
- **HEXカラーコードを必ず明示**（slide-kanzenban のプリセットから取得した値）
- **フォント指定を必ず含める**（プリセット指定）
- 厳守事項を毎チャンクに含める（16:9・日本語テキスト・HEX厳守・指定フォント使用）

##### チャンクの出力例

````markdown
## C. ChatGPTプロンプト（チャンク1：SLIDE 1〜10）

> 下のコードブロック右上の「コピー」ボタンで10枚分を一括コピー → ChatGPTで1枚ずつ生成してください。

```text
========================================
SLIDE 01 / N — タイトル
========================================

横長16:9のスライドを1枚作成してください...

（以下、SLIDE 01のプロンプト全文。HEX・フォント・雰囲気キーワードを必ず含める）

========================================
SLIDE 02 / N — AGENDA
========================================

横長16:9のスライドを1枚作成してください...

（以下、SLIDE 02のプロンプト全文）

... 中略 ...

========================================
SLIDE 10 / N — ...
========================================

（SLIDE 10のプロンプト全文）
```
````

**重要**: ChatGPTで使う際は、ユーザーがコードブロック全体をコピー → ChatGPTに貼った後、各SLIDEごとに区切って使う。
コードブロック内に ` ``` ` （バッククォート3つ）を含めない（マークダウンが壊れるため）。

### Phase 4+5 は一括出力（承認不要）

台本が承認された時点で、上記A・B・Cの3つを**ユーザーを待たせずに一気に出力する**。
途中で承認を挟まない。台本OKが出た = スライドも一気に出す。

### ★ Phase 5 のラスト：ChatGPTへの最終指示文を必ず添える ★

A・B・Cを出力したあと、**Phase 6への橋渡し**として、以下の案内文を必ず最後に添える。
顧問生さんがそのままChatGPTにコピペで使える「最後の一言」を渡す。

```
---

## D. ChatGPTでスライド画像をすべて生成し終えたら

ChatGPTのチャット内に、最後に下記のメッセージを送ってください：

────────────────────────────────────
ここまで生成してくれたスライド画像を、
**PDFで一括ダウンロードできるようにしてください。**
チャンクごとに1つのPDFにまとめてくれたら助かります。
────────────────────────────────────

→ ChatGPTから「チャンク1のPDF」「チャンク2のPDF」「チャンク3のPDF」が届きます。
→ 全部ダウンロードしたら、**1枚目（チャンク1）から順番に**このチャットにドラッグ&ドロップして、
　Enterを押してください。

★ Enterを押した瞬間、自動で1つのPDFに結合 → Finderで保存先を開きます ★
（こちらから「結合していいですか?」とは聞きません。即実行します）
```

この案内文を出すまでが Phase 4+5 のゴール。

---

## Phase 6: PDF結合（★ Enter即実行・確認なし ★）

ChatGPTでスライド画像／PDFを生成し終わった顧問生さんが、PDFを順番にチャットに貼ってEnterを押した瞬間に、**一切の確認なしで自動結合 → Finderで保存先を開く** までを一気にやる。

### 動作トリガー（自動判定）

以下のいずれかを検知した瞬間、Phase 6 を自動実行する：

1. **PDFファイルが2つ以上、メッセージ内で添付・ドラッグ&ドロップされた** → 即実行
2. **「結合して」「まとめて」「PDF作って」「これ繋いで」など明示的な指示** → 即実行
3. **画像ファイル（PNG/JPG）が複数枚添付された** → Pillow経由でPDF化してから結合

### ★ 絶対ルール：確認を入れない ★

- 「結合していいですか?」「順番はこれで合ってますか?」と聞かない
- ファイルパスを受け取った瞬間に、**渡された順番のまま** pypdf で即結合
- 結合後、Finderで保存先を開いて完了報告だけ出す
- もし順番が違っていれば、顧問生さんが「順番違った、やり直して」と言うので、そう言われたら再実行

このフェーズだけは **対話型ではない**（Phase 2の台本作成だけが対話型）。

### PDF結合の実装（★ クロスプラットフォーム対応 ★）

```python
from pypdf import PdfReader, PdfWriter
from PIL import Image
import os
import platform
import subprocess
from datetime import datetime

def merge_to_single_pdf(file_paths, output_path):
    """
    渡されたファイル（PDF/画像混在OK）を、渡された順番のまま1つのPDFに結合する。
    確認は入れない。即実行。
    macOS / Windows 両対応。
    """
    writer = PdfWriter()

    for path in file_paths:
        # OS依存パスを正規化
        path = os.path.expanduser(os.path.normpath(path))
        ext = os.path.splitext(path)[1].lower()

        if ext == ".pdf":
            # PDFはそのままページ追加
            reader = PdfReader(path)
            for page in reader.pages:
                writer.add_page(page)
        elif ext in (".png", ".jpg", ".jpeg", ".webp"):
            # 画像はPillowでPDF化してから結合
            img = Image.open(path).convert("RGB")
            tmp_pdf = path + ".tmp.pdf"
            img.save(tmp_pdf, "PDF")
            reader = PdfReader(tmp_pdf)
            for page in reader.pages:
                writer.add_page(page)
            os.remove(tmp_pdf)

    # 保存先フォルダがなければ作成
    output_path = os.path.expanduser(os.path.normpath(output_path))
    os.makedirs(os.path.dirname(output_path), exist_ok=True)

    with open(output_path, "wb") as f:
        writer.write(f)

    return len(writer.pages)


def open_folder(folder_path):
    """
    保存先フォルダをOS標準のファイラで開く。
    - macOS: Finder（open）
    - Windows: エクスプローラー（explorer または os.startfile）
    - Linux: xdg-open（保険）
    """
    folder_path = os.path.expanduser(os.path.normpath(folder_path))
    system = platform.system()

    if system == "Darwin":  # macOS
        subprocess.run(["open", folder_path])
    elif system == "Windows":
        # os.startfile が最も確実（フォルダ・ファイル両対応）
        try:
            os.startfile(folder_path)
        except Exception:
            subprocess.run(["explorer", folder_path], shell=False)
    elif system == "Linux":
        subprocess.run(["xdg-open", folder_path])
    else:
        # 未知のOSは何もしない（パスだけ報告）
        pass
```

### OS別の挙動注意

| 項目 | macOS | Windows |
|---|---|---|
| パス区切り | `/` | `\` または `/`（Pythonはどちらも受理） |
| ホームディレクトリ | `~/` → `/Users/{name}/` | `~/` → `C:\Users\{name}\` |
| ファイラを開くコマンド | `open` | `explorer` / `os.startfile` |
| Pythonコマンド | `python3` | `python` または `py` |
| パッケージマネージャ | `pip3` | `pip` |

スキル内のコードは `os.path.expanduser` + `os.path.normpath` + `platform.system()` で **OS差分を自動吸収** する。
顧問生さんの環境がmacOSかWindowsかをヒアリングする必要はない。

### 保存先

**Phase 1 のヒアリングで聞いた顧問生さん指定の保存先フォルダに保存する。**

| ファイル | 保存先 |
|---|---|
| 結合済みスライドPDF | `{顧問生さん指定フォルダ}/YYYYMMDD_スライド_（タイトル）.pdf` |

- 指定なしのフォールバックは `./seminar-output/`
- フォルダがなければ自動作成（`os.makedirs(..., exist_ok=True)`）

### 実行後の処理（順番固定）

1. **pypdfで結合実行**（確認なし）
2. **Finderで保存先を開く**（`open {フォルダ}`）
3. **顧問生さんへ結果を報告**（短く）

```bash
# Finderで保存先を開く
open "{顧問生さん指定フォルダ}"
```

### 結合後にユーザーへ添える文言（短く）

```
✅ PDF結合完了！

- 保存先: （保存パス）
- ページ数: ○ページ
- Finderで保存先を開きました

動画編集時は、対応表を見ながら台本の該当箇所でスライドを切り替えてください。
```

### 「順番違った」と言われた場合

- 「すみません、もう一度1枚目から順番にドラッグ&ドロップしてください」と返して、再投下を待つ
- 再投下されたら、また確認なしで即結合 → Finderオープン

---

## 重要な制約

1. **台本のフィードバックループが最重要** -- 台本承認が出るまで絶対にスライドに進まない
2. **口調はまさき口調がデフォルト** -- ただしカスタマイズ案内文言を毎回明示する
3. **台本承認後はスライドを一括出力** -- 構成案・対応表・ChatGPTプロンプトを一気に出す（途中で承認を挟まない）
4. **台本→スライドの順番を守る** -- スライドから先に作らない
5. **対応表は全文マーカー形式** -- 台本全文を出力し📊マーカーで切り替えポイントを明示（省略・要約禁止）
6. **デザインは slide-kanzenban から動的取得** -- 固定しない。HEX／フォント／雰囲気キーワードを必ずプロンプトに埋め込む
7. **独立スキル** -- aikomonslide 等への依存はなし。本スキル内で完結
8. **ChatGPTプロンプトのルール**: HEXコード必須、フォント指定必須、日本語テキスト必須、16:9比率
9. **PDF結合は受け取った瞬間に即実行・確認なし** -- 顧問生さんがPDFを順番にドラッグ&ドロップしてEnterを押した瞬間、確認なしで結合 → Finderで保存先を自動オープン。「結合していいですか?」と聞かない
9-2. **Phase 5の最後にChatGPTへの指示文を必ず添える** -- 「全部生成できたらPDFで一括ダウンロード」をChatGPTに依頼する文言を、顧問生さんがコピペで使える形で出力する
10. **保存先は顧問生さん指定フォルダ** -- Phase 1で必ず聞く。指定なしのフォールバックのみカレントディレクトリ配下の `seminar-output/`
11. **章番号や講座名は任意** -- デフォルトは触れない。Phase 1で「入れたい」と指定があれば入れる
12. **元ネタ（動画URL／文字起こし／ブログ記事）の対応** -- Phase 1で任意受け取り。あれば土台にして再構成、なければゼロから作る
13. **想定尺は問いかけ形式** -- 選択肢を強制せず、曖昧な答えはこちらで分数提案する
14. **配布時は slide-kanzenban を必ず同梱** -- ZIP配布時に両スキルをセットで含める
15. **Phase 1.5 の設計5項目は必ず通す** -- 対象者／ゴール／問いかけ／CTA／外せないメッセージ。「誰に・なぜ・どう伝えるか」を固める
16. **Phase 1.75 の内容5項目は必ず通す** -- エピソード／数字・データ／視聴者のつまずき／自分の切り口／構成順序。「何を・どんな素材で」を集める
17. **Phase 1 → 1.5 → 1.75 の順序は絶対** -- 外側→設計→中身の3段階。一発で完璧な指示は出せない前提で、3段階で深掘りする。各フェーズで「おまかせ」回答は歓迎、ただし**質問自体は飛ばさない**
18. **Phase 1.75 の最後に「もっと深掘りしたい場合の案内」を必ず添える** -- 観点の例（ペルソナ／感情の動き／具体例／言葉選び／数字根拠／差別化／締めのメッセージ）を提示し、顧問生さんから追加リクエストがあれば受ける。観点指定なしの「もっと深掘りして」もOKで、その場合は AI が「いま一番弱い部分」を判断して補強質問する
19. **Phase 2 ではヒアリング10項目（1.5の5 + 1.75の5）を必ず台本に反映する** -- マッピング表に従って、どの項目がどのセクションに入るかを意識して書く。書き終わったら10項目の自己チェック。漏れたら書き直す。「おまかせ」補完した項目は台本冒頭の注釈で必ず明示
