baoyu-slide-deck

baoyu-slide-deck

熱門

根據內容生成專業的投影片簡報圖片。會先建立包含風格說明的綱要,再生成個別投影片圖片。當使用者要求「建立投影片」、「製作簡報」、「生成簡報」、「投影片」或「PPT」時使用。

2.2萬星標
2606分支
更新於 2026/6/18
SKILL.md
readonlyread-only
name
baoyu-slide-deck
description

根據內容生成專業的投影片簡報圖片。會先建立包含風格說明的綱要,再生成個別投影片圖片。當使用者要求「建立投影片」、「製作簡報」、「生成簡報」、「投影片」或「PPT」時使用。

version
1.117.4

投影片生成器

將內容轉換為專業的投影片簡報圖片。這套簡報是為了閱讀與分享(自解釋投影片、邏輯滾動流程、社群媒體友善)而設計,而非現場簡報——這個假設主導了以下所有版面與密度決策。

使用者輸入工具

當此技能提示使用者時,請遵循以下工具選擇規則(優先順序):

  1. 優先使用當前代理執行環境提供的內建使用者輸入工具——例如 AskUserQuestionrequest_user_inputclarifyask_user 或任何等效工具。
  2. 備援:如果沒有此類工具,則發出編號的純文字訊息,並要求使用者回覆每個問題的選擇編號/答案。
  3. 批次處理:如果工具支援單次呼叫多個問題,則將所有適用的問題合併為一次呼叫;如果僅支援單一問題,則依優先順序逐一詢問。

以下具體的 AskUserQuestion 參考僅為範例——請在其他執行環境中替換為當地等效工具。

圖片生成工具

當此技能需要渲染圖片時,依以下順序解析後端:

  1. 當前請求覆寫——如果使用者在當前訊息中指定了特定後端,則使用該後端。
  2. 已儲存的偏好設定——如果 EXTEND.mdpreferred_image_backend 設定為當前可用的後端,則使用該後端。
  3. 自動選擇(當偏好設定為 auto、未設定,或固定的後端不可用時):
    • Codex (imagegen)——首先檢查你可用的技能/工具清單。如果列出了名為 imagegen 的技能,則你正在 Codex 環境中執行,且必須使用它:透過 Skill 工具並設定 skill: "imagegen" 來呼叫,傳入已儲存的提示檔案內容(加上輸出路徑和長寬比,依 Codex imagegen 的參數)。Codex imagegen 是該執行環境中的官方點陣圖後端,優先於任何非原生技能(例如 baoyu-image-gen),除非使用者明確固定了不同的 preferred_image_backend
    • 透過 codex exec 使用 Codex (codex-imagegen)——如果當前執行環境沒有提供原生的 imagegen 技能,但 codex CLI 在 PATH 中且已啟用 codex login,則透過 baoyu-image-gen --provider codex-cli(首選)來路由,或者——如果 baoyu-image-gen 不可用——直接呼叫內建的包裝器。詳細資訊、參數和執行環境發現程序請參閱 references/codex-imagegen.md——僅在選中此分支時才載入該檔案。
    • Cursor (GenerateImage)——如果執行環境提供了原生的 GenerateImage 工具,則你正在 Cursor 環境中執行,且其優先級與 Codex imagegen 相同。兩個硬性限制:(a) 它沒有長寬比參數——請在傳遞給 description 的提示文字中明確說明目標長寬比/尺寸;(b) 它不接受輸出目錄——它會儲存到工具管理的路徑,因此生成後請將檔案複製/移動到技能預期的輸出路徑(例如 outputs/.../NN-xxx.png)。參考圖片請放入 reference_image_paths
    • 其他執行環境原生工具——如果執行環境提供了不同的原生圖片工具(例如 Hermes 的 image_generate),則以相同方式使用。
    • 否則,如果只安裝了一個非原生後端(例如 baoyu-image-gen),則使用它。
    • 否則(多個非原生後端且無執行環境原生工具),則詢問使用者一次——與其他初始問題一起批次處理。
  4. 如果沒有任何後端可用,則告知使用者並詢問如何繼續。

