用 21 套内置中文 PPT 模板(或用户自带的 .pptx 模板)生成与编辑 PowerPoint 演示文稿:只替换文字、不破坏原排版/配色/字号,内置按文本框尺寸的出框检测与同级标题字号一致校验;也支持完全原创的简洁版式。当用户要"做 / 生成 / 制作 / 编辑一份 PPT / 演示文稿 / 幻灯片 / .pptx",或需要工作汇报、年终与季度总结、述职竞聘、项目复盘、开题答辩、商务提案、教学课件、数据可视化等成品 PPTX 时使用。Use when the user wants to create or edit a PowerPoint / PPT / slides / .pptx deck, pick from built-in templates, or apply their own template without breaking the layout.
93%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Failed to scan
The risk profile of this skill
版本 见同目录
VERSION。
任何 AI 在本会话第一次用到这个 Skill 时,必须先把下面这条命令作为它的第一个 tool call:
python3 scripts/apply_update.py这条命令会自动:
update_source(git+ 仓库)拉取最新 updates.jsonVERSION 与远端 latest_versionOK Nothing to do⚠️ 本 Skill 不会自动 push 更新,必须由 AI 主动 pull。如果跳过这一步,可能在用过期版本,行为、规则、模板都可能与文档不符。
✅ 同一会话内只需做一次,后续 tool call 不必重复检查。
⚠️ 非商业使用:本 Skill 与其内置 PPT 模板仅供个人学习和研究,严禁用于任何商业用途(含商业演示、销售、培训分发、客户提案、企业内部以营利为目的的使用等)。模板素材来自第三方设计师作品,二次商用需要获取原作者授权。
当用户的需求满足下列任何一项就调用本 Skill:
完整的更新工具有两个脚本:
| 脚本 | 干嘛 | 何时用 |
|---|---|---|
scripts/apply_update.py | 检查 + 应用(一步到位) | 每次启用 Skill 第一件事(见顶部红框) |
scripts/check_update.py | 仅检查、不应用,列出会变的文件 | 当你只想预览改了什么、不想立即更新时 |
如果只想先看变化再决定要不要升级:
python3 scripts/check_update.py # 列出 added / modified / removedupdates.json 的 update_source 已配置为 git+https://github.com/GordenSun/GordenPPTSkill.git#main,开箱即用,无需修改。
收到用户需求后,先判断走哪种模式:
默认走这条路。 21 套内置模板覆盖了绝大多数中文场景。
templates/INDEX.md ——一份精简清单,列出每套模板的风格、主色、适用场景、页数。templates/<slug>/preview.png 一并展示给用户看图决策。templates/<slug>/intro.md(高度浓缩,告诉你这个模板的特性)templates/<slug>/detail.json(结构化数据,告诉你每页 / 每个文本位的细节)edits.json、跑 build_pptx.py当用户提供了 .pptx 文件且明确希望以它作模板时:
scripts/render_slides.py 把每页渲染成 PNG,再用 python-pptx 现场探查每页的 shape / paragraph / run 结构(无需额外脚本)address 写 edits.json 选页 + 文字替换当用户明确要求"原创设计 / 不用模板 / 简单干净的样式"时:
python-pptx 直接代码生成,参考 references/original-design-guide.mdmax_chars 是软性参考,不是硬性上限;严禁用省略号截断 —— detail.json 每个 slot 的 max_chars / chars_per_line / max_lines 是按文本框尺寸估算的容量,仅供参考,帮助你把握"这格大概能放多少字"。
... / … / 等等 来硬凑长度 —— 被省略号截断的半句话,比轻微超框难看得多,是最差的结果。build_pptx.py 的出框检测只是提示、不阻断保存。日常不要加 --strict(它会因超框拒绝保存,从而诱导截断)。capacity_unknown:true 的槽测不准,凭目测把握。editable: false 的 slot 是装饰性 "01/02/1/2/%" 之类,除非用户明确要求改顺序,否则保持。cautions 字段列出。shape.has_chart=True),可以用 build_pptx.py --chart-data 同步更新;详见 references/chart-editing.md。detail.json 的 page_roles,如果 cover 数组为空,直接从第一张内容页开始,不要拿一张内容页当封面用,更不要从其他模板临时凑一张封面页。ending 数组为空,直接以最后一张内容页收尾,不要硬造"感谢聆听"。agenda 空 → 不强加目录;section_divider 空 → 不强加分章扉页。type_scale(字号层级表,level 1 = 最大),每个 slot 标了 level。同一 level 的文字保持模板原字号,不要改字号。# 1. 从 templates/INDEX.md 选定一个模板,例如 minimal-business-summary
TEMPLATE=templates/minimal-business-summary
# 2. 读两个文件
# - $TEMPLATE/intro.md -> 模板风格 / 适用场景 / 结构概述
# - $TEMPLATE/detail.json -> 每页 / 每个文本位的详细描述
# 3. 自己决定要用哪些页(用 detail.json 的 page.role 和 use_for)
# 生成 edits.json:
# {
# "template_slug": "minimal-business-summary",
# "selected_slides": [1, 2, 3, 5, 7, 9, 10, 12, 13, 14, 16],
# "edits": [
# {"slide": 1, "slot_id": "cover_title_cn", "new_text": "2026 年度复盘"},
# ...
# ]
# }
# 4. 跑构建(不要加 --strict:出框检测只作提示,不应阻断;超框宁可轻微超出也别截断加省略号)
python3 scripts/build_pptx.py \
$TEMPLATE/template.pptx \
edits.json \
out/final.pptx \
--detail $TEMPLATE/detail.json
# 5. (可选)渲染最终 pptx 给用户预览 / 自检(每页一张 PNG)
python3 scripts/render_slides.py out/final.pptx out/renders --dpi 144GordenPPTSkill/
├── SKILL.md ← 本文件
├── VERSION ← 当前版本号
├── CHANGELOG.md ← 人类可读变更日志
├── updates.json ← 机器可读版本增量索引
├── manifest.json ← 所有文件的 sha256 与版本归属
├── README.md ← 仓库概览(用户阅读)
├── scripts/
│ ├── build_pptx.py # 按 edits.json 选页 + 换字 → 输出 pptx(含出框检测)
│ ├── render_slides.py # pptx → PDF → 每页 PNG(预览/自检)
│ ├── compute_capacity.py # 由 template.pptx 计算每个 slot 的容量字段(数据准备)
│ ├── check_update.py # 检查远端是否有更新
│ ├── apply_update.py # 增量更新本地文件
│ └── build_manifest.py # 重建 manifest.json
├── references/
│ ├── workflow.md
│ ├── pptx-edit-schema.md
│ ├── custom-template-workflow.md
│ ├── chart-editing.md
│ └── original-design-guide.md
└── templates/
├── INDEX.md
└── <slug>/
├── template.pptx
├── intro.md # 高度浓缩简介
├── detail.json # 详细页面 / slot 数据(含容量字段 + type_scale)
└── preview.png # 4 页 2×2 拼接预览图| 脚本 | 干嘛用 |
|---|---|
build_pptx.py | 按 edits.json(选页 + 文字替换)从模板生成最终 pptx;带出框检测,--strict 时出框拒绝保存 |
render_slides.py | 把任意 pptx 渲染成每页一张 PNG(用 LibreOffice + pdftoppm),用于预览 / 自检 |
compute_capacity.py | 由 template.pptx 算出每个 slot 的 chars_per_line/max_lines/max_chars 等容量字段(自带模板已算好,仅在加新模板时需要) |
check_update.py | 对比本地 VERSION 和远端 updates.json,告诉你要不要更新 |
apply_update.py | 按 updates.json 的 delta 列表只下载变动文件 |
build_manifest.py | 重新计算 manifest.json |
模板 XML 里大量使用 微软雅黑。如果运行环境没有该字体,配合 ~/.config/fontconfig/fonts.conf 把它别名到本地已安装的字体(推荐顺序:WenQuanYi Micro Hei → DengXian → Noto Sans SC → PingFang SC)。预览图正是用这条 fallback 链渲染的。
最终交给用户的 .pptx 在 PowerPoint / WPS / Keynote 里打开时会自动用宿主机的字体渲染,因此不需要担心字体丢失问题。
max_charsGordenSun/GordenPPTSkill
SKILL.md
7d4a61c
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.