name: slide description: | pptxgenjs を使って、PowerPoint で再編集可能なクオリティの高い .pptx を生成する。 プレゼン資料、LT 資料、講演スライド、提案資料、報告スライドをゼロから組み立てる場合に選ぶ。 選ぶべき場合: ゼロからスライド (.pptx) を作る 選ぶべきでない場合: 既存 .pptx の解析・編集 (→ office-process)、文書作成 (→ general) triggers: keywords: - スライド - slide - プレゼン - presentation - 講演資料 - LT資料 - ライトニングトーク - 資料作成 - パワポ - powerpoint - pptx - 提案資料 - 報告書スライド max_movements: 999 initial_movement: process movements: - name: process edit: true persona: slide-designer instruction: | ## 最初のステップ: 入力把握と構成立案 1. Glob でワークスペース全体 (input/ + ルート直下) のファイル一覧を確認する 2. ユーザー指示で言及されている素材 (PDF / Word / 画像 / テキスト) を Read する 3. 外部画像が必要なら DownloadFile で input/ に保存してから使う 4. スライド構成 (タイトル / 目次 / 本編 / まとめ、8〜20 枚目安) を立てる ## テーマ選択 (SetTheme で 1 度だけ呼ぶ) タスクの雰囲気から preset を選び、必要なら overrides で色やフォントを上書きする。 - `corporate-blue` : 営業・社内提案・株主向け - `minimal-mono` : 既定。汎用・技術発表 - `vibrant` : LT・勉強会 - `academic` : 学会・論文発表 - `dark` : デモ・製品ローンチ - `warm-paper` : クリエイティブ系・教育 例: SetTheme({ preset: "corporate-blue" }) SetTheme({ preset: "minimal-mono", overrides: { primary: "#1A5490", heading_font: "Yu Gothic UI" } }) ## スライド組み立て (AddSlide を順に呼ぶ) 使えるレイアウト: title / section / bullets / two-column / image-right / image-left / image-full / table / chart / quote / closing / custom 推奨パターン: - 1 枚目: layout="title" - 2 枚目: layout="bullets" (目次) または section - 本編: 内容に応じて選択 * 単純な箇条書き → bullets * 比較 → two-column * 数値データ → chart (bar/line/pie/doughnut/area/scatter) * 一覧表 → table * 画像が主役 → image-full / image-right / image-left * 章の区切り → section * 引用 → quote - 最後: layout="closing" - notes フィールドにスピーカーノートを入れる (推奨) - 同じ layout を 5 枚以上連続させない (単調になる) ## 自由配置 (custom layout) テンプレに収まらないスライドは custom で elements 配列を直接渡す: AddSlide({ layout: "custom", content: { elements: [ { type:"text", text:"...", x:1, y:1, w:8, h:0.8, options:{font_size:28, bold:true} }, { type:"shape", shape:"roundRect", x:1, y:3, w:4, h:2, options:{fill:"#5EE2FF"} }, { type:"image", path:"input/foo.png", x:6, y:3, w:6, h:3 } ] } }) 座標は inch 単位、安全領域は x=0.5, y=0.5, w=12.33, h=6.5。 ## 完了 最後に必ず BuildPptx を呼ぶ: BuildPptx({ output: "output/slides.pptx" }) ## 注意 - `output/.slides.json` は内部状態ファイル。Write / Edit で直接編集しないこと - 全枚やり直す場合のみ ResetSlides() を呼ぶ - PDF が必要な場合: ユーザーに PowerPoint / Keynote / LibreOffice で開いて Export してもらう。 このツールは PDF 出力に非対応 ## 終了 / 遷移方法 - **次の verify へ**: `transition({next_step: "verify", summary: "生成したファイル一覧"})` - **追加情報が必要で同じ process を続行**: `transition({next_step: "process"})` - **題材・構成が曖昧で確認が必要**: `complete({status: "needs_user_input", missing_info: "...", why_no_default: "..."})` - **技術的失敗 (pptxgenjs エラー等)**: `complete({status: "aborted", abort_reason: "..."})` allowed_tools: - Read - Write - Edit - Glob - Grep - SetTheme - AddSlide - BuildPptx - ResetSlides - WebSearch - WebFetch - DownloadFile - ReadImage - ReadPdf - ReadDocx - ReadExcel - ReadPPTX - SearchKnowledge - ListDocuments - ListNamespaces - ReadToolDoc - 'mcp__*' default_next: verify rules: - condition: SetTheme + AddSlide × N + BuildPptx を実行し output/slides.pptx を生成済み next: verify - condition: 追加情報が必要 next: process - name: verify edit: false persona: reviewer instruction: | output/ の成果物を確認する。 確認手順: 1. Glob で output/ 内のファイル一覧を取得 2. output/slides.pptx が存在し、ファイルサイズ > 0 か確認 3. output/.slides.json を Read して以下をチェック: - スライド枚数が指示通り (極端な過不足、空スライドがないか) - 1 枚目が layout="title" - 最後が layout="closing" (または妥当な締めスライド) - 同じ layout の連続が 5 枚以上ないか - chart レイアウトの data.categories / data.series が空でないか - 画像参照パス (image-* / custom の image elements) が input/ または output/ に実在するか - notes (スピーカーノート) が主要スライドに付いているか 4. .pptx 本体はバイナリなので存在確認のみ (内容は .slides.json で検証) ## チェックシート確認 GetChecklist でチェックシートが存在する場合、全アイテムが完了 (done/failed/skipped) していることを確認する。remaining が 0 でないまま完了してはならない。 ## 差し戻し時の transition.summary 不足や誤りがあれば `transition({next_step: "process", summary: ...})` で差し戻す。summary は次の形式: [判定] needs_fix ## 問題点 - [ファイル名] 何が問題か ## 期待する修正 - 何をどう直すべきか ## 合格基準 - 再レビューで何を確認するか ## 次にやること - process で最初に着手すべき具体的な修正 ## 合格時のユーザーへの返答 (complete ツール) output/ の内容で合格と判断したら、`complete({status: "success", result: ...})` を呼ぶ。 result はそのままユーザーに表示される最終回答。 - 【厳守】「✅ 完了」「成果物を作成しました」等のメタ説明は書かない。1 行目から本題 - 生成したファイル (output/slides.pptx) を明記 - 使ったテーマ・スライド枚数を明記 - スライド構成 (タイトル + 章立て / 主要な論点) を箇条書きで伝える ## 終了方法のまとめ - 合格: `complete({status: "success", result: "ユーザー向け最終回答"})` - 修正必要: `transition({next_step: "process", summary: "差し戻し指摘"})` (上記形式で) - 技術的失敗: `complete({status: "aborted", abort_reason: "..."})` allowed_tools: - Read - Glob - Grep - ReadToolDoc default_next: COMPLETE rules: - condition: 成果物が不足または内容に誤りがある next: process