3977 字
20 分钟

组会PPT skill

组会 PPT 的真正难点不是排版#

每次轮到自己讲文献,流程大概是这样的:打开 PDF,截图,粘到模板里,配一句图注,重复十几次。做完之后翻一遍,发现每一页长得都一样——上面一段介绍文字,中间一张论文里的图,下面一句”可以看出本文方法效果更好”。

这类 PPT 的问题不在于丑,而在于它没有论证。它是论文插图的目录,不是一场汇报。听众看完只知道这篇论文有六张图,不知道作者到底想解决什么问题、凭什么说自己解决了。

让大模型直接生成也救不了这件事。你说”帮我把这篇论文做成 PPT”,它通常会在同一步里同时干四件事:读懂科研内容、模仿模板风格、决定每页版式、生成最终文件。四件事挤在一次生成里,结果就是每页都退化成最安全的那个版式——还是”文字 + 图 + 一句总结”。

cs-group-meeting-skill 就是冲着这个失败模式设计的一个 agent 技能。

部分预览图#

组会 PPT 预览 1

组会 PPT 预览 2

组会 PPT 预览 3

组会 PPT 预览 4

组会 PPT 预览 5

它是什么#

技能本体只有两部分:一份写给 agent 读的 SKILL.md,和 scripts/ 下的几个 Python 脚本。没有服务、没有 GUI、没有账号。任何能读写文件、能跑 Python 的 agent 都能用。

日常用法不是敲命令行,而是把论文丢给 agent:

把这篇论文做成组会 PPT:paper.pdf

之后 agent 会自己读全文、抽图、写 spec、构建 PPTX、逐页渲染成 PNG 再检查一遍。命令行只是它内部调用的工具,调试时你也可以自己跑。

除了 PPT,它还接科研绘图的活儿。技能按意图路由:出现「图 / 图片 / 绘图 / 图表 / 示意图 / 流程图 / 架构图 / figure / diagram / chart / plot」时走科研图模式,出现「组会 / 学术汇报 / 文献汇报 / slide / PPT / presentation」时走演示文稿模式;两类同时出现默认做 PPT,把科研图当成中间产物嵌进去。

核心思路:把”一次生成”拆成四个阶段#

技能里最关键的一条不是任何模板,而是一个分阶段的设计契约(设计流程参考了 DreamPaper 的分层提示词模式):

  1. Ground(落地内容)——先从论文里清点出事实、操作、实体、数值和关系,形成”语义契约”。这一步只管科研内容,不碰任何视觉。
  2. Structure(抽象结构)——从模板或参考图里抽象出版式、密度、分组、流向和视觉节奏。只抽结构,绝不抄它们的文字和科研结论。
  3. Implement(实现)——把已经落地的内容映射进结构,写出显式的视觉规格。实现指令和页面上可见的文字严格分开。
  4. Validate(验证)——把渲染出来的成品对着语义契约和结构方案逐条比对,改掉具体的失败点,然后重新渲染。

这四步的意义在于:每一步只回答一个问题。不会出现”为了排版好看而把两个并列分支合并成一个方框”,也不会出现”照着参考图把别人论文的数字抄进来”。

产出是一条论证线,不是图片集#

PPT 模式下,六个章节的顺序是固定的:

文献信息 → 研究背景 → 本文贡献 → 研究方法 → 实验结果 → 结论与不足

目录分隔页只有四条,不是六条:

目录条目对应章节
01 研究背景与贡献研究背景、本文贡献
02 研究方法研究方法
03 实验结果实验结果
04 结论与不足结论与不足

这个细节很能说明技能的取向:目录讲的是论证的起承转合,不是章节索引。「这里有个坑」和「我们做了什么来填」是同一个节拍,共用一张分隔页;而「文献信息」属于开场前的信息,本来就该在你开口之前挂在屏幕上,不配分隔页。

页数默认 22 页:15 页正文 + 4 张目录分隔页 + 封面 / 论文信息 / 谢谢大家。默认分配是 文献信息 1、研究背景 2、本文贡献 1、研究方法 6、实验结果 4、结论与不足 1。用户指定页数时以用户的为准。

那些会让构建直接失败的硬约束#

技能里有十八条”不可协商”的规则,其中一部分被编码成了 build_deck.py 里的 check_* 校验函数——不满足就直接报错,构建不出来。挑几条有意思的:

一张图配一句图注,不算一页。 每个图页必须同时有要点框和”结果分析”提示框,明确说这张图证明了什么。少于两个文本块直接拒绝构建。技能里那句话说得挺狠:如果你除了图注之外没别的可说,这张图就不配单独占一页。

相邻页不能用同一种版式轮廓。 bullets / process / figure_cards / proscons 属于上下型,figure_analysis / panel / dual 属于左右型。两个上下型不能挨着,两个左右型也不能——把图从左边挪到右边不算换版式。check_variety 在第一次相邻重复时就让构建失败。研究方法和实验结果两节还额外受限:上下型不得超过 40%,四页以上的章节至少要用满三个版式家族。

