完整技术约束详见 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(字段须完整):
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 或指定章节为主,勿通读全书):
优先级路径用途0principles/design-principles-cheatsheet.mdJSON 字段操作 + 逐页 8 项体检( 必读第一项)1layouts/README.md``layout_hint1blayout-patterns.md12 种布局模式、4 层结构、通用组件2blocks/README.md``card_type3blocks/card-styles.md``card_style4charts/README.md``chart_type5principles/README.md原则索引6styles/README.md 的 装饰技法工具箱 章节decoration_hints7image-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 才能继续:
bash
# 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):
bash
# [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)。
bash
python3 SKILL_DIR/scripts/html_packager.py OUTPUT_DIR/slides/ -o OUTPUT_DIR/preview.html
产物: OUTPUT_DIR/slides/*.html、 preview.html。
用户确认 HTML 后必须跑转换管线,勿停在 preview。
管线路径优势劣势A) PNGHTML → PNG → PPTX兼容极好;CSS 全保留字不可编辑B) 可编辑HTML → Puppeteer + python-pptx字可编辑;CSS 高级效果映射 OOXML需 Node 18+ 与 python-pptx
等用户选 A 或 B。
bash
bash SKILL_DIR/scripts/setup.sh
pip install python-pptx lxml Pillow 2>/dev/null
管线 A: html2png.py → png2pptx.py(脚本自动选 Playwright / Puppeteer)。
bash
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 ...
bash
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)及可编辑管线编辑能力;降级时说明原因与补装依赖。
策划与 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.mdStep 4-5c 按需串并行、Sub-agent 模板、资源决策树、prompt 组装、HTML 并行与约束quality-checks.mdStep 1/5a/5c/恢复/部署消费审查、style 校验、自检表、progress.json、目录结构、可移植性prompts/prompt-1-research.mdStep 1需求调研prompts/prompt-2-outline.mdStep 3大纲架构 v3.0prompts/prompt-3-planning.mdStep 4策划稿prompts/prompt-4-design.mdprompt_assembler 内部设计模板(勿手动读)blocks/README.mdStep 4 首页前复合组件blocks/{type}.mdStep 4 + 5c 按需8 种复合组件principles/README.mdStep 4 首页前6 大原则索引principles/{name}.md按需各原则正文principles/design-principles-cheatsheet.mdStep 4 首页前(第 0 项)JSON 字段手册 + 体检单resource-menu.md经 {{RESOURCE_MENU}} 注入 prompt-3资源速查styles/README.mdStep 5a + 5c 首页前色彩 + 装饰工具箱styles/{id}.mdStep 5a8 套调色板layouts/README.md策划 / 5c布局总则layout-patterns.md****5c GATE #2**布局模式 + 4 层结构 + 组件layouts/{layout}.mdresource 组装骨架charts/{type}.mdresource 组装图表模板page-templates/{type}.mdresource 组装页面结构建议narrative-rhythm.mdStep 3 后节奏与色彩递进technique-cards.mdprompt_assemblerT1-T10 技法牌resource-registry.md维护全局映射pptx-pipeline.md可编辑管线PPTX 技术规则scripts/prompt_assembler.pyStep 5c GATE组装 prompt-readyscripts/resource_assembler.py内部[RESOURCES] 块scripts/planning_validator.pyStep 4策划校验scripts/setup.sh首次 / 自检环境scripts/html2png.pyStep 6 A截图scripts/png2pptx.pyStep 6 APNG → PPTXscripts/html2pptx.jsStep 6 B可编辑管线入口scripts/extract_slides.jsStep 6 BPhase 1scripts/assemble_pptx.pyStep 6 BPhase 2scripts/package.jsonStep 6 BNode 依赖scripts/html_packager.pyStep 5cpreview.html