根據內容生成專業的投影片簡報圖片。會先建立包含風格說明的綱要,再生成個別投影片圖片。當使用者要求「建立投影片」、「製作簡報」、「生成簡報」、「投影片」或「PPT」時使用。
投影片生成器
將內容轉換為專業的投影片簡報圖片。這套簡報是為了閱讀與分享(自解釋投影片、邏輯滾動流程、社群媒體友善)而設計,而非現場簡報——這個假設主導了以下所有版面與密度決策。
使用者輸入工具
當此技能提示使用者時,請遵循以下工具選擇規則(優先順序):
- 優先使用當前代理執行環境提供的內建使用者輸入工具——例如
AskUserQuestion、request_user_input、clarify、ask_user或任何等效工具。 - 備援:如果沒有此類工具,則發出編號的純文字訊息,並要求使用者回覆每個問題的選擇編號/答案。
- 批次處理:如果工具支援單次呼叫多個問題,則將所有適用的問題合併為一次呼叫;如果僅支援單一問題,則依優先順序逐一詢問。
以下具體的 AskUserQuestion 參考僅為範例——請在其他執行環境中替換為當地等效工具。
圖片生成工具
當此技能需要渲染圖片時,依以下順序解析後端:
- 當前請求覆寫——如果使用者在當前訊息中指定了特定後端,則使用該後端。
- 已儲存的偏好設定——如果
EXTEND.md將preferred_image_backend設定為當前可用的後端,則使用該後端。 - 自動選擇(當偏好設定為
auto、未設定,或固定的後端不可用時):- Codex (
imagegen)——首先檢查你可用的技能/工具清單。如果列出了名為imagegen的技能,則你正在 Codex 環境中執行,且必須使用它:透過Skill工具並設定skill: "imagegen"來呼叫,傳入已儲存的提示檔案內容(加上輸出路徑和長寬比,依 Codeximagegen的參數)。Codeximagegen是該執行環境中的官方點陣圖後端,優先於任何非原生技能(例如baoyu-image-gen),除非使用者明確固定了不同的preferred_image_backend。 - 透過
codex exec使用 Codex (codex-imagegen)——如果當前執行環境沒有提供原生的imagegen技能,但codexCLI 在PATH中且已啟用codex login,則透過baoyu-image-gen --provider codex-cli(首選)來路由,或者——如果 baoyu-image-gen 不可用——直接呼叫內建的包裝器。詳細資訊、參數和執行環境發現程序請參閱 references/codex-imagegen.md——僅在選中此分支時才載入該檔案。 - Cursor (
GenerateImage)——如果執行環境提供了原生的GenerateImage工具,則你正在 Cursor 環境中執行,且其優先級與 Codeximagegen相同。兩個硬性限制:(a) 它沒有長寬比參數——請在傳遞給description的提示文字中明確說明目標長寬比/尺寸;(b) 它不接受輸出目錄——它會儲存到工具管理的路徑,因此生成後請將檔案複製/移動到技能預期的輸出路徑(例如outputs/.../NN-xxx.png)。參考圖片請放入reference_image_paths。 - 其他執行環境原生工具——如果執行環境提供了不同的原生圖片工具(例如 Hermes 的
image_generate),則以相同方式使用。 - 否則,如果只安裝了一個非原生後端(例如
baoyu-image-gen),則使用它。 - 否則(多個非原生後端且無執行環境原生工具),則詢問使用者一次——與其他初始問題一起批次處理。
- Codex (
- 如果沒有任何後端可用,則告知使用者並詢問如何繼續。
⛔ 絕不允許使用 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)。該檔案是可重現性的記錄,並允許你在不重新生成提示的情況下切換後端。
上述具體工具名稱(imagegen、GenerateImage、image_generate、baoyu-image-gen)僅為範例——請在相同規則下替換為當地等效工具。
批次生成政策
在當前生成組的所有提示檔案都已儲存並驗證後,預設以批次方式生成投影片圖片。
優先順序:
- 如果所選後端有原生的批次/多任務介面,則使用它。每個任務必須保留自己的提示檔案、輸出路徑、長寬比、工作階段 ID 和直接參考圖片。
- 如果沒有原生批次介面,但執行環境可以發出並行工具呼叫,則一次分派最多
generation_batch_size張投影片圖片。預設值:4。當前訊息中的明確使用者請求(例如--batch-size 4或「並行4張一起生成」)會覆寫 EXTEND.md 的設定。 - 如果既沒有原生批次介面也沒有並行工具呼叫,則依序生成。
規則:
- 在所有選定的投影片提示檔案都存在於磁碟上之前,絕不開始第一個批次。
- 失敗的項目重試一次,不重新生成成功的項目。
- 不要僅僅為了並行化圖片渲染而使用子代理。僅在需要單獨的提示迭代或創意探索時才使用子代理。
- 僅在所有選定的投影片圖片都生成後,才合併 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> |
重新生成特定投影片:3 或 2,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:生成提示
針對綱要中的每張投影片:
- 讀取
references/base-prompt.md - 從綱要中提取
STYLE_INSTRUCTIONS(不要重新讀取風格檔案) - 加入投影片的內容
- 如果指定了
Layout:,則包含來自references/layouts.md的指導 - 儲存到
prompts/NN-slide-{slug}.md(套用備份規則)
如果指定了 --prompts-only,則在此停止。如果 skip_prompt_review 為 true,則跳過步驟 6。
步驟 6:審閱提示(條件性)
顯示提示索引(# | Filename | Slide Title)並詢問:繼續 / 先編輯提示 / 重新生成——逐字稿請參閱 references/confirmation.md。分支與步驟 4 相同。
步驟 7:生成圖片
- 透過頂部的圖片生成工具規則解析圖片後端——如果安裝了多個後端,則詢問一次。
codex-imagegen呼叫:當規則解析為codex-imagegen時,請參閱 references/codex-imagegen.md 了解呼叫合約(首選的baoyu-image-gen --provider codex-cli路徑、執行環境包裝器發現、參數說明、stdout 架構、批次語義——每次呼叫 n=1,因此投影片批次必須為每張投影片分派一個包裝器呼叫)。
- 確認每個
prompts/NN-slide-{slug}.md都存在(硬性要求;無論後端為何,提示檔案都是可重現性的記錄)。 - 工作階段 ID:
slides-{topic-slug}-{timestamp}——僅在後端支援工作階段時傳遞。 - 為選定的投影片建立任務清單,包含每張投影片的提示檔案、輸出 PNG 路徑、長寬比、工作階段 ID 和已驗證的直接參考。
- 根據
## 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: blueprint、preferred_audience: experts、language: zh。