实验结果必须有红色。 !!DSC 91.19%!! 渲染成加粗红字,每组对比里只标最优的那个数——满屏都红等于没红。整节一点红色都没有,check_emphasis 会失败。

公式必须是公式。 行内数学写成 $\mathcal{L}_{\mathrm{rw}}$ 这样的 LaTeX,omml.py 会把它转成 PowerPoint 原生公式对象(能在公式编辑器里打开),而不是让你手打 L_rw 这种既不像论文记号、也编辑不了的字符串。LaTeX 写错会在建页之前就被 check_math 拦下来。

标题是结论,不是标签。 每一页左上角的标题必须是一句陈述——说清这一页讲了什么,而不是给屏幕上的东西起个名字。要写「CFE:用模态差异跨引导加权本模态特征」,不写「CFE 相关特征探索单元」;要写「消融实验:CVBM 与一致性损失各自有效」,不写「消融实验」。

模板的身份不是汇报人的身份。 学校 logo、个人主页二维码、汇报人姓名、页脚日期,用户没给就一律留虚线占位框。原因很实际:模板里的二维码不管标题写成什么,扫出来还是模板作者的链接——所以没提供的资产是被替换掉,而不是留着。

研究方法必须有深度。 论文里有公式时,至少 60% 的方法页要展示并解释公式;每一页都要记录并明确传达它的输入、操作、输出、监督来源、设计动机和出处(第几节、第几图、第几式)。check_method_depth 会拒绝敷衍的方法页。技能还专门反对”矩形框成瘾”:方法页优先用图像块、掩码、预测热力图、张量、算子、箭头、大括号、公式、叠加层、分支/汇合路径这些科研原语,矩形只能用来分组,不能当主要视觉语言。

绝不编数字。 页面上每一个指标都必须在 PDF 里存在。期刊、分区、被引数量要从当前来源核实——这些东西是会变的。

两条生产路径,选一条并记录下来#

技能要求在动手改文件之前明确记录走哪条路:

  • Hybrid image-2 混合路径template_1.pptx 只负责封面、论文信息横幅和结尾,content.pptx 负责每一张目录分隔页,每一页正文用一张经过检查的 image-2 生成图作为整页主体。这条路径下正文页是图片,不要谎称它可编辑。
  • Native 原生可编辑路径:先用 image-2 生成每页的构图蓝图,人(或 agent)看过之后,用可编辑的 PowerPoint 形状、论文真图、确定性绘制的图表和 OMML 公式把认可的几何关系重建出来。蓝图只管构图,PDF 仍然是科研内容的唯一来源。

第二条路径里那句”绝不把蓝图直接拍平成最终幻灯片”是关键。生成模型画出来的排版看着像回事,但里面的文字和公式全是幻觉,不能当证据用。

还有第三种情况:局部修改。当用户说”只修改目录、封面和文章信息”时,其余每一页都是不可变的,要按图像同一性或渲染对比来验证没被动过。技能明确禁止把”用一下这个技能的目录”扩大成”用这个技能重做整份 PPT”。

模板的三层分工#

资源独占职责
template_1.pptx封面、论文信息、身份占位符、结尾、全局几何与视觉身份
content.pptx目录页外观与当前章节高亮
template_2.pptx正文页构图、排版密度、图文节奏

职责不重叠:template_2.pptx 不能拿去当 PowerPoint 母版,content.pptx 存在时就不许手画一个近似的目录。用户上传风格参考图时,技能会提取它的配色气质、线条粗细、圆角处理、图片框、标注语言和留白方式,但不会复制其中的文字、数据、科研结论或 logo,优先级也排在三个模板之后。

实际怎么跑#

抽图这一步值得单独说,因为它是最容易出错的地方:

Terminal window
# 1. 抽图:渲染每页 PNG + 聚类矢量图元定位图片
& python scripts\extract_figures.py extract --pdf paper.pdf --workdir <scratch>

抽取器的做法是把每条图注上方的矢量绘图对象聚类——这能处理掉大部分栅格抽取器漏掉的矢量图。但它有两个已知的失败模式:分不开挨得比图自身内部间隙还近的表格,以及有时会把页眉一起吞进去。所以技能强制要求看一遍 <scratch>/crops/ 里的每一张裁剪图,错的按 PDF point 重裁:

