将指定医学研究论文自动生成 PPTX 汇报文件的技能。用于用户给出单篇文献标题、PMID、DOI、InfoX-Med 文献 id 或可唯一定位该论文的信息时:先用 InfoX-Med 相关检索技能精确定位目标论文,再读取全文与原文图表,最后按基础研究型汇报大纲选择性生成 PPTX。适用于"根据这篇论文生成汇报PP...
--- name: research-paper-to-ppt-v2 description: 将指定医学研究论文自动生成 PPTX 汇报文件的技能。用于用户给出单篇文献标题、PMID、DOI、InfoX-Med 文献 id 或可唯一定位该论文的信息时:先用 InfoX-Med 相关检索技能精确定位目标论文,再读取全文与原文图表,最后按基础研究型汇报大纲选择性生成 PPTX。适用于"根据这篇论文生成汇报PPT""把这篇 research paper 做成中文组会汇报""按文献生成带原图的PPT"等请求。强制要求:(1) PPT 必须优先使用论文原文图片;(2) 必须按大纲逻辑生成,但论文未涉及的章节直接跳过,不得插入空白页;(3) 若无法定位目标文献或无法获取全文,必须明确返回"检索失败,无法生成",不得编造内容或伪造图片。默认输出文件名使用论文标题;默认版式为美观组会风格,包含目录页、结尾页和"谢谢!感谢批评指正!"结束文案;字体、图片、坐标等视觉规范必须严格遵循 visual-rendering-spec.md。 --- # Research Paper to PPT v2 按下面流程执行,不要跳步,不要编造。 ## 0. 一键完整生成优先路径 当用户明确要求“直接生成 PPTX / 一键生成 / 输出最终 pptx/ppt 文件”时,优先使用本技能内置完整流水线: - `scripts/complete_pipeline.py` 它会串起以下全部步骤: 1. 精确检索目标文献 2. 获取全文与原文 Figure 3. 提取图注与 Results 上下文 4. 校验输入 5. 生成中间 `slides.json` 6. 强制检查“有原图时必须使用原图且配图解;无原图时允许无图页” 7. 调用 `scripts/render_pptx_from_slides.js` 输出最终 `.pptx` 推荐调用方式: ```bash python3 <skill_dir>/scripts/complete_pipeline.py \ --title "完整英文标题" \ --work-dir /tmp/paper_to_ppt_run \ --output /desired/output/path.pptx ``` 约束: - 若完整流水线任一步失败,直接返回:`检索失败,无法生成` - 不要在失败时改做“纯文字简版” - 一键路径生成的 PPTX 必须保留当前技能已有的功能和效果: - 先检索再全文 - **若全文存在原文图,相关结果页/机制页必须优先使用原文图** - **若全文确实没有可提取原图,允许生成无图的内容页,但不得伪造图片** - 图解优先结合图注 + Results 上下文 - 默认输出美观组会风格 仅在需要调试、局部替换步骤、或修补某一中间产物时,再回退到下面的分步流程。 ## 1. 先确认输入是否足以唯一定位单篇论文 接受以下任一信息: - 完整标题 - PMID - DOI - InfoX-Med 文献 id - 足够唯一的"标题 + 期刊/年份/作者"组合 如果用户给的信息明显不足以唯一定位单篇文献,先要求补充;不要猜测目标论文。 ## 2. 先检索,再读全文;任一步失败都直接终止 必须先调用 `medical-keyword-search` 做精确检索,优先顺序: 1. DOI / PMID / InfoX-Med id 2. 完整英文标题 3. 标题 + 作者/年份/期刊联合检索 检索结果处理规则: - 只有在检索结果能唯一确认目标文献时,才能继续。 - 如果没有结果,或有多个高相似结果但无法唯一确认,返回:`检索失败,无法生成` - 不要把"最像的一篇"当作目标文献。 确认目标文献后,必须调用环境内可用的全文技能获取全文,优先使用 `full-paper-api`;若当前环境实际提供的是 `full-paper-read` 或同类全文读取技能,以环境内实际技能名为准。 - 若全文接口因 token 格式失败或环境 token 异常,先不要立刻放弃;优先调用 `scripts/fetch_fullpaper.py` 做一次本地兜底重试。它会从 `INFOX_MED_TOKEN` 中提取合法 token 候选,重新请求全文 API,并尽量整理 `paper_meta/fulltext/figures`。 - 若全文接口失败、正文缺失、只拿到极少量摘要、或没有可用于制作 PPT 的正文/图表信息,返回:`检索失败,无法生成` - 不能只根据摘要硬做 PPT。 ## 3. 读取参考资料 在开始生成内容前,按需读取: - `references/integration-notes.md`:与检索 / 全文 / pptx 技能的衔接说明 - `references/outline-basic-research.md`:基础研究型汇报大纲与映射规则 - `references/slide-schema.md`:中间结构化 JSON 约定 - `references/figure-caption-policy.md`:Figure 解释写法与禁忌 - `references/ppt-copy-rules.md`:最终 PPT 中禁止出现的元说明文案 - `references/style-preferences-from-reference.md`:参考 PPT 与修改意见沉淀出的默认风格偏好 - `references/layout-rules-from-feedback.md`:更细的版式/字号/拆页/路径图规则 - `references/output-filename-policy.md`:最终 PPT 文件名的默认命名规则 - `references/visual-rendering-spec.md`:**每次生成 PPTX 前必须阅读**,包含精确坐标、颜色 hex 值、字体规范、阴影规范和每种 slide_type 的版式模板 如果用户另给了大纲或版式要求,用户要求优先;否则默认采用本技能内置大纲映射。 ## 4. 先做结构化提取,再决定实际生成哪些页 先从全文提取结构化信息,至少覆盖: - 文献信息:英文标题、中文标题、作者、期刊、年份 - 作者展示规则:要么完整列出全部作者,要么默认只列一作并加 `et al.`;不要出现残缺作者串 - 摘要/全文总述 - 研究背景 - 科学问题/研究假设 - 研究对象与模型 - 分组与干预设计 - 关键实验方法 - 结果链条:现象发现、功能验证、机制探索、救援实验、体内验证、临床/转化验证 - 主要结论 - 优点、局限性、科学意义/转化价值 - 致谢/结束页可用内容 - 原文 Figure / Table 清单:编号、标题/图注、图片来源、与正文对应关系 然后按大纲做"有条件生成": - 仅当论文中有对应内容、且能做出有信息量的一页时,才生成该页。 - 对于论文中没有涉及的部分,直接跳过。 - 严禁为了凑大纲页数插入"暂无数据""文章未提及"之类空白页。 ## 5. 图片规则:有原图时必须优先使用原文图片 这是条件性硬约束。 也就是说: - **如果全文/附件/PDF 中存在可提取的原文 Figure、Table 图像、graphical abstract 或 summary figure,则必须优先使用这些原图** - **如果全文确实没有可提取原图,则允许生成无图版 PPT** - 允许无图版,不等于允许伪造图、网图替代图或把纯文字包装成“原图页” ### 5.1 可使用的图片来源 仅允许: - 全文中明确给出的原文 Figure 图片 - 全文中明确给出的原文 Table 截图或可导出图像 - 全文中的 graphical abstract / overview 图 - 论文 PDF 中原生存在的图,不得自行重绘成"仿原图"后冒充原图 ### 5.2 禁止项 禁止: - 编造图片 URL - 使用与原文无关的网图/示意图替代原文核心图 - 在没有拿到原图时根据图注手绘"伪原图"并当作论文图片 - 把纯文本页伪装成"有图页" ### 5.3 图片选择原则 优先选择: 1. 能代表该结果页核心结论的 Figure 2. 作者机制图 / graphical abstract 3. 同时包含多面板关键证据的 Figure 如果一个结果段落涉及多个 panel(如 Figure 3A-3F): - 优先放整张 Figure,而不是凭空裁切出不存在的 panel 图 - 若工具链支持可靠裁切,可裁切但必须来自原图,并保持编号对应关系清晰 ### 5.4 结果页与机制页的强制要求 这是新增硬约束: - **当论文存在原文图片时**, 所有相关结果页应至少嵌入 1 张原文图片 - **机制页**若论文存在机制图/graphical abstract/summary figure,也必须优先嵌入原图 - 若论文存在原图但不存在独立机制图,允许机制页复用最能代表整体主线的原文 Figure;不要因为“没单独机制图”而让整篇生成失败 - **当论文不存在可提取原图时**, 结果页允许改为高质量纯文字/卡片式内容页,但必须忠实基于全文,不得伪造“图解”或伪造 Figure 编号 - 每张被使用的图都必须配套**全中文**解释,解释**优先直接参考原文图注并翻译成中文** - 如图注不足以支撑讲述,可再补充对应 Results 段的最小必要信息,但补充内容也必须写成中文 - 当单张 Figure 信息量过大时,允许按 panel/区块拆分为多页,但必须保持"来自原图"的可追溯性 - 多图或多 panel 情况下,优先"拆分讲清楚",不要把所有信息硬塞在一页里 - 若论文明明存在原图却未使用,或只能通过伪造图片才能完成版式,直接返回:`检索失败,无法生成` - 机制页校验应区分两种情况: 1. 该页被显式标记为必须配图(如存在可复用的机制/概览/总览型原图)→ 必须带原图 2. 该页未被标记为必须配图 → 允许作为纯文字“主线总结页”存在,但不得冒充原图页 ## 6. Figure 配字规则:优先忠实参照原文图注翻译,再做轻度整理 新版默认要求: - 图的解释**必须输出为中文**,可以直接参照原文图注翻译 - 如原文图注过长,可压缩成更适合汇报的中文表达 - 如 Results 段提供了更明确的实验目的或结论,可补充 1 句,但必须保持中文输出 - 不要求为了“更解释性”而强行改写成复杂长段 对每个 Figure,优先覆盖以下信息: - 这张图在回答什么问题 - 图中主要比较对象/模型/处理条件 - 图里最重要的观察结果 - 必要时再补一句它在全文证据链中的位置 写法要求: - 用中文 - 2-4 条要点或 1 段中等长度说明 - 优先忠实、清楚、可讲 - 不要比原文图注复杂很多 禁止: - 只贴乱码或未经清洗的图注 - 写成冗长论文段落 - 夸大图中没有直接证明的结论 详细规则见 `references/figure-caption-policy.md`。 ## 6.1 结果页标题来源规则(新增硬偏好) 结果部分页面标题默认优先级: 1. **原文 Results 小标题** 2. 若原小标题直译过长,可在不改变原意前提下压缩总结成更短标题 3. 只有在论文没有明确 Results 小标题可映射时,才允许助手自行概括标题 也就是说: - 不要随意把结果页标题改写成完全脱离原文结构的新标题 - 优先让 PPT 结果页和原文结果部分的小标题建立一一对应关系 ## 6.2 单张 Figure 可拆成 2-3 页(新增硬允许) 当单个 Figure(如 Fig 1)信息量很大时: - 允许把**同一张图**连续放在 2-3 页 PPT - **不需要切图**,默认保持原图完整展示 - 每一页只讲这张图的不同部分/不同重点 - 页标题可沿用同一个 Results 小标题,并在必要时加 `(1/3)`、`(2/3)`、`(3/3)` - 这种拆页优先于缩小字体或把全部解释硬塞一页 ## 7. 幻灯片组织规则 默认遵循基础研究型大纲,但做"逻辑压缩 + 条件跳过"。 如果用户没有指定别的风格,优先参考 `references/style-preferences-from-reference.md` 中沉淀的结构偏好: - 更接近组会 / Journal Club 的讲述顺序 - 背景 → 问题 → 方法 → 结果链 → 机制 → 局限与转化 → 结论 - 不做"摘要式大杂烩",而是做"逐层推进式汇报" 推荐优先级: 1. 标题页 2. 目录页 3. 全文概述 4. 研究背景 5. 科学问题与研究假设 6. 文献基本信息 / 研究对象 7. 整体研究思路与技术路线 8. 研究对象与实验材料 / 分组设计 / 核心方法(可合并) 9. 关键结果页若干 10. 主要结果总结 11. 机制模式图 12. 优点与局限 13. 科学意义与转化价值 14. 结论 / take-home message 15. 致谢 / 感谢页 压缩规则: - 若文章较短,可把"研究对象、分组、方法"压缩到 1-2 页 - 若结果很多,优先保留最关键的证据链:现象 → 功能 → 机制 → 因果/救援 → 体内/临床 - 若没有动物或临床部分,直接跳过对应页 - 目录页、感谢页默认建议保留;若用户明确要求极简版,再按需裁剪 ### 7.1 默认美观版式要求 若用户未指定模板,默认按"更适合组会汇报"的风格生成,而不是仅满足信息可放下: - 标题页要有明显视觉层次,不要只是标题加几行字 - 目录页默认生成,帮助听众建立预期 - 非结果页优先使用卡片、分区、流程、摘要框,而不是整页大段 bullet - 结果页优先采用"左侧核心结论 + 右侧原文图 + 下方图解"或等效布局 - 机制页优先采用路径图/箭头链式表达 - 优点、局限、意义、take-home message 等总结页优先做成分组卡片样式 - 结尾页默认生成正式收尾文案;若用户未另行指定,默认使用:`谢谢!感谢批评指正!` ### 7.2 关于动画 若用户明确要求"动画": - 优先通过**分页拆分、分步呈现、目录/章节过渡页**实现接近动画的讲述节奏 - 在当前工具链无法可靠写入原生 PowerPoint 动画时,不要为了动画破坏 PPT 文件稳定性 - 除非当前生成链已验证支持且稳定,否则不要把原生动画作为硬交付要求 - 可以在最终说明中标注:已通过分页与节奏设计实现更强的演示感 ## 8. 先生成中间 JSON,再生成 PPTX 先整理成统一 JSON,再交给 `pptx` 技能生成文件。 如需稳定中间输入,优先使用: - `scripts/fetch_fullpaper.py`:从 InfoX-Med 全文 API 拉取并规范化 `paper_meta/fulltext/figures`,内置 token 异常兜底 - `scripts/extract_figures_and_captions.py`:从全文 markdown 中提取每张原图的图注,并进一步匹配对应 Results 段落,结合"图注 + 结果上下文"生成更扎实的中文讲解要点,同时清洗 markdown/math 噪声,避免图注摘要乱码 - `scripts/validate_inputs.py`:检查是否满足硬失败条件 - `scripts/build_prompt_bundle.py`:把 paper meta、全文、figure 清单整理成统一 bundle - `scripts/enforce_figure_requirements.py`:在生成 PPT 前强制检查"有原图时必须带原图且有图片解释;无原图时允许无图页" 推荐顺序: 1. `fetch_fullpaper.py` 2. `extract_figures_and_captions.py` 3. `validate_inputs.py` 4. `build_prompt_bundle.py` 5. 生成 `slides[]` 6. `enforce_figure_requirements.py` 7. 调用 `pptx` 技能输出 `.pptx` JSON 至少包含: - `title` - `paper_meta` - `slides[]` - 每页的 `slide_type` - 每页的 `title` - `bullets` / `sections` - `figure_refs` - `image_paths_or_urls` - `speaker_intent`(可选,简短说明这一页想讲什么) 中间结构的详细字段见 `references/slide-schema.md`。 ## 9. 调用 pptx 技能时的硬性要求 交给 `pptx` 技能生成时,明确要求: - 输出 `.pptx` - 输出文件名默认使用**论文标题**生成;优先使用英文原题,做文件系统安全清洗后作为文件名 - 若用户明确要求中文文件名或另有命名规则,按用户要求覆盖默认规则 - 不要输出 `final.pptx`、`output.pptx`、`report_beautified.pptx` 这类泛化名称 - **凡是使用图片的页面,必须嵌入原文图片** - **若全文存在原文图片,相关结果页必须优先使用原文图片;若全文无图,允许纯文字结果页** - 每张图旁边必须有中文解释,解释应帮助讲述"实验目的-观察结果-结论意义" - 图解应优先结合 **图注 + Results 对应段落** 生成,不要只做图注直译 - 核心结论必须写成自然、可讲的中文汇报语言,优先包含:主语 / 干预 / 时长或条件 / 结果方向,而不是只写标签词 - 当单页信息过多时,优先拆页、拆 panel、分区呈现,不要优先把字体压小 - 字号层级要明确:标题显著大于正文;正文宁可偏大,也不要牺牲可读性 - 对"动物模型、方法、结论分类"等非结果页,优先考虑图标、卡片、流程图、目录页、章节过渡页等方式减轻纯文本压力 - 机制页要体现上下游路径关系,尽量使用箭头/流程,而不是只堆概念块 - 总结页、优点局限页、意义页优先考虑分组卡片、编号块、视觉分类,而不是纯 bullet 堆叠 - 结尾页默认加入正式收尾文案;若用户未指定,默认文案为:`谢谢!感谢批评指正!` - 每页不要堆太多字,优先保证可讲解性 - 标题与层级统一 - 中文排版清晰 - 不生成空白页、占位页、模板残页 - 不要在最终 PPT 中出现"带原文图片的中文汇报版""本版 PPT 的结果页均直接嵌入原文 Figure..."等元说明文案 - "原始图注摘要"若包含 markdown / LaTeX / OCR 噪声,应先清洗后再决定是否展示;宁可简短,也不要乱码 若已有现成模板,可使用;若没有,保持简洁但美观的科研汇报风格即可。 ## 10. 最终输出规则 ### 成功时 返回: - 已生成的 pptx 文件 - 简短说明生成范围(例如:共 12 页,包含背景、方法、4 页关键结果、机制图、优缺点与总结) - 如有跳过章节,可简单注明"已根据论文内容跳过未涉及模块" ### 失败时 仅返回: - `检索失败,无法生成` 以下情况都属于失败: - 无法唯一定位目标论文 - 检索不到论文 - 全文获取失败 - 全文中拿不到足够正文信息 - 论文存在原文图片,但图片无法获得且无法满足"有图时必须优先使用原文图片"的要求 - 只能依靠伪造图片、网图替代或编造 Figure 才能完成生成 不要在失败时附带猜测性总结,不要提供"先做个简版"。 ## 11. 质量自检清单 交付前逐项确认: - 是否确实是用户指定的那篇论文 - 是否已成功读取全文,而非只基于摘要 - 是否所有图片都来自原文 - 是否没有任何编造图、编造结论、编造章节 - 是否跳过了论文未涉及的模块,而不是插入空页 - 是否每个 Figure 的中文解释比原始图注更适合汇报,但不过度冗长 - 是否结果页围绕证据链组织,而不是简单复制论文目录 - 若不满足上述任一项,停止并返回:`检索失败,无法生成`
don't have the plugin yet? install it then click "run inline in claude" again.