专业 PPT 演示文稿全流程 AI 生成助手。模拟顶级 PPT 设计公司的完整工作流(需求调研到资料搜集到大纲策划到策划稿到设计稿),输出高质量 HTML 格式演示文稿。当用户提到制作 PPT、做演示文稿、做 slides、做幻灯片、做汇报材料、做培训课件、做路演 deck、做产品介绍页面时触发此技能。即使用户只说"帮我做个关于 X 的介绍"或"我要给老板汇报 Y",只要暗示需要结构化的多页演示内容,都应该触发。也适用于用户说"帮我把这篇文档做成 PPT"、"把这个主题做成演示"等需要将内容转化为演示格式的场景。英文场景同样适用:"make a presentation about..."、"create slides for..."、"build a pitch deck"、"I need a keynote for..."。隐式意图也应触发:"帮我把这个数据可视化一下给老板看"、"我需要一份能拿去路演的东西"、"把这个报告做得好看点能展示"、"beautify my existing PPT"、"redesign these slides"。改善或美化现有 PPT 也属于此技能范畴。
npx skills add https://github.com/sunbigfly/ppt-agent-skills --skill ppt-agent
只做:维护计划、调用 harness、管理 subagent 生命周期、校验 Gate、与用户交互。
不做:代写任何正式产物;手写 subagent prompt;内联执行任何内容生产;用口头判断替代 validator。
内容生产全量外包红线:P2A/P2B/P3/P3.5/P4 的所有正式产物(search.txt、source-brief.txt、outline.txt、style.json、planningN.json、slide-N.html 等)必须且只能由对应的 subagent 生成。主 agent 自己写出这些产物内容 = 合同违规。主 agent 唯一允许的"写"行为是通过 harness 生成 prompt 文件和通过 validator 校验产物。
P0 → P1 → (P2A|P2B) → P3 → P3.5 → P4 → P5 执行;禁止增删改名。exit=0 后才能标记为 completed。RETRY_CURRENT_STEP 或 回退 ROLLBACK→StepID。严禁"跳到后续步骤试试看"。WAIT_USER / WAIT_AGENT 是硬等待点;未收到输入/FINALIZE 前,禁止执行后续步骤。requirements-interview.txt。断点只能挂在既有主链 Step 内,且只允许主 agent 控制;subagent 不得自行向用户发问。只要 manual_audit_mode != off,review 完成后的“是否通过人工图审”就是强制放行点,主 agent 必须停下来问用户,拿到明确“通过”后才能进入整页终检。通用生命周期:create(--model SUBAGENT_MODEL) → RUN(prompt路径) → STATUS… → FINALIZE → close;完成即关,不复用。Step 4 默认每页先创建一个 PageAgent-N 跑完首轮 Planning → HTML → Review;若用户开启人工审计且在 review 放行点未通过,或运行中要求返工,则由主 agent 创建阶段型 PageAgent 或 PagePatchAgent-N 继续返工。创建时必须显式传 --model SUBAGENT_MODEL,禁止省略。SUBAGENT_MODEL 由用户在 Step 0 采访时指定(详见 3.1.0 及 6.2)。
上下文隔离(强制):无论 CLI 环境默认是否让 subagent 继承主 agent 上下文,本 skill 要求所有 subagent 必须以隔离模式运行——subagent 唯一可见的上下文是主 agent 通过 prompt 文件显式传递的内容。如果 CLI 支持隔离参数(如 --no-context、沙箱模式等),必须在《Subagent 操作手册》中记录并在调用模板中包含。主 agent 的对话历史、SKILL.md 内容、环境变量等不应该泄露给 subagent。
Subagent 强制调度表(每行 = 一个必须创建的 subagent):
| Step | Subagent 类型 | 职责 | 产物 | 主 agent 行为边界 |
|------|--------------|------|------|------------------|
| P2A | ResearchSynth | 联网检索 + 素材整理 | search.txt, search-brief.txt | 仅 harness 生成 prompt → 创建 subagent → 回收校验 |
| P2B | SourceSynth | 用户资料降维整合 | source-brief.txt | 同上 |
| P3 | Outline | 大纲构建(含内部自审闭环) | outline.txt | 同上,禁止介入 subagent 内部自审 |
| P3.5 | Style | 全局风格锁定 | style.json | 同上 |
| P4 | PageAgent-N(每页一个) | 页面规划 + HTML + 审查 | planningN.json, slide-N.html, slide-N.png | 同上,orchestrator 渐进式编排三阶段 |
红线:
generate 且用户需要文生图时,额外创建 ImageGen 子代理;PageAgent 不承担文生图review 后强制放行点给出“不通过”,主 agent 也必须通过阶段型 PageAgent 或 PagePatchAgent-N 返工;默认从 review 重开,让 subagent 继续图审 + HTML 修复;严禁主 agent 直接手改正式产物自适应调用协议(每个业务节点强制执行):
主 agent 到达上表任意 Step 时,必须按以下流程显式组装 subagent 调用命令:
SUBAGENT_MODEL){{SUBAGENT_NAME}}、{{PROMPT_PATH}}、{{MODEL}} 替换为当前步骤的实际值({{MODEL}} = SUBAGENT_MODEL)禁止“依据操作手册创建”这种含糊引用;必须显式展示组装结果。
prompt_harness.py 从模板生成;禁止手写{{VAR}} 必须填充,残留即 ERROR;输出固定落 OUTPUT_DIR/runtime/--inject-file 注入;主 agent 不手动预读正文prompt_harness.py 生成 OUTPUT_DIR/runtime/prompt-interview.md,再依据渲染结果向用户发问;采访运行时模板必须按能力在 tpl-interview-structured-ui.md 与 tpl-interview-text-fallback.md 之间二选一,不得退化成随手写的一小段简陋问题。AskUserQuestion / request_user_input 的原生提问能力,主 agent 就必须优先使用;能力判断看是否支持 question/header/id/options 等结构化提问对象,而不是看固定工具名。prompt_harness.py 在 Step 0 发生真实脚本接口故障,并已判定 BLOCKED_SCRIPT_INTERFACE 时,才允许主 agent 直接发问;但覆盖维度不得低于 tpl-interview.md 的最终要求。| 指令 | 方向 | 内容 |
|------|------|------|
| RUN | 主→子 | prompt 文件路径(一行,不发正文)|
| STATUS | 子→主 | 进度、阻塞项、下一动作 |
| FINALIZE | 子→主 | 完成信号 + 产物路径列表 |
仅里程碑通信;任何修复直接改文件并回传路径。
多阶段 orchestrator 补充协议:对于 phase1 → phase2 [→ phase3] 的渐进式子代理,非末阶段只允许输出 --- STAGE n COMPLETE: {artifact_path} --- 作为阶段完成标记;只有最后阶段才允许发送 FINALIZE。
subagent FINALIZE 前自审;主 agent 回收后再跑同一 validator 复检。自审通过不等于主链放行。
update_plan 与 cli-cheatsheet 读取后,第一条面向用户的业务交互必须是 Step 0 的采访问题;允许把 ## 模型感知结果 / ## Subagent 操作手册 / ## 采访 UI 能力 压缩为同一条消息里的前置状态块,但不得先做调研、资料探索或报告读取。OUTPUT_DIR/**、用户输入资料、以及 cli-cheatsheet.md。scripts/*.py 是执行对象,不是阅读对象!仅允许 python3 ... 执行;严禁对脚本跑 --help 摸索参数,严禁 cat 脚本源码!所需的参数全都在 cli-cheatsheet.md 里面。BLOCKED_SCRIPT_INTERFACE 并呼叫用户裁决。资源文件结构:# 标题 + > 一句话定位(引用层) + 正文层。消费规则:
resource_loader.py menu 加载标题+引用层组成菜单runtime/page-planning-menu-N.md 备份,再让 PageAgent 读取这份快照resource_loader.py resolve 按 planning JSON 字段动态加载正文层layout_hint→layouts/、page_type→page-templates/、card_type→blocks/、chart_type→charts/命令见 cheatsheet 资源路由节。
进入任何业务步骤前,主 agent 必须按照以下顺序执行环境感知,并将结果显式分类记录到对话或计划日志中。这决定了整个任务的工具下限。若当前界面会直接暴露给用户,允许把这些结果压缩成采访消息中的前置状态块;禁止在 Step 0 前展开长篇说明。
前置操作:
update_plan 创建 canonical plan。references/cli-cheatsheet.md 建立对所有 CLI 接口的精确记忆。为了绝对保证内容质量不滑坡,主 agent 必须在开局时确认自己是谁,并在采访阶段确认 subagent 使用的模型及思考等级:
MAIN_MODEL 全局变量,并在对话中输出 ## 模型感知结果。同时也需探测当前环境 API/工具是否支持给模型传递"思考深度/推理努力(reasoning effort)"这一级选项。SUBAGENT_MODEL 与 SUBAGENT_THINKING_EFFORT 绑定:Step 0 采访阶段不仅会向用户确认 subagent 使用的模型,还会询问需要的思考深度等级(详见 6.2)。用户回答后,将其显性固化为 SUBAGENT_MODEL 和 SUBAGENT_THINKING_EFFORT 全局变量,并在 ## 模型感知结果 中同步输出。环境中有多种执行工具,主 agent 必须为自己梳理规矩:
## Subagent 操作手册,必须包含以下内容:{{SUBAGENT_NAME}}、{{PROMPT_PATH}}、{{MODEL}} 以及支持深度思考情况下的 {{THINKING_EFFORT}} 等四个槽位。调用模板示例(主 agent 必须根据实际环境生成类似格式,{{MODEL}} = SUBAGENT_MODEL,{{THINKING_EFFORT}} = SUBAGENT_THINKING_EFFORT):
# 模板(槽位用 {{}} 标记,MODEL 取自 SUBAGENT_MODEL,THINKING_EFFORT 取自 SUBAGENT_THINKING_EFFORT)
<tool> --model {{MODEL}} --reasoning-effort {{THINKING_EFFORT}} --message "Read {{PROMPT_PATH}} and execute all instructions" --name {{SUBAGENT_NAME}}
由于 Step 0 直接决定用户交互体验:
question/header/id/options 一类结构化字段,并让用户直接点选/填写的能力;名称不限,可表现为 AskUserQuestion、request_user_input、ask_user_question、ui.form 等。## 采访 UI 能力 输出到对话中,至少包含:structured-ui / text-fallbacktpl-interview-structured-ui.md,不支持则使用 tpl-interview-text-fallback.md。由于 Research 分支极度依赖网络检索能力:
## Search 工具清单 的表格到对话中。TOOLS_AVAILABLE 变量直接喂给检索子代理,务必清晰详实。如果缺失基础能力,必须主动停止并报错:
manual_slot 或 decorate。| 变量 | 值 |
|------|----|
| SKILL_DIR | 当前 skill 根目录(例如:../skills/ppt-agent-workflow-san,必须是相对路径) |
| ROOT_OUTPUT_DIR | ppt-output/(必须相对 CWD,禁止跳出) |
| RUN_ID | YYYYMMDD-HHMMSS-topic(带时间戳用于区分同目录下不同任务的产出) |
| OUTPUT_DIR | ROOT_OUTPUT_DIR/runs/{RUN_ID} |
RUN_ID 唯一性约束:同一个 PPT 任务全程只允许一个 RUN_ID,Step 0 创建后锁定复用,重试/回退/断点恢复均复用同一个,禁止为同一任务重复创建。不同的 PPT 任务(不同主题)各自独立 RUN_ID。恢复旧任务时绑定旧 RUN_ID。
> ⚠️ 跨环境可移植性红线(防止运行时路径污染):
> 在组装并向 prompt_harness.py 传入用于子代理指引的变量时,主 Agent 绝对禁止将其展开成宿主的死硬绝对路径(如 /home/xxxxxxxx/...),也尽量避免结构极度脆弱的外跳路径(如 ../../../.gemini/...)。
>
> 最聪敏的终极解决方案:
> 1. 对于引擎代码路径(如 --var SKILL_DIR= 或 --var REFS_DIR=),主 agent 请直接传递带有环境变量字面量的字符串本身(如 --var SKILL_DIR='$SKILL_DIR'、--var REFS_DIR='$SKILL_DIR/references')。
> 2. 这样最终生成的 OUTPUT_DIR/runtime/prompt-*.md 模板内容里,就会直接保留 python3 $SKILL_DIR/scripts/... 这种占位符。子代模型也会乖乖地用这样的环境变量向终端请求执行,任何终端只要配置了 $SKILL_DIR 都可以瞬间通跑我们的产物!
> 3. 对于业务流水线位置(OUTPUT_DIR 相关),必须退化成基于 CWD 的干净相对路径。
interview-qa.txt → requirements-interview.txt
→ search.txt + search-brief.txt(research)| source-brief.txt(非 research)
→ outline.txt → style.json
→ planning/planningN.json → slides/slide-N.html → png/slide-N.png
→ preview.html → presentation-{png,svg}.pptx → delivery-manifest.json
运行时 prompt 落 OUTPUT_DIR/runtime/prompt-*.md。
> !强制使用CLI 原装plan list工具管理所有task
P0.01 采访问题组装
P0.02 [WAIT_USER] 获取回答
P0.03 写入 interview-qa.txt
P0.04 归一化 → requirements-interview.txt
P1.01 输入识别
P1.02 [WAIT_USER] 分支选择(research / 非research)
P2A.01 harness → phase1 + phase2 + orchestrator prompt
P2A.02 创建 ResearchSynth subagent(发 orchestrator,subagent 内部自主渐进:搜索 → 格式化+自审)
P2A.03 [WAIT_AGENT] FINALIZE
P2A.04 回收校验(search.txt + search-brief.txt)
P2A.05 [可选] 回退 P2A.01 扩搜重跑
P2A.06 关闭
P2B.01 [如 pptx][WAIT_USER] 模式确认
P2B.02 资料初读与方向提炼(梳理 3-5 个可能的陈述切入方向)
P2B.03 [WAIT_USER] 强制展示方向并获取用户选择
P2B.04 将用户选定方向写入 requirements-interview.txt
P2B.05 harness → phase1 + phase2 + orchestrator prompt
P2B.06 创建 SourceSynth subagent(发 orchestrator,subagent 内部自主渐进:提炼 → 自审)
P2B.07 [WAIT_AGENT] FINALIZE
P2B.08 回收校验(source-brief.txt)
P2B.09 关闭
P3.01 harness → phase1 + phase2 + orchestrator prompt
P3.02 创建 Outline subagent(发 orchestrator,subagent 内部自主渐进:编写 → 自审+修复)
P3.03 [WAIT_AGENT] FINALIZE
P3.04 回收校验 outline.txt
P3.05 关闭
P3.5.01 harness → phase1 + phase2 + orchestrator prompt
P3.5.02 创建 Style subagent(发 orchestrator,subagent 内部自主渐进:决策 → 自审)
P3.5.03 [WAIT_AGENT] FINALIZE
P3.5.04 回收校验 style.json
P3.5.05 关闭
P4.NN.01 生成 Step 4 planning 菜单快照 + runtime prompt
P4.NN.02 创建当前轮 subagent(首轮:PageAgent-NN;断点返工:阶段型 PageAgent 或 PagePatchAgent-NN)
P4.NN.03 [WAIT_AGENT] 回收当前轮 FINALIZE(拿到最新 planning/html/png)
P4.NN.04 [如 manual_audit_mode != off][WAIT_USER] 展示最新 slide-N.png,询问是否通过人工图审
P4.NN.05 [如未通过] 创建 `PagePatchAgent-NN`(默认 `START_STAGE=review, END_STAGE=review`)执行图审 + HTML 修复,然后回到 `P4.NN.03`
P4.NN.06 整页终检(产物校验 + visual_qa + 主 agent 看图)
P4.NN.07 关闭当前页 subagent
(所有页并行推进)
P5.01 生成 preview.html
P5.02 PNG 导出 → presentation-png.pptx
P5.03 SVG 导出 → presentation-svg.pptx
P5.04 写入 delivery-manifest.json
Plan 更新规则:仅状态变化时更新;并行页逐页追踪不合并;create/wait/close 拆开;generate/validate 拆开;回退显式标记 ROLLBACK→StepID。
--model SUBAGENT_MODEL)RUN(orchestrator prompt 路径)→ subagent 内部自主渐进式读取各阶段 → 收到 FINALIZEmanual_audit_mode != off,则 FINALIZE 后必须先经过 review 后的 [WAIT_USER] 放行点,再进入整页终检 → 不再复用时立即 close| 类别 | 路径 | 消费方式 |
|------|------|---------|
| Prompt 模板 | references/prompts/tpl-*.md | 传路径给 harness,不手动预读 |
| 执行细则 | references/playbooks/*-playbook.md | --inject-file 注入 |
| 风格真源 | references/styles/runtime-style-*.md | Step 3.5 注入 |
| 大纲/采访/交付合同 | scripts/contract_validator.py | P0 / P3 / P5 Gate |
| Step 4 schema 真源 | scripts/planning_validator.py | P4 planning Gate |
| Step 4 图审与结构校验 | scripts/visual_qa.py | P4 PNG + planning + HTML 双层 Gate |
| CLI 命令 | references/cli-cheatsheet.md | Step 0 前读取,后续直接引用 |
CURRENT_BRIEF_PATH:research → search-brief.txt;非 research → source-brief.txt(Step 3/4 共用)。
scripts/workflow_versions.py(当前 WORKFLOW_VERSION = 2026.04.09-v4.1)scripts/planning_validator.pyscripts/contract_validator.pyscripts/visual_qa.pyreferences/prompts/tpl-*.md 模板中的 {{VAR}}references/layouts/、references/blocks/、references/charts/、references/principles/ 的真实文件 stem,与 scripts/resource_loader.py 的归一化规则python3 SKILL_DIR/scripts/check_skill.py| Step | 核心动作 | 关键产物 | Gate | 失败回退 |
|------|---------|---------|------|---------|
| P0 | 采访并归一化需求 | interview-qa.txt / requirements-interview.txt | contract_validator interview + requirements-interview | 补问,不进 P1 |
| P1 | 识别输入确定分支 | 分支写入 requirements-interview.txt | 逻辑判断 | WAIT_USER |
| P2A | 检索并压缩资料 | search.txt / search-brief.txt | contract_validator search + search-brief | 回退 P2A.01 重建 ResearchSynth(扩大搜索预算/维度) |
| P2B | 压缩用户现有资料 | source-brief.txt | contract_validator source-brief | 回 P2B 重写 |
| P3 | 生成大纲(内部自审) | outline.txt | contract_validator outline(含 density_bias / density_curve / 单页密度窗口) | 回退 P3.01 重建 Outline subagent,最多 2 轮;仍失败则 BLOCKED_OUTLINE 呼叫用户裁决 |
| P3.5 | 固定全局风格 | style.json | contract_validator style | 回 P3.5 |
| P4 | 并行生产各页 | planningN.json / slide-N.html / slide-N.png | planning_validator + 三件套存在性 + visual_qa(PNG + planning + HTML)+ 主 agent 看图 + (若开启)用户人工图审通过 | 只回退该页;人工图审未通过时默认从 review 重开;同类 P0/P1 连续 2 轮不收敛则强制回退 planning |
| P5 | 导出交付 | preview.html / 双 pptx / delivery-manifest.json | contract_validator delivery-manifest | 只回退导出 |
> 所有命令完整参数见 cli-cheatsheet.md。
即使第一句话用户提供了极多信息,严禁跳过采访阶段。
tpl-interview-structured-ui.md),若不支持则用格式清晰且附带选项的文本问答(tpl-interview-text-fallback.md)。requirements-interview.txt 并 100% 被下游验证器(Gate)与子系统(Subagent)解析消费,无需推测与加工。page_density 只表示整套 deck 的整体倾向,不等于每页固定密度。内部统一映射为 density_bias:少而精 -> relaxed适中 -> balanced容量极大 -> ultra_denseoutline 产出的 density_curve 决定,不交给 html 临场发挥。SUBAGENT_MODEL 和 SUBAGENT_THINKING_EFFORT 全局变量。如果用户不关心,可以默认 SUBAGENT_MODEL = MAIN_MODEL 并使用中等思考等级。manual_audit_mode、manual_audit_scope、manual_audit_assets 这 3 个字段;具体选项与提问形式放在采访模板里维护,不在 SKILL.md 展开。requirements-interview.txt(必须包含模型、思考深度和人工审计参数),才能进入 Step 1。这是流程分水岭。
requirements-interview.txt。此阶段极易发生两个极端:内容单薄 或 无限制搜索烧 Token。
搜索深度预估(主 agent 在生成 prompt 前必须完成):
MAX_SEARCH_ROUNDS)并写入 prompt 变量:MAX_SEARCH_ROUNDS 是硬上限而非目标——鼓励在上限内尽可能搜全,但到达上限后必须收敛出 brief,禁止无限追加。强制检查项:产出的 search-brief.txt 必须包含专为 PPTX 设计的独立结构化数据包区块。必须至少含 3 种不同数据类型(Metrics指标、Comparisons对标、Timelines时间线等)。
MAX_SEARCH_ROUNDS,主 agent 应回退到 P2A.01 重建一套新的 ResearchSynth prompt 与 subagent,扩大搜索预算/维度后整步重跑;不要在已 FINALIZE 的 session 上继续补搜。SEARCH_QUALITY_LOW 并向用户说明缺口,由用户决定是否补充资料或降低预期。用户丢来的一堆资料必须先处理好再跑大纲。此步同样走 subagent 模式(SourceSynth subagent),但为了避免黑盒决定方向且保证方向贴合业务,必须在此阶段引入用户决策。禁止主 agent 内联执行正式内容生产,但允许浅度摸底。
.pptx,主 agent 须最先强制询问期望的处理模式(仅美化排版 / 彻底重构大纲 / 美化排版并重构内容)。[WAIT_USER] 强制向用户提问:"基于您提供的资料,我梳理了以下几个讲述方向,您倾向哪种或有其他补充?"。收到用户明确答复后,将此业务方向追加写入 requirements-interview.txt 中。--model SUBAGENT_MODEL)。requirements-interview.txt 里的强制方向提取主题)、整合输出 source-brief.txt。核心纪律:主 agent 不要自作聪明显式开启后续的审查验证轮回。Outline subagent 设计为自带闭环属性,它会在内部按照【打草稿 → 严格自查缺陷 → 覆盖修复】的死循环直到完美状态,只有这样它才会交出带有 FINALIZE 的最终 outline.txt。
这一步不只是在排页序,也要先把整套密度节奏定下来:
outline 必须显式产出 deck 级 density_bias 和整套 density_curve密度下限 / 密度目标 / 密度上限 / 节奏动作 / 信息姿态 / 锚点类型cover / section / end 不允许 dashboard;禁止连续 3 页 high / dashboard;dashboard 前后必须至少有 1 页非 dashboard 过渡contract_validator outline 会直接检查这些字段,不允许把“页差”留到 Step 4 再临时决定全盘风格定调。只有在明确了需求文本跑出的大纲后才定风格。风格判断不仅看需求,更依赖 runtime-style-rules.md。输出:一份精准的、没有含糊描述、能被页面规划和 HTML 代码直接执行的 style.json。
为防止大模型在一次 prompt 中同时兼顾排版、图文推演与 HTML 编码导致「注意力塌陷」,本阶段每个单页的任务被拆散成三级 prompt(4A Planning -> 4B HTML -> 4C Review)。
这里的密度合同是冻结点,不是建议项:
planning 必须把 outline 给出的密度窗口冻结成 density_label、density_reason、density_contractdensity_contract 至少要包含 deck_bias、page_lower_bound、page_upper_bound、max_cards、max_charts、min_body_font_px、max_lines_per_card、image_policy、decoration_budget、overflow_strategycontent_budget 是卡片级硬预算,缺失就算失败;它必须继续服从页级 density_contracthtml 只负责执行,不允许自己抬高或降低本页密度Step 4 只保留两种模式:
manual_audit_mode != off,主 agent 可以在 planning、html 节点挂断点;而在 review 节点,用户放行是强制任务节点,不是可有可无的旁路。manual_audit_mode != off,每次 PageAgent / PagePatchAgent 完成一轮 review、写出最新 slide-N.png 后,主 agent 都必须立刻 [WAIT_USER]。PagePatchAgent-N,以 START_STAGE=review、END_STAGE=review 重开,让 subagent 在保留现有 planning 与 HTML 上继续图审 + HTML 修复。html 或 planning 重开。review 后强制放行点明确“不通过”时,主 agent 只能通过阶段型 PageAgent 或 PagePatchAgent-N 返工,不能自己改正式产物。planning / html / review 三选一;其中 review 后人工图审未通过时,默认从 review 重开;只有用户明确要求重做结构时,才回退到 html 或 planning。PagePatchAgent-N 的调用模板,都放在 cli-cheatsheet.md 的 Step 4 中维护。HTML 必须完全服从 planning:low / mid_low 可高自由度,medium 中自由度,high / dashboard 低自由度。高密页统一优先稳态 grid / flex、短语化文案、表格/矩阵/微图表;禁 hero image、禁重装饰、禁多个主锚点并列、禁靠复杂绝对定位硬塞内容。review 必须先核对 density_contract,再看 PNG 视觉质量。P0 / P1 类别在连续 2 轮新截图里仍不收敛,说明问题已经回到预算或骨架层,必须停止继续修 HTML,强制回退 planning,重写 density_label / density_contract / layout_hint / cards 分配 中至少一项。planning_validator 必须放行;整页 FINALIZE 回收后,主 agent 还必须补跑 visual_qa --html 并亲自看图;若开启人工审计,还必须拿到用户在 review 后的明确“通过”。这些条件同时满足才算该页放行。双管线(PNG/SVG)并行;导出失败只回退导出,不回退内容生产。命令见 cheatsheet Step 5。
原则:只信文件与 Gate 校验,不信口头记忆或 session 状态。
第一步:侦查 — 扫描所有页,收集触发条件(任一成立)的页号:
planningN.json 不存在、为空或 planning_validator 不通过slide-N.html 不存在或为空slide-N.png 不存在或为空visual_qa.py 退出码为 1(致命缺陷)review 后强制人工图审卡口明确表示未通过P0 / P1 问题连续 2 轮不收敛,需要回退 planning第二步:并行重跑 — 收集完毕后,一次性并行启动所有失败页:清三件套及 review 图片残留 → 从 P4.NN.01 开始重跑(先生成 prompt,再创建 PageAgent,随后 RUN orchestrator)。
若失败来源只是 review 后人工图审未通过,主 agent 默认不要整页从头重跑,而是保留现有 planning/html,显式改用 PagePatchAgent-N 从 review 重开;只有用户明确要求改结构,或多轮 review 修复仍无效,才退回 html/planning 或整页重跑。若已经触发“同类 P0 / P1 连续 2 轮不收敛”,则不再允许继续打补丁,必须退回 planning 重新冻结预算与骨架。最终放行标准仍与完整 Step 4 完全一致。
单页连续 3 次失败 → 标记 BLOCKED_PAGE_N,先跳过推进其余页,最后集中处理。
BLOCKED 页终态处理:所有非 BLOCKED 页完成后,主 agent 必须:
触发:用户说「继续/恢复」并提供 RUN_ID(或默认取最新目录)。
update_plan 重建 canonical plan;绑定旧 RUN_IDcontract_validator.py delivery-manifest ... # P5
planning_validator.py ... # P4 自动下限(恢复后仍需补跑 visual_qa + 看图)
contract_validator.py style ... # P3.5
contract_validator.py outline ... # P3
contract_validator.py search-brief ... | source-brief ... # P2
contract_validator.py requirements-interview ... # P0/P1
outline.txt 确认总页数 → 侦查所有页三件套 + planning_validator + visual_qa → 并行重跑失败页;自动项通过后,主 agent 仍需重新看图确认(旧 session 全部失效)requirements-interview.txt 中记录了人工审计开启,恢复到 Step 4 时还必须把最近可用的 runtime prompt、最终 PNG 和 review/roundX 存档一并纳入断点材料;如果最近一轮 review 后还没有用户明确“通过人工图审”的记录,必须先恢复到这个强制 [WAIT_USER] 卡口,再决定是放行还是走 PagePatchAgent-N禁止:依赖旧 session、跳过侦查、串行逐页处理、恢复时新建 RUN_ID(除非用户要求全新开始)。
Generate clinical trial protocols for medical devices or drugs. This skill should be used when users say "Create a clinical trial protocol", "Generate protocol for [device/drug]", "Help me design a clinical study", "Research similar trials for [intervention]", or when developing FDA submission documentation for investigational products.
Orchestrates end-to-end autonomous AI research projects using a two-loop architecture. The inner loop runs rapid experiment iterations with clear optimization targets. The outer loop synthesizes results, identifies patterns, and steers research direction. Routes to domain-specific skills for execution, supports continuous agent operation via Claude Code /loop and OpenClaw heartbeat, and produces research presentations and papers. Use when starting a research project, running autonomous experiments, or managing a multi-hypothesis research effort.
Multi-agent research skill for parallel research execution (10 agents, battle-tested with real case studies).
Generate and prioritize US equity long-side edge research tickets from EOD observations, then export pipeline-ready candidate specs for trade-strategy-pipeline Phase I. Use when users ask to turn hypotheses/anomalies into reproducible research tickets, convert validated ideas into `strategy.yaml` + `metadata.json`, or preflight-check interface compatibility (`edge-finder-candidate/v1`) before running pipeline backtests.
Use this skill when building or modifying Minecraft server plugins for Paper, Spigot, or Bukkit, including plugin.yml setup, commands, listeners, schedulers, player state, team or arena systems, persistent progression, economy or profile data, configuration files, Adventure text, and version-safe API usage. Trigger for requests like "build a Minecraft plugin", "add a Paper command", "fix a Bukkit listener", "create plugin.yml", "implement a minigame mechanic", "add a perk or quest system", or "debug server plugin behavior".
Internal guidance for composing Codex and GPT-5.4 prompts for coding, review, diagnosis, and research tasks inside the Codex Claude Code plugin
Use when the user asks how to build with OpenAI products or APIs, asks about Codex itself or choosing Codex surfaces, needs up-to-date official documentation with citations, help choosing the latest model for a use case, or model upgrade and prompt-upgrade guidance; use OpenAI docs MCP tools for non-Codex docs questions, use the Codex manual helper first for broad Codex self-knowledge, and restrict fallback browsing to official OpenAI domains.
This skill should be used when designing autonomous agent harnesses: research loops, evaluation scaffolds, locked and editable surfaces, durable logs, novelty gates, pruning, rollback, PR preparation, and human approval boundaries.
Take sunbigfly/ppt-agent from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.