PPT制作
by @mr-q526
根据一句话主题、Markdown 或已有文稿生成结构化 PPT,并支持自然语言修改页面与组件后导出为可编辑 PPT。适用于需要生成大纲、创建逐页布局、维护 deck.json、渲染 HTML 预览和导出 .pptx 的场景。
clawhub install ppt-maker-skill📖 About This Skill
name: ppt-maker description: 根据一句话主题、Markdown 或已有文稿生成结构化 PPT,并支持自然语言修改页面与组件后导出为可编辑 PPT。适用于需要生成大纲、创建逐页布局、维护 deck.json、渲染 HTML 预览和导出 .pptx 的场景。 metadata: { "openclaw": { "emoji": "📊", "requires": { "bins": ["node"] }, "platforms": ["macos", "linux", "windows"], "install": [ { "id": "node-brew", "kind": "brew", "formula": "node", "bins": ["node"], "label": "Install Node.js (brew)", }, ], }, }
PPT Maker
本技能用于构建和编辑结构化 PPT,而不是将任意 HTML 强行转换成 PowerPoint。
核心工作流是:
用户输入 -> 创建项目文件夹 -> AI 生成 deck.json -> 预览渲染 -> 自然语言编辑 -> 导出 .pptx
ClawHub 版本说明
node_modules、历史 projects/、示例导出文件、用户素材和本地虚拟环境。{baseDir} 安装依赖;参考素材请放进 {baseDir}/materials/。cd {baseDir}
npm install
当前系统新增了三层组织能力:
template:控制整体视觉风格和推荐版式archetype:控制某类 PPT 的默认结构和起稿页序subskills/:为个人介绍、项目介绍等具体方向提供更窄的 workflow何时使用
当用户提出以下需求时使用本技能:
.pptx核心原则
subskills/ 目录下(或通过 scripts/list_catalog.js)是否已有为该场景定制的专属子技能。如果存在对应的子技能(如 english-lesson、personal-intro),必须优先阅读并严格遵循该子技能 SKILL.md 中的专属规范与工作流,绝不能用当前的通用兜底流程硬做。deck.json 的结构化组件模型里deck.jsonanimation 字段描述;HTML 预览真实播放,PPT 导出默认用 build slides 模拟目录导航
references/slide-schema.mddeck.json 的结构与当前支持的组件。
references/layout-rules.mdreferences/template-catalog.mdreferences/prompt-patterns.mdscripts/list_catalog.jsscripts/create_ppt_skill.js.agents/workflows/create-subskill.md 中定义的交互访谈流程。
scripts/validate_deck.jsscripts/init_project.jsscripts/build_project.js--export 导出 .pptx。
scripts/open_project_preview.jspreview.html。加 --export 同时导出。
scripts/render_preview.jsscripts/export_ppt.js.pptx,文件名与项目目录名一致(如 lesson-23-24.pptx)。
scripts/list_materials.jsmaterials/ 目录下的参考素材文件。
scripts/apply_edit.jsscripts/plan_edit.jsscripts/edit_with_command.jssubskills/personal-introsubskills/project-introsubskills/english-lessonmaterials/推荐工作流
1. 预检(关键!):如果用户要求做特定场景的 PPT,在创建之前,必须先阅读 subskills/ 目录或执行 node {baseDir}/scripts/list_catalog.js 检查是否有现成的专属子技能(例如用户要做英语备课,务必走 english-lesson 子技能的流程)。若存在,必须切换并遵守该子技能的 SKILL.md 或规范进行交付;若不存在,才适用当前的兜底通用流程。
2. 先创建独立项目目录,路径位于 {baseDir}/projects/,并选择合适的 template / archetype。
3. 阅读 references/slide-schema.md,确认当前支持哪些页面和组件。
4. 如有参考素材,放入 {baseDir}/materials/ 目录。可用 node {baseDir}/scripts/list_materials.js 查看。
5. 根据用户输入在该项目目录里生成 deck.json。
6. 运行 node {baseDir}/scripts/build_project.js {baseDir}/projects/ 校验和预览。
7. 需要查看页面时,使用 node {baseDir}/scripts/open_project_preview.js {baseDir}/projects/ 打开项目 viewer。
8. 根据用户反馈继续修改该项目目录里的 deck.json。
9. 用户确认后,加 --export 导出 .pptx(文件名与项目名一致)。
10. 后续所有预览、编辑和导出都在同一项目文件夹内完成。
命令示例
在本技能目录下运行:
cd {baseDir}
npm install
npm run project:new
npm run validate
npm run preview
npm run export
npm run catalog
node scripts/list_materials.js
node scripts/build_project.js projects/lesson-23-24
node scripts/build_project.js projects/lesson-23-24 --export
node scripts/open_project_preview.js projects/lesson-23-24
node scripts/init_project.js openclaw-intro "OpenClaw 介绍"
node scripts/init_project.js founder-profile "创始人介绍" --template profile-editorial --archetype personal-intro
node scripts/create_ppt_skill.js customer-story "客户案例介绍" "适合客户案例复盘、售前演示和项目展示"
deck 生成要求
ididmeta.template 和 meta.archetypex, y, w, hanimation.effect 和 animation.build自然语言编辑要求
当用户说“改第三页标题”或“把右上角图片放大一点”时:
deck.json对于常见的命令式编辑,优先走:
1. scripts/plan_edit.js 生成 operations
2. scripts/apply_edit.js 或 scripts/edit_with_command.js 应用修改
复杂页面如需保真导出,可以在后续扩展中增加整页位图模式,但默认先保持可编辑对象导出。
Viewer 约定
模板与子 skill 约定
template 负责视觉风格和推荐页型变体,不直接替代 themearchetype 负责某类 PPT 的默认起稿结构subskills/ 里的子 skill 应该只保留对应场景的简洁 workflow,不复制主技能的大量通用说明scripts/create_ppt_skill.js,同时生成一个新的 archetype 脚手架动画说明
fade-in、slide-up、zoom-inanimation.build,导出时会按 build 顺序展开成多张连续幻灯片