⛔ 絕不允許使用 SVG、HTML、Canvas 或其他基於程式碼的渲染來替代點陣圖圖片生成。 Codex imagegen 的描述說明它應在「輸出應為點陣圖資產而非儲存庫原生程式碼或向量」時使用。如果你無法透過步驟 3 解析出點陣圖後端,則進入步驟 4 並詢問使用者——不要默默地發出 SVG、撰寫內聯 <svg> 標記或產生 HTML/CSS 圖形作為替代。即使文章/章節看起來像「圖表」也是如此:呼叫此規則的消費者技能已經決定它需要的是點陣圖圖片。

⛔ 絕不允許透過在生成的點陣圖上繪製來修復渲染的文字。 不要使用 ImageMagick、Pillow、Canvas、SVG、HTML/CSS、OCR 腳本或任何其他程式化疊加層來覆蓋、重寫、擦除、描邊或替換已生成的投影片圖片中的標題、項目符號或任何其他文字。如果文字錯誤或不清楚,請從修正後的提示重新生成,簡化投影片上的圖像文字,或詢問使用者要保留哪個不完美的候選項。

preferred_image_backend 設定為 ask 會強制在每次執行時無論可用後端為何都執行步驟 3 的提示。使用者可以透過下方的 ## Changing Preferences 區段來更改固定的後端。

提示檔案要求(強制):在呼叫任何後端之前,先將每張圖片的完整最終提示寫入 prompts/ 下的獨立檔案(命名方式:NN-slide-[slug].md)。該檔案是可重現性的記錄,並允許你在不重新生成提示的情況下切換後端。

上述具體工具名稱(imagegenGenerateImageimage_generatebaoyu-image-gen)僅為範例——請在相同規則下替換為當地等效工具。

批次生成政策

在當前生成組的所有提示檔案都已儲存並驗證後,預設以批次方式生成投影片圖片。

優先順序:

  1. 如果所選後端有原生的批次/多任務介面,則使用它。每個任務必須保留自己的提示檔案、輸出路徑、長寬比、工作階段 ID 和直接參考圖片。
  2. 如果沒有原生批次介面,但執行環境可以發出並行工具呼叫,則一次分派最多 generation_batch_size 張投影片圖片。預設值:4。當前訊息中的明確使用者請求(例如 --batch-size 4 或「並行4張一起生成」)會覆寫 EXTEND.md 的設定。
  3. 如果既沒有原生批次介面也沒有並行工具呼叫,則依序生成。

規則:

  • 在所有選定的投影片提示檔案都存在於磁碟上之前,絕不開始第一個批次。
  • 失敗的項目重試一次,不重新生成成功的項目。
  • 不要僅僅為了並行化圖片渲染而使用子代理。僅在需要單獨的提示迭代或創意探索時才使用子代理。
  • 僅在所有選定的投影片圖片都生成後,才合併 PPTX/PDF。

確認政策

預設行為:生成前確認

  • 將明確的技能呼叫、檔案路徑、匹配的信號/預設集以及 EXTEND.md 的預設值視為僅供建議的輸入。這些都不能授權跳過確認。
  • 在使用者完成步驟 2 之前,不要開始步驟 3 或之後的步驟。
  • 僅在當前請求明確要求跳過確認時才跳過,例如:「直接生成」、「不用確認」、「跳過確認」、「按預設出投影片」或等效措辭。
  • 如果明確跳過確認,請在生成前的下一次使用者更新中說明假定的風格/觀眾/投影片數量/語言/後端。

語言

在問題、進度報告、錯誤訊息和完成摘要中,使用使用者的語言回覆。保留技術性詞彙(風格名稱、檔案路徑、程式碼)為英文。

腳本目錄

{baseDir} = 此 SKILL.md 所在的目錄。解析 ${BUN_X}:優先使用 bun;否則使用 npx -y bun;否則建議 brew install oven-sh/bun/bun

