name: ppt-pro description: >- 專業 PPT 簡報全流程 AI 生成助手。模擬頂級 PPT 設計公司的完整工作流 (需求調研 -> 資料蒐集 -> 大綱策劃 -> 策劃稿 -> 設計稿),輸出高質量 HTML 格式簡報並可轉換為可編輯 PPTX。當用戶提到製作 PPT、做簡報、做 slides、 做幻燈片、做彙報材料、做培訓課件、做路演 deck、做產品介紹頁面時觸發。也適用於 "幫我把這篇文件做成 PPT"等需要將內容轉化為演示格式的場景。 metadata: author: ppt-pro-team version: "9.7.0" tags: pptx, presentation, slides, html compatibility: Requires python3 and node. Linux/macOS/Windows.
完整技術約束詳見 pptx-pipeline.md。核心原則:
content / content-icon / decoration / watermark 四角色模仿專業 PPT 設計公司(報價萬元/頁級別)的完整工作流,而非「給個大綱套模板」:
開始工作前自省 agent 擁有的工具能力:
| 能力 | 降級策略 |
|---|---|
| 資訊獲取(搜尋/URL/文件/知識庫) | 全部缺失 -> 依賴使用者提供材料 |
| 圖片生成(絕大多數環境都有) | 缺失 -> 純 CSS 裝飾替代 |
| 檔案輸出 | 必須有 |
| 指令碼執行(Python/Node.js) | 缺失 -> 跳過自動打包和可編輯管線轉換 |
| Sub-agent / 並行代理(Agent tool / subagent) | 可用 -> Step 4 策劃和 Step 5c HTML 生成啟用並行模式;缺失 -> 退回逐頁序列 |
原則:檢查實際可呼叫的工具列表,有什麼用什麼。檢測 sub-agent 能力時,確認是否有 Agent 工具(或等價的 subagent 呼叫能力)。若有,在 progress.json 中標記 "has_subagent": true,後續 Step 4 和 Step 5c 自動啟用並行模式。
| 變數 | 含義 | 獲取方式 |
|---|---|---|
SKILL_DIR |
本 SKILL.md 所在目錄的絕對路徑 | 即觸發 Skill 時讀取 SKILL.md 的目錄 |
OUTPUT_DIR |
產物輸出根目錄 | 使用者當前工作目錄下的 ppt-output/(首次使用時 mkdir -p 建立) |
後續所有路徑均基於這兩個變數,不再重複說明。
| 入口 | 示例 | 從哪步開始 |
|---|---|---|
| 純主題 | "做一個 Dify 企業介紹 PPT" | Step 1 完整流程 |
| 主題 + 需求 | "15 頁 AI 安全 PPT,暗黑風" | Step 1(跳部分已知問題) |
| 源材料 | "把這篇報告做成 PPT" | Step 1(材料為主) |
| 已有大綱 | "我有大綱了,生成設計稿" | Step 4 或 5 |
| 起始步驟 | 缺失依賴 | 補全方式 |
|---|---|---|
| Step 4 | 每頁內容文本 | 先用 Prompt #3 為每頁生成內容分配 |
| Step 5 | 策劃稿 JSON | 使用者提供或先執行 Step 4 |
| 規模 | 頁數 | 調研 | 搜尋 | 策劃 | 生成 |
|---|---|---|---|---|---|
| 輕量 | <= 8 頁 | 5 題精簡版(Q1+Q2+Q7+Q8+Q12) | 3-5 個查詢 | 整體生成(Step 3 可與 Step 4 合併) | 逐頁生成 |
| 標準 | 9-18 頁 | 完整 12 題 + 動態追問 | 8-12 個查詢 | 逐頁生成 | 逐頁生成 |
| 大型 | > 18 頁 | 完整 12 題 + 動態追問 | 10-15 個查詢 | 逐頁生成 | 逐頁生成 |
複雜度判斷時機:(1) 預判(Step 1 前):據使用者描述估算;明確頁數或暗示簡短則預判輕量並精簡提問。(2) 確認(Step 1 後):據 Q8 寫入 progress.json 的 complexity_level(light / standard / large)。(3) 傳遞:後續步驟從 progress.json 讀取並調整搜尋數、策劃深度等。
禁止跳過。 無論主題多簡單,都必須提問並等使用者回覆後才能繼續。不替使用者做決定。
執行:references/prompts/prompt-1-research.md。有搜尋則搜主題背景(3-5 條)並據此生成 Q2/Q5/動態追問選項;無搜尋則用通用選項並跳過第五層動態追問。一次性發出 12 基礎題 + 0-3 動態題,等待使用者回覆,再整理為需求 JSON。整理後須對照 quality-checks.md 中的消費審查矩陣自檢;五層問題詳表、Q7/輕量/動態追問全文亦在同文件。
問題層級(簡表):場景層 Q1-3 → 內容層 Q4-6 → 視覺層 Q7(須表格展示 8 種預置風格:藍白商務/極簡灰白/清新自然/暖色大地/硃紅宮牆/暗黑科技/紫金奢華/活力彩虹,各附一句靈魂描述;使用者選編號)→ 執行層 Q8-12 → 動態層 0-3 題(僅當搜尋揭示主題關鍵分歧時追加,須標註消費節點)。
輕量模式(頁數 <= 8 或暗示簡短):僅 Q1+Q2+Q7+Q8+Q12。動態追問:不湊數。
產物:需求 JSON(欄位須完整):
{
"topic": "PPT 主題",
"scene": "Q1 演示場景(現場演講/自閱文件/培訓教學/其他)",
"audience": "Q2 核心受眾畫像",
"purpose": "Q3 期望觀眾做什麼",
"narrative_structure": "Q4 敘事結構",
"emphasis": ["Q5 內容側重(可多選)"],
"persuasion_style": ["Q6 說服力要素(可多選)"],
"style_choice": "Q7 風格選擇(A-J)",
"style_detail": "Q7 附加資訊(如選 J 時的自定義描述)",
"page_count": "Q8 頁數(數字或 null=AI 決定)",
"info_density": "Q8 資訊密度偏好(少而精/適中/資訊量大)",
"brand_info": {
"presenter": "Q9 演講人",
"date": "Q9 日期",
"company": "Q9 公司名",
"brand_color": "Q9 品牌色(如有,覆蓋 style_choice)",
"logo_path": "Q9 Logo 路徑"
},
"content_must_include": ["Q10 必須包含"],
"content_must_avoid": ["Q10 必須迴避"],
"language": "Q11 語言偏好(中文/英文/中英混排/其他)",
"image_preference": "Q12 配圖偏好(A-D)",
"dynamic_answers": {"問題文本": "使用者回答"},
"complexity_level": "light | standard | large(根據 page_count 判定)"
}
盤點所有資訊獲取能力,全部用上。
2a. 查詢規劃 — 按複雜度表控制查詢數;維度與 JSON 整理模板見 execution-rules.md(Step 2 兩節)。
2b. 並行搜尋 — 搜尋引擎、URL、文件、知識庫等凡可用盡用。
2c. 結果整理 — 每組輸出結構化 JSON(query + findings[]:fact / data / source / reliability high|medium|low / relevance)。僅 high/medium 可進策劃 data_highlights;low 僅作參考。
產物:搜尋結果集合 JSON。
執行:references/prompts/prompt-2-outline.md。方法論與 5 步思考過程全文見 execution-rules.md「Step 3」;prompt 內亦內建自動執行。
自檢:頁數合規;每 Part >= 2 頁;Part 間邏輯遞進;要點有搜尋支撐(缺則 found_in_search: false);design_rationale 與 transition_from_previous 完整。
產物:[PPT_OUTLINE] JSON(含 design_rationale)。
內容分配與策劃稿合併為一步;策劃稿須為 AI 逐頁思考的創作產物。核心:一頁一
planning{n}.json,對應一頁 HTML。 ⛔ 未經使用者確認,禁止跳進 Step 5。
策劃第一頁前按序讀取(每項以 README 或指定章節為主,勿通讀全書):
| 優先順序 | 路徑 | 用途 |
|---|---|---|
| 0 | principles/design-principles-cheatsheet.md |
JSON 欄位操作 + 逐頁 8 項體檢(必讀第一項) |
| 1 | layouts/README.md |
layout_hint |
| 1b | layout-patterns.md |
12 種佈局模式、4 層結構、通用元件 |
| 2 | blocks/README.md |
card_type |
| 3 | blocks/card-styles.md |
card_style |
| 4 | charts/README.md |
chart_type |
| 5 | principles/README.md |
原則索引 |
| 6 | styles/README.md 的裝飾技法工具箱章節 |
decoration_hints |
| 7 | image-generation.md(Q12 ≠ A 時) |
image.prompt / image.usage |
預讀後從工具箱選型,避免只會 text+data+list。第 7 項僅在需要配圖時讀。
執行:references/prompts/prompt-3-planning.md。
佔位符:{{DESIGN_PRINCIPLES_CHEATSHEET}}、{{RESOURCE_MENU}} 分別注入 cheatsheet 與 resource-menu.md 全文;其餘從需求 JSON 填入({{SCENE}} 等)。
設計感約束(須遵守):拒絕千篇一律網頁風;頁與頁版式須有反差與非對稱;director_command 須給出具體、可執行的視覺與排版指令。
要點:逐頁按 cheatsheet 尾部 8 項體檢;對映搜尋素材;主內容 40-100 字 + 資料亮點 + 輔助要點;layout_hint / card_type / chart_type 來自預讀選單;敘事節奏見 references/narrative-rhythm.md;每頁 visual_weight、required_resources、image(總頁數 >= 8 時全稿至少各用 1 次 split-content 與 card-inset)。
據 has_subagent 與複雜度選擇序列或按 Part 並行;驗證是寫入流程的一部分(每頁 planning_validator.py 單頁驗證,ERROR 必改)。4a 補充說明、4b 持久上下文與設計感約束、全量驗證、Sub-agent 模板、操作邊界 6 條、上下文傳遞 — 詳見 execution-rules.md。
⛔ [GATE] 所有頁完成後,必須執行且必須 PASS 才能繼續:
# Step 1: 執行門禁指令碼(內部呼叫 planning_validator.py)
bash SKILL_DIR/scripts/pipeline_gate.sh check-planning OUTPUT_DIR SKILL_DIR
# Step 2: 若有 ERROR,修正 planning JSON 後重跑,直到 PASS
# Step 3: PASS 後向使用者展示策劃概覽,等待確認
planning_validator.py 返回 exit 1(FAILED)時 → 禁止繼續,必須修正全部 ERROR。ERROR 修復參考各條錯誤提示中的「期望格式」說明。
修正跨頁問題 → 向用戶展示概覽 → [STOP -- 等待使用者確認](可編輯 planning/planning{n}.json 後回覆再繼續)。
產物:OUTPUT_DIR/planning/planning{n}.json。
順序:5a → 5b(可選)→ 5c。
執行:references/styles/README.md 的靈動創作方法論(四步法):情緒關鍵詞 → 從情緒推導色彩 → 靈魂宣言 → 變奏策略;並讀對應 styles/{id}.md。style.json 須含靈魂層、裝飾基因、css_variables(12 項)、font_family — 校驗清單見 quality-checks.md。調色盤路徑見 resource-registry.md 第 1 節。
產物:OUTPUT_DIR/style.json。
讀取每頁 planning{n}.json 的 image;usage = none 則跳過;否則 generate_image 用 image.prompt,儲存 OUTPUT_DIR/images/。須在生成該頁 HTML 之前完成該頁配圖。
一對一:planning{n}.json → slides/slide-{NN}.html。
⛔ GATE CHECK(任何一步 BLOCKED 則禁止寫 HTML):
# [1] 確認 planning 通過門禁
bash SKILL_DIR/scripts/pipeline_gate.sh check-planning OUTPUT_DIR SKILL_DIR
# [2] 組裝 prompt-ready 檔案(全量批次)
python3 SKILL_DIR/scripts/prompt_assembler.py \
OUTPUT_DIR/planning/ --refs SKILL_DIR/references \
--style OUTPUT_DIR/style.json -o OUTPUT_DIR/prompts-ready/
# [3] 確認 prompts-ready 與 planning 數量一致
bash SKILL_DIR/scripts/pipeline_gate.sh check-prompts OUTPUT_DIR
# [4] 讀全域性資源(僅一次)
# view_file SKILL_DIR/references/styles/README.md
# view_file SKILL_DIR/references/principles/README.md
# view_file SKILL_DIR/references/blocks/README.md
# view_file SKILL_DIR/references/layout-patterns.md
每頁:先 view_file OUTPUT_DIR/prompts-ready/prompt-ready-{n}.txt,再據完整 prompt 生成 HTML;禁止跳過 prompt-ready。三層資源決策、prompt_assembler 佔位符說明、批次/單頁命令、並行 HTML Sub-agent、核心設計約束與逐頁 ASSERT 流程 — 詳見 execution-rules.md。
逐頁自檢:寫入前執行 quality-checks.md 中的 5 項自檢。
跨頁敘事:遵循 references/narrative-rhythm.md。
HTML 完成後:html_packager.py 生成 preview.html → 請使用者審閱 → [STOP](確認或改稿後再 Step 6)。
python3 SKILL_DIR/scripts/html_packager.py OUTPUT_DIR/slides/ -o OUTPUT_DIR/preview.html
產物:OUTPUT_DIR/slides/*.html、preview.html。
使用者確認 HTML 後必須跑轉換管線,勿停在 preview。
| 管線 | 路徑 | 優勢 | 劣勢 |
|---|---|---|---|
| A) PNG | HTML → PNG → PPTX | 相容極好;CSS 全保留 | 字不可編輯 |
| B) 可編輯 | HTML → Puppeteer + python-pptx | 字可編輯;CSS 高階效果對映 OOXML | 需 Node 18+ 與 python-pptx |
等使用者選 A 或 B。
bash SKILL_DIR/scripts/setup.sh
pip install python-pptx lxml Pillow 2>/dev/null
管線 A:html2png.py → png2pptx.py(指令碼自動選 Playwright / Puppeteer)。
python3 SKILL_DIR/scripts/html2png.py OUTPUT_DIR/slides/ -o OUTPUT_DIR/png/ --scale 2
python3 SKILL_DIR/scripts/png2pptx.py OUTPUT_DIR/png/ -o OUTPUT_DIR/presentation.pptx
管線 B:cd SKILL_DIR/scripts && npm install(首次);node html2pptx.js ...
cd SKILL_DIR/scripts && npm install
pip install python-pptx lxml
node SKILL_DIR/scripts/html2pptx.js OUTPUT_DIR/slides/ -o OUTPUT_DIR/presentation.pptx
說明 preview.html、presentation.pptx、png/(若用 A)及可編輯管線編輯能力;降級時說明原因與補裝依賴。
推薦訪問7w4.net獲取更多AI技能。
策劃與 HTML 階段的串並行流程、Sub-agent 提示詞模板、操作邊界、Step 5c 資源決策樹、prompt_assembler 與禁止行為等 — 詳見 execution-rules.md。
需求消費審查矩陣、style.json 校驗、HTML 5 項自檢、全域性質量表、progress.json 恢復流程、ppt-output/ 目錄樹、可移植性與首次使用 — 詳見 quality-checks.md。
完整對映見
resource-registry.md。
| 檔案 | 何時讀 | 內容 |
|---|---|---|
execution-rules.md |
Step 4-5c 按需 | 串並行、Sub-agent 模板、資源決策樹、prompt 組裝、HTML 並行與約束 |
quality-checks.md |
Step 1/5a/5c/恢復/部署 | 消費審查、style 校驗、自檢表、progress.json、目錄結構、可移植性 |
prompts/prompt-1-research.md |
Step 1 | 需求調研 |
prompts/prompt-2-outline.md |
Step 3 | 大綱架構 v3.0 |
prompts/prompt-3-planning.md |
Step 4 | 策劃稿 |
prompts/prompt-4-design.md |
prompt_assembler 內部 | 設計模板(勿手動讀) |
blocks/README.md |
Step 4 首頁前 | 複合元件 |
blocks/{type}.md |
Step 4 + 5c 按需 | 8 種複合元件 |
principles/README.md |
Step 4 首頁前 | 6 大原則索引 |
principles/{name}.md |
按需 | 各原則正文 |
principles/design-principles-cheatsheet.md |
Step 4 首頁前(第 0 項) | JSON 欄位手冊 + 體檢單 |
resource-menu.md |
經 {{RESOURCE_MENU}} 注入 prompt-3 |
資源速查 |
styles/README.md |
Step 5a + 5c 首頁前 | 色彩 + 裝飾工具箱 |
styles/{id}.md |
Step 5a | 8 套調色盤 |
layouts/README.md |
策劃 / 5c | 佈局總則 |
layout-patterns.md |
5c GATE #2 | 佈局模式 + 4 層結構 + 元件 |
layouts/{layout}.md |
resource 組裝 | 骨架 |
charts/{type}.md |
resource 組裝 | 圖表模板 |
page-templates/{type}.md |
resource 組裝 | 頁面結構建議 |
narrative-rhythm.md |
Step 3 後 | 節奏與色彩遞進 |
technique-cards.md |
prompt_assembler | T1-T10 技法牌 |
resource-registry.md |
維護 | 全域性對映 |
pptx-pipeline.md |
可編輯管線 | PPTX 技術規則 |
scripts/prompt_assembler.py |
Step 5c GATE | 組裝 prompt-ready |
scripts/resource_assembler.py |
內部 | [RESOURCES] 塊 |
scripts/planning_validator.py |
Step 4 | 策劃校驗 |
scripts/setup.sh |
首次 / 自檢 | 環境 |
scripts/html2png.py |
Step 6 A | 截圖 |
scripts/png2pptx.py |
Step 6 A | PNG → PPTX |
scripts/html2pptx.js |
Step 6 B | 可編輯管線入口 |
scripts/extract_slides.js |
Step 6 B | Phase 1 |
scripts/assemble_pptx.py |
Step 6 B | Phase 2 |
scripts/package.json |
Step 6 B | Node 依賴 |
scripts/html_packager.py |
Step 5c | preview.html |
這個 Skill 質量較高,專業度強,做 PPT 的設計感很好。優點是流程完整(從調研到輸出都有覆蓋)、風格選擇豐富(8種預設風格)、支援自動配圖和可編輯 PPTX 匯出。不足之處是使用起來比較複雜,需要回答很多問題才能開始生成,文件結構龐大,新手可能需要花不少時間才能上手。適合對 PPT 有較高要求、願意投入時間學習的使用者。