mcpField
B
baoyu-slide-deck

baoyu-slide-deck

github.com/jimliu文档处理27.0k31.3k 次安装7 周前更新
代码仓库

关于 baoyu-slide-deck

baoyu-slide-deck 是将内容制作成幻灯片图片的技能,适用于需要阅读和分享的演示材料。它提供多种风格预设与受众、语言和页数选项,也可将生成的幻灯片合并为 PPTX 或 PDF。

主要功能

  1. 01将内容生成幻灯片图片
  2. 02提供 17 种风格预设
  3. 03可指定受众、语言和页数
  4. 04支持大纲或提示词单独输出
  5. 05将图片合并为 PPTX 或 PDF

适用场景

  1. 01制作便于阅读和分享的内容幻灯片
  2. 02为教程或技术说明整理视觉叙述
  3. 03将生成的幻灯片导出为 PPTX 或 PDF

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jimliu/baoyu-skills --skill baoyu-slide-deck

安装后在 Claude Code 中输入/baoyu-slide-deck确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
analysis-framework.md
base-prompt.md
codex-imagegen.md
confirmation.md
content-rules.md
design-guidelines.md
layouts.md
modification-guide.md
outline-template.md
references/config/
preferences-schema.md
references/dimensions/
density.md
mood.md
presets.md
texture.md
typography.md
references/styles/
blueprint.md
bold-editorial.md
chalkboard.md
corporate.md
dark-atmospheric.md
editorial-infographic.md
fantasy-animation.md
hand-drawn-edu.md
intuition-machine.md
minimal.md
notion.md
pixel-art.md
scientific.md
sketch-notes.md
vector-illustration.md

详细介绍

幻灯片生成器

将内容转换为专业的幻灯片图片。此幻灯片组旨在供用户阅读和分享(幻灯片内容自明、滚动浏览逻辑清晰、适合社交媒体),而非用于现场演示——以下所有版式和信息密度决策均基于这一假设。

用户输入工具

当此技能向用户提问时,请遵循以下工具选择规则(按优先级排序):

  1. 优先使用当前 Agent 运行时提供的内置用户输入工具,例如 AskUserQuestion、request_user_input、clarify、ask_user 或任何等效工具。
  2. 备用方案:如果不存在此类工具,则发送带编号的纯文本消息,并请用户针对每个问题回复所选编号或答案。
  3. 批量提问:如果工具支持每次调用提出多个问题,则将所有适用问题合并到一次调用中;如果一次只能提出一个问题,则按优先级逐个提问。

下方列出的 AskUserQuestion 用法仅为示例——在其他运行时中,请替换为本地等效工具。

图像生成工具