腳本 用途
scripts/merge-to-pptx.ts 將投影片合併為 PowerPoint
scripts/merge-to-pdf.ts 將投影片合併為 PDF

選項

選項 說明
--style <name> 預設集(請參閱下方預設集)、custom 或自訂風格名稱
--audience <type> beginners / intermediate / experts / executives / general
--lang <code> 輸出語言(en, zh, ja, ...)
--slides <N> 目標投影片數量(建議 8-25,最多 30)
--ref <files...> 套用至每張投影片的參考圖片(風格/色板/構圖/主題)
--batch-size <n> 本次執行的暫時投影片圖片生成批次大小。預設值:EXTEND.md 中的 generation_batch_size,否則為 4。限制在 1-8 之間。
--outline-only 在綱要完成後停止
--prompts-only 在提示完成後停止(跳過圖片生成)
--images-only 跳到步驟 7;需要已存在的 prompts/ 目錄
--regenerate <N> 重新生成特定投影片:32,5,8

風格系統

17 個預設集,涵蓋技術/教育/生活風格/編輯用途。每個預設集是四個維度(紋理/氛圍/字體/密度)的組合。如果使用者在第一輪選擇「自訂維度」,則第二輪確認會針對每個維度提出一個問題——選項和逐字稿請參閱 references/confirmation.md

預設集(17 個)

預設集 維度 最佳用途
blueprint(預設) 網格 + 冷色 + 技術 + 平衡 建築、系統設計
chalkboard 有機 + 暖色 + 手寫 + 平衡 教育、教學
corporate 乾淨 + 專業 + 幾何 + 平衡 投資者簡報、提案
minimal 乾淨 + 中性 + 幾何 + 極簡 高層簡報
sketch-notes 有機 + 暖色 + 手寫 + 平衡 教育、教學
hand-drawn-edu 有機 + 馬卡龍 + 手寫 + 平衡 教育圖表、流程說明
watercolor 有機 + 暖色 + 人文 + 極簡 生活風格、健康
dark-atmospheric 乾淨 + 暗色 + 編輯 + 平衡 娛樂、遊戲
notion 乾淨 + 中性 + 幾何 + 密集 產品展示、SaaS
bold-editorial 乾淨 + 鮮豔 + 編輯 + 平衡 產品發表、主題演講
editorial-infographic 乾淨 + 冷色 + 編輯 + 密集 科技說明、研究
fantasy-animation 有機 + 鮮豔 + 手寫 + 極簡 教育故事敘述
intuition-machine 乾淨 + 冷色 + 技術 + 密集 技術文件、學術
pixel-art 像素 + 鮮豔 + 技術 + 平衡 遊戲、開發者演講
scientific 乾淨 + 冷色 + 技術 + 密集 生物、化學、醫學
vector-illustration 乾淨 + 鮮豔 + 人文 + 平衡 創意、兒童內容
vintage 紙張 + 暖色 + 編輯 + 平衡 歷史、遺產

每個預設集的規格:references/styles/<preset>.md。預設集到維度的對應:references/dimensions/presets.md

維度(當選擇「自訂維度」時)

維度 選項 用途
紋理 clean, grid, organic, pixel, paper 背景處理
氛圍 professional, warm, cool, vibrant, dark, neutral, macaron 色溫
字體 geometric, humanist, handwritten, editorial, technical 標題/內文樣式
密度 minimal, balanced, dense 每張投影片的資訊量

