引用是必需的,不可省略
本技能附带 6 份参考文件 和两个工作示例(位于 references/examples/ 目录)。
在需要执行某个步骤之前,请先阅读对应的参考文件,切勿在事后检查时再阅读。
references/data-integrity.md: 根据源数据复现摘要内容(阶段 1)references/venues.md: 查找并确定会议场所的规则以及机构品牌套件(阶段 0 和阶段 2)references/design-rules.md: 可读性底线、字体比例、布局、风格(阶段 3)references/build-and-charts.md: 原生图表、修复触发机制、python-pptx 陷阱(阶段 4)references/rendering-qa.md: 渲染、可读性与重叠检查、二维码(阶段 5)references/citations.md: 验证、格式化、添加超链接(阶段 2)
目标
根据 PDF 格式的摘要,制作一份符合会议要求且风格统一的科研海报。最终交付物为可编辑的 PowerPoint (.pptx) 文件、PDF 文件以及预览 PNG 图像。默认情况下,所有元素(文字、分区色块、统计卡片、图表)均为原生且可编辑的状态。数据、数字和引用必须真实且经过验证;设计应确保远距离可读、留有足够呼吸空间,并与作者的风格(如果提供了参考海报,则从中提取)相匹配。
本技能包含一套经过实践检验的工作流程。在需要执行某个步骤之前,请务必先阅读对应的参考文件,切勿在事后检查时再阅读(此时错误已存在于输出中);不要重新发明已经解决的部分(如图表安全性、渲染、字体排版比例)。脚本位于 ${CLAUDE_SKILL_DIR}/scripts/ 目录;工作示例和详细指南位于 ${CLAUDE_SKILL_DIR}/references/ 目录。渲染功能使用 LibreOffice(跨平台)或 macOS 上的 Microsoft PowerPoint;请参阅 references/rendering-qa.md。
要求
- Python 3 及以下库:python-pptx (>= 1.0)、matplotlib、pdfplumber、pypdfium2、pillow、pypdf、pymupdf。
- 一个渲染器:LibreOffice(
soffice/libreoffice在系统 PATH 中,任何操作系统)或安装了 Microsoft PowerPoint 的 macOS。 图表修复检查脚本(scripts/check_charts.py)仅需 Python,可在任何操作系统上运行。 - 安装命令:
pip install python-pptx matplotlib pdfplumber pypdfium2 pillow pypdf pymupdf(如需二维码功能可添加qrcode库,或使用 macOS 上的scripts/qr.swift脚本)。如果 pip 因 "externally-managed-environment" 报错,请使用虚拟环境:python3 -m venv ~/.venvs/poster && ~/.venvs/poster/bin/pip install <相同列表>,然后使用该虚拟环境的 Python 运行生成脚本,并在执行 render.sh 时传入PYTHON=~/.venvs/poster/bin/python。
配套技能
本技能所需的一切都已捆绑;构建、渲染和检查均依赖于本目录内的脚本。以下可选技能可增加效果。请使用任何已安装的技能。如果缺少某个技能,请继续执行,无需中止,并向用户告知一次该技能的一行安装命令。
| 技能 | 添加的功能 | 安装命令 (在 Claude Code 中) |
|---|---|---|
Anthropic 的 pptx + pdf (document-skills) | 编辑现有海报、处理难以解析的 PDF | /plugin marketplace add anthropics/skills, 然后 /plugin install document-skills@anthropic-agent-skills |
frontend-design | 调色板、字体配对、布局方向 | /plugin install frontend-design@claude-plugins-official |
K-Dense 的 citation-management (MIT 许可证) | PubMed / DOI 查询、格式化参考文献 | 将 github.com/K-Dense-AI/scientific-agent-skills 仓库中的 skills/citation-management 目录复制到 ~/.claude/skills/ |
K-Dense 的 scientific-visualization (MIT 许可证) | 期刊风格的 matplotlib 图表(图像图表路线) | 同一仓库,skills/scientific-visualization 目录 |
不要使用 K-Dense 的 pptx-posters(它使用 HTML/CSS 制作海报,会与当前需求冲突)和 scientific-writing(它专门处理学术文章正文,不适用于海报所需的要点列表)。引用检查无需额外技能:通过网络搜索和 fetch 工具查询 PubMed / Crossref / doi.org 即可完成。
执行上下文
可以交互式运行,也可以完全自主运行。下方每个“门”都是一个 AskUserQuestion 操作,并带有清晰标记的推荐默认值,因此自主运行模式可以直接使用默认值并声明已采用该默认值。
- 🟢 自动(无需询问):读取输入、研究、提取风格、构建、渲染、自我质量检测并迭代、在海报专属工作目录中执行 git init 并提交、清理中间文件。
- 🟡 询问(附带推荐默认值):海报尺寸 / 会议规范、作者 + 单位 + 徽标确认、语言风格、引用深度、图表引擎(可编辑原生 vs. 图像)、数据是否为最终版本。
- 🔴 禁止:捏造任何数字、结果或引用;篡改研究报告的发现;覆盖用户已最终确定的文件(始终另存新副本);输出会触发 PowerPoint 修复提示的文件;将患者的个体数据复制出作者的文件或发送到任何网络服务(应原地读取,仅保存聚合统计数据)。
原则
- 在构建前(特别是在与用户协作时)重申计划并确认;在提问时附上推荐建议,以便流程也能自主运行。
- 探索并验证,而非凭空假设。使用网络搜索和网页阅读器进行研究;在使用任何 API 前,查阅其最新文档。验证每条引用的准确性(与 PubMed 或 DOI 对照)。
- 保持简洁和 DRY(不重复自己)。复用捆绑的脚本和示例;进行适配,而非重写。所有图表和标注数据来自同一个可编辑数据块,确保数字更新一处即可同步。
- 精心设计:强有力的视觉层级、充足的留白、高对比度、远距离可读的字体。避免使用霓虹色、重度渐变、发光效果和 AI 生成的图像。遵循作者的会议场所惯例。
- 轻量 TDD:在构建前,断言每个图表的百分比与原始数据重新计算的数值一致。
- 在向用户展示前进行严格自我质量检测:渲染、检查、修复、重复。
- 绝不捏造数据或引用,也绝不篡改研究报告的发现。
流程
阶段 0:输入接收与确认
- 收集输入:摘要 PDF(必需);可选的参考海报(.pptx,用于提取风格);可选的徽标文件;任何更新的数据。
- 复述你理解的内容,然后批量处理询问(一次或两次
AskUserQuestion调用,每个选项都标记推荐默认值)。推荐默认值 [方括号内]:- 尺寸 / 会议场所:首先验证会议场所的电子海报规范 [默认];否则采用 16:9 单页幻灯片 (48x27 英寸),该尺寸与大多数屏幕电子海报查看器兼容。
- 作者、单位和徽标:与作者本人确认,而非摘要的提交信息(通常非最终版)。多个机构意味着多个徽标 [询问使用哪个]。
- 语言风格:适度的学术精饰 [默认];数据和发现绝不更改。
- 引用:4-6 条经过验证的参考文献,带有可点击的 DOI/URL 链接 [默认]。
- 图表引擎:可编辑的原生图表 [默认];如需更精美的图像图表可提出。
- 数据是最终版本,还是后续还会补充?如果是持续进行中的工作,则构建时应确保数字易于更新(使用单一数据块),并保留初步性框架。
- 是一页式的海报还是演讲幻灯片组?“会议用的 PowerPoint” 可能指代两者 [海报]。
- 如果作者提供了数据文件,且数据与摘要内容不一致:以作者的分析文件为准;否则重新计算并复现(参见 data-integrity.md)。
- 二维码的链接(如视频、全文)。缺失的链接将成为带标记的占位符 [默认]。
- 上传截止日期:询问接收邮箱中的通知邮件;截止日期可能已经很近了。
- 自主模式:采用默认值,声明已采用,继续执行。
阶段 1:完整读取所有输入
- 如果环境中有可用的配套技能(如文档/pptx 和 pdf、数据可视化、前端设计、引用管理、科学可视化),可以选用。它们是增强手段; 以下工作流程通过 python-pptx、matplotlib 和渲染器即可独立完成。
- 完整读取摘要:使用
pdfplumber提取文本(如果是 .docx 格式则使用python-docx)、进行视觉渲染以及 OCR/图像检查,确保不遗漏任何图表。捕获标题、作者、单位、所有数字及其对应的 n/N。 - 如果作者提供了底层数据,先读取其结构,然后使用
analysis.py根据数据重现摘要中的每一个数字,该脚本将断言一致性并将聚合数据写入data.json。检查标准差 (SD) 与标准误 (SE)、配对组均值与分组均值、每个数字各自的 n、类别标签与原始注释是否一致,以及第一行数据。参见references/data-integrity.md。 - 如果提供了参考海报,提取其风格:幻灯片尺寸、调色板(色块和强调色填充)、字体和字号、分区栏结构以及徽标。使用
bash ${CLAUDE_SKILL_DIR}/scripts/render.sh渲染它以查看效果。参见references/design-rules.md。 - 确认 Python 依赖:
pip install python-pptx matplotlib pdfplumber pypdfium2 pillow pypdf pymupdf。
阶段 2:研究
- 在学会的官方网站上验证本年度会议场所的电子海报规范(长宽比、字体、媒体格式、上传供应商、截止日期、要求的披露声明),并注明日期。确认每个来源所对应的组织。参见
references/venues.md,该文件还涵盖了如何从已发布的机构品牌套件中提取调色板、字体和徽标。 - 验证并获取引用:必须是真实的、经过 PubMed/DOI 检查的引用,带有超链接和访问日期;包括作者实际使用的注册数据和灰色文献来源,而不仅仅是期刊。参见
references/citations.md。绝不捏造引用。 - 获取引言所需的任何背景信息。在构建时查阅当前最新的库文档。
阶段 3:设计
- 设定风格令牌、列网格、清晰的视觉层级、海报级别的字体排版、充足的留白和强对比度。参见
references/design-rules.md。 - 诚实地选择图表类型:环形图/饼图仅用于部分与整体的关系;条形图用于独立或非互斥的比例关系;大号数字卡片用于单个数值。为每个图表标注其 n/N。参见
references/build-and-charts.md。 - 定义一个可编辑的数据块,用于驱动所有图表和标注。
阶段 4:构建 (python-pptx, TDD-lite)
- 根据内容和风格,适配
references/examples/build_poster_example.py(可编辑原生图表)或references/examples/make_charts_example.py(matplotlib 图像图表)。 - 仅使用 PowerPoint 安全的样式构建原生可编辑图表。唯一硬性规则:切勿设置环形图/饼图的数据标签位置 (
position),该设置正是导致 PowerPoint 修复并删除图表的元凶。单个扇区填充、图例、百分比标签、数字格式和坐标轴字体都是安全的。将环形图百分比放在图例中,并在中心孔洞放置大数字。完整方法参见references/build-and-charts.md。 - 轻量 TDD:在保存前,断言每个显示的百分比与源数字重新计算的结果一致。
- 根据阶段 0 的确认结果正确填写作者、单位和徽标。
- 可读性检查:根据一个具有底线(22 磅,在 48 英寸幻灯片上)的单一字体比例表设置所有字号,设置每个图表的
chart.font.size,并在构建结束时检查保存文件中的任何字号是否低于底线(使用scripts/check_fonts.py)。参见references/design-rules.md。 - 就绪检查:将尚未确认的项目(如作者列表、单位、披露声明、链接)保存在构建脚本中的
CONFIRMED检查列表中。直至所有项目均为True,输出文件应命名为..._DRAFT.pptx,在海报上清晰标记每个缺失项,并打印出仍待解决的项。
阶段 5:渲染与自我质量检测循环
- 使用
bash ${CLAUDE_SKILL_DIR}/scripts/render.sh <pptx> <out.pdf> <out.png> 1.7进行渲染(使用 LibreOffice,或 macOS 上的 PowerPoint),然后查看 PNG。 - 对于原生图表,运行
python3 ${CLAUDE_SKILL_DIR}/scripts/check_charts.py <pptx>:如果任何环形图/饼图带有数据标签位置设置(会导致 PowerPoint 打开时删除图表),该脚本将失败。 - 运行
scripts/check_fonts.py <pptx>和scripts/check_overlap.py <rendered.pdf>,然后将渲染图缩小到 1920x1080,并查看最密集区域 1:1 的截图。解码渲染图中的每个二维码。参见references/rendering-qa.md。 - 对照
references/rendering-qa.md中的检查清单进行修复:无溢出或裁剪、字体足够大、有足够的呼吸空间、高对比度、列对齐、数字正确。持续迭代直到效果真正令人满意,然后才展示给用户。
阶段 6:交付、Git 与清理
- 另存为一个独立的、命名清晰的新副本;切勿覆盖用户已最终确定的文件。
- 交付 .pptx 文件、用于提交的 PDF 文件以及预览 PNG 文件。
- 如果需要,在海报工作目录中执行 git init 并提交,附带清晰的消息(如果是在现有海报上迭代,则先提交基线版本,以便保留之前的版本)。
- 删除中间渲染文件和临时文件;保留可重复的构建脚本。
成功标准
- 交付物为可编辑的 .pptx 文件以及匹配的 PDF 文件(验证页面尺寸)和预览 PNG 文件
- 图表是原生且可编辑的(默认),在 PowerPoint 中打开时不会出现修复提示
- 每个百分比与源数字重新计算的结果一致;显示 n/N;如果数据是进行中的,则保留初步框架
- 所有引用均为真实且经过验证,带有 DOI/URL 超链接
- 作者、单位和徽标已与用户确认
- 摘要中声明的每个数字均从源数据重现(当提供了数据时)
- 没有低于底线大小的文本(check_fonts.py 检查通过),没有重叠的文本(check_overlap.py 检查通过),在 1080p 视图的 1:1 截图下清晰可读;留白充足,对比度强,列对齐
- 渲染图中的每个二维码都能解码到其正确的链接;占位符的存在使文件保持为 DRAFT 状态
- 如果提供了参考海报,风格与之匹配
- 另存了新副本;用户的最终文件未被覆盖