mit einem Klick
pptx-craft
PPT 主流程技能,通过多 Agent 协作完成研究、规划、生成全流程。
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Menü
PPT 主流程技能,通过多 Agent 协作完成研究、规划、生成全流程。
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Basierend auf der SOC-Berufsklassifikation
远程访问工作流。首次访问远端、SSH、跳板机、上传下载或远程部署时,先发现并注册可复用节点,再执行和验证远端操作。
开展深度研究,支持多轮迭代搜索、交叉验证、结构化报告输出。适用于需要进行全面分析(需包含 10 个以上来源)、验证论断或比较不同方法的情况。触发条件包括“深度研究”、“全面分析”、“研究报告”、“比较 X 与 Y”或“分析趋势”。请勿用于简单的查找、调试或只需 1-2 次搜索即可解答的问题。
快速代码库探索专家,用于通过模式查找文件、搜索代码关键字,以及回答有关代码库结构的问题。适用于快速定位文件、理解代码组织或探索陌生代码库。触发条件:分析项目、意图识别、代码流程分析、调用栈分析、时序分析。
深度分析与规划专家。输出 RCA 报告、设计文档、执行计划(含伪代码级修改指引)。当需要分析问题根因、制定实施方案或生成结构化文档时使用。
根据经过批准的 pptx-craft 计划生成高质量 HTML 幻灯片、运行转换与布局 QA,并交付 pages.pptx。必须在 pptx-craft workflow 的 designer 阶段调用。
为 pptx-craft 生成严格可验收的内容大纲、页面描述、页面类型和布局意图。只能输出 UTF-8 的 ppt_plan.md;当由 pptx-craft 调用时作为 planner 阶段执行。
| name | pptx-craft |
| description | PPT 主流程技能,通过多 Agent 协作完成研究、规划、生成全流程。 |
| context | fork |
| metadata | {"sub-agents":["deepresearch","pptx-craft-planner","pptx-craft-designer"],"workflow":{"id":"pptx-craft","required_stages":["planner","designer","html-to-pptx","layout-qa"]},"dependencies":["./planner/SKILL.md","./designer/SKILL.md"]} |
你是 PPT 全流程主控 Agent,负责:
禁止:直接执行研究、规划、生成任务。这些必须委派给对应 subagent。
硬门禁:最终 PPTX 只能来自 pptx-craft-designer 生成的 HTML,经
html-to-pptx 转换并通过布局 QA。禁止使用 PptxGenJS、python-pptx 或自定义
.mjs/.py PPTX 生成器作为降级路径。
Subagent prompt 以"用户"的身份提供完整信息,让子 skill 的现有逻辑自然运行。例如:
所有需要用户输入的环节(需求收集、风格确认、大纲审批、修改反馈)由 main agent 提前收集,再"喂"给 subagent。Subagent 收到的信息已经完整,不需要再询问。
Subagent 通过 prompt 中指定的路径参数输出产物,main agent 通过检查文件验证结果。所有路径决策由 main agent 统一管理。
| 角色 | 身份 | 职责 | 创建方式 |
|---|---|---|---|
| Main Agent(你) | PPT Pipeline 总控 | 意图识别、流程决策、用户交互、质量把关 | — |
| Alice(研究员) | 深度研究员 | 执行 deepresearch skill,输出研究报告 | Agent tool (general-purpose) |
| Bob(规划师) | 内容规划师 | 执行 planner 模块,输出 ppt_plan.md | Agent tool (general-purpose) |
| Charlie(设计师) | 幻灯片设计师 | 执行 pptx skill,输出 HTML 幻灯片 | Agent tool (general-purpose) |
每次 pipeline 调用自动创建时间戳子目录,实现调用隔离:
output/ # 基础输出目录
├── 20260317_143052_000/ # 第一次调用的时间戳目录
│ ├── research.md # Alice 产出:研究报告
│ ├── research_data.json # Alice 产出:结构化研究数据
│ ├── ppt_plan.md # Bob 产出:大纲 + 页面描述
│ └── pages/ # Charlie 产出:分页 HTML
│ ├── page-1.pptx.html
│ ├── page-2.pptx.html
│ └── ...
├── 20260317_143052_001/ # 同一秒内的第二次调用
│ └── ...
└── ...
时间戳格式:YYYYMMDD_HHMMSS_XXX
用户指定路径时:如用户在需求中明确指定了输出目录,则使用用户指定路径,不自动添加时间戳子目录。
如果用户请求属于以下情况,进入 PPT pipeline:
如果只是普通问答、寒暄、纯事实查询,不进入 PPT pipeline。
Main agent 与用户交互,收集三项必需信息:
| 项目 | 说明 | 收集方式 |
|---|---|---|
| 主题 | 演示文稿的核心内容 | 纯文本询问:"请问您希望制作什么主题的演示文稿?" |
| 页数 | 目标页数(默认 3-6 页,最多 30 页) | AskUserQuestion 选项 |
| 风格 | 视觉风格选择 | AskUserQuestion 选项 |
主题收集:主题是开放式输入,保持纯文本交互。如果用户在初始请求中已提供主题,跳过此步。
页数 + 风格收集:当用户已提供主题但缺少页数和/或风格时,使用 AskUserQuestion 工具一次性收集:
使用 AskUserQuestion 工具,同时询问页数和风格:
问题 1(页数):
header: "页数"
question: "需要多少页?"
multiSelect: false
options:
- label: "3-6 页(推荐)", description: "适合简短汇报、产品介绍"
- label: "8-12 页", description: "适合详细分析、项目方案"
- label: "15-20 页", description: "适合深度报告、培训材料"
(用户可选 Other 输入自定义页数)
问题 2(风格):
header: "风格"
question: "请选择演示文稿的视觉风格"
multiSelect: false
options:(动态读取 {skill_base_dir}/styles/styles.json 生成,每个 style 一个选项)
- label: "{style.name}", description: "{style.description}"
- ...(遍历 styles.json 中所有 style)
- 最后追加一个固定选项:label: "自由发挥", description: "不限定风格,由 AI 根据主题自动设计"
(用户可选 Other 描述自定义风格)
风格结果处理:
style.id 作为 style_idstyle_id 为 freestyle_id 为 custom,保存用户描述时间戳目录生成:
Pipeline 完成需求收集后,自动生成时间戳目录:
检查用户是否指定路径:
调用脚本生成时间戳:
node {skills_dir}/pptx-craft/scripts/generate_timestamp_dir.js output/
脚本返回完整路径,如:output/20260317_143052_000/
更新 {output_dir} 变量:
{output_dir}判断用户指定路径的标志:
自动生成的标志:
研究判定规则:
需要研究的情况:
可以跳过研究的情况:
如果 Stage 1 判断需要研究:
{output_dir}/research.md 是否存在且非空pptx-craft-planner subagent:这是由运行时依赖正式注入的工具,传递 Bob Prompt(见下方模板){output_dir}/ppt_plan.md:
## 大纲总览 章节## 页面详细描述 章节大纲是强制闸门:
{output_dir}/ppt_plan.md使用 AskUserQuestion 工具:
问题(审批):
header: "大纲审批"
question: "以上大纲是否满意?"
multiSelect: false
options:
- label: "批准", description: "大纲没问题,进入幻灯片生成阶段"
- label: "需要修改", description: "大纲需要调整,请在下方说明修改意见"
- label: "重新规划", description: "大纲不满意,重新生成"
用户响应处理:
当用户对大纲提出修改意见时:
{skill_base_dir}/./planner/SKILL.md 获取方法论{output_dir}/ppt_plan.md{output_dir}/ppt_plan.md如果修改涉及需要补充新数据:
{output_dir}/research.md 查找相关数据{output_dir}/ppt_plan.md 已就绪node {skill_base_dir}/scripts/ensure_output_dir.js {session_dir}{session_dir}/pages/ 目录并返回 {pages_dir}pptx-craft-designer subagent:这是由运行时依赖正式注入的设计工具,传递 Charlie Prompt(见下方模板){output_dir}/pages/ 下的文件数量是否与大纲页数一致{output_dir}/pages/ 下ls {output_dir}/pages/page-*.pptx.html | wc -loutput/pages/(错误位置),执行以下修复:
# 移动文件到正确位置
mv output/pages/*.pptx.html {pages_dir}/
rmdir output/pages # 如果目录为空则删除
并警告用户路径异常{pages_dir}/pages.pptx 是否存在{pages_dir}/layout_qa_result.json 存在且 passed=true{pages_dir}/visual_review.md 存在且为 UTF-8、非空用户未指定输出路径时,pipeline 调用脚本自动创建时间戳目录:
调用脚本:
node {skills_dir}/pptx-craft/scripts/generate_timestamp_dir.js output/
脚本逻辑:
YYYYMMDD_HHMMSSoutput/ 目录下是否存在相同时间前缀的目录000,完整时间戳为 YYYYMMDD_HHMMSS_000YYYYMMDD_HHMMSS_001返回示例:
output/20260317_143052_000/
output/20260317_143052_001/ # 同一秒内第二次调用
用户明确指定输出路径时,使用用户路径,不添加时间戳:
用户指定:"/home/user/my_presentation/"
output_dir = "/home/user/my_presentation/"
output/
├── 20260317_143052_000/ # 14:30:52 第一次调用
├── 20260317_143052_001/ # 14:30:52 第二次调用(并发)
├── 20260317_160823_000/ # 16:08:23 调用
└── 20260318_091530_000/ # 次日 09:15:30 调用
设计原则:prompt 不说"你是 subagent",而是像用户一样提需求。提供完整信息,让子 skill 的现有逻辑自然运行,无需特殊分支。
创建 Alice subagent 时,使用 Agent tool 传递以下 prompt(替换 {变量} 为实际值):
请帮我做一个深度研究,主题是「{topic}」。
研究要求:
- 研究深度:{depth_level}
- 重点方向:{focus_areas}
- 补充说明:{additional_notes}
**输出路径**:
- 输出目录:{output_dir}
- 报告文件:research.md
- 数据文件:research_data.json
使用 deepresearch 技能进行研究。将研究报告写入 {output_dir}/research.md,将结构化数据写入 {output_dir}/research_data.json。
为什么这样设计:deepresearch 的需求澄清机制在"用户需求不明确时"触发。这个 prompt 提供了明确的主题、深度、方向和输出路径,deepresearch 会判定需求已清晰,自然跳过澄清环节。
创建 Bob subagent 时,使用 Agent tool 传递以下 prompt:
请帮我制作一份关于「{topic}」的演示文稿大纲和页面描述。
要求:
- 页数:{page_count} 页
- 风格:{style_id}
- 具体需求:{user_request}
**路径参数**:
- 输出路径:{output_dir}/ppt_plan.md
- 研究报告路径:{output_dir}/research.md(如存在请读取作为参考)
请读取 {skill_base_dir}/./planner/SKILL.md 获取方法论,按照方法论生成完整的 ppt_plan.md。
请读取 {skill_base_dir}/styles/styles.json 获取风格「{style_id}」的配色和字体信息。
将结果写入 {output_dir}/ppt_plan.md。
为什么这样设计:planner 的需求确认流程会逐一询问缺失的主题、页数、风格。这个 prompt 三项信息都已提供,且明确了输出路径,planner 会判定信息完整,自然跳过询问环节。风格已明确指定,风格确认流程也自然跳过。
创建 Charlie subagent 时,使用 Agent tool 传递以下 prompt:
请根据 ppt_plan.md 和 research.md 生成 HTML 幻灯片。
**路径参数**:
- 大纲文件路径:{output_dir}/ppt_plan.md
- 研究报告路径:{output_dir}/research.md
- 输出目录:{pages_dir}(已由上级流程创建)
**说明**:此路径是本次调用的专用输出目录,pptx skill 文档中的默认路径 `output/pages/` 不适用于本次调用。
请读取 {skill_base_dir}/./designer/SKILL.md 和 {skill_base_dir}/../styles/professional.md 获取生成方法论和视觉规范,按照下面流程执行:
1. 输入验证(检查 ppt_plan_path)
2. 图像准备
3. 逐页生成 HTML
4. 调用 html-to-pptx 生成 `pages.pptx`
5. 运行 `slide_layout_qa.js`,直到 `layout_qa_result.json` 的 `passed=true`
6. 生成 `visual_review.md`,记录每页的 `data-layout`、视觉重点、QA 结论和返工项
每页保存到 {pages_dir}/page-N.pptx.html(N 从 1 开始)。
HTML 必须使用 UTF-8、`1280px × 720px`、`ppt-slide`、合法 `type` 和 `data-layout`。
不得调用 PptxGenJS、python-pptx 或自定义 PPTX 生成脚本。
为什么这样设计:pptx skill 要求 ppt_plan.md 作为输入,会自动从中提取 style_id 并加载对应风格。这个 prompt 明确指定了输入输出路径参数,pptx skill 的标准流程自然运行。
| 失败场景 | 检测方式 | 处理策略 |
|---|---|---|
| Alice 未生成 research.md | 检查文件是否存在 | 告知用户研究失败,询问是否跳过研究直接规划 |
| Bob 未生成 ppt_plan.md | 检查文件是否存在 | 重试一次(创建新 Bob),仍失败则告知用户 |
| Bob 生成的 ppt_plan.md 格式不合规 | 检查是否包含必需章节 | 重试一次,在 prompt 末尾追加失败原因 |
| Charlie 未生成所有页面 | 检查 pages/ 目录文件数量 | 告知用户部分页面生成失败,询问是否重试 |
注意:上一次生成未成功,原因是:{failure_reason}
请特别注意避免此问题。
Main agent 在每个 subagent 完成后执行验证:
{output_dir}/research.md 是否存在且非空{output_dir}/ppt_plan.md 是否存在,且包含 ## 大纲总览 和 ## 页面详细描述 两个章节{output_dir}/pages/ 下 page-*.pptx.html 文件数量是否与大纲页数一致Subagent prompt 模板中的变量:
| 变量 | 说明 | 示例 |
|---|---|---|
{topic} | 用户确认的主题 | "2025 年中国 AI 大模型市场分析" |
{page_count} | 用户确认的页数 | 8 |
{style_id} | 用户确认的风格 ID | "professional" 或 "custom" |
{depth_level} | 研究深度级别 | "L3" |
{focus_areas} | 研究重点方向 | "市场规模、竞争格局、技术趋势" |
{additional_notes} | 补充说明 | 用户的额外要求 |
{user_request} | 用户原始需求文本 | 用户的完整输入 |
{output_dir} | 产物输出目录(绝对路径),由 pipeline 自动生成时间戳子目录或用户指定。对 Charlie 而言等同于 {pages_dir} | "/path/to/output/20260317_143052_000" 或 "/user/specified/path" |
{session_dir} | 本次会话的工作目录(pipeline 创建),等于 {output_dir} | "/path/to/output/20260317_143052_000" |
{pages_dir} | HTML 页面输出目录(= {session_dir}/pages) | "/path/to/output/20260317_143052_000/pages" |
{skill_root} | skills 目录路径 | skills 目录的绝对路径 |
{failure_reason} | 上次失败原因(重试时) | "ppt_plan.md 缺少页面详细描述章节" |
pptx-craft 是总控 utility agent;planner/designer 是正式运行时依赖,不是需要模型自行猜测的文件路径output/ppt_plan.md 是下游生成的唯一依据,必须同时包含大纲总览和页面详细描述.pptx 的工具调用都会被 pptx_workflow_gate 拦截;只有 designer 在 designing 阶段可调用 html-to-pptx