Agent Skills › zsyggg/paper-craft-skills

zsyggg/paper-craft-skills

GitHub

将学术论文转化为深度HTML长文的工具。通过6轮强制工作流(获取全文、搜索代码、深度分析、风格选择、写作、审查),支持storytelling/academic/concise三种风格,集成公式渲染与Mermaid图表,输出精美可读的解析页面。

3 skills 769

Install All Skills

npx skills add zsyggg/paper-craft-skills --all -g -y
More Options

List skills in collection

npx skills add zsyggg/paper-craft-skills --list

Skills in Collection (3)

将学术论文转化为深度HTML长文的工具。通过6轮强制工作流(获取全文、搜索代码、深度分析、风格选择、写作、审查),支持storytelling/academic/concise三种风格,集成公式渲染与Mermaid图表,输出精美可读的解析页面。
用户输入/paper-analyzer命令并附带arxiv链接或PDF路径 用户粘贴论文文本请求深度解析
skills/paper-analyzer/SKILL.md
npx skills add zsyggg/paper-craft-skills --skill paper-analyzer -g -y
SKILL.md
Frontmatter
{
    "name": "paper-analyzer",
    "description": "将学术论文转化为深度HTML长文。6轮强制工作流、代码仓库搜索、公式渲染、Mermaid图表。\n3种写作风格,输出可直接分享的精美HTML页面。"
}

Paper Analyzer — 学术论文深度解析

⚠️ 这是生产级指令。你的唯一任务:产出一篇让读者觉得"比我读论文还清楚"的深度HTML长文。

快速使用

/paper-analyzer https://arxiv.org/abs/2605.07363
/paper-analyzer /path/to/paper.pdf
/paper-analyzer  粘贴文本

强制工作流(每一步必须执行,不可跳过)

Round 1:获取论文全文 ⛔

输入 执行
arxiv URL 同时读 arxiv.org/abs/(摘要)和 arxiv.org/html/(全文HTML)
PDF路径 用PDF读取工具读全文。分多次直到全部获取
文本 全部使用

自检:有没有完整内容?没有 → 换方式继续。

Round 2:搜索开源代码 ⛔

  1. 从论文中提取代码仓库链接(通常在页脚或 Introduction 末)
  2. 没有则用论文标题+作者名搜索 GitHub
  3. 克隆:git clone --depth 1 <url> /tmp/paper_code
  4. 阅读 README → 核心源码文件 → 配置文件

根据代码状态分支处理

状态 处理 文章体现
✅ 已发布 读核心文件,找 ≥2 处论文方法↔源码对应 贴代码段(≤30行),标注 文件路径:行号
⏳ 待发布 检查 README/Release 标记 标注状态+仓库链接
❌ 无代码 搜索替代实现/相关项目 注明"本文未提供公开代码"

Round 3:深度分析 ⛔ 内部完成,不展示过程

  1. 核心创新:论文做了什么别人没做的?(1-3个,每个一句话提炼)
  2. 方法细节:输入→处理→输出→为什么更好(每个创新画清楚这条线)
  3. 关键实验:哪个结果最有说服力?为什么?
  4. 论文弱点:作者自述 + 你的判断
  5. 代码对应:每个 component 对应哪个文件/函数

Round 4:询问用户 ⛔

必须问风格选择,用户未回则默认 academic。

Round 5:写作输出HTML ⛔

按选定风格的要求写,输出完整HTML。模板见下文。

Round 6:自我审查 ⛔

逐项检查,不通过则修改直到通过。


三风格详细要求


storytelling(故事型)— 像一篇公众号爆文

硬标准

  • 字数 ≥ 3000
  • 段落 ≥ 15
  • 引用论文原文 ≥ 3 处
  • 生动类比/比喻 ≥ 2 个
  • 结尾金句 1 句

结构要求(按顺序,缺一不可)

1. 钩子开头(2-3段)
   — 反常识问题 / 引人共鸣的场景 / 让人"等等再说一遍?"的事实
   — 不要直接讲技术。先让读者好奇。

2. "为什么会这样"(3-4段)
   — 解释现有方法的逻辑和它的瓶颈
   — 用简单例子说明
   — 让读者感到"确实需要一种新方法"

3. 核心洞察(1-2段)
   — 论文最关键的那一句话发现
   — 用一句话说清楚 + 一个类比强化

4. 方法详解(5-8段,全文最重点)
   — 分步骤展开:怎么做 → 为什么这样设计 → 和旧方法的关键区别
   — 每个步骤配一个类比
   — 引用论文原文(公式/算法描述)≥ 3 处
   — 用对比表呈现新旧方法差异

5. 实验效果(3-4段)
   — 最重要的实验结果 + 数据解读
   — 不只是报数字,要解释"这意味着什么"
   — 用表格呈现关键对比数据

