360 Secure SkillHub
360 安全技能中心

jackyshen-gen-pptx

该 skill 用于创建、编辑、读取或提取 .pptx 文件,可生成幻灯片、演示文稿、pitch deck。默认只生成 PPTX,可选参数指定配色方案(-t)、启用配图(-IMG)和质检(-QA)。支持从模板编辑或从零创建,提供多种配色方案和布局参考。典型使用场景:制作商务演示、汇报、投标书等。输入可为主题或内容大纲,输出 .pptx 文件,方便用户后续编辑。

mebusw
mebusw
热度 44.51
最近更新 2026-10-01 20:41:25
分类:创作依赖:代码执行 / 读写文件 / 内部调用大模型 / 第三方 API应用场景:演示设计 / 模板 / 图像生成 / 工作流 ...

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add jackyshen-gen-pptx
Metadata
name
jackyshen-gen-pptx
description
Use 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.
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
从零开始创建 阅读 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。

  1. 用 thumbnail.py 分析模板
  2. 解包 → 操作幻灯片 → 编辑内容 → 清理 → 打包

从零开始创建

完整详情请阅读 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,下方配小标签)
  • 对比栏(前后对比、优缺点、选项并列)
  • 时间线或流程(编号步骤、箭头)

视觉打磨:

  • 章节标题旁的小彩色圆形图标
  • 斜体强调文字用于关键数据或标语

视觉决策框架:结构 vs 隐喻

这是选图决策,不是排版清单。问的不是"哪个好看"——是"这页要让读者带走的是结构清晰度,还是情绪方向?"

视觉决策涉及两个维度,它们之间是主从张力关系,不是正交、也不是上下层:

维度 关心的问题 文档
结构维度(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 条不同路径:

  • 纯结构 → Plain Pyramid(中性、清晰、强调层级)
  • 结构 + 兼容隐喻 → Staircase(保留层级、加"↗ 升级"方向感)
  • 隐喻覆盖 → Mountain / Wave Timeline / Growth Curve(情绪优先,结构被重新定义成山峰/折线/曲线)

字体排版

选择有趣的字体搭配——不要默认使用 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

python -m markitdown output.pptx

检查缺失内容、拼写错误、顺序错误。

使用模板时,检查遗留的占位符文本:

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环节。如果存在,则将幻灯片转换为图片(见转换为图片),调用视觉理解模型并使用以下提示词:

视觉检查这些幻灯片。假设存在问题——找出它们。

查看:
- 元素重叠(文字穿过形状、线条穿过文字、元素堆叠)
- 文字溢出或在边缘/框边界处被截断
- 装饰线为单行文字设计但标题换行到两行
- 来源引用或页脚与上方内容冲突
- 元素太近(< 0.3" 间距)或卡片/章节几乎相触
- 不均匀的间距(一处大块空白,另一处拥挤)
- 距幻灯片边缘的边距不足(< 0.5")
- 栏或相似元素不一致对齐
- 低对比度文字(例如,浅灰色文字配奶油色背景)
- 低对比度图标(例如,深色图标配深色背景但没有对比圆形)
- 文本框太窄导致过度换行
- 遗留的占位符内容

对于每张幻灯片,列出问题或关注区域,即使是小问题。

阅读并分析这些图片:
1. /path/to/slide-01.jpg(预期:[简要描述])
2. /path/to/slide-02.jpg(预期:[简要描述])

报告发现的所有问题,包括小问题。

验证循环

  1. 生成幻灯片 → 转换为图片 → 检查
  2. 列出发现的问题(如果没有发现问题,再更批判性地看一次)
  3. 修复问题
  4. 重新验证受影响的幻灯片——一次修复经常会产生另一个问题
  5. 重复直到完整检查没有发现新问题

在完成至少一个修复-验证循环之前,不要宣布成功。


转换为图片

将演示文稿转换为单独的幻灯片图片以便视觉检查:

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 - 从零创建
  • LibreOffice(soffice)- PDF 转换(通过 scripts/office/soffice.py 为沙盒环境自动配置)
  • Poppler(pdftoppm)- PDF 转图片