目录 / jackyshen-gen-pptx
jackyshen-gen-pptx
--- name: jackyshen-gen-pptx description: "Use this skill any time a .pptx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations, with color palettes of UPerform company; reading, parsing, or extracting text from any .pptx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates, layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" \"幻灯片,\" \"PPT,\" or references a .pptx filename, regardless of what they plan to do with the content afterward. If a .pptx file needs to be opened, created, or touched, use this skill." author: JackyShen argument-hint: "[-t THEME] [-IMG] [-QA]" --- # /jackyshen-gen-pptx [-t THEME] [-IMG] [-QA] 生成指定风格的 pptx 格式幻灯片。 > 🟢 **默认行为:只生成 PPTX 文件,不生图、不做 QA**。 > 这是为了让你快速拿到可编辑的 .pptx 后立刻进入你自己的设计/审阅流程。 > 如果你需要更完整的交付(自动配图 + 视觉质检),显式传 `-IMG` 和 `-QA`。 - 不带参数:**只生成 .pptx**(不生图、不做 QA)。 - 参数 `-t THEME`:指定 [配色方案](#配色方案)。 - 参数 `-IMG`:**显式启用配图**——调用文生图 skill 为 PPT 配图。 - 参数 `-QA`:**显式启用 QA**——生成后做内容 + 视觉质检。 --- ## ⚠️ 当 `-IMG` 被传入时:图片先行流程(来自真实事故的反思) > **本节规则只在用户传了 `-IMG` 时才生效**。默认不带 `-IMG`,本节不触发。 **【事故复盘 2026-07-01 】** 用户在使用本 skill 生成 30 页某敏捷转型方案书时,我**漏掉了全部 6 张配图**——直接生成了一份纯文字+图表+形状的 PPT。用户当场质问:"为什么没有配图?" 我补救后用户再次强调:"将你的反思 backfill 到 skill 里,防止下次再放这个不配图的毛病。" **根因(为什么会犯错):** - 我把"内容很密集、文本就够用"当成了不配图的理由。这是错的——B2B 投标书、项目方案书、年度汇报、产品发布等**所有正式商务场景一旦决定配图,就必须配到位**。 - 我先写完 519 个元素的 PPT 代码,再想加图,结果布局已经写死,只能事后硬塞,导致第一次集成时图片和文字严重重叠(slide 11 的 ALPHA 图片盖住了第 5 个圆圈、slide 22 同时放了两张金字塔)。 **强制规则(仅当传入 `-IMG` 时,写入 Task 0,不允许跳过):** 1. **一旦启用 `-IMG`,整份 PPT 至少出 2 张图**——这是底线,不是目标。5 页以上的演示应配 4-6 张图(封面 1 + 概念页 1-2 + 收尾 1 + 关键流程/数据页 1-2)。**禁止只出 0 张或 1 张图就交付**。 2. **图片是规划出来的,不是事后补救的**。在写任何 PPT 代码之前,必须先列出每张幻灯片放什么图、图的 x/y/w/h,以及图占多大比例(半出血 / 1/3 栏 / 装饰角落 / 全屏背景)。 3. **必配图页面**:封面页、章节页、概念页(方法论/模型/流程)、收尾页——这些是"四金刚"。其余页面按内容需要酌情加图。 4. **图必须在 Task 0 完成生成和下载**——文案大纲 → 图片清单 → 批量生图 → 下载到本地 → 再开始写 PPT 代码。绝对禁止写完代码再补图。 5. **图与文字必须分层规划**:用 PPT 时不要把图塞到文字中间;要么左图右文(双栏)、要么上半图下半文(半出血)、要么图做背景文字浮在上(透明叠层)。 6. **集成图后必须做一次 slide-by-slide 视觉 QA**(同时启用 `-QA`),检查是否压字、压框、压边距——尤其是图片放右上角时,容易和最右侧的元素冲突。 **自检清单(每次启用 `-IMG` 写完 PPT 代码后过一遍):** - [ ] **总图数 ≥ 2?**(5 页以上演示应 ≥ 4 张) - [ ] 封面页有图吗? - [ ] 章节页有图吗? - [ ] 每个核心概念(方法论、流程模型、关键数据可视化)配图了吗? - [ ] 结尾页有图吗? - [ ] 图片的 x/y/w/h 在写代码前就定好了吗? - [ ] 渲染后用 `pdftoppm` 转图肉眼检查过图片区域和文字区域不冲突? 未启用 `-IMG` 时 = 走"纯文字 + 形状/图表"路线 = 用户拿到 .pptx 后自行决定是否补图 = 这是默认的、合理的快速交付模式。 ## 快速参考 | 任务 | 指南 | |------|-------| | 读取/分析内容 | `python -m markitdown presentation.pptx` | | 编辑或从模板创建 | 阅读 [editing.md](editing.md) | | 从零开始创建 | 阅读 [creating.md](creating.md) | | 为单页幻灯片选布局(咨询/汇报类 PPT 8 大类) | 阅读 [references/slide-layouts.md](references/slide-layouts.md) | | 为信息选关系图形(Hierarchy / Process / Cycle / Matrix / Framework…) | 阅读 [references/diagrams.md](references/diagrams.md) | --- ## 读取内容 ```bash # 文本提取 python -m markitdown presentation.pptx # 可视化概览 python scripts/thumbnail.py presentation.pptx # 原始 XML python scripts/office/unpack.py presentation.pptx unpacked/ ``` --- ## 编辑工作的流程 **完整详情请阅读 [editing.md](editing.md)。** 1. 用 `thumbnail.py` 分析模板 2. 解包 → 操作幻灯片 → 编辑内容 → 清理 → 打包 --- ## 从零开始创建 **完整详情请阅读 [creating.md](creating.md)。** 当没有模板或参考演示文稿时使用。 --- ## 设计思路 **不要制作无聊的幻灯片。** 白底上的纯要点列表不会给任何人留下深刻印象。考虑从这个列表中为每张幻灯片获取灵感。 ### 开始前 - **选择一个醒目且与内容相关的配色方案**:配色应该感觉是为这个主题量身定制的。如果把配色换到完全不同的演示文稿中仍然能"work",说明你的选择还不够具体。 - **主次分明**:一种颜色应该占主导地位(60-70% 的视觉权重),搭配 1-2 种辅助色调和一种锐利的强调色。永远不要给所有颜色同等权重。 - **深浅对比**:标题页和结论页用深色背景,内容页用浅色背景("三明治"结构)。或者全程使用深色以营造高级感。 - **坚持一个视觉主题**:选择一个独特的元素并重复使用——圆角图片边框、放在彩色圆形中的图标、粗的单侧边框。在每张幻灯片上保持一致。 ### 配色方案 选择与主题匹配的配色——不要默认使用通用蓝色。用这些配色方案作为灵感: 缺省默认主题色是**优普丰(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`(藏青) | **配色原则:** - **主导色占60-70%视觉权重**,1-2个辅助色,1个强调色 - 避免所有颜色等权重分配 - 深色背景用于标题和结尾页,浅色用于内容页(”三明治”结构) - 选一个独特的视觉元素并在每页重复使用 ### 对于每张幻灯片 **每张幻灯片都需要一个视觉元素**——图片、图表、图标或形状。纯文字幻灯片容易被遗忘。 **布局选项:** - 双栏(文字在左,插图在右) - 图标 + 文字行(图标在彩色圆形中,标题加粗,下方配描述) - 2x2 或 2x3 网格(图片在一侧,内容块网格在另一侧) - 半出血图片(占满左或右半边)配内容叠加 **数据展示:** - 大数字亮点(大号数字 60-72pt,下方配小标签) - 对比栏(前后对比、优缺点、选项并列) - 时间线或流程(编号步骤、箭头) **视觉打磨:** - 章节标题旁的小彩色圆形图标 - 斜体强调文字用于关键数据或标语 **更多视觉参考(按结构选型,别凭感觉画):** - 页面布局(上下 / 左右 / 三栏 / 矩阵 / 中心辐射 / 时间 / 数据型):[references/slide-layouts.md](references/slide-layouts.md) - 智能图形(Hierarchy / Process / Cycle / Comparison / Matrix / Framework / Strategy / Architecture):[references/diagrams.md](references/diagrams.md) ### 字体排版 **选择有趣的字体搭配**——不要默认使用 Arial。选择有个性的标题字体,搭配干净的正文字体。 | 标题字体 | 正文字体 | 适用场景 | |-------------|-----------|----------| | 宋体 | 黑体 | 商务、时尚、杂志风 | | Georgia | Calibri | 正式商务、学术 | | Arial Black | Arial | 强烈、现代感 | | Trebuchet MS | Calibri | 科技、现代 | | Palatino | Garamond | 优雅、传统 | | Consolas | Calibri | 技术、数据 | | 演示悠然小楷 | 圆体 | 手绘、亲和 | | 元素 | 字号 | |---------|------| | 幻灯片标题 | 36-44pt 加粗 | | 章节标题 | 20-24pt 加粗 | | 正文 | 14-16pt | | 说明 | 10-12pt 淡色 | ### 间距 - 最小边距 0.5" - 内容块间距 0.3"-0.5" - 留出呼吸空间——不要填满每一寸 ### 避免(常见错误) - **不要重复相同的布局**——不同的幻灯片要变换栏位、卡片和强调点 - **正文不要居中对齐**——段落和列表左对齐;仅标题居中 - **不要吝啬字号对比**——标题需要 36pt+ 才能从 14-16pt 的正文中突出 - **不要默认使用蓝色**——选择反映特定主题的配色 - **不要随机混用间距**——选择 0.3" 或 0.5" 的间距并一致使用 - **不要只设计一张幻灯片而让其余的保持朴素**——要么完全投入,要么保持简洁一致 - **不要制作纯文字幻灯片**——添加图片、图标、图表或视觉元素;避免单调的标题 + 要点 - **不要忘记文本框内边距**——当用文本边缘对齐线条或形状时,在文本框上设置 `margin: 0` 或偏移形状以留出内边距 - **不要使用低对比度元素**——图标和文字都需要与背景形成强对比;避免浅色文字配浅色背景或深色文字配深色背景 - **绝对不要在标题下使用强调线**——这是 AI 生成幻灯片的标志;使用留白或背景色代替 - **如果启用 `-IMG`,不要先生成 PPT 代码再想起来加图片** — 图片是规划出来的,不是事后补救的。如果先写了代码再加水印式图片,布局必然混乱。必须在 Task 0 阶段就完成所有图片的规划、生成、下载。详见顶部「⚠️ 当 `-IMG` 被传入时:图片先行流程」一节。 - **如果启用 `-IMG`,不要随意放置图片** — 每张图片必须有固定的 x/y/w/h,必须在写代码之前就确定位置,而不是写代码时随手一摆。 - **不要让元素超出边界** — 所有元素(包括装饰性元素)必须完全位于幻灯片内(x≥0, y≥0, x+w≤10, y+h≤5.625)。延伸到边界外可能引发渲染问题。 - **不要让主标题换行** - 规划布局时要考虑主标题尽量是在同一行,文本框宽度要足够容纳 - **不要把"内容密集"当成不配图的借口** — 默认行为(不传 `-IMG`)下生成纯文字/形状/图表的 PPT 是合法的;只有当用户**显式启用 `-IMG`** 时,才进入"图片先行"硬约束(封面/章节/概念/收尾四金刚 + 整份 ≥ 2 张图)。详见顶部「⚠️ 当 `-IMG` 被传入时:图片先行流程」。 --- ## QA(仅当传入 `-QA` 时执行) > **本节默认不执行**。只有在用户显式传 `-QA` 时才进入 QA 流程;否则直接交付 .pptx,由用户自行检查。 **假设存在问题。你的工作是找到它们。** 你的第一次渲染几乎从来不是完全正确的。把 QA 当作 bug hunt,而不是确认步骤。如果你第一次检查没发现任何问题,说明你看得不够仔细。 ### 内容 QA ```bash python -m markitdown output.pptx ``` 检查缺失内容、拼写错误、顺序错误。 **使用模板时,检查遗留的占位符文本:** ```bash python -m markitdown output.pptx | grep -iE "xxxx|lorem|ipsum|this.*(page|slide).*layout" ``` 如果 grep 返回结果,在宣布成功前修复它们。 ### 视觉 QA **⚠️ spawn sub agents**——即使只有 2-3 张幻灯片。你一直盯着代码,会看到你期望看到的,而不是实际存在的。子代理有新鲜的视角。 首先探测环境中是否存在图像理解(image understanding)模型或相应视觉理解大模型或相应SKILL或服务能力(注意不是视觉生成能力)。如果不存在,则跳过此视觉QA环节。如果存在,则将幻灯片转换为图片(见[转换为图片](##转换为图片)),调用视觉理解模型并使用以下提示词: ```prompt 视觉检查这些幻灯片。假设存在问题——找出它们。 查看: - 元素重叠(文字穿过形状、线条穿过文字、元素堆叠) - 文字溢出或在边缘/框边界处被截断 - 装饰线为单行文字设计但标题换行到两行 - 来源引用或页脚与上方内容冲突 - 元素太近(< 0.3" 间距)或卡片/章节几乎相触 - 不均匀的间距(一处大块空白,另一处拥挤) - 距幻灯片边缘的边距不足(< 0.5") - 栏或相似元素不一致对齐 - 低对比度文字(例如,浅灰色文字配奶油色背景) - 低对比度图标(例如,深色图标配深色背景但没有对比圆形) - 文本框太窄导致过度换行 - 遗留的占位符内容 对于每张幻灯片,列出问题或关注区域,即使是小问题。 阅读并分析这些图片: 1. /path/to/slide-01.jpg(预期:[简要描述]) 2. /path/to/slide-02.jpg(预期:[简要描述]) 报告发现的所有问题,包括小问题。 ``` ### 验证循环 1. 生成幻灯片 → 转换为图片 → 检查 2. **列出发现的问题**(如果没有发现问题,再更批判性地看一次) 3. 修复问题 4. **重新验证受影响的幻灯片**——一次修复经常会产生另一个问题 5. 重复直到完整检查没有发现新问题 **在完成至少一个修复-验证循环之前,不要宣布成功。** --- ## 转换为图片 将演示文稿转换为单独的幻灯片图片以便视觉检查: ```bash python scripts/office/soffice.py --headless --convert-to pdf output.pptx pdftoppm -jpeg -r 150 output.pdf slide ``` 这会创建 `slide-01.jpg`、`slide-02.jpg` 等。 要在修复后重新渲染特定幻灯片: ```bash pdftoppm -jpeg -r 150 -f N -l N output.pdf slide-fixed ``` --- ## 依赖 - `pip install "markitdown[pptx]"` - 文本提取 - `pip install Pillow` - 缩略图网格 - `npm install -g pptxgenjs` - 从零创建 - LibreOffice(`soffice`)- PDF 转换(通过 `scripts/office/soffice.py` 为沙盒环境自动配置) - Poppler(`pdftoppm`)- PDF 转图片
存档时间线
| 版本 | 存档时间 | 内容哈希 | 内容 |
|---|---|---|---|
| v1 | 2026-09-27 23:54 | bb4644c4 | 可取 |
版本索引永久保留;内容副本只保留最近 2 版,更早版本仅留索引与哈希(存档时间线的证据链不会因此断裂)。
提交举报 / 纠错
侵权举报经核验成立后,我们会即时下线该条目并删除已存的内容副本。