6. 深层意义(2-3段)
   — 这个工作对行业意味着什么
   — 不止一个角度:技术意义、产业意义、方法学意义

7. 局限(1-2段)
   — 作者自述的局限 + 你的判断

8. 收束(1段)
   — 回到开头的场景/问题,形成闭环
   — 读者带着"我懂了"的感觉离开

9. 金句
   — 一句话,让人能记住并转述

写法要求

  • 多用"你"和读者对话("你有没有想过""你猜怎么着")
  • 段落短,一段不超过 4 句话
  • 技术词出现时要立刻给"人话解释"
  • 数据要翻译成可感知的东西("15 斤荔枝"而不只是"15 斤")

academic(学术型)— 比论文更清晰的深度解析

硬标准

  • 字数 ≥ 4000(⚠️ 学术型必须长于故事型)
  • 段落 ≥ 20
  • 论文公式引用 ≥ 5 处(用 KaTeX 渲染)
  • 论文图片/图表引用 ≥ 3 处(标注 Figure number)
  • 实验数据表格 ≥ 2 张
  • 代码段 ≥ 2 段(如有代码)
  • 指出局限 ≥ 2 处

结构要求

1. 论文元信息
   标题 · 作者 · 链接 · 代码状态

2. 一句话总结(100字内)

3. 研究背景与动机(4-5段)
   — 这个领域在解决什么问题
   — 现有方法及其局限(按时间线或方法论分类)
   — 本文的出发点

4. 预备知识(2-3段,如需要)
   — 理解本文需要的核心概念
   — 本文用到的基础方法简介

5. 方法详解(8-10段,全文最重点)
   — 对每个创新点独立成节
   — 每个创新点包含:①问题 ②怎么做(配公式)③为什么有效 ④与已有方法的差异
   — 公式用 $$...$$ KaTeX 渲染
   — 引论文原文 Figure/Table 编号
   — 有代码则穿插源码分析

6. 实验分析(4-6段)
   — 实验设置概述
   — 主要结果(配表格 + 深入解读)
   — 不同维度的对比分析
   — 消融实验说明了什么
   — 不是报数据,是解读数据背后的含义

7. 讨论(2-3段)
   — 方法的适用边界
   — 未解决的问题
   — 对未来工作的启示

8. 局限分析(2-3段)
   — 作者自述 ≥ 1 处
   — 你的独立判断 ≥ 1 处

9. 结论(1-2段)
   — 凝练贡献
   — 展望

写法要求

  • 保持学术严谨但不死板——比论文好读
  • 每个公式后要跟一句"人话"解释:这个公式在说什么
  • 引用论文的 Fig/Table/Section 编号
  • 表格数据要有解读,不只贴数据
  • 数学符号首次出现要解释含义

concise(精炼型)— 最快掌握核心

⚠️ 精炼 ≠ 敷衍。精炼是信息密度极高、但该有的全有。

硬标准

  • 字数 ≥ 1200(不能低于这个数)
  • 必须有:核心摘要盒 + 表格 + 可视化图表 + 金句
  • ⚠️ 必须包含至少 1 个 Mermaid 图表(架构图或对比图)

结构要求

1. 头图(Mermaid图表)—— 全文最核心架构/对比的一张图
   类型可以是:flowchart(流程图)、graph(对比图)、或 timeline

2. 核心摘要盒
   — 5 行以内
   — 覆盖:做什么 / 怎么做 / 效果 / 适用场景

3. 关键创新(3-5 个,编号列出)
   — 每个 2-4 句
   — 一句话说创新点 → 一句话说怎么做的 → 一句话说为什么重要

4. 核心数据表
   — 最多 5 行数据
   — 突出和 baseline 的对比

5. 金句收尾

Mermaid 图表示例(⚠️ 节点文本避免中文特殊字符,用英文或简单ASCII。用 <br/> 换行):

flowchart TB
    subgraph DSA["DSA: 64 heads scan all L tokens"]
        Q1[Query] --> H1[Head 1..64]
        H1 --> TK1[Score: O(64L)]
    end
    subgraph MISA["MISA: route to h=8 heads"]
        Q2[Query] --> RTR[Router: O(64M)]
        RTR -->|top-8| H2[8 active heads]
        H2 --> TK2[Score: O(8L)]
    end
    DSA -->|8x fewer heads| MISA

HTML 输出模板