此技能需要渲染图像时,请按以下顺序确定后端:

  1. 当前请求指定的后端——如果用户在当前消息中指定了某个后端,请使用该后端。
  2. 已保存的偏好——如果 EXTEND.md 将 preferred_image_backend 设为当前可用的后端,请使用该后端。
  3. 自动选择(偏好设为 auto、未设置,或指定的后端不可用时):
    • Codex(imagegen)——首先检查可用技能或工具清单。如果其中列出了名为 imagegen 的技能,则说明你正在 Codex 中运行,必须使用该技能:通过 Skill 工具调用,并设置 skill: "imagegen",传入已保存的提示词文件内容(以及 Codex imagegen 自身参数中要求的输出路径和宽高比)。Codex imagegen 是该运行时的官方栅格图像后端,其优先级高于任何非原生技能(例如 baoyu-image-gen),除非用户已明确指定了其他 preferred_image_backend。
    • 通过 codex exec 使用 Codex(codex-imagegen)——如果当前运行时未提供原生 imagegen 技能,但 codex CLI 已在 PATH 中且已登录 Codex,则通过 baoyu-image-gen --provider codex-cli 调用(优先);如果 baoyu-image-gen 不可用,则直接调用捆绑的包装程序。详情、参数和运行时发现流程请参阅 references/codex-imagegen.md——仅在选择此分支时加载该文件。
    • Cursor(GenerateImage)——如果运行时提供原生 GenerateImage 工具,则说明你正在 Cursor 中运行,其优先级高于任何非原生技能,与 Codex imagegen 相同。请注意两个限制:(a)该工具没有宽高比参数——请在传入 description 的提示词中明确说明目标宽高比或尺寸;(b)该工具不接受输出目录——它会将文件保存到工具管理的位置,因此生成后请将文件复制或移动到此技能要求的输出路径(例如 outputs/.../NN-xxx.png)。参考图像请放入 reference_image_paths。
    • 其他运行时原生工具——如果运行时提供其他原生图像工具(例如 Hermes image_generate),请以相同方式使用。
    • 否则,如果恰好安装了一个非原生后端(例如 baoyu-image-gen),请使用该后端。
    • 否则(安装了多个非原生后端,且没有运行时原生工具),请向用户询问一次——并与其他初始问题合并提问。
  4. 如果没有可用后端,请告知用户,并询问接下来如何处理。 ⛔ 绝不要使用 SVG、HTML、canvas 或其他基于代码的渲染方式替代栅格图像生成。 Codex imagegen 自身的说明指出,当输出应为位图素材,而非仓库原生代码或矢量图时,应使用它。如果在步骤 3 中无法找到栅格图像后端,请转到步骤 4 并询问用户——不要悄悄输出 SVG、编写内联 <svg> 标记,或生成 HTML/CSS 艺术图作为替代。即使文章或章节看起来“像示意图”,也同样适用:调用此规则的使用方技能已确定它需要的是栅格图像。

⛔ 绝不要通过在生成的位图上涂抹来修复渲染出的文本。 不要使用 ImageMagick、Pillow、Canvas、SVG、HTML/CSS、OCR 脚本或任何其他编程叠加方式,去遮盖、改写、擦除、描边或替换已生成幻灯片图像中的标题、项目符号或任何其他文本。如果文本有误或不清晰,请使用修正后的提示词重新生成、简化幻灯片上的文字,或询问用户应保留哪个不完美的候选版本。

设置 preferred_image_backend: ask 会强制每次运行都显示步骤 3 的提示,无论是否有可用后端。用户可以通过下方的 ## Changing Preferences 部分更改固定的后端。

提示词文件要求(硬性):在调用任何后端之前,必须将每张图像的完整最终提示词写入 prompts/ 下的独立文件(命名格式:NN-slide-[slug].md)。该文件是可复现记录,也让你无需重新生成提示词即可切换后端。

上文提到的具体工具名称(imagegen、GenerateImage、image_generate、baoyu-image-gen)仅为示例——请在遵守同一规则的前提下替换为本地对应工具。

批量生成策略

当前生成组的所有提示词文件保存并验证完毕后,默认批量生成幻灯片图像。

优先级顺序:

  1. 如果所选后端提供原生批处理/多任务接口,请使用该接口。每项任务都必须保留各自的提示词文件、输出路径、纵横比、会话 ID 和直接引用图像。
  2. 如果没有原生批处理接口,但运行环境支持并行工具调用,则每次最多并行生成 generation_batch_size 张幻灯片图像。默认值:4。当前消息中的明确请求(例如 --batch-size 4 或“并行4张一起生成”)优先于 EXTEND.md。
  3. 如果既不支持原生批处理,也不支持并行工具调用,则按顺序生成。

规则:

  • 选定的所有幻灯片提示词文件都已存在于磁盘上之前,绝不要开始第一批生成。
  • 失败项重试一次,不要重新生成成功项。
  • 不要仅为并行渲染图像而使用子 Agent。子 Agent 仅用于单独的提示词迭代或创意探索。
  • 所有选定的幻灯片图像生成完毕后,才能合并 PPTX/PDF。

确认策略

默认行为:生成前先确认。

  • 将明确调用技能、文件路径、匹配的信号/预设和 EXTEND.md 默认设置都视为建议输入。它们均不允许跳过确认。
  • 用户完成步骤 2 之前,不要开始步骤 3 或之后的步骤。
  • 只有当前请求明确要求跳过确认时,才可跳过,例如:“直接生成”“不用确认”“跳过确认”“按默认出幻灯片”或同义表达。
  • 如果明确跳过确认,请在生成前的下一条面向用户的更新中说明假定的风格/受众/幻灯片数量/语言/后端。