Terminal window
# 2. 重裁
& python scripts\extract_figures.py recrop --workdir <scratch> --fig 9 --bbox 80 323 531 416
Terminal window
# 3. 写 deck.json,构建
& python scripts\build_deck.py --spec <scratch>\deck.json `
--template references\ppt\template_1.pptx --out 组会汇报.pptx

最后一步是渲染验证。技能的原话是:渲染是唯一能抓到文字截断和坏断行的办法。用 PowerPoint COM 把 PPTX 导成 PNG,然后逐张读——文字有没有出框、图有没有被拉伸或裁掉、页码对不对、有没有中文标点跑到行首、有没有哪一页就是一张光秃秃的图。左右型页面还要确认图和文字栏共享同一条垂直中线。最后把研究方法和实验结果连起来翻一遍:如果这些页糊成一片,那说明版式还是太均匀了,不管 check_variety 怎么说。

顺带一提,build_deck.py 里有几个很琐碎但省事的处理:按章节从模板克隆页脚和标题图标、改写母版里硬编码的「共22页」、重新盖页脚日期(否则模板作者的日期会跟着每一页发出去)、给每个 run 打上 zh-CN 标记好让 PowerPoint 应用中日韩断行规则——不打这个标记, 会孤零零地跑到行首。

科研绘图模式#

不做 PPT 只画图时,流程类似但更短:先确定图的类别和真值来源(数据图用表格/CSV,机制图用方法正文和公式,图像标注用原图),把复杂方法拆出 12–25 个可落地的叶子操作——并列分支、反馈路径、训练分支、有名字的机制都要保留,不许折叠成含糊的阶段标签。

然后可以从内置的 PaperBananaBench 参考库里检索几张构图参考:

Terminal window
& python scripts\search_references.py --kind diagram --query "model pipeline" --limit 5
& python scripts\search_references.py --kind plot --query "ablation bar" --limit 5

参考库只用来学构图语法:视觉家族、流向、层级、槽位数量、连接节奏、留白、配色气质、标签位置。绝不描图,绝不把参考图当底图,也绝不把里面的数字、标签和结论抄进来。

实现上有条硬规则:定量图必须从真实数据确定性地画出来,坐标轴、数据点、误差棒、热力图、数值标签一律不许交给图像生成模型。示意图能用可编辑矢量对象就用(SVG / PowerPoint),图像生成只用于非定量的插画元素。

质量门控也是科研图的常识清单:标注坐标轴和单位、说明误差棒代表什么、样本量重要时保留个体观测点、避免误导性的轴截断;不要彩虹配色、不要装饰性 3D、不要双 Y 轴、不要多切片饼图、不要把无序类别连成折线;用色盲安全配色,尽量保证灰度下也能读懂。

装到 agent 里#

Claude Code 最简单,把整个目录放进技能目录就行,不用注册:

  • 个人全局:~/.claude/skills/cs-group-meeting-skill/
  • 仅某个项目:<项目>/.claude/skills/cs-group-meeting-skill/

触发依据是 SKILL.md frontmatter 里的 namedescription。提到「图 / 绘图 / 图表 / figure / diagram / 组会PPT / 学术汇报 / 文献汇报 / 论文汇报」或者直接给出论文、数据、图片,Claude Code 会自动加载;也可以打 /cs-group-meeting-skill 显式调用。

Codexagents/openai.yaml 这份 manifest:

$cs-group-meeting-skill 把这篇论文做成组会 PPT:paper.pdf
$cs-group-meeting-skill 根据这段方法描述绘制科研架构图,输出 SVG 和 PNG
$cs-group-meeting-skill 用 results.csv 绘制论文级消融实验图表

(Codex 的技能安装路径各版本有出入,以你装的那版官方文档为准。)

其他 agent 没有技能机制的,直接把 SKILL.md 全文塞进上下文当 system prompt,再告诉它仓库路径和论文路径。它需要的只是文件读写和执行 Python 的能力——SKILL.md 里的命令都写成了 <skill-dir>\scripts\...,替换成实际路径即可。

环境依赖#

  • Python 3.12+,需要 python-pptxpdfplumberPillow;画数据图时另需 matplotlibpandas
  • Poppler 的 pdftoppm(渲染 PDF 页面用,不在 PATH 里可以用 --pdftoppm 指定)
  • PowerPoint(Windows COM)——只在最后渲染 PNG 自检时需要

最后一条意味着完整的验证闭环目前依赖 Windows。没有 PowerPoint 也能构建出 PPTX,只是拿不到”逐页看一遍”的那一步——而按技能自己的说法,那一步才是唯一能抓住文字截断和坏断行的办法。

它不做什么#

技能刻意划了几条边界,值得在用之前知道:

  • 不替你判断论文好不好。它保证讲清楚,不保证讲得对——科研内容的唯一来源永远是那份 PDF。
  • 不编造任何数字、公式和因果关系。缺的就是缺的。
  • 不用模板作者的身份信息。你不给,就是虚线占位框。
  • 不把 PaperBananaBench 当证据用。那是构图参考库,不是数据源。
  • 不擅自扩大修改范围。你说改哪儿就改哪儿。

说到底,这个技能真正做的事情,是把一位有经验的师兄在改你 PPT 时会说的那些话——「这页你到底想说什么」「这个数字在论文哪儿」「这三页长得一模一样」「这个公式你得展开讲」——写成了会让构建失败的检查函数。

组会PPT skill
https://louaq.com/posts/158dd5ef1ed9/
作者
Louaq
发布于
2026-08-15
许可协议
CC BY-NC-SA 4.0

目录