baoyu-slide-deck by jimliu/baoyu-skills
npx skills add https://github.com/jimliu/baoyu-skills --skill baoyu-slide-deck将内容转换为专业的幻灯片图像。
/baoyu-slide-deck path/to/content.md
/baoyu-slide-deck path/to/content.md --style sketch-notes
/baoyu-slide-deck path/to/content.md --audience executives
/baoyu-slide-deck path/to/content.md --lang zh
/baoyu-slide-deck path/to/content.md --slides 10
/baoyu-slide-deck path/to/content.md --outline-only
/baoyu-slide-deck # 然后粘贴内容
代理执行说明:
{baseDir}{baseDir}/scripts/<script-name>.ts${BUN_X} 运行时:如果已安装 bun → bun;如果 可用 → ;否则建议安装 bun广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
npxnpx -y bun| 脚本 | 用途 |
|---|---|
scripts/merge-to-pptx.ts | 将幻灯片合并到 PowerPoint |
scripts/merge-to-pdf.ts | 将幻灯片合并到 PDF |
| 选项 | 描述 |
|---|---|
--style <name> | 视觉风格:预设名称、custom 或自定义风格名称 |
--audience <type> | 目标受众:初学者、中级、专家、高管、普通读者 |
--lang <code> | 输出语言(en、zh、ja 等) |
--slides <number> | 目标幻灯片数量(建议 8-25,最多 30) |
--outline-only | 仅生成大纲,跳过图像生成 |
--prompts-only | 生成大纲 + 提示词,跳过图像 |
--images-only | 从现有提示词目录生成图像 |
--regenerate <N> | 重新生成特定幻灯片:--regenerate 3 或 --regenerate 2,5,8 |
根据内容长度确定幻灯片数量:
| 内容 | 幻灯片数量 |
|---|---|
| < 1000 词 | 5-10 |
| 1000-3000 词 | 10-18 |
| 3000-5000 词 | 15-25 |
5000 词 | 20-30(考虑拆分)
| 预设 | 维度 | 最适合 |
|---|---|---|
blueprint (默认) | 网格 + 冷色调 + 技术感 + 平衡 | 架构、系统设计 |
chalkboard | 有机感 + 暖色调 + 手写体 + 平衡 | 教育、教程 |
corporate | 简洁 + 专业 + 几何感 + 平衡 | 投资者演示、提案 |
minimal | 简洁 + 中性 + 几何感 + 极简 | 高管简报 |
sketch-notes | 有机感 + 暖色调 + 手写体 + 平衡 | 教育、教程 |
watercolor | 有机感 + 暖色调 + 人文感 + 极简 | 生活方式、健康 |
dark-atmospheric | 简洁 + 暗色 + 编辑感 + 平衡 | 娱乐、游戏 |
notion | 简洁 + 中性 + 几何感 + 密集 | 产品演示、SaaS |
bold-editorial | 简洁 + 鲜艳 + 编辑感 + 平衡 | 产品发布、主题演讲 |
editorial-infographic | 简洁 + 冷色调 + 编辑感 + 密集 | 技术讲解、研究 |
fantasy-animation | 有机感 + 鲜艳 + 手写体 + 极简 | 教育叙事 |
intuition-machine | 简洁 + 冷色调 + 技术感 + 密集 | 技术文档、学术 |
pixel-art | 像素风 + 鲜艳 + 技术感 + 平衡 | 游戏、开发者演讲 |
scientific | 简洁 + 冷色调 + 技术感 + 密集 | 生物学、化学、医学 |
vector-illustration | 简洁 + 鲜艳 + 人文感 + 平衡 | 创意、儿童内容 |
vintage | 纸张感 + 暖色调 + 编辑感 + 平衡 | 历史、文化遗产 |
| 维度 | 选项 | 描述 |
|---|---|---|
| 纹理 | clean, grid, organic, pixel, paper | 视觉纹理和背景处理 |
| 氛围 | professional, warm, cool, vibrant, dark, neutral | 色温和调色板风格 |
| 排版 | geometric, humanist, handwritten, editorial, technical | 标题和正文文本样式 |
| 密度 | minimal, balanced, dense | 每张幻灯片的信息密度 |
完整规格:references/dimensions/*.md
| 内容信号 | 预设 |
|---|---|
| tutorial, learn, education, guide, beginner | sketch-notes |
| classroom, teaching, school, chalkboard | chalkboard |
| architecture, system, data, analysis, technical | blueprint |
| creative, children, kids, cute | vector-illustration |
| briefing, academic, research, bilingual | intuition-machine |
| executive, minimal, clean, simple | minimal |
| saas, product, dashboard, metrics | notion |
| investor, quarterly, business, corporate | corporate |
| launch, marketing, keynote, magazine | bold-editorial |
| entertainment, music, gaming, atmospheric | dark-atmospheric |
| explainer, journalism, science communication | editorial-infographic |
| story, fantasy, animation, magical | fantasy-animation |
| gaming, retro, pixel, developer | pixel-art |
| biology, chemistry, medical, scientific | scientific |
| history, heritage, vintage, expedition | vintage |
| lifestyle, wellness, travel, artistic | watercolor |
| 默认 | blueprint |
幻灯片设计用于阅读和分享,而非现场演示:
参见 references/design-guidelines.md 了解:
参见 references/layouts.md 了解布局选项。
slide-deck/{topic-slug}/
├── source-{slug}.{ext}
├── outline.md
├── prompts/
│ └── 01-slide-cover.md, 02-slide-{slug}.md, ...
├── 01-slide-cover.png, 02-slide-{slug}.png, ...
├── {topic-slug}.pptx
└── {topic-slug}.pdf
Slug:提取主题(2-4 个词,kebab-case)。示例:"Introduction to Machine Learning" → intro-machine-learning
冲突处理:参见步骤 1.3 了解现有内容检测和用户选项。
检测优先级:
--lang 标志(显式)language 设置规则:所有响应均使用用户的首选语言:
技术术语(风格名称、文件路径、代码)保持英文。
复制此清单并在完成项目时勾选:
幻灯片进度:
- [ ] 步骤 1:设置与分析
- [ ] 1.1 加载偏好设置
- [ ] 1.2 分析内容
- [ ] 1.3 检查现有内容 ⚠️ 必需
- [ ] 步骤 2:确认 ⚠️ 必需(第 1 轮,可选第 2 轮)
- [ ] 步骤 3:生成大纲
- [ ] 步骤 4:审阅大纲(条件性)
- [ ] 步骤 5:生成提示词
- [ ] 步骤 6:审阅提示词(条件性)
- [ ] 步骤 7:生成图像
- [ ] 步骤 8:合并到 PPTX/PDF
- [ ] 步骤 9:输出摘要
输入 → 偏好设置 → 分析 → [检查现有内容?] → 确认(1-2 轮) → 大纲 → [审阅大纲?] → 提示词 → [审阅提示词?] → 图像 → 合并 → 完成
1.1 加载偏好设置(EXTEND.md)
检查 EXTEND.md 是否存在(优先级顺序):
# macOS, Linux, WSL, Git Bash
test -f .baoyu-skills/baoyu-slide-deck/EXTEND.md && echo "project"
test -f "${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-slide-deck/EXTEND.md" && echo "xdg"
test -f "$HOME/.baoyu-skills/baoyu-slide-deck/EXTEND.md" && echo "user"
# PowerShell (Windows)
if (Test-Path .baoyu-skills/baoyu-slide-deck/EXTEND.md) { "project" }
$xdg = if ($env:XDG_CONFIG_HOME) { $env:XDG_CONFIG_HOME } else { "$HOME/.config" }
if (Test-Path "$xdg/baoyu-skills/baoyu-slide-deck/EXTEND.md") { "xdg" }
if (Test-Path "$HOME/.baoyu-skills/baoyu-slide-deck/EXTEND.md") { "user" }
┌──────────────────────────────────────────────────┬───────────────────┐ │ 路径 │ 位置 │ ├──────────────────────────────────────────────────┼───────────────────┤ │ .baoyu-skills/baoyu-slide-deck/EXTEND.md │ 项目目录 │ ├──────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.baoyu-skills/baoyu-slide-deck/EXTEND.md │ 用户主目录 │ └──────────────────────────────────────────────────┴───────────────────┘
当找到 EXTEND.md 时 → 读取、解析、向用户输出摘要:
📋 从 [完整路径] 加载了偏好设置
├─ 风格:[预设/自定义名称]
├─ 受众:[受众或“自动检测”]
├─ 语言:[语言或“自动检测”]
└─ 审阅:[启用/禁用]
当未找到 EXTEND.md 时 → 使用 AskUserQuestion 进行首次设置或使用默认值继续。
EXTEND.md 支持:首选风格 | 自定义维度 | 默认受众 | 语言偏好 | 审阅偏好
架构:references/config/preferences-schema.md
1.2 分析内容
source.md)
source.md 存在,则重命名为 source-backup-YYYYMMDD-HHMMSS.mdreferences/analysis-framework.md 进行内容分析1.3 检查现有内容 ⚠️ 必需
必须在继续步骤 2 之前执行。
使用 Bash 检查输出目录是否存在:
test -d "slide-deck/{topic-slug}" && echo "exists"
如果目录存在,使用 AskUserQuestion:
header: "现有内容"
question: "发现现有内容。如何处理?"
options:
- label: "重新生成大纲"
description: "保留图像,仅重新生成大纲"
- label: "重新生成图像"
description: "保留大纲,仅重新生成图像"
- label: "备份并重新生成"
description: "备份到 {slug}-backup-{timestamp},然后重新生成所有内容"
- label: "退出"
description: "取消,保持现有内容不变"
保存到analysis.md,包含:
两轮确认:第 1 轮始终进行,仅当选择“自定义维度”时才进行第 2 轮。
语言:使用用户的输入语言或保存的语言偏好。
显示摘要:
使用 AskUserQuestion 处理所有 5 个问题:
问题 1:风格
header: "风格"
question: "此演示文稿使用哪种视觉风格?"
options:
- label: "{recommended_preset}(推荐)"
description: "基于内容分析的最佳匹配"
- label: "{alternative_preset}"
description: "[替代风格描述]"
- label: "自定义维度"
description: "分别选择纹理、氛围、排版、密度"
问题 2:受众
header: "受众"
question: "主要读者是谁?"
options:
- label: "普通读者(推荐)"
description: "广泛吸引力,易于理解的内容"
- label: "初学者/学习者"
description: "教育重点,清晰的解释"
- label: "专家/专业人士"
description: "技术深度,领域知识"
- label: "高管"
description: "高层次见解,最少细节"
问题 3:幻灯片数量
header: "幻灯片数量"
question: "需要多少张幻灯片?"
options:
- label: "{N} 张幻灯片(推荐)"
description: "基于内容长度"
- label: "较少({N-3} 张幻灯片)"
description: "更紧凑,细节较少"
- label: "较多({N+3} 张幻灯片)"
description: "更详细的分解"
问题 4:审阅大纲
header: "大纲"
question: "在生成提示词之前审阅大纲吗?"
options:
- label: "是,审阅大纲(推荐)"
description: "审阅幻灯片标题和结构"
- label: "否,跳过大纲审阅"
description: "直接进行提示词生成"
问题 5:审阅提示词
header: "提示词"
question: "在生成图像之前审阅提示词吗?"
options:
- label: "是,审阅提示词(推荐)"
description: "审阅图像生成提示词"
- label: "否,跳过提示词审阅"
description: "直接进行图像生成"
使用 AskUserQuestion 处理所有 4 个维度:
问题 1:纹理
header: "纹理"
question: "使用哪种视觉纹理?"
options:
- label: "clean"
description: "纯色,无纹理"
- label: "grid"
description: "微妙的网格叠加,技术感"
- label: "organic"
description: "柔和纹理,手绘感"
- label: "pixel"
description: "块状像素,8 位美学"
(注意:"paper" 可通过“其他”选项获得)
问题 2:氛围
header: "氛围"
question: "使用哪种色彩氛围?"
options:
- label: "professional"
description: "冷中性,海军蓝/金色"
- label: "warm"
description: "大地色调,友好"
- label: "cool"
description: "蓝色、灰色,分析感"
- label: "vibrant"
description: "高饱和度,大胆"
(注意:"dark"、"neutral" 可通过“其他”选项获得)
问题 3:排版
header: "排版"
question: "使用哪种排版风格?"
options:
- label: "geometric"
description: "现代无衬线体,简洁"
- label: "humanist"
description: "友好,易读"
- label: "handwritten"
description: "马克笔/画笔,有机感"
- label: "editorial"
description: "杂志风格,戏剧性"
(注意:"technical" 可通过“其他”选项获得)
问题 4:密度
header: "密度"
question: "信息密度如何?"
options:
- label: "balanced(推荐)"
description: "每张幻灯片 2-3 个关键点"
- label: "minimal"
description: "一个焦点,最大留白"
- label: "dense"
description: "多个数据点,紧凑"
第 2 轮之后:将自定义维度存储为风格配置。
确认之后:
analysis.mdskip_outline_review 标志skip_prompt_review 标志使用步骤 2 中确认的风格创建大纲。
风格解析:
references/styles/{preset}.mdreferences/dimensions/ 读取维度文件并组合生成:
references/outline-template.md 的结构outline.md生成之后:
--outline-only,在此处停止skip_outline_review 为 true → 跳过步骤 4,转到步骤 5skip_outline_review 为 false → 继续步骤 4跳过此步骤,如果用户在步骤 2 中选择了“否,跳过大纲审阅”。
目的:在生成提示词之前审阅大纲结构。
语言:使用用户的输入语言或保存的语言偏好。
显示:
总幻灯片数:N
风格:[预设名称或“自定义:纹理+氛围+排版+密度”]
逐张幻灯片摘要表格:
| # | 标题 | 类型 | 布局 |
|---|---|---|---|
| 1 | [标题] | 封面 | title-hero |
| 2 | [标题] | 内容 | [布局] |
| 3 | [标题] | 内容 | [布局] |
| ... | ... | ... | ... |
使用 AskUserQuestion:
header: "确认"
question: "准备好生成提示词了吗?"
options:
- label: "是,继续(推荐)"
description: "生成图像提示词"
- label: "先编辑大纲"
description: "我会在继续之前修改 outline.md"
- label: "重新生成大纲"
description: "使用不同的方法创建新大纲"
响应之后:
outline.md,准备好时再次询问references/base-prompt.mdLayout:,则从 references/layouts.md 包含布局指导prompts/ 目录
prompts/NN-slide-{slug}-backup-YYYYMMDD-HHMMSS.md生成之后:
--prompts-only,在此处停止并输出提示词摘要skip_prompt_review 为 true → 跳过步骤 6,转到步骤 7skip_prompt_review 为 false → 继续步骤 6跳过此步骤,如果用户在步骤 2 中选择了“否,跳过提示词审阅”。
目的:在生成图像之前审阅提示词。
语言:使用用户的输入语言或保存的语言偏好。
显示:
总提示词数:N
风格:[预设名称或自定义维度]
提示词列表:
| # | 文件名 | 幻灯片标题 |
|---|---|---|
| 1 | 01-slide-cover.md | [标题] |
| 2 | 02-slide-xxx.md | [标题] |
| ... | ... | ... |
提示词目录路径:prompts/
使用 AskUserQuestion:
header: "确认"
question: "准备好生成幻灯片图像了吗?"
options:
- label: "是,继续(推荐)"
description: "生成所有幻灯片图像"
- label: "先编辑提示词"
description: "我会在继续之前修改提示词"
- label: "重新生成提示词"
description: "使用不同的方法创建新提示词"
响应之后:
对于--images-only:从此处开始,使用现有提示词。
对于--regenerate N:仅重新生成指定的幻灯片。
标准流程:
slides-{topic-slug}-{timestamp}NN-slide-{slug}-backup-YYYYMMDD-HHMMSS.png${BUN_X} {baseDir}/scripts/merge-to-pptx.ts <slide-deck-dir>
${BUN_X} {baseDir}/scripts/merge-to-pdf.ts <slide-deck-dir>
语言:使用用户的输入语言或保存的语言偏好。
幻灯片生成完成!
主题:[topic]
风格:[预设名称或自定义维度]
位置:[目录路径]
幻灯片:共 N 张
- 01-slide-cover.png - 封面
- 02-slide-intro.png - 内容
- ...
- {NN}-slide-back-cover.png - 封底
大纲:outline.md
PPTX:{topic-slug}.pptx
PDF:{topic-slug}.pdf
| 选项 | 工作流程 |
|---|---|
--outline-only | 仅步骤 1-3(大纲后停止) |
--prompts-only | 步骤 1-5(生成提示词,跳过图像) |
--images-only | 跳至步骤 7(需要现有 prompts/ 目录) |
--regenerate N | 仅重新生成特定幻灯片 |
--prompts-only生成大纲和提示词,不生成图像:
/baoyu-slide-deck content.md --prompts-only
输出:outline.md + prompts/*.md 准备就绪,可供审阅/编辑。
--images-only从现有提示词生成图像(从步骤 7 开始):
/baoyu-slide-deck slide-deck/topic-slug/ --images-only
前提条件:
prompts/ 目录包含幻灯片提示词文件outline.md 包含风格信息--regenerate重新生成特定幻灯片:
# 单张幻灯片
/baoyu-slide-deck slide-deck/topic-slug/ --regenerate 3
# 多张幻灯片
/baoyu-slide-deck slide-deck/topic-slug/ --regenerate 2,5,8
流程:
| 操作 | 命令 | 手动步骤 |
|---|---|---|
| 编辑 | --regenerate N | 先更新提示词文件 → 重新生成图像 → 重新生成 PDF |
| 添加 | 手动 | 创建提示词 → 生成图像 → 重新编号后续文件 → 更新大纲 → 重新生成 PDF |
| 删除 | 手动 | 删除文件 → 重新编号后续文件 → 更新大纲 → 重新生成 PDF |
prompts/NN-slide-{slug}.md/baoyu-slide-deck <dir> --regenerate N重要:更新幻灯片时,务必先更新提示词文件(prompts/NN-slide-{slug}.md),然后再重新生成。这确保更改被记录且可重现。
prompts/NN-slide-{new-slug}.mdoutline.mdNN-slide-{slug}.png 和 prompts/NN-slide-{slug}.mdoutline.md格式:NN-slide-[slug].png
NN:两位数字序列(01、02、...)slug:来自内容的 Kebab-case(2-5 个词,唯一)重新编号规则:仅 NN 改变,slug 保持不变。
完整详情请参见 references/modification-guide.md。
| 文件 | 内容 |
|---|---|
references/analysis-framework.md | 演示文稿内容分析 |
references/outline-template.md | 大纲结构和格式 |
references/modification-guide.md | 编辑、添加、删除幻灯片工作流程 |
references/content-rules.md | 内容和风格指南 |
references/design-guidelines.md | 受众、排版、颜色、视觉元素 |
references/layouts.md | 布局选项和选择技巧 |
references/base-prompt.md | 图像生成的基础提示词 |
references/dimensions/*.md | 维度规格(纹理、氛围、排版、密度) |
references/dimensions/presets.md | 预设 → 维度映射 |
references/styles/<style>.md | 完整风格规格(旧版) |
references/config/preferences-schema.md | EXTEND.md 结构 |
通过 EXTEND.md 进行自定义配置。参见步骤 1.1了解路径和支持的选项。
每周安装量
12.3K
代码仓库
GitHub 星标数
11.3K
首次出现
2026年1月19日
安全审计
安装于
opencode11.1K
gemini-cli10.7K
codex10.5K
cursor10.2K
github-copilot9.6K
amp9.3K
Transform content into professional slide deck images.
/baoyu-slide-deck path/to/content.md
/baoyu-slide-deck path/to/content.md --style sketch-notes
/baoyu-slide-deck path/to/content.md --audience executives
/baoyu-slide-deck path/to/content.md --lang zh
/baoyu-slide-deck path/to/content.md --slides 10
/baoyu-slide-deck path/to/content.md --outline-only
/baoyu-slide-deck # Then paste content
Agent Execution Instructions :
{baseDir}{baseDir}/scripts/<script-name>.ts${BUN_X} runtime: if bun installed → bun; if npx available → npx -y bun; else suggest installing bun| Script | Purpose |
|---|---|
scripts/merge-to-pptx.ts | Merge slides into PowerPoint |
scripts/merge-to-pdf.ts | Merge slides into PDF |
| Option | Description |
|---|---|
--style <name> | Visual style: preset name, custom, or custom style name |
--audience <type> | Target: beginners, intermediate, experts, executives, general |
--lang <code> | Output language (en, zh, ja, etc.) |
--slides <number> | Target slide count (8-25 recommended, max 30) |
--outline-only | Generate outline only, skip image generation |
Slide Count by Content Length :
| Content | Slides |
|---|---|
| < 1000 words | 5-10 |
| 1000-3000 words | 10-18 |
| 3000-5000 words | 15-25 |
5000 words | 20-30 (consider splitting)
| Preset | Dimensions | Best For |
|---|---|---|
blueprint (Default) | grid + cool + technical + balanced | Architecture, system design |
chalkboard | organic + warm + handwritten + balanced | Education, tutorials |
corporate | clean + professional + geometric + balanced | Investor decks, proposals |
minimal | clean + neutral + geometric + minimal | Executive briefings |
sketch-notes |
| Dimension | Options | Description |
|---|---|---|
| Texture | clean, grid, organic, pixel, paper | Visual texture and background treatment |
| Mood | professional, warm, cool, vibrant, dark, neutral | Color temperature and palette style |
| Typography | geometric, humanist, handwritten, editorial, technical | Headline and body text styling |
| Density | minimal, balanced, dense | Information density per slide |
Full specs: references/dimensions/*.md
| Content Signals | Preset |
|---|---|
| tutorial, learn, education, guide, beginner | sketch-notes |
| classroom, teaching, school, chalkboard | chalkboard |
| architecture, system, data, analysis, technical | blueprint |
| creative, children, kids, cute | vector-illustration |
| briefing, academic, research, bilingual | intuition-machine |
| executive, minimal, clean, simple | minimal |
Decks designed for reading and sharing , not live presentation:
See references/design-guidelines.md for:
See references/layouts.md for layout options.
slide-deck/{topic-slug}/
├── source-{slug}.{ext}
├── outline.md
├── prompts/
│ └── 01-slide-cover.md, 02-slide-{slug}.md, ...
├── 01-slide-cover.png, 02-slide-{slug}.png, ...
├── {topic-slug}.pptx
└── {topic-slug}.pdf
Slug : Extract topic (2-4 words, kebab-case). Example: "Introduction to Machine Learning" → intro-machine-learning
Conflict Handling : See Step 1.3 for existing content detection and user options.
Detection Priority :
--lang flag (explicit)language settingRule : ALL responses use user's preferred language:
Technical terms (style names, file paths, code) remain in English.
Copy this checklist and check off items as you complete them:
Slide Deck Progress:
- [ ] Step 1: Setup & Analyze
- [ ] 1.1 Load preferences
- [ ] 1.2 Analyze content
- [ ] 1.3 Check existing ⚠️ REQUIRED
- [ ] Step 2: Confirmation ⚠️ REQUIRED (Round 1, optional Round 2)
- [ ] 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
Input → Preferences → Analyze → [Check Existing?] → Confirm (1-2 rounds) → Outline → [Review Outline?] → Prompts → [Review Prompts?] → Images → Merge → Complete
1.1 Load Preferences (EXTEND.md)
Check EXTEND.md existence (priority order):
# macOS, Linux, WSL, Git Bash
test -f .baoyu-skills/baoyu-slide-deck/EXTEND.md && echo "project"
test -f "${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-slide-deck/EXTEND.md" && echo "xdg"
test -f "$HOME/.baoyu-skills/baoyu-slide-deck/EXTEND.md" && echo "user"
# PowerShell (Windows)
if (Test-Path .baoyu-skills/baoyu-slide-deck/EXTEND.md) { "project" }
$xdg = if ($env:XDG_CONFIG_HOME) { $env:XDG_CONFIG_HOME } else { "$HOME/.config" }
if (Test-Path "$xdg/baoyu-skills/baoyu-slide-deck/EXTEND.md") { "xdg" }
if (Test-Path "$HOME/.baoyu-skills/baoyu-slide-deck/EXTEND.md") { "user" }
┌──────────────────────────────────────────────────┬───────────────────┐ │ Path │ Location │ ├──────────────────────────────────────────────────┼───────────────────┤ │ .baoyu-skills/baoyu-slide-deck/EXTEND.md │ Project directory │ ├──────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.baoyu-skills/baoyu-slide-deck/EXTEND.md │ User home │ └──────────────────────────────────────────────────┴───────────────────┘
When EXTEND.md Found → Read, parse, output summary to user :
📋 Loaded preferences from [full path]
├─ Style: [preset/custom name]
├─ Audience: [audience or "auto-detect"]
├─ Language: [language or "auto-detect"]
└─ Review: [enabled/disabled]
When EXTEND.md Not Found → First-time setup using AskUserQuestion or proceed with defaults.
EXTEND.md Supports : Preferred style | Custom dimensions | Default audience | Language preference | Review preference
Schema: references/config/preferences-schema.md
1.2 Analyze Content
source.md)
source.md exists, rename to source-backup-YYYYMMDD-HHMMSS.mdreferences/analysis-framework.md for content analysis1.3 Check Existing Content ⚠️ REQUIRED
MUST execute before proceeding to Step 2.
Use Bash to check if output directory exists:
test -d "slide-deck/{topic-slug}" && echo "exists"
If directory exists , use AskUserQuestion:
header: "Existing"
question: "Existing content found. How to proceed?"
options:
- label: "Regenerate outline"
description: "Keep images, regenerate outline only"
- label: "Regenerate images"
description: "Keep outline, regenerate images only"
- label: "Backup and regenerate"
description: "Backup to {slug}-backup-{timestamp}, then regenerate all"
- label: "Exit"
description: "Cancel, keep existing content unchanged"
Save toanalysis.md with:
Two-round confirmation : Round 1 always, Round 2 only if "Custom dimensions" selected.
Language : Use user's input language or saved language preference.
Display summary :
Use AskUserQuestion for all 5 questions:
Question 1: Style
header: "Style"
question: "Which visual style for this deck?"
options:
- label: "{recommended_preset} (Recommended)"
description: "Best match based on content analysis"
- label: "{alternative_preset}"
description: "[alternative style description]"
- label: "Custom dimensions"
description: "Choose texture, mood, typography, density separately"
Question 2: Audience
header: "Audience"
question: "Who is the primary reader?"
options:
- label: "General readers (Recommended)"
description: "Broad appeal, accessible content"
- label: "Beginners/learners"
description: "Educational focus, clear explanations"
- label: "Experts/professionals"
description: "Technical depth, domain knowledge"
- label: "Executives"
description: "High-level insights, minimal detail"
Question 3: Slide Count
header: "Slides"
question: "How many slides?"
options:
- label: "{N} slides (Recommended)"
description: "Based on content length"
- label: "Fewer ({N-3} slides)"
description: "More condensed, less detail"
- label: "More ({N+3} slides)"
description: "More detailed breakdown"
Question 4: Review Outline
header: "Outline"
question: "Review outline before generating prompts?"
options:
- label: "Yes, review outline (Recommended)"
description: "Review slide titles and structure"
- label: "No, skip outline review"
description: "Proceed directly to prompt generation"
Question 5: Review Prompts
header: "Prompts"
question: "Review prompts before generating images?"
options:
- label: "Yes, review prompts (Recommended)"
description: "Review image generation prompts"
- label: "No, skip prompt review"
description: "Proceed directly to image generation"
Use AskUserQuestion for all 4 dimensions:
Question 1: Texture
header: "Texture"
question: "Which visual texture?"
options:
- label: "clean"
description: "Pure solid color, no texture"
- label: "grid"
description: "Subtle grid overlay, technical"
- label: "organic"
description: "Soft textures, hand-drawn feel"
- label: "pixel"
description: "Chunky pixels, 8-bit aesthetic"
(Note: "paper" available via Other)
Question 2: Mood
header: "Mood"
question: "Which color mood?"
options:
- label: "professional"
description: "Cool-neutral, navy/gold"
- label: "warm"
description: "Earth tones, friendly"
- label: "cool"
description: "Blues, grays, analytical"
- label: "vibrant"
description: "High saturation, bold"
(Note: "dark", "neutral" available via Other)
Question 3: Typography
header: "Typography"
question: "Which typography style?"
options:
- label: "geometric"
description: "Modern sans-serif, clean"
- label: "humanist"
description: "Friendly, readable"
- label: "handwritten"
description: "Marker/brush, organic"
- label: "editorial"
description: "Magazine style, dramatic"
(Note: "technical" available via Other)
Question 4: Density
header: "Density"
question: "Information density?"
options:
- label: "balanced (Recommended)"
description: "2-3 key points per slide"
- label: "minimal"
description: "One focus point, maximum whitespace"
- label: "dense"
description: "Multiple data points, compact"
After Round 2 : Store custom dimensions as the style configuration.
After Confirmation :
analysis.md with confirmed preferencesskip_outline_review flag from Question 4skip_prompt_review flag from Question 5Create outline using the confirmed style from Step 2.
Style Resolution :
references/styles/{preset}.mdreferences/dimensions/ and combineGenerate :
references/outline-template.md for structureoutline.mdAfter generation :
--outline-only, stop hereskip_outline_review is true → Skip Step 4, go to Step 5skip_outline_review is false → Continue to Step 4Skip this step if user selected "No, skip outline review" in Step 2.
Purpose : Review outline structure before prompt generation.
Language : Use user's input language or saved language preference.
Display :
Total slides: N
Style: [preset name or "custom: texture+mood+typography+density"]
Slide-by-slide summary table:
| # | Title | Type | Layout |
|---|---|---|---|
| 1 | [title] | Cover | title-hero |
| 2 | [title] | Content | [layout] |
| 3 | [title] | Content | [layout] |
| ... | ... | ... | ... |
Use AskUserQuestion :
header: "Confirm"
question: "Ready to generate prompts?"
options:
- label: "Yes, proceed (Recommended)"
description: "Generate image prompts"
- label: "Edit outline first"
description: "I'll modify outline.md before continuing"
- label: "Regenerate outline"
description: "Create new outline with different approach"
After response :
outline.md, ask again when readyreferences/base-prompt.mdLayout: specified, include layout guidance from references/layouts.mdprompts/ directory
prompts/NN-slide-{slug}-backup-YYYYMMDD-HHMMSS.mdAfter generation :
--prompts-only, stop here and output prompt summaryskip_prompt_review is true → Skip Step 6, go to Step 7skip_prompt_review is false → Continue to Step 6Skip this step if user selected "No, skip prompt review" in Step 2.
Purpose : Review prompts before image generation.
Language : Use user's input language or saved language preference.
Display :
Total prompts: N
Style: [preset name or custom dimensions]
Prompt list:
| # | Filename | Slide Title |
|---|---|---|
| 1 | 01-slide-cover.md | [title] |
| 2 | 02-slide-xxx.md | [title] |
| ... | ... | ... |
Path to prompts directory: prompts/
Use AskUserQuestion :
header: "Confirm"
question: "Ready to generate slide images?"
options:
- label: "Yes, proceed (Recommended)"
description: "Generate all slide images"
- label: "Edit prompts first"
description: "I'll modify prompts before continuing"
- label: "Regenerate prompts"
description: "Create new prompts with different approach"
After response :
For--images-only: Start here with existing prompts.
For--regenerate N: Only regenerate specified slide(s).
Standard flow :
slides-{topic-slug}-{timestamp}NN-slide-{slug}-backup-YYYYMMDD-HHMMSS.png${BUN_X} {baseDir}/scripts/merge-to-pptx.ts <slide-deck-dir>
${BUN_X} {baseDir}/scripts/merge-to-pdf.ts <slide-deck-dir>
Language : Use user's input language or saved language preference.
Slide Deck Complete!
Topic: [topic]
Style: [preset name or custom dimensions]
Location: [directory path]
Slides: N total
- 01-slide-cover.png - Cover
- 02-slide-intro.png - Content
- ...
- {NN}-slide-back-cover.png - Back Cover
Outline: outline.md
PPTX: {topic-slug}.pptx
PDF: {topic-slug}.pdf
| Option | Workflow |
|---|---|
--outline-only | Steps 1-3 only (stop after outline) |
--prompts-only | Steps 1-5 (generate prompts, skip images) |
--images-only | Skip to Step 7 (requires existing prompts/) |
--regenerate N | Regenerate specific slide(s) only |
--prompts-onlyGenerate outline and prompts without images:
/baoyu-slide-deck content.md --prompts-only
Output: outline.md + prompts/*.md ready for review/editing.
--images-onlyGenerate images from existing prompts (starts at Step 7):
/baoyu-slide-deck slide-deck/topic-slug/ --images-only
Prerequisites:
prompts/ directory with slide prompt filesoutline.md with style information--regenerateRegenerate specific slides:
# Single slide
/baoyu-slide-deck slide-deck/topic-slug/ --regenerate 3
# Multiple slides
/baoyu-slide-deck slide-deck/topic-slug/ --regenerate 2,5,8
Flow:
| Action | Command | Manual Steps |
|---|---|---|
| Edit | --regenerate N | Update prompt file FIRST → Regenerate image → Regenerate PDF |
| Add | Manual | Create prompt → Generate image → Renumber subsequent → Update outline → Regenerate PDF |
| Delete | Manual | Remove files → Renumber subsequent → Update outline → Regenerate PDF |
prompts/NN-slide-{slug}.md/baoyu-slide-deck <dir> --regenerate NIMPORTANT : When updating slides, ALWAYS update the prompt file (prompts/NN-slide-{slug}.md) FIRST before regenerating. This ensures changes are documented and reproducible.
prompts/NN-slide-{new-slug}.mdoutline.mdNN-slide-{slug}.png and prompts/NN-slide-{slug}.mdoutline.mdFormat: NN-slide-[slug].png
NN: Two-digit sequence (01, 02, ...)slug: Kebab-case from content (2-5 words, unique)Renumbering Rule : Only NN changes, slugs remain unchanged.
See references/modification-guide.md for complete details.
| File | Content |
|---|---|
references/analysis-framework.md | Content analysis for presentations |
references/outline-template.md | Outline structure and format |
references/modification-guide.md | Edit, add, delete slide workflows |
references/content-rules.md | Content and style guidelines |
references/design-guidelines.md | Audience, typography, colors, visual elements |
references/layouts.md |
Custom configurations via EXTEND.md. See Step 1.1 for paths and supported options.
Weekly Installs
12.3K
Repository
GitHub Stars
11.3K
First Seen
Jan 19, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode11.1K
gemini-cli10.7K
codex10.5K
cursor10.2K
github-copilot9.6K
amp9.3K
头脑风暴技能:AI协作设计流程,将创意转化为完整规范与实施计划
75,000 周安装
--prompts-only| Generate outline + prompts, skip images |
--images-only | Generate images from existing prompts directory |
--regenerate <N> | Regenerate specific slide(s): --regenerate 3 or --regenerate 2,5,8 |
| organic + warm + handwritten + balanced |
| Educational, tutorials |
watercolor | organic + warm + humanist + minimal | Lifestyle, wellness |
dark-atmospheric | clean + dark + editorial + balanced | Entertainment, gaming |
notion | clean + neutral + geometric + dense | Product demos, SaaS |
bold-editorial | clean + vibrant + editorial + balanced | Product launches, keynotes |
editorial-infographic | clean + cool + editorial + dense | Tech explainers, research |
fantasy-animation | organic + vibrant + handwritten + minimal | Educational storytelling |
intuition-machine | clean + cool + technical + dense | Technical docs, academic |
pixel-art | pixel + vibrant + technical + balanced | Gaming, developer talks |
scientific | clean + cool + technical + dense | Biology, chemistry, medical |
vector-illustration | clean + vibrant + humanist + balanced | Creative, children's content |
vintage | paper + warm + editorial + balanced | Historical, heritage |
| saas, product, dashboard, metrics | notion |
| investor, quarterly, business, corporate | corporate |
| launch, marketing, keynote, magazine | bold-editorial |
| entertainment, music, gaming, atmospheric | dark-atmospheric |
| explainer, journalism, science communication | editorial-infographic |
| story, fantasy, animation, magical | fantasy-animation |
| gaming, retro, pixel, developer | pixel-art |
| biology, chemistry, medical, scientific | scientific |
| history, heritage, vintage, expedition | vintage |
| lifestyle, wellness, travel, artistic | watercolor |
| Default | blueprint |
| Layout options and selection tips |
references/base-prompt.md | Base prompt for image generation |
references/dimensions/*.md | Dimension specifications (texture, mood, typography, density) |
references/dimensions/presets.md | Preset → dimension mapping |
references/styles/<style>.md | Full style specifications (legacy) |
references/config/preferences-schema.md | EXTEND.md structure |