Slide Deck Generator
Transform content into professional slide deck images.
Usage
CODEBLOCK0
Script Directory
Agent Execution Instructions:
- 1. Determine this SKILL.md file's directory path as INLINECODE0
- Script path = INLINECODE1
- Resolve
${BUN_X} runtime: if bun installed → bun; if npx available → npx -y bun; else suggest installing bun
| Script | Purpose |
|---|
| INLINECODE7 | Merge slides into PowerPoint |
| INLINECODE8 |
Merge slides into PDF |
Options
| Option | Description |
|---|
| INLINECODE9 | Visual style: preset name, custom, or custom style name |
| INLINECODE11 |
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) |
Style System
Presets
| Preset | Dimensions | Best For |
|---|
| INLINECODE20 (Default) | grid + cool + technical + balanced | Architecture, system design |
| INLINECODE21 |
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 |
|
hand-drawn-edu | organic + macaron + handwritten + balanced | Educational diagrams, process explainers |
|
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, macaron | 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: INLINECODE37
Auto Style Selection
| Content Signals | Preset |
|---|
| tutorial, learn, education, guide, beginner | INLINECODE38 |
| hand-drawn, infographic, diagram, process, onboarding |
hand-drawn-edu |
| 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
CODEBLOCK1
Slug: Extract topic (2-4 words, kebab-case). Example: "Introduction to Machine Learning" → INLINECODE58
Conflict Handling: See Step 1.3 for existing content detection and user options.
Language Handling
Detection Priority:
- 1.
--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:
CODEBLOCK2
Flow
CODEBLOCK3
Step 1: Setup & Analyze
1.1 Load Preferences (EXTEND.md)
Check EXTEND.md existence (priority order):
CODEBLOCK4
CODEBLOCK5
┌──────────────────────────────────────────────────┬───────────────────┐
│ 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:
CODEBLOCK6
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: INLINECODE61
1.2 Analyze Content
- 1. Save source content (if pasted, save as
source.md)
-
Backup rule: If
source.md exists, rename to
source-backup-YYYYMMDD-HHMMSS.md
- 2. 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:
CODEBLOCK7
If directory exists, use AskUserQuestion:
CODEBLOCK8
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
CODEBLOCK9
Question 2: Audience
CODEBLOCK10
Question 3: Slide Count
CODEBLOCK11
Question 4: Review Outline
CODEBLOCK12
Question 5: Review Prompts
CODEBLOCK13
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"
- label: "macaron"
description: "Pastel blocks (blue, mint, lavender, peach) on cream"
(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
CODEBLOCK17
After Round 2: Store custom dimensions as the style configuration.
After Confirmation:
- 1. 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 INLINECODE70
- If custom dimensions → Read dimension files from
references/dimensions/ and combine
Generate:
- 1. Follow
references/outline-template.md for structure - Build STYLE_INSTRUCTIONS from style or dimensions
- Apply confirmed audience, language, slide count
- Save as INLINECODE73
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:
CODEBLOCK18
Use AskUserQuestion:
CODEBLOCK19
After response:
- 1. 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
- 1. Read INLINECODE78
- 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
- 3. Save to
prompts/ directory
-
Backup rule: If prompt file exists, rename to INLINECODE82
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:
CODEBLOCK20
- - Path to prompts directory: INLINECODE86
Use AskUserQuestion:
CODEBLOCK21
After response:
- 1. 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:
- 1. Select available image generation skill
- Generate session ID: INLINECODE89
- 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
- 4. Report progress: "Generated X/N" (in user's language)
- Auto-retry once on failure before reporting error
Step 8: Merge to PPTX and PDF
CODEBLOCK22
Step 9: Output Summary
Language: Use user's input language or saved language preference.
CODEBLOCK23
Partial Workflows
| Option | Workflow |
|---|
| INLINECODE91 | Steps 1-3 only (stop after outline) |
| INLINECODE92 |
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:
CODEBLOCK24
Output: outline.md + prompts/*.md ready for review/editing.
Using --images-only
Generate images from existing prompts (starts at Step 7):
CODEBLOCK25
Prerequisites:
- -
prompts/ directory with slide prompt files - INLINECODE100 with style information
Using --regenerate
Regenerate specific slides:
CODEBLOCK26
Flow:
- 1. Read existing prompts for specified slides
- Regenerate images only for those slides
- Regenerate PPTX/PDF
Slide Modification
Quick Reference
| Action | Command | Manual Steps |
|---|
| Edit | INLINECODE102 | 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
- 1. Update prompt file FIRST in INLINECODE103
- Run: INLINECODE104
- 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
- 1. Create prompt at position: INLINECODE106
- Generate image using same session ID
- Renumber: Subsequent files NN+1 (slugs unchanged)
- Update INLINECODE107
- Regenerate PPTX/PDF
Delete Slide
- 1. Remove
NN-slide-{slug}.png and INLINECODE109 - Renumber: Subsequent files NN-1 (slugs unchanged)
- Update INLINECODE110
- Regenerate PPTX/PDF
File Naming
Format: NN-slide-[slug].png
- -
NN: Two-digit sequence (01, 02, ...) - INLINECODE113 : 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 |
|---|
| INLINECODE115 | Content analysis for presentations |
| INLINECODE116 |
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 |
Notes
- - Image generation: 10-30 seconds per slide
- Auto-retry once on generation failure
- Use stylized alternatives for sensitive public figures
- Maintain style consistency via session ID
- Step 2 confirmation required - do not skip (style, audience, slides, outline review, prompt review)
- Step 4 conditional - only if user requested outline review in Step 2
- Step 6 conditional - only if user requested prompt review in Step 2
Extension Support
Custom configurations via EXTEND.md. See Step 1.1 for paths and supported options.