语言

在问题、进度报告、错误消息和完成摘要中,使用用户所用的语言。技术词条(风格名称、文件路径、代码)保留英文。

脚本目录

{baseDir} = 此 SKILL.md 所在目录。解析 ${BUN_X}:优先使用 bun;否则使用 npx -y bun;若两者都不可用,则建议运行 brew install oven-sh/bun/bun。

脚本用途
scripts/merge-to-pptx.ts将幻灯片合并为 PowerPoint
scripts/merge-to-pdf.ts将幻灯片合并为 PDF

选项

选项描述
--style <name>预设(见下文的预设),custom 或自定义风格名称
--audience <type>初学者 / 中级用户 / 专家 / 高管 / 通用
--lang <code>输出语言(en、zh、ja 等)
--slides <N>目标幻灯片数量(建议 8–25 页,最多 30 页)
--ref <files...>按幻灯片应用参考图片(风格 / 配色 / 构图 / 主题)
--batch-size <n>本次运行临时生成幻灯片图片的批次大小。默认值:EXTEND.md 中的 generation_batch_size,否则为 4。限制在 1–8 之间。
--outline-only完成大纲后停止
--prompts-only完成提示词后停止(跳过图片生成)
--images-only跳转至步骤 7;需要已有 prompts/
--regenerate <N>重新生成指定幻灯片:3 或 2,5,8

风格系统

17 种预设,涵盖技术、教育、生活方式和编辑设计等用例。每种预设由四个维度组合而成(纹理 / 氛围 / 字体排版 / 信息密度)。如果用户在第 1 轮选择“自定义维度”,确认流程的第 2 轮会针对每个维度提问一个问题——选项和原文内容见 references/confirmation.md。

预设(17 种)
预设维度适用场景
blueprint(默认)网格 + 冷色调 + 技术风 + 均衡架构、系统设计
chalkboard自然 + 暖色调 + 手写风 + 均衡教育、教程
corporate简洁 + 专业 + 几何风 + 均衡投资者演示文稿、提案
minimal简洁 + 中性色调 + 几何风 + 极简高管简报
sketch-notes自然 + 暖色调 + 手写风 + 均衡教育、教程
hand-drawn-edu自然 + 马卡龙色调 + 手写风 + 均衡教育示意图、流程讲解
watercolor自然 + 暖色调 + 人文风 + 极简生活方式、健康
dark-atmospheric简洁 + 深色调 + 编辑风 + 均衡娱乐、游戏
notion简洁 + 中性色调 + 几何风 + 密集产品演示、SaaS
bold-editorial简洁 + 鲜艳 + 编辑风 + 均衡产品发布、主题演讲
editorial-infographic简洁 + 冷色调 + 编辑风 + 密集技术讲解、研究
fantasy-animation自然 + 鲜艳 + 手写风 + 极简教育叙事
intuition-machine简洁 + 冷色调 + 技术风 + 密集技术文档、学术内容
pixel-art像素风 + 鲜艳 + 技术风 + 均衡游戏、开发者演讲
scientific简洁 + 冷色调 + 技术风 + 密集生物、化学、医学
vector-illustration简洁 + 鲜艳 + 人文风 + 均衡创意内容、儿童内容
vintage纸张质感 + 暖色调 + 编辑风 + 均衡历史、传统文化

各预设的详细规格:references/styles/<preset>.md。预设到维度的映射:references/dimensions/presets.md。

维度(选择“自定义维度”时)
维度选项用途
纹理简洁、网格、自然、像素、纸张背景处理
氛围专业、暖色调、冷色调、鲜艳、深色调、中性色调、马卡龙色调色彩温度
字体排版几何风、人文风、手写风、编辑风、技术风标题 / 正文样式
信息密度极简、均衡、密集每张幻灯片的信息量

