デザイン&モーション · JimLiu/baoyu-skills

baoyu-slide-deck

コンテンツからプロフェッショナルなスライドデッキ画像を生成します。スタイル指示を含むアウトラインを作成し、個別のスライド画像を生成します。ユーザーが「スライドを作成して」「プレゼンテーションを作って」「デッキを生成して」「スライドデッキ」「PPT」と依頼した際に使用します。

L4 高権限 · 段階的認可と監査V1 コミット固定コマンド実行ネットワーク通信ファイル書き込みDual-pass Audit
Author JimLiuGitHub JimLiu/baoyu-skills ↗Stars 25926License MIT(仓库根 LICENSE:Copyright (c) 2026 Jim Liu;根 package.json 同声明 "license": "MIT")Commit 1567581c26
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

分析 → 強制確認 → アウトライン → プロンプト → 画像生成 → PPTX/PDF 結合という段階的パイプラインです。各段階の成果物はディスクに保存され、--outline-only / --prompts-only / --images-only などのフラグによる中断・再開に対応します。

skills/baoyu-slide-deck/SKILL.md
- [ ] Step 7: Generate images
チェックリスト形式のワークフローが SKILL.md に定義されており、エージェントが順次確認します。ステージ間に暗黙の状態はなく、すべてディスク上のファイル(outline.md / prompts/ / PNG / pptx / pdf)を介して連携します。

画像生成バックエンドはこのリポジトリ内には実装されておらず、次の優先度で解決されます:現在のリクエストでの指定 > EXTEND.md の設定 > ランタイムのネイティブツール(Codex imagegen / Cursor GenerateImage / Hermes image_generate)> 唯一インストールされている非ネイティブバックエンド(baoyu-image-gen)> ユーザーへの確認。

skills/baoyu-slide-deck/SKILL.md
If a skill named `imagegen` is listed, you are running inside Codex and MUST use it
設計意図:「誰が画像を描くか」の決定をランタイム環境に委ね、スキル側は解決順序と呼び出し規約のみを規定します。そのため、ユーザーのコンテンツとプロンプトは選択された画像バックエンドに送信されます。

codex-imagegen 分岐をたどる際は、ラッパーを直接呼び出すのではなく、同一リポジトリ内の baoyu-image-gen スキルスクリプト経由を優先します。

skills/baoyu-slide-deck/SKILL.md
route through `baoyu-image-gen --provider codex-cli` (preferred)
ラッパーの呼び出し規約(パラメータ、stdout JSON、エラーコード、n=1 セマンティクス)は別途 references/codex-imagegen.md に記載されており、必要に応じて読み込まれます。

プロンプトファイルは厳格な再現性の記録となります。バックエンドを呼び出す前に、各スライドの完全な最終プロンプトを必ず prompts/NN-slide-[slug].md に保存する必要があります。

skills/baoyu-slide-deck/SKILL.md
**Prompt file requirement (hard)**: write each image's full, final prompt to a standalone file under `prompts/`
利点として、バックエンドを変更してもプロンプトの再作成が不要で、再生成時もファイルを編集して --regenerate を実行するだけで済みます。PPTX 結合スクリプトはこのプロンプトを発表者ノートにも記録します。

結合処理はこのリポジトリ内で唯一の実行可能コードであり、完全にローカルで動作します:merge-to-pdf.ts は pdf-lib を用いて画像を1ページずつ埋め込み、merge-to-pptx.ts は pptxgenjs を用いて 16:9 で出力し、base-prompt と各ページのプロンプトを発表者ノートに記録します。

skills/baoyu-slide-deck/scripts/merge-to-pptx.ts
pptx.layout = "LAYOUT_16x9";
両スクリプトともネットワーク接続を行わず、環境変数を読み込まず、子プロセスも生成しません。画像は base64 data URI として PPTX 内に埋め込まれるため、デッキは完全に自己完結します。

確認は厳格なゲートです。ユーザーがそのターンで「直接生成して/確認不要」と明示しない限り、Step 2 が完了する前に Step 3 以降に進むことは禁止されています。

skills/baoyu-slide-deck/SKILL.md
Do **not** start Step 3 or later until the user completes Step 2.
「スキルの明示的な呼び出し」「スタイルの合致」「EXTEND.md のデフォルト値」などはすべて単なる推奨入力へと格下げされ、確認をスキップする権限は与えられません。

スタイルシステム = 17 種類のプリセット × 4 つの次元(texture/mood/typography/density)の自由な組み合わせです。コンテンツのシグナルがキーワードテーブルに一致すれば自動選定され、一致しない場合は blueprint にフォールバックします。