每個維度的完整規格:references/dimensions/*.md

自動選擇

將內容信號與預設集匹配。選取第一個其信號關鍵字出現在來源中的行;如果沒有匹配,則回退到 blueprint

來源中的信號 預設集
tutorial, learn, education, guide, beginner sketch-notes
hand-drawn, infographic, diagram, process, onboarding hand-drawn-edu
classroom, teaching, school, chalkboard chalkboard
architecture, system, data, analysis, technical blueprint
creative, children, kids, cute vector-illustration
briefing, academic, research, bilingual intuition-machine
executive, minimal, clean, simple minimal
saas, product, dashboard, metrics notion
investor, quarterly, business, corporate corporate
launch, marketing, keynote, magazine bold-editorial
entertainment, music, gaming, atmospheric dark-atmospheric
explainer, journalism, science communication editorial-infographic
story, fantasy, animation, magical fantasy-animation
gaming, retro, pixel, developer pixel-art
biology, chemistry, medical, scientific scientific
history, heritage, vintage, expedition vintage
lifestyle, wellness, travel, artistic watercolor

投影片數量啟發式

來源長度 建議投影片數量
< 1000 字 5-10
1000-3000 字 10-18
3000-5000 字 15-25
> 5000 字 20-30(考慮拆分)

參考圖片

使用者可以提供參考圖片來引導風格、色板、版面或主題。

接收:透過 --ref <files...> 接受,或當使用者在對話中提供檔案路徑/貼上圖片時接受。

  • 檔案路徑 → 複製到 {slide-deck-dir}/refs/NN-ref-{slug}.{ext}
  • 貼上的圖片沒有路徑 → 詢問路徑,或作為文字備援口頭提取風格特徵

使用模式(每個參考):

使用模式 效果
direct 將檔案作為每張投影片的參考圖片傳遞給後端
style 提取風格特徵(線條處理、紋理、氛圍)並附加到每張投影片的提示主體
palette 提取十六進位顏色並附加到每張投影片的提示主體

在每張投影片的提示 frontmatter 中記錄參考:

references:
  - ref_id: 01
    filename: 01-ref-brand.png
    usage: direct

在生成時,驗證檔案是否存在。如果 usage: direct 且後端接受參考(例如 baoyu-image-gen --ref),則在每張投影片上傳遞該檔案。否則,將提取的 style/palette 特徵嵌入提示文字中。

檔案佈局

slide-deck/{topic-slug}/
├── source-{slug}.{ext}
├── outline.md
├── prompts/NN-slide-{slug}.md
├── NN-slide-{slug}.png
├── {topic-slug}.pptx
└── {topic-slug}.pdf

Slug:2-4 個單詞,使用連字號分隔,從主題中提取。「Introduction to Machine Learning」→ intro-machine-learning

備份規則(適用於所有步驟):如果即將寫入的檔案已存在,則在寫入新檔案之前將其重新命名為 <name>-backup-YYYYMMDD-HHMMSS.<ext>。這可以保護使用者的編輯並允許回滾。

工作流程

複製此檢查清單並在完成時勾選項目:

- [ ] 步驟 1:設定與分析
- [ ] 步驟 2:確認 ⚠️ 必要(第一輪;僅在「自訂維度」時需要第二輪)
- [ ] 步驟 3:生成綱要
- [ ] 步驟 4:審閱綱要(條件性)
- [ ] 步驟 5:生成提示
- [ ] 步驟 6:審閱提示(條件性)
- [ ] 步驟 7:生成圖片
- [ ] 步驟 8:合併為 PPTX/PDF
- [ ] 步驟 9:輸出摘要

步驟 1:設定與分析

1.1 載入 EXTEND.md——依序檢查以下路徑;第一個命中的優先:

路徑 範圍
.baoyu-skills/baoyu-slide-deck/EXTEND.md 專案
${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-slide-deck/EXTEND.md XDG
$HOME/.baoyu-skills/baoyu-slide-deck/EXTEND.md 使用者家目錄

如果找到,讀取、解析並列印摘要(風格/觀眾/語言/審閱/生成批次大小)。如果沒有,則使用預設值繼續——首次設定對此技能不是阻礙。架構:references/config/preferences-schema.md

1.2 分析內容——遵循 references/analysis-framework.md:分類內容、偵測語言、記錄用於風格選擇的信號、根據長度估算投影片數量(請參閱上方風格系統中的投影片數量啟發式)、生成主題 slug。將來源儲存為 source.md(如果存在則遵守備份規則)。

1.3 檢查現有輸出 ⚠️ 步驟 2 之前必要。如果 slide-deck/{topic-slug}/ 已存在,詢問如何繼續——四個選項(重新生成綱要/重新生成圖片/備份並重新生成/退出),逐字稿請參閱 references/confirmation.md

將發現結果儲存到 analysis.md:主題、觀眾、信號、建議的風格和投影片數量、語言偵測。

步驟 2:確認 ⚠️ 必要

硬性關卡:根據確認政策,此步驟是強制的——在使用者在此確認(或使用「直接生成」/等效措辭明確選擇退出)之前,步驟 3+ 不能開始。

第一輪(總是)——在一個 AskUserQuestion 呼叫中批次處理五個問題:風格、觀眾、投影片數量、審閱綱要?、審閱提示?。逐字稿選項請參閱 references/confirmation.md

在問題之前顯示摘要:

  • 內容類型 + 主題
  • 偵測到的語言
  • 建議的風格(基於信號)
  • 建議的投影片數量(基於長度)

第二輪(僅在第一輪選擇「自訂維度」時)——批次處理四個問題:紋理、氛圍、字體、密度。逐字稿選項請參閱 references/confirmation.md。這四個答案將取代預設集。

確認後:使用最終選擇更新 analysis.md,並從 Q4/Q5 儲存 skip_outline_review / skip_prompt_review 標記。

步驟 3:生成綱要

解析風格:預設集 → references/styles/{preset}.md;自訂維度 → 合併 references/dimensions/ 中的檔案。從解析的風格建立 STYLE_INSTRUCTIONS,套用已確認的觀眾 + 語言 + 投影片數量,遵循 references/outline-template.md,並儲存為 outline.md

如果指定了 --outline-only,則在此停止。如果 skip_outline_review 為 true,則跳過步驟 4。

步驟 4:審閱綱要(條件性)

顯示逐張投影片的表格(# | Title | Type | Layout),以及總數和解析的風格。詢問:繼續 / 先編輯綱要 / 重新生成——逐字稿請參閱 references/confirmation.md

如果選擇「先編輯綱要」,告知使用者編輯 outline.md,並在準備好時再次詢問。如果選擇「重新生成綱要」,返回步驟 3。

步驟 5:生成提示

針對綱要中的每張投影片:

  1. 讀取 references/base-prompt.md
  2. 從綱要中提取 STYLE_INSTRUCTIONS(不要重新讀取風格檔案)
  3. 加入投影片的內容
  4. 如果指定了 Layout:,則包含來自 references/layouts.md 的指導
  5. 儲存到 prompts/NN-slide-{slug}.md(套用備份規則)

如果指定了 --prompts-only,則在此停止。如果 skip_prompt_review 為 true,則跳過步驟 6。

步驟 6:審閱提示(條件性)

顯示提示索引(# | Filename | Slide Title)並詢問:繼續 / 先編輯提示 / 重新生成——逐字稿請參閱 references/confirmation.md。分支與步驟 4 相同。

步驟 7:生成圖片

  1. 透過頂部的圖片生成工具規則解析圖片後端——如果安裝了多個後端,則詢問一次。
    • codex-imagegen 呼叫:當規則解析為 codex-imagegen 時,請參閱 references/codex-imagegen.md 了解呼叫合約(首選的 baoyu-image-gen --provider codex-cli 路徑、執行環境包裝器發現、參數說明、stdout 架構、批次語義——每次呼叫 n=1,因此投影片批次必須為每張投影片分派一個包裝器呼叫)。
  2. 確認每個 prompts/NN-slide-{slug}.md 都存在(硬性要求;無論後端為何,提示檔案都是可重現性的記錄)。
  3. 工作階段 ID:slides-{topic-slug}-{timestamp}——僅在後端支援工作階段時傳遞。
  4. 為選定的投影片建立任務清單,包含每張投影片的提示檔案、輸出 PNG 路徑、長寬比、工作階段 ID 和已驗證的直接參考。
  5. 根據 ## Batch Generation Policy 以批次方式分派投影片圖片:首先嘗試後端原生批次,其次是執行環境並行工具呼叫,最後才依序進行。在分派之前,PNG 檔案套用備份規則。報告進度為 Generated X/N。僅對失敗的項目重試一次,然後報告錯誤。

--regenerate N 僅針對指定的投影片跳到此步驟。--images-only 從此步驟開始,使用現有的提示。

步驟 8:合併

${BUN_X} {baseDir}/scripts/merge-to-pptx.ts <slide-deck-dir>
${BUN_X} {baseDir}/scripts/merge-to-pdf.ts <slide-deck-dir>

步驟 9:摘要

Slide Deck Complete!
主題:[topic]
風格:[preset 或 "custom: texture+mood+typography+density"]
位置:[directory]
投影片數量:N

- 01-slide-cover.png
- ...
- NN-slide-back-cover.png

綱要:outline.md
PPTX:{topic-slug}.pptx
PDF:{topic-slug}.pdf

投影片修改

動作 方式
編輯 先更新 prompts/NN-slide-{slug}.md,然後 --regenerate N
新增 在指定位置建立新提示,生成圖片,重新編號後續的 NN(slug 不變),更新 outline.md,重新合併
刪除 移除 PNG + 提示,重新編號後續,更新 outline.md,重新合併

在重新生成圖片之前,務必先更新提示檔案——這使提示目錄成為真相來源,並使更改可重現。重新編號時僅 NN 改變;slug 保持穩定,因此參考仍然有效。

文字修正政策:

  • 如果投影片的標題、項目符號或任何其他渲染文字拼寫錯誤、混亂、難以閱讀或視覺效果不佳,請不要使用程式碼修補點陣圖。
  • 對於文字修正的重新生成,請撰寫新的提示檔案和新的輸出路徑,以便保留有缺陷的候選項以供比較。
  • 後處理僅限於裁切、調整大小、壓縮或格式轉換,不得更改文字或主要構圖。

詳細資訊請參閱 references/modification-guide.md

參考資料

檔案 內容
references/confirmation.md 每個確認的 AskUserQuestion 選項逐字稿
references/analysis-framework.md 內容分析框架
references/outline-template.md 綱要結構
references/base-prompt.md 圖片生成的基本提示主體
references/layouts.md 版面選項
references/design-guidelines.md 觀眾、字體、顏色選擇
references/content-rules.md 內容指南
references/modification-guide.md 編輯/新增/刪除工作流程
references/styles/<preset>.md 每個預設集的規格
references/dimensions/*.md 每個維度的規格
references/config/preferences-schema.md EXTEND.md 架構

備註

  • 圖片生成每張投影片約需 10-30 秒;請在之間報告進度。
  • 對於敏感的公眾人物,建議使用風格化替代方案以避免肖像權問題。
  • 當後端支援時,透過工作階段 ID 維持視覺一致性。

更改偏好設定

EXTEND.md 位於步驟 1.1 中列出的第一個匹配路徑。兩種更改方式:

  • 直接編輯——開啟 EXTEND.md 並更改欄位。完整架構:references/config/preferences-schema.md
  • 常見的單行編輯
    • preferred_image_backend: auto——預設值;執行環境原生工具優先,回退到唯一安裝的後端,僅在存在多個非原生後端時詢問。
    • preferred_image_backend: codex-imagegen——固定為 Codex 的內建後端。
    • preferred_image_backend: baoyu-image-gen——固定為 baoyu-image-gen 技能。
    • preferred_image_backend: ask——每次執行都確認後端。
    • generation_batch_size: 4——當後端/執行環境支援批次或並行生成時,預設同時渲染的投影片圖片數量。
    • preferred_style: blueprintpreferred_audience: expertslanguage: zh