各维度的完整规格:references/dimensions/*.md。

自动选择

将内容信号与预设匹配。选择信号关键词出现在源内容中的第一行;如果没有匹配项,则使用 blueprint。

源内容中的信号预设
教程、学习、教育、指南、初学者sketch-notes
手绘、信息图、图表、流程、入门引导hand-drawn-edu
课堂、教学、学校、黑板chalkboard
架构、系统、数据、分析、技术blueprint
创意、儿童、小孩、可爱vector-illustration
简报、学术、研究、双语intuition-machine
高管、极简、整洁、简单minimal
SaaS、产品、仪表盘、指标notion
投资者、季度、商业、企业corporate
发布、营销、主题演讲、杂志bold-editorial
娱乐、音乐、游戏、氛围dark-atmospheric
讲解、新闻、科学传播editorial-infographic
故事、奇幻、动画、魔法fantasy-animation
游戏、复古、像素、开发者pixel-art
生物学、化学、医学、科学scientific
历史、遗产、复古、探险vintage
生活方式、健康、旅行、艺术watercolor
幻灯片数量启发式规则
源内容长度建议幻灯片数量
< 1000 个词5-10
1000-3000 个词10-18
3000-5000 个词15-25
> 5000 个词20-30(考虑拆分)

参考图像

用户可以提供参考图像,以指导风格、配色、布局或主题。

接收方式:通过 --ref <files...> 接收,或在用户提供文件路径 / 在对话中粘贴图像时接收。

  • 文件路径 → 复制到 {slide-deck-dir}/refs/NN-ref-{slug}.{ext}
  • 粘贴的图像没有路径 → 询问路径,或以文字形式口头提取风格特征作为替代方案

使用模式(每个参考图像):

用途效果
direct将文件作为每张幻灯片的参考图像传递给后端
style提取风格特征(线条处理、纹理、氛围),并附加到每张幻灯片的提示词正文中
palette提取十六进制颜色,并附加到每张幻灯片的提示词正文中

在每张幻灯片的提示词 frontmatter 中记录参考图像:

references:
  - ref_id: 01
    filename: 01-ref-brand.png
    usage: direct

生成时,确认文件存在。如果 usage: direct 且后端接受参考图像(例如 baoyu-image-gen --ref),则在每张幻灯片中传递该文件。否则,将提取的 style / palette 特征嵌入提示词文本中。

文件布局

slide-deck/{topic-slug}/
├── source-{slug}.{ext}
├── outline.md
├── prompts/NN-slide-{slug}.md
├── NN-slide-{slug}.png
├── {topic-slug}.pptx
└── {topic-slug}.pdf

Slug:2-4 个词,采用 kebab-case,从主题中提取。“Introduction to Machine Learning” → intro-machine-learning。

备份规则(适用于所有步骤):如果即将写入的文件已存在,则在写入新文件之前,将其重命名为 <name>-backup-YYYYMMDD-HHMMSS.<ext>。这可以保护用户编辑内容,并支持回滚。

工作流

复制此检查清单,并在完成各项后勾选:

- [ ] Step 1: Setup & analyze
- [ ] Step 2: Confirmation ⚠️ REQUIRED (Round 1; Round 2 only if "Custom dimensions")
- [ ] Step 3: Generate outline
- [ ] Step 4: Review outline (conditional)
- [ ] Step 5: Generate prompts
- [ ] Step 6: Review prompts (conditional)
- [ ] Step 7: Generate images
- [ ] Step 8: Merge to PPTX/PDF
- [ ] Step 9: Output summary
第 1 步:设置与分析

1.1 加载 EXTEND.md — 按以下顺序检查路径;以第一个匹配项为准:

路径范围
.baoyu-skills/baoyu-slide-deck/EXTEND.md项目
${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-slide-deck/EXTEND.mdXDG
$HOME/.baoyu-skills/baoyu-slide-deck/EXTEND.md用户主目录

如果找到,请读取、解析并打印摘要(风格 / 受众 / 语言 / 审核 / 生成批次大小)。如果未找到,则使用默认设置继续 — 首次设置不会阻止此技能运行。架构:references/config/preferences-schema.md。

1.2 分析内容 — 按照 references/analysis-framework.md 执行:对内容分类、检测语言、记录风格选择信号、根据篇幅估算幻灯片数量(参见上文风格系统中的幻灯片数量启发规则),生成主题 slug。将源内容保存为 source.md(如有备份规则,则遵循该规则)。

1.3 检查现有输出 ⚠️ 第 2 步前必须执行。如果 slide-deck/{topic-slug}/ 已存在,请询问如何继续 — 四个选项(重新生成大纲 / 重新生成图像 / 备份后重新生成 / 退出),具体措辞见 references/confirmation.md。

将分析结果保存到 analysis.md:主题、受众、信号、推荐风格和幻灯片数量、语言检测结果。

第 2 步:确认 ⚠️ 必须执行

硬性门槛:根据确认政策,此步骤为必需步骤 — 用户在此处确认(或在当前请求中明确选择不确认,使用“直接生成” / 等效措辞)之前,不得开始第 3 步及后续步骤。

第 1 轮(始终执行) — 在一次 AskUserQuestion 调用中集中询问五个问题:风格、受众、幻灯片数量、是否审核大纲、是否审核提示词。具体选项见 references/confirmation.md。

提问前显示摘要:

  • 内容类型 + 主题
  • 检测到的语言
  • 推荐风格(根据信号得出)
  • 推荐幻灯片数量(根据篇幅得出)

第 2 轮(仅在第 1 轮选择“自定义维度”时执行) — 集中询问四个问题:纹理、氛围、排版、信息密度。具体选项见 references/confirmation.md。这四个答案将替换预设。

确认后:使用最终选项更新 analysis.md,并存储 Q4/Q5 中的 skip_outline_review / skip_prompt_review 标记。

第 3 步:生成大纲

确定风格:预设 → references/styles/{preset}.md;自定义维度 → 组合 references/dimensions/ 中的文件。根据确定的风格构建 STYLE_INSTRUCTIONS,应用已确认的受众、语言和幻灯片数量,遵循 references/outline-template.md,并保存为 outline.md。

如果指定了 --outline-only,则在此处停止。如果设置了 skip_outline_review,则跳过第 4 步。

第 4 步:审核大纲(有条件执行)

显示逐张幻灯片的表格(# | Title | Type | Layout),并附上总数和确定的风格。询问:继续 / 先编辑大纲 / 重新生成 — 具体措辞见 references/confirmation.md。

选择“先编辑大纲”时,告知用户编辑 outline.md,并在准备好后再次询问。选择“重新生成大纲”时,返回第 3 步。

第 5 步:生成提示词

为大纲中的每张幻灯片:

  1. 读取 references/base-prompt.md
  2. 从大纲中提取 STYLE_INSTRUCTIONS(不要重新读取风格文件)
  3. 添加该幻灯片的内容
  4. 如果指定了 Layout:,则加入 references/layouts.md 中的指导
  5. 保存到 prompts/NN-slide-{slug}.md(遵循备份规则)

如果指定了 --prompts-only,则在此处停止。如果设置了 skip_prompt_review,则跳过第 6 步。

第 6 步:审核提示词(有条件执行)

显示提示词索引(# | Filename | Slide Title),并询问:继续 / 先编辑提示词 / 重新生成 — 具体措辞见 references/confirmation.md。各选项的处理方式与第 4 步相同。

第 7 步:生成图像
  1. 根据顶部的 Image Generation Tools 规则确定图像后端——如果安装了多个后端,只询问一次。
    • codex-imagegen 调用方式:如果规则确定使用 codex-imagegen,请参阅 references/codex-imagegen.md,了解调用约定(首选 baoyu-image-gen --provider codex-cli 路径、运行时包装器发现、参数说明、标准输出架构、批处理语义——每次调用 n=1,因此幻灯片批次必须为每张幻灯片分别调用一次包装器)。
  2. 确认每个 prompts/NN-slide-{slug}.md 文件都存在(硬性要求;无论使用哪种后端,提示词文件都是可复现记录)。
  3. 会话 ID:slides-{topic-slug}-{timestamp}——仅在后端支持会话时传递。
  4. 为选定的幻灯片创建任务列表,包含每张幻灯片的提示词文件、输出 PNG 路径、纵横比、会话 ID 和已验证的直接引用。
  5. 按照 ## Batch Generation Policy 分批生成幻灯片图像:优先使用后端原生批处理,其次使用运行时并行工具调用,最后才按顺序处理。分发前对 PNG 文件应用备份规则。报告进度时使用 Generated X/N。仅对失败的项目重试一次,然后报告错误。

--regenerate N 会直接跳转到此步骤,仅处理指定的幻灯片。--images-only 会从此处开始,并使用现有提示词。

第 8 步:合并
${BUN_X} {baseDir}/scripts/merge-to-pptx.ts <slide-deck-dir>
${BUN_X} {baseDir}/scripts/merge-to-pdf.ts <slide-deck-dir>
第 9 步:总结
Slide Deck Complete!
Topic: [topic]
Style: [preset or "custom: texture+mood+typography+density"]
Location: [directory]
Slides: N

- 01-slide-cover.png
- ...
- NN-slide-back-cover.png

Outline: outline.md
PPTX: {topic-slug}.pptx
PDF: {topic-slug}.pdf

幻灯片修改

操作方法
编辑先更新 prompts/NN-slide-{slug}.md,然后运行 --regenerate N
添加在相应位置创建新的提示词,生成图像,将后续的 NN 重新编号(slug 保持不变),更新 outline.md,重新合并
删除删除 PNG 和提示词,将后续内容重新编号,更新 outline.md,重新合并

重新生成图像前,务必先更新提示词文件——这样可确保 prompts 目录是唯一事实来源,并使更改可复现。重新编号时只更改 NN;slug 保持稳定,以确保引用仍然有效。

文本修正政策:

  • 如果幻灯片的标题、项目符号或任何其他渲染文本存在拼写错误、乱码、难以阅读或视觉效果不佳等问题,请勿使用代码修补位图。
  • 对于文本修正的重新生成,请编写新的提示词文件并指定新的输出路径,以便保留有缺陷的候选图像供对比。
  • 后期处理仅限于裁剪、调整大小、压缩或格式转换,不得更改文本或主要构图。

完整详情请参阅 references/modification-guide.md。

参考资料

文件内容
references/confirmation.md每项确认所用的 AskUserQuestion 选项原文
references/analysis-framework.md内容分析框架
references/outline-template.md大纲结构
references/base-prompt.md图像生成的基础提示词正文
references/layouts.md布局选项
references/design-guidelines.md受众、排版、颜色选择
references/content-rules.md内容指南
references/modification-guide.md编辑、添加和删除工作流
references/styles/<preset>.md各预设的规范
references/dimensions/*.md各维度的规范
references/config/preferences-schema.mdEXTEND.md 架构

注意事项

  • 每张幻灯片的图像生成耗时约为 10-30 秒;请在处理过程中报告进度。
  • 对于敏感的公众人物,优先使用风格化的替代方案,以避免肖像相似性问题。
  • 如果后端支持会话,请通过会话 ID 保持视觉风格一致。

更改偏好设置

EXTEND.md 位于步骤 1.1 中列出的第一个匹配路径。有两种更改方式:

  • 直接编辑 — 打开 EXTEND.md 并更改字段。完整架构:references/config/preferences-schema.md。
  • 常见单行修改:
    • preferred_image_backend: auto — 默认值;优先使用运行时原生工具,若只有一个已安装的后端,则回退使用该后端;仅当存在多个非原生后端时才会询问。
    • preferred_image_backend: codex-imagegen — 固定使用 Codex 内置功能。
    • preferred_image_backend: baoyu-image-gen — 固定使用 baoyu-image-gen 技能。
    • preferred_image_backend: ask — 每次运行时确认后端。
    • generation_batch_size: 4 — 默认并发渲染的幻灯片图片数量,前提是后端/运行时支持批量或并行生成。
    • preferred_style: blueprint、preferred_audience: experts、language: zh。

评论

支持 Markdown