Install
openclaw skills install @mebusw/jackyshen-gen-pptxUse this skill to create, edit, read, or extract from .pptx files — generate slide decks / pitch decks / presentations (with UPerform company color palettes by default), parse text from existing decks, modify slides in place, combine or split slide files, and work with templates, layouts, speaker notes, or comments. Trigger when the user mentions "deck," "slides," "presentation," "幻灯片," "PPT," or references a .pptx filename and wants something done to that file or generated as one. Skip if the user only wants to discuss or summarize deck content without touching the file.
openclaw skills install @mebusw/jackyshen-gen-pptx生成指定风格的 pptx 格式幻灯片。
🟢 默认行为:只生成 PPTX 文件,不生图、不做 QA。 这是为了让你快速拿到可编辑的 .pptx 后立刻进入你自己的设计/审阅流程。 如果你需要更完整的交付(自动配图 + 视觉质检),显式传
-IMG和-QA。
-t THEME:指定 配色方案。-IMG:显式启用配图——调用文生图 skill 为 PPT 配图。-QA:显式启用 QA——生成后做内容 + 视觉质检。-IMG 被传入时:图片先行流程(来自真实事故的反思)本节规则只在用户传了
-IMG时才生效。默认不带-IMG,本节不触发。
【事故复盘 2026-07-01 】
用户在使用本 skill 生成 30 页某敏捷转型方案书时,我漏掉了全部 6 张配图——直接生成了一份纯文字+图表+形状的 PPT。用户当场质问:"为什么没有配图?" 我补救后用户再次强调:"将你的反思 backfill 到 skill 里,防止下次再放这个不配图的毛病。"
根因(为什么会犯错):
强制规则(仅当传入 -IMG 时,写入 Task 0,不允许跳过):
-IMG,整份 PPT 至少出 2 张图——这是底线,不是目标。5 页以上的演示应配 4-6 张图(封面 1 + 概念页 1-2 + 收尾 1 + 关键流程/数据页 1-2)。禁止只出 0 张或 1 张图就交付。-QA),检查是否压字、压框、压边距——尤其是图片放右上角时,容易和最右侧的元素冲突。自检清单(每次启用 -IMG 写完 PPT 代码后过一遍):
pdftoppm 转图肉眼检查过图片区域和文字区域不冲突?未启用 -IMG 时 = 走"纯文字 + 形状/图表"路线 = 用户拿到 .pptx 后自行决定是否补图 = 这是默认的、合理的快速交付模式。
| 任务 | 指南 |
|---|---|
| 读取/分析内容 | python -m markitdown presentation.pptx |
| 编辑或从模板创建 | 阅读 editing.md |
| 从零开始创建 | 阅读 creating.md |
| 为单页选布局(咨询/汇报类 PPT 8 大类) | 阅读 references/slide-layouts.md |
| 为信息结构选图形(结构主导:层级 / 流程 / 矩阵 / 生态 / 多对多…) | 阅读 references/diagrams.md |
| 为叙事情绪选隐喻(隐喻主导:升级 / 曲折 / 突破 / 增长 / 聚焦…) | 阅读 references/visual-metaphors.md |
# 文本提取
python -m markitdown presentation.pptx
# 可视化概览
python scripts/thumbnail.py presentation.pptx
# 原始 XML
python scripts/office/unpack.py presentation.pptx unpacked/
完整详情请阅读 editing.md。
thumbnail.py 分析模板完整详情请阅读 creating.md。
当没有模板或参考演示文稿时使用。
不要制作无聊的幻灯片。 白底上的纯要点列表不会给任何人留下深刻印象。考虑从这个列表中为每张幻灯片获取灵感。
选择与主题匹配的配色——不要默认使用通用蓝色。用这些配色方案作为灵感:
缺省默认主题色是优普丰(UPerform)蓝粉系
| 主题 | 主色 | 辅助色 | 强调色 |
|---|---|---|---|
| 优普丰(UPerform)之蓝金系 | #0A2540 (深海蓝) | #EABA1D (金色) | #F2D677 (浅金) |
| 优普丰(UPerform)之蓝粉系 | #0A2540 (深海蓝) | #CE6E7B (粉橙) | #FFC7B9 (浅粉橙) |
午夜高管 #1E2761(藏青) #CADCFC(冰蓝) #FFFFFF`(白) | |||
森林与苔藓 #2C5F2D(森林绿) #97BC62(苔藓绿) #F5F5F5`(奶油白) | |||
珊瑚活力 #F96167(珊瑚红) #F9E795(金色) #2F3C7E`(藏青) | |||
暖色陶土 #B85042(陶土红) #E7E8D1(沙色) #A7BEAE`(鼠尾草绿) | |||
海洋渐变 #065A82(深蓝) #1C7293(蓝绿) #21295C`(午夜蓝) | |||
炭灰极简 #36454F(炭灰) #F2F2F2(米白) #212121`(黑) | |||
青绿信任 #028090(青绿) #00A896(海沫绿) #02C39A`(薄荷绿) | |||
浆果与奶油 #6D2E46(浆果紫) #A26769(暗玫瑰) #ECE2D0`(奶油色) | |||
鼠尾草宁静 #84B59F(鼠尾草绿) #69A297(桉树绿) #50808E`(石板灰) | |||
樱桃大胆 #990011(樱桃红) #FCF6F5(米白) #2F3C7E`(藏青) |
配色原则:
每张幻灯片都需要一个视觉元素——图片、图表、图标或形状。纯文字幻灯片容易被遗忘。
布局选项:
数据展示:
视觉打磨:
这是选图决策,不是排版清单。问的不是"哪个好看"——是"这页要让读者带走的是结构清晰度,还是情绪方向?"
视觉决策涉及两个维度,它们之间是主从张力关系,不是正交、也不是上下层:
| 维度 | 关心的问题 | 文档 |
|---|---|---|
| 结构维度(topology) | 信息是什么拓扑?(层级 / 流程 / 矩阵 / 网络 / 多对多…) | references/diagrams.md |
| 隐喻维度(emotion) | 读者应该感受到什么?(升级 / 曲折 / 突破 / 增长 / 聚焦…) | references/visual-metaphors.md |
| 页面布局 | 单页怎么分块(上下 / 左右 / 矩阵 / 中心辐射 / 时间 / 数据型) | references/slide-layouts.md |
何时走哪条路径?
| 这页要传达的是… | 主从 | 路径 |
|---|---|---|
| 清晰的层级 / 流程 / 关系 / 矩阵 | 结构主导 | 查 diagrams.md 选对应几何图形 |
| 转型 / 升级 / 突破 / 增长等情绪 | 隐喻主导 | 查 visual-metaphors.md 选对应隐喻(隐喻会覆盖结构) |
| 两者都重要 | 两者都用 | diagrams.md 选结构 → visual-metaphors.md 选兼容隐喻(如 Staircase ≈ Pyramid)或覆盖隐喻(如 Wave 替代 Pyramid) |
关键提醒: 同样的 3 层内容(如"AI 转型 战略 → 业务 → 执行"),可以走 3 条不同路径:
选择有趣的字体搭配——不要默认使用 Arial。选择有个性的标题字体,搭配干净的正文字体。
| 标题字体 | 正文字体 | 适用场景 |
|---|---|---|
| 宋体 | 黑体 | 商务、时尚、杂志风 |
| Georgia | Calibri | 正式商务、学术 |
| Arial Black | Arial | 强烈、现代感 |
| Trebuchet MS | Calibri | 科技、现代 |
| Palatino | Garamond | 优雅、传统 |
| Consolas | Calibri | 技术、数据 |
| 演示悠然小楷 | 圆体 | 手绘、亲和 |
| 元素 | 字号 |
|---|---|
| 幻灯片标题 | 36-44pt 加粗 |
| 章节标题 | 20-24pt 加粗 |
| 正文 | 14-16pt |
| 说明 | 10-12pt 淡色 |
margin: 0 或偏移形状以留出内边距-IMG,不要先生成 PPT 代码再想起来加图片 — 图片是规划出来的,不是事后补救的。如果先写了代码再加水印式图片,布局必然混乱。必须在 Task 0 阶段就完成所有图片的规划、生成、下载。详见顶部「⚠️ 当 -IMG 被传入时:图片先行流程」一节。-IMG,不要随意放置图片 — 每张图片必须有固定的 x/y/w/h,必须在写代码之前就确定位置,而不是写代码时随手一摆。-IMG)下生成纯文字/形状/图表的 PPT 是合法的;只有当用户显式启用 -IMG 时,才进入"图片先行"硬约束(封面/章节/概念/收尾四金刚 + 整份 ≥ 2 张图)。详见顶部「⚠️ 当 -IMG 被传入时:图片先行流程」。-QA 时执行)本节默认不执行。只有在用户显式传
-QA时才进入 QA 流程;否则直接交付 .pptx,由用户自行检查。
假设存在问题。你的工作是找到它们。
你的第一次渲染几乎从来不是完全正确的。把 QA 当作 bug hunt,而不是确认步骤。如果你第一次检查没发现任何问题,说明你看得不够仔细。
python -m markitdown output.pptx
检查缺失内容、拼写错误、顺序错误。
使用模板时,检查遗留的占位符文本:
python -m markitdown output.pptx | grep -iE "xxxx|lorem|ipsum|this.*(page|slide).*layout"
如果 grep 返回结果,在宣布成功前修复它们。
⚠️ spawn sub agents——即使只有 2-3 张幻灯片。你一直盯着代码,会看到你期望看到的,而不是实际存在的。子代理有新鲜的视角。
首先探测环境中是否存在图像理解(image understanding)模型或相应视觉理解大模型或相应SKILL或服务能力(注意不是视觉生成能力)。如果不存在,则跳过此视觉QA环节。如果存在,则将幻灯片转换为图片(见转换为图片),调用视觉理解模型并使用以下提示词:
视觉检查这些幻灯片。假设存在问题——找出它们。
查看:
- 元素重叠(文字穿过形状、线条穿过文字、元素堆叠)
- 文字溢出或在边缘/框边界处被截断
- 装饰线为单行文字设计但标题换行到两行
- 来源引用或页脚与上方内容冲突
- 元素太近(< 0.3" 间距)或卡片/章节几乎相触
- 不均匀的间距(一处大块空白,另一处拥挤)
- 距幻灯片边缘的边距不足(< 0.5")
- 栏或相似元素不一致对齐
- 低对比度文字(例如,浅灰色文字配奶油色背景)
- 低对比度图标(例如,深色图标配深色背景但没有对比圆形)
- 文本框太窄导致过度换行
- 遗留的占位符内容
对于每张幻灯片,列出问题或关注区域,即使是小问题。
阅读并分析这些图片:
1. /path/to/slide-01.jpg(预期:[简要描述])
2. /path/to/slide-02.jpg(预期:[简要描述])
报告发现的所有问题,包括小问题。
在完成至少一个修复-验证循环之前,不要宣布成功。
将演示文稿转换为单独的幻灯片图片以便视觉检查:
python scripts/office/soffice.py --headless --convert-to pdf output.pptx
pdftoppm -jpeg -r 150 output.pdf slide
这会创建 slide-01.jpg、slide-02.jpg 等。
要在修复后重新渲染特定幻灯片:
pdftoppm -jpeg -r 150 -f N -l N output.pdf slide-fixed
pip install "markitdown[pptx]" - 文本提取pip install Pillow - 缩略图网格npm install -g pptxgenjs - 从零创建soffice)- PDF 转换(通过 scripts/office/soffice.py 为沙盒环境自动配置)pdftoppm)- PDF 转图片