Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generates professional slide deck images from content. Creates outlines with style instructions, then generates individual slide images. Use when user asks to "create slides", "make a presentation", "generate deck", "slide deck", or "PPT".
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 641% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 297% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 448% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 386% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 374% | 0% |
Transform content into professional slide deck images.
bash/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 | | --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 |
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 | 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 |
| 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 | | 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 |
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}.pdfSlug: 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 summaryInput → Preferences → Analyze → [Check Existing?] → Confirm (1-2 rounds) → Outline → [Review Outline?] → Prompts → [Review Prompts?] → Images → Merge → Complete1.1 Load Preferences (EXTEND.md)
Check EXTEND.md existence (priority order):
bash# 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# 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:
bashtest -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:
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:
| # | 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/ directoryprompts/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:
| # | Filename | Slide Title |
|---|----------|-------------|
| 1 | 01-slide-cover.md | [title] |
| 2 | 02-slide-xxx.md | [title] |
| ... | ... | ... |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.pngbash${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:
bash/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):
bash/baoyu-slide-deck slide-deck/topic-slug/ --images-only
Prerequisites:
prompts/ directory with slide prompt filesoutline.md with style information--regenerateRegenerate specific slides:
bash# 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 | 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 |
Custom configurations via EXTEND.md. See Step 1.1 for paths and supported options.
Other measured skills in the registry, with their headline benchmark lift.