生成HTML时使用此模板,确保含 KaTeX 公式渲染 + Mermaid 图表支持:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>论文标题 — 深度解读</title>
<style>
:root{--text:#1a1a1a;--bg:#fafaf8;--accent:#2563eb;--muted:#6b7280;--border:#e5e7eb;--code-bg:#f3f4f6}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,"PingFang SC","Noto Serif SC",serif;color:var(--text);background:var(--bg);line-height:1.85;padding:2.5rem 1.5rem;max-width:720px;margin:0 auto;font-size:17px}
h1{font-size:2rem;margin:0 0 .3rem;line-height:1.3}
h2{font-size:1.35rem;margin:2.8rem 0 .8rem;color:var(--accent);padding-bottom:.4rem;border-bottom:1px solid var(--border)}
h3{font-size:1.1rem;margin:1.5rem 0 .5rem;color:#333}
.meta{color:var(--muted);font-size:.9rem;margin-bottom:2.5rem;line-height:1.8}
.meta a{color:var(--accent);text-decoration:none}
blockquote{border-left:3px solid var(--accent);padding:.6rem 1.2rem;margin:1.5rem 0;background:#f0f4ff;border-radius:0 8px 8px 0}
pre{background:var(--code-bg);padding:1rem 1.2rem;border-radius:8px;overflow-x:auto;font-size:.85rem;line-height:1.5;margin:1.5rem 0;border:1px solid var(--border)}
code{font-family:"SF Mono","Fira Code",monospace;font-size:.9em}
p{margin:1rem 0}
strong{color:#111}
table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.93rem}
td,th{border:1px solid var(--border);padding:.6rem .9rem;text-align:left}
th{background:#f9fafb;font-weight:600}
.summary-box{background:linear-gradient(135deg,#f0f4ff,#faf5ff);padding:1.5rem;border-radius:12px;margin:1.5rem 0}
.summary-box h3{margin:0 0 .5rem;color:var(--accent)}
.golden{font-size:1.25rem;font-weight:600;color:var(--accent);text-align:center;padding:2rem 1rem;border-top:2px solid var(--accent);border-bottom:2px solid var(--accent);margin:2.5rem 0;line-height:1.5}
@media(max-width:600px){body{font-size:16px;padding:1.2rem 1rem}h1{font-size:1.5rem}}
</style>
<!-- KaTeX -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js"
  onload="renderMathInElement(document.body,{delimiters:[{left:'$$',right:'$$',display:true},{left:'$',right:'$',display:false}]})"></script>
<!-- Mermaid -->
<script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
<script>mermaid.initialize({startOnLoad:true,theme:'default',securityLevel:'loose'});</script>
</head>
<body>
<!-- 内容 -->
</body>
</html>

公式用 $$...$$$...$,KaTeX 自动渲染。

  • ✅ 正确:$H^I$$H^{I}$$\mathbf{q}_{t,j}^I$
  • ❌ 错误:$H^\I$\I 未定义)、$H^I$ 写在 <pre> 标签内

Mermaid 图用 <pre class="mermaid">...</pre> 包裹。节点文本避免中文标点和特殊字符。


自我审查清单(Round 6)

生成后逐条检查,不通过则修改:

通用

  • 字数达标?(story≥3000 / academic≥4000 / concise≥1200)
  • 引用论文原文 ≥ 3 处?
  • 每个核心创新独立深度展开?
  • 至少 1 个实验结果做深入解读?
  • 代码状态已提及?
  • 有代码则源码 ≥ 2 段 + 文件路径?
  • 指出局限 ≥ 2 处(至少 1 处是作者自述的)?
  • HTML 格式完整,可在浏览器打开?
  • 无 AI 套话("深入探讨""至关重要""值得注意的是")?

storytelling 专属

  • 有钩子开头?
  • 有 ≥ 2 个类比/比喻?
  • 用"你"和读者对话?
  • 有收束段落形成闭环?
  • 有金句?

academic 专属

  • 字数 ≥ storytelling?
  • 公式 ≥ 5 处(KaTeX 渲染)?
  • 论文图/表引用 ≥ 3 处(Fig/Table 编号)?
  • 实验数据表 ≥ 2 张?
  • 方法部分 ≥ 8 段?

concise 专属

  • 有 Mermaid 图表?
  • 有核心摘要盒?
  • 有对比数据表?
  • 有金句?
  • 字数 ≥ 1200?

参考文件

  • styles/storytelling.md — 故事型补充规范
  • styles/academic.md — 学术型补充规范
  • styles/concise.md — 精炼型补充规范
  • styles/with-formulas.md — 公式详解
  • styles/with-code.md — 代码分析规范
  • scripts/generate_html.py — HTML生成辅助脚本
将论文核心方法转化为视觉图解,支持sketchnote和paper-figure两种风格。通过自动检测生图API,先分析论文并推荐封面、总览及机制细节图的生成方案,经用户确认范围、张数、语言等参数后,深度可视化方法流程与关键机制。
用户请求对学术论文进行方法图解或可视化 用户提供论文PDF链接并要求绘制方法流程图
skills/paper-comic/SKILL.md
npx skills add zsyggg/paper-craft-skills --skill paper-comic -g -y
SKILL.md
Frontmatter
{
    "name": "paper-comic",
    "description": "论文方法图解——用视觉图解彻底讲清楚一篇论文到底做了什么、怎么做的。\n自动分析论文核心方法,先推荐封面\/概述图\/机制细节图的生成方案,必须由用户确认范围、张数、语言、风格后再生成。\n支持温暖笔记风和论文框架图风。"
}

Paper Method Illustrated — 论文方法图解

把论文的核心方法用视觉图解彻底讲清楚。

与其他技能的本质区别

传统paper-comic baoyu-article-illustrator 我们:方法图解
聊什么 什么都聊一点 为文章配装饰图 只聊方法细节
深度 一页讲很多→浅 一张图一段话→中 一张图讲透一个机制→深
页数 固定10页 按密度5-20张 先推荐封面/概述/细节图组合,用户确认后生成1-10张
重点 讲背景+故事 美化文章排版 可视化"怎么做"

快速开始

/paper-comic /path/to/paper.pdf
/paper-comic https://arxiv.org/abs/2512.xxxxx
/paper-comic /path/to/paper.pdf --style sketchnote
/paper-comic /path/to/paper.pdf --style paper-figure --language English --pages 1

图片生成:自动检测

和paper-analyzer一样,不硬编码任何API。运行时自动检测:

环境 自动使用
Codex 内置 imagegen skill
Claude Code 已安装的生图skill(如baoyu-image-gen)
Cursor/其他 自动检测 → 没有则提示安装

不写死任何API key、token或endpoint在SKILL.md里。


核心哲学

我们只画三样东西

  1. 方法流程 — 输入→处理→输出,这方法到底怎么走的
  2. 核心机制 — 最创新的那个部分,拆开来看内部构造
  3. 关键结果 — 只放最重要的实验结果,不放灌水数据

我们不画的东西

  • ❌ 相关工作/背景介绍(那是paper-analyzer文字部分的事)
  • ❌ 抽象的"灵感来源"(没有信息量的图 = 浪费)
  • ❌ 文字就能说清楚的东西(一句话能讲完不需要画)
  • ❌ 第N个消融实验的柱状图

每一张图的标准

一个完全没读过论文的人,只看这张图+图上的标注文字,能不能理解这个机制?

能 → 通过。不能 → 拆成两张,或者加更多标注。


生成前必须确认

默认不要直接生成图片。先读论文、给出推荐方案,再向用户确认。

只有当用户已经明确给出足够完整的生成意图时,才可以跳过确认,例如:

  • “生成一张中文 sketchnote 方法总览图”
  • “生成 4 张:封面、总览、两个机制细节,英文 paper-figure”
  • “按你推荐的全部生成,中文,sketchnote”

如果用户只给了论文链接、只说了风格(如“sketchnote”)、或只说“生成图解”,仍然必须确认,因为风格不等于范围/张数授权

确认时必须覆盖:

  1. 图片语言:中文 / English / 双语
  2. 生成范围:只要封面图、只要方法总览图,还是概述图 + 若干机制细节图 + 结果图
  3. 推荐张数:基于论文复杂度给出建议,并说明为什么,如“我建议6张,因为这篇论文有整体架构、两个核心attention机制、编码器/解码器结构和关键实验结果”
  4. 视觉风格sketchnotepaper-figure
  5. 用途:README/文章封面/小红书/演示文稿/论文阅读笔记(用途决定横竖比例和文字密度)

确认话术示例:

我读完后建议生成6张:1张封面、1张方法总览、3张机制细节、1张关键结果。也可以只生成1张总览图,或者扩展到8张把每个机制讲更细。你想生成哪种范围?语言用中文/英文/双语?风格用 sketchnote 还是 paper-figure?

如果用户没有回答,不要继续生成。


两种视觉风格

画风 视觉效果 适合场景 特点
sketchnote(默认) 温暖科研笔记风 讲清楚论文在做什么、视频宣传、知识分享 工整但有人味,允许小符号、小比喻、小视觉锚点,让人一眼理解
paper-figure 论文框架图风 README首屏、论文解读文章、方法总览、技术展示 像顶会论文里的总览框架图,但更完整、更漂亮、更适合传播

默认推荐 sketchnote。当用户想要“像论文 Figure 一样专业”“方法框架图”“技术架构图”“放 README 第一屏很震撼”时,推荐 paper-figure

sketchnote 风详细规范

  • 明亮温暖的浅米白底(接近 #FFF8EA / #FAF4E6),像干净的手抄报纸或课堂讲义
  • 不要牛皮纸、旧羊皮纸、暗角、污渍、泛黄边缘或明显做旧纹理
  • 主体是黑色手绘线条+文字,有墨迹粗细变化
  • 重点概念用清爽的彩铅/马克笔质感强调(深蓝/珊瑚红/橄榄绿/柔和黄色),颜色轻快但不过饱和
  • 箭头和连线带有手绘的不完美感
  • 文字是手写体(英文可选手写风格,中文保持清晰可读)
  • 整体像一份明亮、温暖、信息充实的研究手抄报,不是复古笔记、不是幼稚漫画
  • 可以加入少量帮助理解的趣味符号:放大镜、星号、便签、圈注、手绘小灯泡、简化小图标
  • 趣味元素必须服务理解,不能抢走方法图主体
  • 主体图解应占画面 75%-85%,避免大块空白;如果页面留白明显,优先增加局部放大框、小例子、维度标注或对比说明
  • 每一页右下角有"手写"页码

paper-figure 风详细规范

  • 白底或极浅灰底,像 NeurIPS / Nature / Science 论文中的高质量方法总览图
  • 使用干净的矢量感模块:圆角矩形、矩阵小格、流程箭头、分组框、编号步骤
  • 配色克制但现代:黑/深灰为主,1-2个强调色(蓝、青、橙、紫任选其一到两种)
  • 结构比原论文图更清楚:保留核心机制,重新组织布局,避免照抄原图
  • 可以有小型结果示意、矩阵热力图、token序列、模块堆叠、对比路径
  • 标注像论文图注中的短标签:精准、短、专业
  • 适合横版 16:9、4:3 或竖版 2:3;README 首屏优先横版或宽图

工作流程

Step 1:分析论文 → 提取"可图解内容"

读完论文后,列出论文的所有内容点,然后只保留需要图解的部分

必须图解(每个1-2页):

  • 方法的整体流程/架构(输入→各模块→输出)
  • 每个核心创新机制(拆开看内部)
  • 最有说服力的那个实验结果

可选图解(如果方法复杂才加):

  • 方法的变体/扩展
  • 关键的数据处理流程
  • 与baseline的可视化对比

不图解:

  • 相关工作(文字提一句就行)
  • 多个类似的消融实验
  • 背景知识介绍

Step 2:给出推荐并确认需求

先输出一个简短推荐,不要立刻生成:

我建议生成 6 张:
1. 封面图:论文一句话贡献 + 视觉锚点
2. 方法总览图:解释整体输入、核心模块、输出
3. 核心机制A:拆开最重要的创新点
4. 核心机制B:解释训练/推理/数据流中的关键环节
5. 核心机制C:补足容易误解的内部细节
6. 关键结果图:用一张图说明为什么有效

也可以:
- 只生成 1 张总览图
- 生成 3 张:总览 + 2 张核心机制
- 扩展到 8-10 张,把每个机制讲得更细

请确认:
- 语言:中文 / English / 双语
- 风格:sketchnote / paper-figure
- 范围:只要封面/总览,还是生成全部推荐图?

如果用户没有回答,不要继续生成。

Step 3:确定页数

根据论文复杂度,AI只做推荐,最终由用户确认:

论文复杂度 推荐页数 内容分配
封面/传播图 1页 一张封面或高层总览,讲清楚论文做了什么
快速理解 2-3页 总览+核心机制+结果
中等(2个核心方法) 4-6页 封面/总览+2-3个机制+关键结果
复杂(3+个核心方法) 6-10页 封面/总览+每个机制1页+对比/结果

规则:最少1页,最多10页。宁少勿多——1张总览图讲清楚,比10张讲糊涂好。

Step 4:为每一页写详细的内容描述

不是"生成prompt",而是先用自然语言描述清楚这一页到底要表达什么

第3页:多头注意力机制的内部构造

这一页要讲清楚:Q、K、V是怎么算出来的,它们之间怎么交互。

画面布局(从左到右):
- 左侧:输入x,一个向量表示
- 中间上方:三条线分别到三个方框(Linear_Q, Linear_K, Linear_V)
- 三个方框各产出Q、K、V三个矩阵
- 中间核心区域:Q和K做点积→除以√dk→softmax→得到注意力权重
- 权重和V相乘→输出
- 右侧:多个这样的"头"并行排列,最后拼接

关键标注:
- 每个方框旁标运算和维度(如"Linear_Q: x→Q(d×dk)")
- Q×K^T的计算用可视化的矩阵乘法图(小格图)
- softmax后的权重用颜色深浅表示(越深=越关注)

要求:描述要具体到"这个箭头从哪到哪,这个方框里写什么字"。

同时检查每页的信息密度:

  • 如果只是大标题 + 少量模块,说明这一页太空,必须补充机制小例子、局部放大、输入输出维度或关键对比
  • 如果内容超过一页可读范围,拆成两页,不要把所有文字塞进同一张图
  • 封面图可以更概念化;机制细节图必须优先讲清楚“怎么做”

Step 5:生成图片

根据当前运行环境自动选择生图后端。为每一页创建prompt文件 → 用结构化prompt生成。

结构化prompt格式(参考但不照抄baoyu):

【类型】流程分解图
【风格】sketchnote
【语言】中文
【主题】多头注意力机制内部构造
【视觉结构】
- 水平布局,从左到右5个区域
- 每个区域用虚线框隔开
- 关键路径用粗箭头连接

【要标注的文字】
1. Input: x ∈ R^(n×d)
2. Q = xW_Q ... (完整标注)
...

【颜色限制】
- 背景:明亮浅米白,不要泛黄旧纸
- 主色:黑色手绘线条
- 强调色:深蓝/珊瑚红/橄榄绿/柔和黄色,少量使用
- 其他:保持清爽手抄报感,避免复古暗色

【禁止】
- 不要代码块
- 不要照片写实
- 不要3D渲染
- 不要生成用户没有确认的额外页面
- 不要旧羊皮纸、暗角、污渍、重纸纹、黄褐色复古调
- 不要大面积空白;主体图解占画面75%-85%

Step 6:输出

生成 [topic]-illustrated.md

# [论文标题] — 图解

## 论文信息
- 论文:[链接]
- 风格:sketchnote
- 页数:6

## 封面
![封面](00-cover.png)
**一句话**:[论文做了什么,为什么重要]

## 第1页:方法总览
![方法流程](01-method-overview.png)
**讲解**:整个方法从输入到输出的完整流程。关键看第X步,这是本文的创新。

## 第2页:核心机制A — [名称]
![核心机制A](02-mechanism-a.png)
**讲解**:这个机制解决了XX问题。具体做法是...关键设计在于...

[重复...]

## 总结:3个核心要点
1. [要点1]
2. [要点2]  
3. [要点3]

质量标准

好的图解

  • ✅ 一张图只看一眼就知道在讲什么
  • ✅ 标注文字精确、简练、不啰嗦
  • ✅ 流程箭头清晰,有明确的"从这里到那里"
  • ✅ 关键部分用颜色/大小做了视觉强调
  • ✅ 不看论文原文也能理解

差的图解

  • ❌ 信息堆砌,什么都想画进去
  • ❌ 文字太多,图变成了装饰
  • ❌ 流程不清晰,不知道先看哪后看哪
  • ❌ 画了但没解释——放了一张架构图但没标注关键点
  • ❌ 和论文Figure 1一模一样——那你画的有什么意义

参考文件

  • references/base-prompt.md — 图解生成基础规范(结构、文字、色彩要求)
  • references/styles/sketchnote.md — 温暖科研笔记风
  • references/styles/paper-figure.md — 论文框架图风
将论文或技术内容转化为高真实感AIGC幻灯片。通过叙事规划、逐页视觉导演及生图模型生成16:9图片,最终合成PPTX/PDF,适用于学术汇报与技术分享。
论文PPT AI生成PPT 不像AI的PPT 高质感幻灯片 逐页生图PPT
skills/paper-deck/SKILL.md
npx skills add zsyggg/paper-craft-skills --skill paper-deck -g -y
SKILL.md
Frontmatter
{
    "name": "paper-deck",
    "description": "将论文、技术文章或知识内容制作成高真实感的 AIGC 幻灯片。先做叙事结构和逐页视觉导演,再调用生图模型生成每一页 16:9 slide image,最后合成为 PPTX\/PDF。适合论文汇报、组会、公开课、技术分享、商业化研究展示;当用户提到“论文PPT”“AI生成PPT”“不像AI的PPT”“高质感幻灯片”“逐页生图PPT”时使用。"
}

Paper Deck — Visual Slide Director

把论文/知识内容做成看起来真的被设计过的幻灯片。

核心路线不是用 PPT 对象硬摆版式,而是:

  1. 先理解内容,做出 deck brief 和逐页叙事。
  2. 为每一页写清楚“这页要让观众看到什么、感到什么、记住什么”。
  3. 用生图模型生成 16:9 slide image。
  4. 合成 PPTX/PDF,并保留 prompts 作为可返修的源文件。

不可绕过的生图要求

Paper Deck 的 V1 是 raster-first AIGC slide image 工作流。除非用户明确要求“不要生图”“用代码画图”“只要可编辑 PPT”或“使用 HTML/SVG/Canvas 生成”,否则必须调用真实的 raster image generation backend 为每一页生成图片。

严格禁止把以下产物冒充为本 skill 的“生图页”:

  • 用 Python/Pillow、SVG、HTML/CSS、Canvas、Mermaid、matplotlib、PPT shapes 或任何本地绘图代码直接画出的整页图片
  • 用模板、纯排版脚本、截图、占位图或手工组合元素替代生图后端输出
  • 先本地画整页,再仅做轻微滤镜/后处理后当作 AIGC slide image

允许的本地处理仅限:

  • 移动、复制、重命名生图后端输出文件
  • 必要的格式转换、压缩、尺寸校验、PPTX/PDF 合成
  • 用户明确选择混合方案时,在生图背景上叠加少量可编辑文字层;此时必须在 deck-brief.md 和交付说明中明确记录“混合文字层”,不能声称整页文字都由生图模型完成

如果当前环境没有可用的 raster image generation backend,必须停止并说明缺少生图后端;不要退化成本地绘图替代方案。

何时使用

适合:

  • 论文组会、答辩、reading group、技术分享
  • 需要“一眼不像模板 PPT”的视觉汇报
  • 用户愿意接受每页是高质感图片,优先追求整体观感和传播效果
  • 需要逐页返修:重做第 N 页、换风格、加真实感、减少 AI 味

不适合:

  • 需要多人在 PowerPoint 里精细编辑每个文本框
  • 大量表格、财务报表、合规材料
  • 需要准确复制已有企业 PPT 母版

如果用户需要完全可编辑的 PPT,说明本 skill 的 V1 是 raster-first;可改用常规 PPTX 工具,或生成“图片背景 + 可编辑文字层”的混合方案。

工作流

Step 1: 输入分析

接受:

  • arXiv / DOI / 网页链接
  • PDF 路径
  • Markdown / 文本 / 文章
  • 已有大纲
  • 参考图片或参考 PPT 截图

如果是论文,优先复用 paper-analyzer 的阅读方式:读摘要、方法、实验、图表、结论;必要时搜索代码仓库。目标不是写长文,而是提取适合做 slide 的核心叙事。

输出并保存 analysis.md

  • 主题、受众、汇报场景
  • 论文/内容的 1 句话主张
  • 3-5 个必须讲清楚的核心点
  • 推荐页数、推荐风格、语言
  • 需要生成的图像类型:封面、机制图、流程图、数据页、结论页等
  • 可直接使用的真实素材:论文 Figure/Table、PDF 截图、用户提供的截图、代码截图、实验曲线

Step 2: 生成前确认

默认必须确认,不要直接生成图片。除非用户明确说“直接生成/不用确认/按默认来”。

询问时控制在 3 个问题以内:

  1. 页数和用途:组会 / 答辩 / 公开分享 / 商业汇报,需要几页?
  2. 风格:见 references/style-system.md
  3. 是否插入真实素材:是否允许从 PDF/论文图表中截图,或由用户提供截图/图片?如果允许,说明预计第几页使用哪些真实素材。

推荐话术:

我建议做 12 页,风格用 journal-minimal:像 Nature/IEEE 论文图 + 正式学术汇报,清晰、克制、不花哨。
也可以换成 business-research 做商业研究分享,warm-notes 做手记风,或 liquid-glass 做 Apple 式玻璃质感。
这篇论文我建议在第 4 页插入原论文方法图局部截图,第 8 页插入实验曲线/表格截图,再基于这些真实素材做设计化排版。
确认后我会先生成 outline.md 和每页 prompt,再逐页出图并合成 PPTX/PDF。

Step 3: Deck Brief

保存 deck-brief.md。必须包含:

  • style_preset
  • audience
  • slide_count
  • language
  • visual_rules
  • do_not_use
  • reference_images(如有)
  • source_visual_plan:哪些页使用真实图表/截图,来源和处理方式

风格细节按需读取 references/style-system.md。 真实素材策略按需读取 references/source-visuals.md

Step 4: Outline

保存 outline.md。每页用固定结构:

## 01. Slide Title
- Role: cover / context / method / mechanism / evidence / result / takeaway
- Message: 这一页唯一要讲清楚的观点
- Visual: 画面主视觉和构图
- Text: 页面上允许出现的短文字
- Evidence: 引用的论文图表/公式/实验数据/代码位置
- Source visual: 是否使用真实截图/论文图表;来源、裁剪范围和落位
- Repair handle: 后续返修时可引用的定位描述

规则:

  • 每页只承载一个主观点。
  • 页面文字尽量少;复杂解释放 speaker script 或备注里。
  • 机制页优先画“输入 → 处理 → 输出”,不要画抽象灵感。
  • 数据页只放最有说服力的 1-3 个数字。
  • 真实论文图/截图通常比凭空生成更可信;能用真实素材时优先规划真实素材落位。
  • 不要过度留白。主视觉、图表或证据区域通常应占画面 60%-80%,除非是封面或章节页。
  • 8 页以上必须有节奏变化:封面、问题、方法、机制、证据、结论交替。

Step 5: Prompt Files

每页必须先写 prompt 文件,再调用任何生图工具。

路径:

paper-deck/{topic-slug}/
├── analysis.md
├── deck-brief.md
├── outline.md
├── prompts/
│   ├── 01-slide-cover.md
│   ├── 02-slide-context.md
│   └── ...
├── images/
│   ├── 01-slide-cover.png
│   ├── 02-slide-context.png
│   └── ...
├── {topic-slug}.pptx
└── {topic-slug}.pdf

Prompt 写法读取 references/prompt-template.md

硬规则:

  • prompt 必须明确 16:9。
  • prompt 里要写清楚风格、构图、文字语言、文字数量限制。
  • 不要让模型生成页码、logo、水印、PPT 外壳。
  • 如果需要精准文字,尽量减少图片内文字;可以后续做混合文字层。
  • 如果本页使用真实素材,prompt 必须说明素材如何作为画面的一部分:嵌入、裁切、玻璃面板承载、旁注、放大框,而不是让模型凭空重画事实。

Step 6: 生成图片

图片后端选择:

  1. Codex 环境优先用内置 imagegen
  2. 如果用户指定 baoyu-imagine、Gemini、OpenAI、Seedream 等后端,按用户指定。
  3. 如果没有可用生图后端,停止并告诉用户需要一个 raster image backend。

生图门禁:

  • 在调用任何生图工具之前,必须已经写好对应页的 prompts/NN-*.md
  • 每一页最终进入 images/ 的主图必须来自真实 raster image generation backend。
  • 不允许用 Python/Pillow、SVG、HTML/CSS、Canvas、Mermaid、matplotlib、PPT shapes 或本地绘图脚本生成整页主图来替代生图。
  • 不允许因为担心中文文字错误,就绕过生图后端改成本地绘制整页。正确做法是减少图片内文字、改 prompt 重生成,或在用户同意的情况下使用“生图背景 + 可编辑文字层”的混合方案。
  • 如果使用混合文字层,images/ 中仍必须保留每页的生图背景或生图整页来源,并在 deck-brief.md 记录哪些文字是后叠加的。
  • 生成后要在 generation-log.md 记录每页使用的后端、prompt 文件、输出文件、生成时间;没有生成记录的图片不能作为最终交付页。

生成策略:

  • 先生成第 1 页作为风格锚点。
  • 后续页如果后端支持 reference image,就用第 1 页作为风格参考,降低漂移。
  • 每 3-4 页检查一次缩略图,发现风格漂移就修 prompt 再继续。
  • 保存失败页,不要覆盖成功页。

Step 7: 合成 PPTX/PDF

生成完图片后运行:

python3 <SKILL_ROOT>/scripts/merge_deck.py paper-deck/{topic-slug}

脚本会读取 images/NN-*.png|jpg|webp,输出同名 .pptx.pdf。每张图片铺满一页 16:9。

Step 8: 质量检查

交付前按 references/quality-gate.md 检查:

  • 是否一眼像真实设计作品,而不是模板堆砌
  • 每页是否只有一个主观点
  • 是否有过多无意义留白;关键内容是否占据足够画面
  • 真实素材页是否明确记录来源、页码/图号和落位
  • 风格是否一致
  • 图片文字是否清晰、无错别字、无伪字
  • 是否存在 AI 常见问题:假 UI、假 logo、乱码标签、过度赛博、塑料 3D、无意义装饰
  • generation-log.md 是否存在,且每一页都记录了真实 raster image generation backend、prompt 文件和输出文件
  • 是否存在本地绘图/模板/截图冒充生图页;如有,必须重做或明确改成用户确认过的非 paper-deck 路线
  • PPTX/PDF 是否能打开,页数是否正确

Step 9: 返修

返修时永远先改源文件:

用户说 操作
“第 5 页更学术一点” prompts/05-*.md,保留旧图,生成新图
“统一成第 1 页的质感” 把第 1 页风格锚点追加到相关 prompts
“第 7 页文字太多” 修改 outline 的 Text,再改 prompt
“只重做背景,不动内容” 在 prompt 中保留 Message/Text,重写 Visual
“新增一页机制细节” 更新 outline,新增 prompt,生成图片,重跑合成脚本

不要用程序在生成图上涂改文字。文字错了就改 prompt 重生成,或切换到混合文字层方案。

参考文件

  • references/style-system.md:风格预设和选择规则
  • references/layouts.md:常用页面角色与构图
  • references/source-visuals.md:PDF 截图、论文图表、用户图片的使用策略
  • references/prompt-template.md:逐页生图 prompt 模板
  • references/quality-gate.md:交付前检查和返修标准

Главная - Вики-сайт
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-10 09:52
浙ICP备14020137号-1 $Гость$