baoyu-slide-deck

安装量: 10.9K
排名: #199

安装

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

Slide Deck Generator Transform content into professional slide deck images. Usage /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

Script Directory
Agent Execution Instructions
:
Determine this SKILL.md file's directory path as
{baseDir}
Script path =
{baseDir}/scripts/.ts
Resolve
${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
Options
Option
Description
--style
Visual style: preset name,
custom
, or custom style name
--audience
Target: beginners, intermediate, experts, executives, general
--lang
Output language (en, zh, ja, etc.)
--slides
Target slide count (8-25 recommended, max 30)
--outline-only
Generate outline only, skip image generation
--prompts-only
Generate outline + prompts, skip images
--images-only
Generate images from existing prompts directory
--regenerate
Regenerate specific slide(s):
--regenerate 3
or
--regenerate 2,5,8
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)
Style System
Presets
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
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
Style Dimensions
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
Auto Style Selection
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
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
Design Philosophy
Decks designed for
reading and sharing
, not live presentation:
Each slide self-explanatory without verbal commentary
Logical flow when scrolling
All necessary context within each slide
Optimized for social media sharing
See
references/design-guidelines.md
for:
Audience-specific principles
Visual hierarchy
Content density guidelines
Color and typography selection
Font recommendations
See
references/layouts.md
for layout options.
File Management
Output Directory
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.
Language Handling
Detection Priority
:
--lang
flag (explicit)
EXTEND.md
language
setting
User's conversation language (input language)
Source content language
Rule
ALL responses use user's preferred language: Questions and confirmations Progress reports Error messages Completion summaries Technical terms (style names, file paths, code) remain in English. Workflow 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 Flow Input → Preferences → Analyze → [Check Existing?] → Confirm (1-2 rounds) → Outline → [Review Outline?] → Prompts → [Review Prompts?] → Images → Merge → Complete Step 1: Setup & Analyze 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
Save source content (if pasted, save as
source.md
)
Backup rule
If
source.md
exists, rename to
source-backup-YYYYMMDD-HHMMSS.md
Follow
references/analysis-framework.md
for content analysis
Analyze content signals for style recommendations
Detect source language
Determine recommended slide count
Generate topic slug from content
1.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 to
analysis.md
with:
Topic, audience, content signals
Recommended style (based on Auto Style Selection)
Recommended slide count
Language detection
Step 2: Confirmation ⚠️ REQUIRED
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
:
Content type + topic identified
Language: [from EXTEND.md or detected]
Recommended style
[preset] (based on content signals)
Recommended slides
[N] (based on content length)
Round 1 (Always)
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"
Round 2 (Only if "Custom dimensions" selected)
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
:
Update
analysis.md
with confirmed preferences
Store
skip_outline_review
flag from Question 4
Store
skip_prompt_review
flag from Question 5
→ Step 3
Step 3: Generate Outline
Create outline using the confirmed style from Step 2.
Style Resolution
:
If preset selected → Read
references/styles/{preset}.md
If custom dimensions → Read dimension files from
references/dimensions/
and combine
Generate
:
Follow
references/outline-template.md
for structure
Build STYLE_INSTRUCTIONS from style or dimensions
Apply confirmed audience, language, slide count
Save as
outline.md
After generation
:
If
--outline-only
, stop here
If
skip_outline_review
is true → Skip Step 4, go to Step 5
If
skip_outline_review
is false → Continue to Step 4
Step 4: Review Outline (Conditional)
Skip 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
:
If "Edit outline first" → Inform user to edit
outline.md
, ask again when ready
If "Regenerate outline" → Back to Step 3
If "Yes, proceed" → Continue to Step 5
Step 5: Generate Prompts
Read
references/base-prompt.md
For each slide in outline:
Extract STYLE_INSTRUCTIONS from outline (not from style file again)
Add slide-specific content
If
Layout:
specified, include layout guidance from
references/layouts.md
Save to
prompts/
directory
Backup rule
If prompt file exists, rename to
prompts/NN-slide-{slug}-backup-YYYYMMDD-HHMMSS.md
After generation
:
If
--prompts-only
, stop here and output prompt summary
If
skip_prompt_review
is true → Skip Step 6, go to Step 7
If
skip_prompt_review
is false → Continue to Step 6
Step 6: Review Prompts (Conditional)
Skip 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
:
If "Edit prompts first" → Inform user to edit prompts, ask again when ready
If "Regenerate prompts" → Back to Step 5
If "Yes, proceed" → Continue to Step 7
Step 7: Generate Images
For
--images-only
Start here with existing prompts.
For
--regenerate N
Only regenerate specified slide(s).
Standard flow
:
Select available image generation skill
Generate session ID:
slides-{topic-slug}-{timestamp}
For each slide:
Backup rule
If image file exists, rename to
NN-slide-{slug}-backup-YYYYMMDD-HHMMSS.png
Generate image sequentially with same session ID
Report progress: "Generated X/N" (in user's language)
Auto-retry once on failure before reporting error
Step 8: Merge to PPTX and PDF
${BUN_X}
{
baseDir
}
/scripts/merge-to-pptx.ts
<
slide-deck-dir
>
${BUN_X}
{
baseDir
}
/scripts/merge-to-pdf.ts
<
slide-deck-dir
>
Step 9: Output Summary
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 Partial Workflows 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 Using --prompts-only Generate outline and prompts without images: /baoyu-slide-deck content.md --prompts-only Output: outline.md + prompts/*.md ready for review/editing. Using --images-only Generate images from existing prompts (starts at Step 7): /baoyu-slide-deck slide-deck/topic-slug/ --images-only Prerequisites: prompts/ directory with slide prompt files outline.md with style information Using --regenerate Regenerate 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:
Read existing prompts for specified slides
Regenerate images only for those slides
Regenerate PPTX/PDF
Slide Modification
Quick Reference
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
Edit Single Slide
Update prompt file FIRST
in
prompts/NN-slide-{slug}.md
Run:
/baoyu-slide-deck --regenerate N
Or manually regenerate image + PDF
IMPORTANT
When updating slides, ALWAYS update the prompt file (
prompts/NN-slide-{slug}.md
) FIRST before regenerating. This ensures changes are documented and reproducible.
Add New Slide
Create prompt at position:
prompts/NN-slide-{new-slug}.md
Generate image using same session ID
Renumber
Subsequent files NN+1 (slugs unchanged)
Update
outline.md
Regenerate PPTX/PDF
Delete Slide
Remove
NN-slide-{slug}.png
and
prompts/NN-slide-{slug}.md
Renumber
Subsequent files NN-1 (slugs unchanged)
Update
outline.md
Regenerate PPTX/PDF
File Naming
Format:
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. References 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 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/