演示文稿(profy-pptx)
演示文稿有两条互斥管线,选定之后不能中途换道,也不能互相转换。先看这张表决定你在哪条路上:激活方式
profy-pptx 是 user_selectable: false——自动可用,不需要勾选。
contracts 只有 skills: ["skills/"],没有 tools。插件带两个技能:builtin/pptx(原生管线枢纽)与 builtin/html-deck(网页 PPT)。
导出管线锁
这条约束值得理解其成因。SVG 转 PPTX 有两种做法:一是把 SVG 渲染成位图贴进幻灯片,二是把 SVG 图元翻译成 PowerPoint 原生的 DrawingML。前者简单,任何通用库都能做,代价是幻灯片彻底不可编辑、文字不再是文字。svg_to_pptx.py 做的是后者。
之所以要写成”无条件”,是因为这类规则最常在故障恢复之后被破坏:报错重试几次以后,重写一个”简单版本”看起来是合理的自救,而它恰好绕过了唯一正确的实现。
意图路由
原生 PPTX:七步管线
resume-execute 工作流,把上下文预算腾出来。
Step 1 素材转换
Step 2 画布格式
同一套管线能产出社交媒体图片,是因为底层是 SVG——换 viewBox 就换了画布,不需要另一条管线。
Step 3 模板(可选)
模板只在用户给出明确模板目录路径时才应用。光说”学术风格”这类风格词不会触发模板拷贝,它们进入 Step 4 的风格描述符。
两者同时提供时融合为一份
design_spec.md,冲突时的优先级:配色 / 字体 / logo / 图标风格由 Brand 决定,页面结构 / SVG 清单由 Layout 决定。
编辑已有 PPTX
流程是 unpack → 直接改 XML → 自动清理 → pack。edit_pptx.py 提供五个子命令:
pack 要求传 --original,因为 pptx 包里有大量未被编辑的关系文件与资源,需要从原包继承。
HTML Deck:网页 PPT
单文件 HTML 的横向翻页演示,两种视觉基调:风格 A · 电子杂志 × 电子墨水(默认)
- WebGL 流体 / 等高线 / 色散背景(hero 页可见)
- 衬线标题(Noto Serif SC + Playfair Display)+ 非衬线正文 + 等宽元数据
- 适合人文分享、行业观察、商业发布
- 美学锚点:像 Monocle 杂志贴上了代码
风格 B · 瑞士国际主义
- WebGL 极细网格 + 点阵背景
- 全程无衬线(Inter + Helvetica + Noto Sans SC),极致字号对比
- 高反差功能色四选一:克莱因蓝 IKB / 柠檬黄 / 柠檬绿 / 安全橙
- 适合科技产品、数据汇报、年度总结
- 美学锚点:Massimo Vignelli + Helvetica Forever
什么时候不要用 HTML Deck
环境约束
脚本通过skill(action="execute") 在沙箱内运行,依赖首次使用时自动部署,同一会话内后续调用跳过部署。沙箱目录结构:
边界与失败态
- 两条管线互斥,不能互转(见页头警告)。
- 自写导出脚本会产出破损的中文,且看起来”生成成功了”——这是最需要警惕的一类失败:它不报错。
- 模板需要显式路径,风格词不触发。
- 长 deck 的 Phase B 建议换会话,否则上下文会被 SVG 源码占满。
- HTML Deck 是静态文件,没有协作编辑能力。
排错
验证你的产出
- 打开 PPTX 后点一下正文文字——能选中、能编辑才说明走的是 DrawingML 管线。选不中就是被光栅化了。
- 中文页面确认没有方块字。
- HTML Deck 用键盘 ← → 翻一遍,确认动效与索引(ESC)正常。
相关页面
办公文档总览
四类文档能力的定位与选型
PDF 文档
需要 PDF 交付物时走 kami 排版引擎
核对日期 2026-08-11。来源:
services/agent-runtime/src/plugins/builtin/pptx/plugin.json、skills/pptx/SKILL.md、skills/html-deck/SKILL.md、skills/pptx/scripts/。html-deck 来源为 guizang-ppt-skill(作者 歸藏)。