skills/baoyu-slide-deck/SKILL.md
17 presets covering technical / educational / lifestyle / editorial use cases.
各プリセットには references/styles/<preset>.md、各次元には references/dimensions/*.md が存在します。選定ルールとページ数のヒューリスティクスは SKILL.md のテーブルに記載されています。

一括画像生成には明確な優先順位があります:バックエンドのネイティブバッチ > ランタイムの並列ツール呼び出し(デフォルト 4、--batch-size で変更可能)> シーケンシャル。また、「すべてのプロンプトファイルがディスクに保存される」まで最初のバッチの開始は許可されません。

skills/baoyu-slide-deck/SKILL.md
- Never start the first batch until all selected slide prompt files exist on disk.
失敗時は失敗した項目のみを1回再試行し、成功済みの項目は再生成しません。結合処理はすべての画像生成が完了するまで待機する必要があります。

2コア機能

01記事やトピックからスライド画像一式を生成(表紙および裏表紙を含む)
0217 種のプリセットスタイル + 4 次元のカスタマイズ(texture/mood/typography/density)
03コンテンツのシグナルに応じた自動スタイル選定 + テキスト量に応じた推奨ページ数算出(1000語未満 → 5〜10ページ … 5000語超 → 20〜30ページ)
04参照画像の3つの使用モード(direct 直接送信 / style スタイル抽出 / palette パレット抽出)
05アウトラインとプロンプトの任意レビュー分岐(skip_outline_review / skip_prompt_review)
06バッチ並列画像生成(デフォルト 4、--batch-size で調整可能、1〜8 に制限)と失敗時の再試行
07PPTX / PDF へのローカル結合(各ページのプロンプトを発表者ノートに保持)
08画像修正の規律:プロンプトファイルを修正した後に指定ページを --regenerate すること。生成済みビットマップ画像に対するテキストのパッチ当ては禁止

3外部依存関係

KindDependency / Endpoint
api运行时图像生成后端(Codex imagegen Skill / Cursor GenerateImage / Hermes image_generate)——用户内容与提示词由此出网
clicodex CLI(无原生 imagegen 时的 codex exec 后端,需 codex login)
clibaoyu-image-gen 技能脚本(--provider codex-cli,首选路径)
clibun / npx -y bun(跑合并脚本与包装器)
packagepdf-lib ^1.17.1(PDF 合并)
packagepptxgenjs ^4.0.1(PPTX 合并,声明于仓库根 package.json)
packagesharp ^0.34.5(根依赖,两个合并脚本均未 import)
networkhomepage 元数据 URL(静态 frontmatter,任何步骤都不抓取)

4推奨統制措置と判定根拠

安全運用のための推奨統制措置
Agent 向け
段階的・都度認可、サンドボックス推奨
管理者向け
承認フロー、ロールバック可能、全履歴監査
判定根拠(ファイルパスと抜粋)
  • scripts/: ローカルスクリプトまたはコマンドの実行: ${BUN_X} {baseDir}/scripts/merge-to-pptx.ts <slide-deck-dir>(bun または npx -y b
  • 网络端点: 外部ネットワークアクセスの宣言: スキル自体のスクリプトはネットワーク呼び出しを一切行わない(2つの結合スクリプトは fs/path + pdf-lib / pptxgenjs のみをインポート)
  • 本地工作目录: ファイルの読み書きと成果物出力: slide-deck/{topic-slug}/source-*.{ext} および analysis.md
監査ノート: 第4バッチの最終判定基準(ユーザーコンテンツを外部の生成バックエンドに引き渡す=Orange)に基づき、本スキルは2つの要素を自ら明示しています:①【ランタイム生成バックエンドの明指】SKILL.md の「Image Generation Tools」項で Codex `imagegen`('If a skill named `imagegen` is listed, you are running inside Codex and MUST use it')、codex-imagegen のパス('route through `baoyu-image-gen --provider codex-cli` (preferred)')、Cursor `GenerateImage`、Hermes `image_generate` を個別に挙げており、さらに references/codex-imagegen.md で呼び出し規約を規定しています。これにより、ユーザー素材と各ページのプロンプト(--ref で直接渡される参照画像を含む)が外部のサードパーティモデルに送信され、アカウントの利用枠を消費するため、サイト内の ai-image-generation と同様に Orange 判定となります。②【ローカルディスク書き込み】prompts/NN-*.md、PNG、outline.md、analysis.md、PPTX/PDF、EXTEND.md がすべてユーザーディレクトリに書き込まれます。Yellow でない理由:送信先が固定の公開エンドポイントに対する読み取り専用のクエリではなく、ユーザーコンテンツを生成型サービスに送信するためです。Red でない理由:リバースエンジニアリング、なりすまし、セキュリティのダウングレード(サンドボックス無効化等の指示なし)、認証情報の読み取り(OPENAI_API_KEY を読み込まない旨を明記)がなく、スキル自身のスクリプトはローカルでの PDF/PPTX 結合およびディスク書き込みに限定されているためです。

5二重目の独立検証

  • [ok] 两个合并脚本无网络、无 env、无 spawn — merge-to-pdf.ts 只 import fs/path + pdf-lib,merge-to-pptx.ts 只 import fs/path + pptxgenjs;全目录 grep process.env/fetch/http/child_process 零命中。
  • [ok] 出图后端解析阶梯与 SKILL.md 一致 — 阶梯为 当前请求 > EXTEND.md preferred_image_backend > 运行时原生(imagegen/GenerateImage/image_generate)> 唯一非原生后端 > 问用户;codex-imagegen 分支的调用契约在 references/codex-imagegen.md。
  • [ok] 不读 API key(认证走用户订阅) — codex-imagegen.md 明写 'no `OPENAI_API_KEY` is read or sent';脚本零 env 读取,唯一的 env 覆盖是 $BAOYU_CODEX_IMAGEGEN_BIN(后端可执行文件路径)。
  • [ok] prompt 文件先行是硬要求 — SKILL.md 标注 (hard),且合并脚本把 base-prompt + 每页 prompt 写进 PPTX 备注,形成可复现双通道。
  • [ok] 依赖与声明一致性 — pdf-lib/pptxgenjs 由仓库根 package.json 提供(skill 内无 package.json);根依赖 sharp 未被这两个脚本 import(属未使用依赖)。
  • [ok] EXTEND.md 路径文档不一致(轻微) — SKILL.md 列三条路径(含 XDG),references/config/preferences-schema.md 只列项目与家目录两条;另 slide-deck 的首次设置明确不阻塞(与 translate/xhs-images 相反),已在正文引用中如实标注。
  • [ok] base-prompt.md 的模型定向指令 — 文件结尾确有 'Please use nano banana pro to generate the slide image based on the content provided above.' 与 'DO NOT refuse to generate' 类措辞;因它把用户文本与模型指令混在同一通道,已写入 injection_surface 与 risks。
  • [ok] 档位复核(批4 终裁) — 按 Main『生成後端類先例=orange』与点名后端+素材出网的判法落 orange;自身脚本仅有本地 pdf/pptx 合并与写盘,不升红。

6結論

  • 「再現性」をハードな制約として設計:プロンプトファイル先行作成 + バックアップリネーム + 発表者ノートへのプロンプト記録により、バックエンドを変更してもプロンプトの再作成が不要。
  • バックエンド非依存の設計で複数ホスト環境に対応(モデルをハードコードせず Codex / Cursor / Claude Code の個別分岐を保持)。
  • 充実したスタイルシステム:17 種のプリセット + 4 次元 + 選定キーワードテーブル + ページ数ヒューリスティクスが、細分化された専用のリファレンスファイル群に体系化。
  • 「ごまかし」を排除する明確な規律:ビットマップの代わりに SVG/HTML で代用することを禁止、生成画像への文字貼り付けを禁止、クロップや圧縮などの後処理のみを許可。
  • チェックポイントと柔軟性を両立した対話:デフォルトで確認を必須としつつ、--outline-only / --prompts-only / --images-only / --regenerate により制御可能で再開可能なフローを提供。
  • 最適な用途: 長文やトピックを共有可能なスライド資料へと迅速に変換したいコンテンツクリエイター、技術・ビジネスプレゼンターに最適:統一されたスタイル、ローカルでのアーカイブ、再現可能なプロンプトを必要とし、専任のデザインリソースなしで視覚的一貫性のあるスライドを作成したい、かつ外部画像生成サービスの利用を許容できるユースケース向け。
    不向きな用途: 社外へのデータ送信が禁止されている、または厳格なコンプライアンス要件がある環境には不向き。編集可能なネイティブ PPT を必要とする用途には不向き(本スキルは画像ベースのスライドであり、テキストの直接編集は不可)。文字やレイアウトの厳密な正確性が求められる公式なビジネスプレゼンテーションには不向き(モデルの画像生成では文字崩れが発生する可能性があり、事後の文字パッチ修正も規律上禁止)。利用可能な画像生成バックエンドがない環境にも不向き(ユーザー確認のステップで停止します)。
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload baoyu-slide-deck.tar.gz
    sha256: 9867805610b81b26…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 1567581c26.