PPTMaker-skill
PPTMaker-skill is an AI skill that can quickly generate structured presentations (PPTs) based on a one-sentence topic, Markdown text, or existing drafts. It allows users to modify the PPT's title, body text, accompanying images, layout, theme, and component positions, and even add animation effects, all through natural language. This skill is suitable for scenarios where users need to quickly generate a PPT outline, lay out pages page by page, preview effects, and finally export an editable .pptx file, greatly enhancing PPT creation efficiency and flexibility.
git clone https://github.com/Mr-Q526/PPTMaker-skill.gitBefore / After Comparison
1 组Manually creating PPTs is time-consuming and labor-intensive, requiring starting from scratch to conceive outlines, design page layouts, fill in content, and adjust styles. Modifications also need to be done page by page, resulting in low efficiency.
AI automatically generates PPT outlines and pages, supports rapid modification of content, layout, and animations using natural language, significantly shortening the production cycle and improving PPT creation and iteration efficiency.
description SKILL.md
name: ppt-maker description: 根据一句话主题、Markdown 或已有文稿生成结构化 PPT,并支持自然语言修改页面与组件后导出为可编辑 PPT。适用于需要生成大纲、创建逐页布局、维护 deck.json、渲染 HTML 预览和导出 .pptx 的场景。
PPT Maker
本技能用于构建和编辑结构化 PPT,而不是将任意 HTML 强行转换成 PowerPoint。
核心工作流是:
用户输入 -> 创建项目文件夹 -> AI 生成 deck.json -> 预览渲染 -> 自然语言编辑 -> 导出 .pptx
当前系统新增了三层组织能力:
template:控制整体视觉风格和推荐版式archetype:控制某类 PPT 的默认结构和起稿页序subskills/:为个人介绍、项目介绍等具体方向提供更窄的 workflow
何时使用
当用户提出以下需求时使用本技能:
- 根据一句话主题生成 PPT 大纲与页面
- 根据一段原文或 Markdown 生成演示文稿
- 修改某一页的标题、正文、配图、布局、主题或组件位置
- 为页面或组件增加分步出现动画,并预览动画节奏
- 预览 PPT 页面效果
- 用 skill 自带 viewer 预览指定项目,并查看页内区块信息
- 导出可编辑的
.pptx
核心原则
- 子技能优先(Subskill First):在开始创建任何 PPT 前,必须先查看
subskills/目录下(或通过scripts/list_catalog.js)是否已有为该场景定制的专属子技能。如果存在对应的子技能(如english-lesson、personal-intro),必须优先阅读并严格遵循该子技能SKILL.md中的专属规范与工作流,绝不能用当前的通用兜底流程硬做。 - 不要让 AI 直接输出任意 HTML 页面作为最终真相来源
- 所有页面内容都必须落到
deck.json的结构化组件模型里 - 预览与导出必须读取同一份
deck.json - 默认优先保证可编辑性,复杂页面再考虑保真兜底
- 动画优先用结构化
animation字段描述;HTML 预览真实播放,PPT 导出默认用 build slides 模拟
目录导航
references/slide-schema.md定义deck.json的结构与当前支持的组件。references/layout-rules.md定义版式、字号、间距和溢出控制规则。references/template-catalog.md定义当前模板、archetype 和版式变体目录。references/prompt-patterns.md定义大纲生成、页面生成、编辑指令改写的提示词模式。scripts/list_catalog.js列出模板、archetype、版式变体和已存在的子 skill。scripts/create_ppt_skill.js根据新场景脚手架出新的 PPT 子 skill 和 archetype。注:AI 执行此操作时,须遵循.agents/workflows/create-subskill.md中定义的交互访谈流程。scripts/validate_deck.js校验 deck 数据是否合法。scripts/init_project.js为每个新 PPT 创建独立项目文件夹,并支持选择 template 和 archetype。scripts/build_project.js在项目目录里一键校验和预览。加--export导出.pptx。scripts/open_project_preview.js为指定项目生成并打开 viewer 风格的preview.html。加--export同时导出。scripts/render_preview.js生成简洁的 viewer 预览页面,左侧为页列表,右侧为自动缩放的 slide 展示。scripts/export_ppt.js单独导出.pptx,文件名与项目目录名一致(如lesson-23-24.pptx)。scripts/list_materials.js列出materials/目录下的参考素材文件。scripts/apply_edit.js根据结构化编辑指令更新 deck。scripts/plan_edit.js将自然语言修改命令翻译为结构化 operations。scripts/edit_with_command.js一步完成“自然语言指令 -> deck 修改”。subskills/personal-intro面向个人介绍类 PPT 的子 skill。subskills/project-intro面向项目介绍类 PPT 的子 skill。subskills/english-lesson面向英语课堂教学 PPT 的子 skill(10 分钟课堂结构)。materials/存放用户上传的参考素材(教材 PDF、文稿、图片等),AI 从中提取内容生成 PPT。
推荐工作流
- 预检(关键!):如果用户要求做特定场景的 PPT,在创建之前,必须先阅读
subskills/目录或执行node scripts/list_catalog.js检查是否有现成的专属子技能(例如用户要做英语备课,务必走english-lesson子技能的流程)。若存在,必须切换并遵守该子技能的 README 或规范进行交付!若不存在,才适用当前的兜底通用流程。 - 先创建独立项目目录,路径位于
projects/<slug>/,并选择合适的 template / archetype。 - 阅读
references/slide-schema.md,确认当前支持哪些页面和组件。 - 如有参考素材,放入
materials/目录。可用node scripts/list_materials.js查看。 - 根据用户输入在该项目目录里生成
deck.json。 - 运行
node scripts/build_project.js projects/<slug>校验和预览。 - 需要查看页面时,使用
scripts/open_project_preview.js打开项目 viewer。 - 根据用户反馈继续修改该项目目录里的
deck.json。 - 用户确认后,加
--export导出.pptx(文件名与项目名一致)。 - 后续所有预览、编辑和导出都在同一项目文件夹内完成。
命令示例
在本技能目录下运行:
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 生成要求
- 每个 slide 必须有稳定的
id - 每个 component 必须有稳定的
id - deck 建议同时带上
meta.template和meta.archetype - 所有组件必须显式给出
x,y,w,h - 坐标单位统一使用英寸,对齐 PowerPoint 宽屏页面
- 文本内容要控制长度,避免超出布局预算
- 如需动画,优先给组件增加
animation.effect和animation.build
自然语言编辑要求
当用户说“改第三页标题”或“把右上角图片放大一点”时:
- 先定位 slide
- 再定位 component
- 然后修改
deck.json - 不要直接只改预览 HTML
对于常见的命令式编辑,优先走:
scripts/plan_edit.js生成 operationsscripts/apply_edit.js或scripts/edit_with_command.js应用修改
复杂页面如需保真导出,可以在后续扩展中增加整页位图模式,但默认先保持可编辑对象导出。
Viewer 约定
- 左侧固定展示 slide 列表与缩略页
- 右侧顶部精简工具栏:页码芯片 + 页面名称 + 导航按钮
- slide 画布自动缩放适配窗口大小(scale-to-fit)
- 悬停组件时显示 tooltip(名称 + 类型)
- 点击组件后自动复制识别信息,方便告诉 AI 修改”
模板与子 skill 约定
template负责视觉风格和推荐页型变体,不直接替代 themearchetype负责某类 PPT 的默认起稿结构subskills/里的子 skill 应该只保留对应场景的简洁 workflow,不复制主技能的大量通用说明- 新建场景优先用
scripts/create_ppt_skill.js,同时生成一个新的 archetype 脚手架
动画说明
- 预览层支持
fade-in、slide-up、zoom-in - 导出层默认不依赖 PowerPoint 原生对象动画
- 如组件设置了
animation.build,导出时会按 build 顺序展开成多张连续幻灯片
forumUser Reviews (0)
Write a Review
No reviews yet
Statistics
User Rating
Rate this Skill