$npx -y skills add zsyggg/paper-craft-skills --skill paper-deck将论文、技术文章或知识内容制作成高真实感的 AIGC 幻灯片。先做叙事结构和逐页视觉导演,再调用生图模型生成每一页 16:9 slide image,最后合成为 PPTX/PDF。适合论文汇报、组会、公开课、技术分享、商业化研究展示;当用户提到“论文PPT”“AI生成PPT”“不像AI的PPT”“高质感幻灯片”“逐页生图PPT”时使用。
| 1 | # Paper Deck — Visual Slide Director |
| 2 | |
| 3 | 把论文/知识内容做成**看起来真的被设计过**的幻灯片。 |
| 4 | |
| 5 | 核心路线不是用 PPT 对象硬摆版式,而是: |
| 6 | |
| 7 | 1. 先理解内容,做出 deck brief 和逐页叙事。 |
| 8 | 2. 为每一页写清楚“这页要让观众看到什么、感到什么、记住什么”。 |
| 9 | 3. 用生图模型生成 16:9 slide image。 |
| 10 | 4. 合成 PPTX/PDF,并保留 prompts 作为可返修的源文件。 |
| 11 | |
| 12 | ## 不可绕过的生图要求 |
| 13 | |
| 14 | Paper Deck 的 V1 是 **raster-first AIGC slide image** 工作流。除非用户明确要求“不要生图”“用代码画图”“只要可编辑 PPT”或“使用 HTML/SVG/Canvas 生成”,否则必须调用真实的 raster image generation backend 为每一页生成图片。 |
| 15 | |
| 16 | 严格禁止把以下产物冒充为本 skill 的“生图页”: |
| 17 | |
| 18 | - 用 Python/Pillow、SVG、HTML/CSS、Canvas、Mermaid、matplotlib、PPT shapes 或任何本地绘图代码直接画出的整页图片 |
| 19 | - 用模板、纯排版脚本、截图、占位图或手工组合元素替代生图后端输出 |
| 20 | - 先本地画整页,再仅做轻微滤镜/后处理后当作 AIGC slide image |
| 21 | |
| 22 | 允许的本地处理仅限: |
| 23 | |
| 24 | - 移动、复制、重命名生图后端输出文件 |
| 25 | - 必要的格式转换、压缩、尺寸校验、PPTX/PDF 合成 |
| 26 | - 用户明确选择混合方案时,在生图背景上叠加少量可编辑文字层;此时必须在 `deck-brief.md` 和交付说明中明确记录“混合文字层”,不能声称整页文字都由生图模型完成 |
| 27 | |
| 28 | 如果当前环境没有可用的 raster image generation backend,必须停止并说明缺少生图后端;不要退化成本地绘图替代方案。 |
| 29 | |
| 30 | ## 何时使用 |
| 31 | |
| 32 | 适合: |
| 33 | - 论文组会、答辩、reading group、技术分享 |
| 34 | - 需要“一眼不像模板 PPT”的视觉汇报 |
| 35 | - 用户愿意接受每页是高质感图片,优先追求整体观感和传播效果 |
| 36 | - 需要逐页返修:重做第 N 页、换风格、加真实感、减少 AI 味 |
| 37 | |
| 38 | 不适合: |
| 39 | - 需要多人在 PowerPoint 里精细编辑每个文本框 |
| 40 | - 大量表格、财务报表、合规材料 |
| 41 | - 需要准确复制已有企业 PPT 母版 |
| 42 | |
| 43 | 如果用户需要完全可编辑的 PPT,说明本 skill 的 V1 是 raster-first;可改用常规 PPTX 工具,或生成“图片背景 + 可编辑文字层”的混合方案。 |
| 44 | |
| 45 | ## 工作流 |
| 46 | |
| 47 | ### Step 1: 输入分析 |
| 48 | |
| 49 | 接受: |
| 50 | - arXiv / DOI / 网页链接 |
| 51 | - PDF 路径 |
| 52 | - Markdown / 文本 / 文章 |
| 53 | - 已有大纲 |
| 54 | - 参考图片或参考 PPT 截图 |
| 55 | |
| 56 | 如果是论文,优先复用 `paper-analyzer` 的阅读方式:读摘要、方法、实验、图表、结论;必要时搜索代码仓库。目标不是写长文,而是提取适合做 slide 的核心叙事。 |
| 57 | |
| 58 | 输出并保存 `analysis.md`: |
| 59 | - 主题、受众、汇报场景 |
| 60 | - 论文/内容的 1 句话主张 |
| 61 | - 3-5 个必须讲清楚的核心点 |
| 62 | - 推荐页数、推荐风格、语言 |
| 63 | - 需要生成的图像类型:封面、机制图、流程图、数据页、结论页等 |
| 64 | - 可直接使用的真实素材:论文 Figure/Table、PDF 截图、用户提供的截图、代码截图、实验曲线 |
| 65 | |
| 66 | ### Step 2: 生成前确认 |
| 67 | |
| 68 | 默认必须确认,不要直接生成图片。除非用户明确说“直接生成/不用确认/按默认来”。 |
| 69 | |
| 70 | 询问时控制在 3 个问题以内: |
| 71 | |
| 72 | 1. 页数和用途:组会 / 答辩 / 公开分享 / 商业汇报,需要几页? |
| 73 | 2. 风格:见 `references/style-system.md`。 |
| 74 | 3. 是否插入真实素材:是否允许从 PDF/论文图表中截图,或由用户提供截图/图片?如果允许,说明预计第几页使用哪些真实素材。 |
| 75 | |
| 76 | 推荐话术: |
| 77 | |
| 78 | ```text |
| 79 | 我建议做 12 页,风格用 journal-minimal:像 Nature/IEEE 论文图 + 正式学术汇报,清晰、克制、不花哨。 |
| 80 | 也可以换成 business-research 做商业研究分享,warm-notes 做手记风,或 liquid-glass 做 Apple 式玻璃质感。 |
| 81 | 这篇论文我建议在第 4 页插入原论文方法图局部截图,第 8 页插入实验曲线/表格截图,再基于这些真实素材做设计化排版。 |
| 82 | 确认后我会先生成 outline.md 和每页 prompt,再逐页出图并合成 PPTX/PDF。 |
| 83 | ``` |
| 84 | |
| 85 | ### Step 3: Deck Brief |
| 86 | |
| 87 | 保存 `deck-brief.md`。必须包含: |
| 88 | |
| 89 | - `style_preset` |
| 90 | - `audience` |
| 91 | - `slide_count` |
| 92 | - `language` |
| 93 | - `visual_rules` |
| 94 | - `do_not_use` |
| 95 | - `reference_images`(如有) |
| 96 | - `source_visual_plan`:哪些页使用真实图表/截图,来源和处理方式 |
| 97 | |
| 98 | 风格细节按需读取 `references/style-system.md`。 |
| 99 | 真实素材策略按需读取 `references/source-visuals.md`。 |
| 100 | |
| 101 | ### Step 4: Outline |
| 102 | |
| 103 | 保存 `outline.md`。每页用固定结构: |
| 104 | |
| 105 | ```markdown |
| 106 | ## 01. Slide Title |
| 107 | - Role: cover / context / method / mechanism / evidence / result / takeaway |
| 108 | - Message: 这一页唯一要讲清楚的观点 |
| 109 | - Visual: 画面主视觉和构图 |
| 110 | - Text: 页面上允许出现的短文字 |
| 111 | - Evidence: 引用的论文图表/公式/实验数据/代码位置 |
| 112 | - Source visual: 是否使用真实截图/论文图表;来源、裁剪范围和落位 |
| 113 | - Repair handle: 后续返修时可引用的定位描述 |
| 114 | ``` |
| 115 | |
| 116 | 规则: |
| 117 | - 每页只承载一个主观点。 |
| 118 | - 页面文字尽量少;复杂解释放 speaker script 或备注里。 |
| 119 | - 机制页优先画“输入 → 处理 → 输出”,不要画抽象灵感。 |
| 120 | - 数据页只放最有说服力的 1-3 个数字。 |
| 121 | - 真实论文图/截图通常比凭空生成更可信;能用真实素材时优先规划真实素材落位。 |
| 122 | - 不要过度留白。主视觉、图表或证据区域通常应占画面 60%-80%,除非是封面或章节页。 |
| 123 | - 8 页以上必须有节奏变化:封面、问题、方法、机制、证据、结论交替。 |
| 124 | |
| 125 | ### Step 5: Prompt Files |
| 126 | |
| 127 | 每页必须先写 prompt 文件,再调用任何生图工具。 |
| 128 | |
| 129 | 路径: |
| 130 | |
| 131 | ```text |
| 132 | paper-deck/{topic-slug}/ |
| 133 | ├── analysis.md |
| 134 | ├── deck-brief.md |
| 135 | ├── outline.md |
| 136 | ├── prompts/ |
| 137 | │ ├── 01-slide-cover.md |
| 138 | │ ├── 02-slide-context.md |
| 139 | │ └── ... |
| 140 | ├── images/ |
| 141 | │ ├── 01-slide-cover.png |
| 142 | │ ├── 02-slide-context.png |
| 143 | │ └── ... |
| 144 | ├── {topic-slug}.pptx |
| 145 | └── {topic-slug}.pdf |
| 146 | ``` |
| 147 | |
| 148 | Prompt 写法读取 `references/prompt-template.md`。 |
| 149 | |
| 150 | 硬规则: |
| 151 | - prompt 必须明确 16:9。 |
| 152 | - prompt 里要写清楚风格、构图、文字语言、文字数量限制。 |
| 153 | - 不要让模型生成页码、logo、水印、PPT 外壳。 |
| 154 | - 如果需要精准文字,尽量减少图片内文字;可以后续做混合文字层。 |
| 155 | - 如果本页使用真实素材,prompt 必须说明素材如何作为画面的一部分:嵌入、裁切、玻璃面板承载、旁注、放大框,而不是让模型凭空重画事实。 |
| 156 | |
| 157 | ### Step 6: 生成图片 |
| 158 | |
| 159 | 图片后端选择: |
| 160 | |
| 161 | 1. Codex 环境优先用内置 `imagegen`。 |
| 162 | 2. 如果用户指定 `baoyu-imagine`、Gemini、OpenAI、Seedream 等后端,按用户指定。 |
| 163 | 3. 如果没有可用生图后端,停止并告诉用户需要一个 raster image backend。 |
| 164 | |
| 165 | 生图门禁: |
| 166 | - 在调用任何生图工具之前,必须已经写好对应页的 `prompts/NN-*.md`。 |
| 167 | - 每一页最终进入 `images/` 的主图必须来自真实 raster image generation backend。 |
| 168 | - 不允许用 Python/Pillow、SVG、HTML/CSS、Canvas、Mermaid、matplotlib、PPT shapes 或本地绘图脚本生成整页主图来替代生图。 |
| 169 | - 不允许因为担心中文文字错误,就绕过生图后端改成本地绘制整页。正确做法是减少图片内文字、改 prompt 重生成,或在用户同意的情况下使用“生图背景 + 可编辑文字层”的混合方案。 |
| 170 | - 如果使用混合文字层,`images/` 中仍必须保留每页的生图背景或生图整页来源,并在 `deck-brief.md` 记录哪些文字是后叠加的。 |
| 171 | - 生成后要在 `generation-log.md` 记录每页使用的后端、prompt 文件、输出文件、生成时间;没有生成记录的图片不能作为最终交付页。 |
| 172 | |
| 173 | 生成策略: |
| 174 | - 先生成第 1 页作为风格锚点。 |
| 175 | - 后续页如果后端支持 reference image,就用第 1 页作为风格参考,降低漂移。 |
| 176 | - 每 3-4 页检查一次缩略图,发现风格漂移就修 prompt 再继续。 |
| 177 | - 保存失败页,不要覆盖成功页。 |
| 178 | |
| 179 | ### Step 7: 合成 PPTX/PDF |
| 180 | |
| 181 | 生成完图片后运行: |
| 182 | |
| 183 | ```bash |
| 184 | python3 <SKILL_ROOT>/scripts/merge_deck.py paper-deck/{topic-slug} |
| 185 | ``` |
| 186 | |
| 187 | 脚本会读取 `images/NN-*.png|jpg|webp`,输出同名 `.pptx` 和 `.pdf`。每张图片铺满一页 16:9。 |
| 188 | |
| 189 | ### Step 8: 质量检查 |
| 190 | |
| 191 | 交付前按 `references/quality-gate.md` 检查: |
| 192 | |
| 193 | - 是否一眼像真实设计作品,而不是模板堆砌 |
| 194 | - 每页是否只有一个主观点 |
| 195 | - 是否有过多无意义留白;关键内容是否占据足够画面 |
| 196 | - 真实素材页是否明确记录来源、页码/图号和落位 |
| 197 | - 风格是否一致 |
| 198 | - 图片文字是否清晰、无错别字、无伪字 |
| 199 | - 是否存在 AI 常见问题:假 UI、假 logo、乱码标签、过度赛博、塑料 3D、无意义装饰 |
| 200 | - `generation-log.md` 是否存在,且每一页都记录了真实 raster image generation backend、prompt 文件和输出文件 |
| 201 | - 是否存在本地绘图/模板/截图冒充生图页;如有,必须重做或明确改成用户确认过的非 paper-deck 路线 |
| 202 | - PPTX/PDF 是否能打开,页数是否正确 |
| 203 | |
| 204 | ### Step 9: 返修 |
| 205 | |
| 206 | 返修时永远先改源文件: |
| 207 | |
| 208 | | 用户说 | 操作 | |
| 209 | |---|---| |
| 210 | | “第 5 |