4.9 KiB
4.9 KiB
| name | description |
|---|---|
| ppt | 生成 PowerPoint 演示文稿 (.pptx)。当用户要求做汇报 PPT、把材料/会议纪要/方案转为幻灯片、生成演示稿时使用。 |
PPT
把材料变成可演示的 .pptx。先定调,再出稿,再验收 —— 不要一口气把整份 deck 丢出去。
资源
references/design_principles.md—— 字号/颜色/层级/留白/字数预算等硬规则,出稿前先翻一遍references/canvas_presets.md—— 16:9 / 4:3 / 9:16 / A4 等画布尺寸表references/layouts.md—— 9 种常用版式的 python-pptx 起手代码 + safe area 辅助 (封面/目录/分章/要点/双栏/图表/图片/金句/结尾)references/icons.md—— MSO_SHAPE 图标目录 + unicode 字形表 (替代大色块的轻量装饰)scripts/source_to_md.py—— 可执行,把 PDF/DOCX/PPTX/URL 转成干净 Markdown 再做素材scripts/render_icon.py—— 可执行,unicode 字形 → 透明 PNG (MSO_SHAPE 覆盖不到时兜底)scripts/quality_check.py—— 可执行,产物 .pptx 出来后跑一遍验收 (含越界 / 文本溢出检测)
默认主题
商务红 —— PRIMARY #C00000 / SECONDARY #E15554 / ACCENT #FFC107。除非 spec_lock 指定其它配色,layouts.md 起手代码就用这套。其它备选见 design_principles.md §2。
两阶段工作流
阶段一: 策略 (Strategist)
产物:spec_lock.md —— 整个 deck 的"宪法",执行阶段每生成一页前都要重读。
八条对齐(不全部确认完,不开工):
- 画布: 16:9 / 4:3 / 9:16 (默认 16:9,见 canvas_presets.md)
- 页数: 默认 5-8 页;长报告再加,但每超 1 页就要问一次"这页非加不可吗"
- 受众: 领导汇报 / 同行评审 / 大众科普 / 客户 pitch —— 决定信息密度和措辞
- 风格: 商务正式 / 学术严谨 / 现代简约 / 极简留白 (默认现代简约)
- 配色: 主色 + 辅色 + 强调色,三色封顶。给具体 hex,不要"蓝色系"这种话
- 字体: 中文标题/正文,英文标题/正文。Win 默认 微软雅黑 + Arial
- 图标/插图: 是否要、风格 (线性/扁平/拟物)、来源 (用户提供 / 不用)
- 图表: 数据 ≥ 3 个点的页面默认配图;明确哪几页要图
写入 spec_lock.md 后给用户看一眼再继续。spec_lock 写定后不要再改,有冲突回头跟用户重新对齐。
阶段二: 执行 (Executor)
逐页生成,不是一次性 dump 全 deck。每页前先读一次 spec_lock.md,然后:
- 写一个
run_pythonblock,用 python-pptx 添加这一页 (载入已有 .pptx,append slide,save) - 跑完报这一页的:版式、标题、要点条数、是否含图
- 用户确认 / 微调后再下一页
为什么逐页? 一次性出全 deck 很容易越到后面越糊。逐页能让用户在第 2 页就发现风格不对,而不是看完 8 页才推翻重来。
例外: 用户明确说 "你别问,直接全做了" —— 那就一次跑完,但跑完后必须用 quality_check.py 验收。
阶段三: 验收
python scripts/quality_check.py <output.pptx>—— 检页数/标题/bullet 条数/文件大小- 不通过的项,回头 edit 对应页
设计原则 (硬规则)
- 每页一个核心信息: 一页讲一件事,塞两件就拆页
- bullet ≤ 5 条: 超过就拆页或改成图表/双栏
- 正文不写完整段落: 列要点;长句留给演讲者口述
- 数据 ≥ 3 个点应有图表: 用 matplotlib 生成 .png 嵌入
- 中文标题 ≤ 30 字 / 英文标题 ≤ 12 词
- 配色三色封顶: 主色 + 辅色 + 强调色,其他都用灰阶
- 少用大色块,多用细线 + 图标 + 留白: 满铺色块只在封面/分章/结尾克制使用
- 图标走 MSO_SHAPE: 原生形状可编辑、可缩放;复杂图标走
render_icon.py - Shape 不能越界:
layouts.md的起手代码用assert_inside在生成时即报错;最终必跑quality_check.py - 字数按预算来: 写 bullet 前查
design_principles.md §4.1的字数预算表,溢出靠拆条不靠收缩字号 - 详细规则见
references/design_principles.md
工作目录约定
<task_dir>/
├── source.md # 阶段一: source_to_md.py 转出的素材
├── spec_lock.md # 阶段一: 八条对齐落定
├── slides/
│ └── chart_p3.png # 各页用到的图片素材
└── <topic>.pptx # 最终产物 (文件名按主题命名,不要 untitled.pptx)
反模式
- 用户没给材料就开始硬编内容
- 八条没对齐就跑 python-pptx
- 一个
run_python出整 deck (中途改方向就要全推翻) - 跑完不做
quality_check.py就交付 - 起名
output.pptx/untitled.pptx—— 务必按主题给文件名 - 文字塞满整张幻灯片 —— 留白本身是设计
输出
完成后告诉用户:文件路径、页数、用到的版式列表、是否有未满足的 spec 项。问一句要不要再改。