12 KiB
name, description
| name | description |
|---|---|
| baoyu-slide-deck | Generate professional slide deck images from content. Creates comprehensive outlines with style instructions, then generates individual slide images. Use when user asks to "create slides", "make a presentation", "generate deck", or "slide deck". |
Slide Deck Generator
Transform content into professional slide deck images with flexible style options.
Usage
# Auto-select style based on content
/baoyu-slide-deck path/to/content.md
# Specify a style
/baoyu-slide-deck path/to/content.md --style sketch-notes
/baoyu-slide-deck path/to/content.md --style minimal
# Target specific audience
/baoyu-slide-deck path/to/content.md --audience executives
# Set output language
/baoyu-slide-deck path/to/content.md --lang zh
# Limit slide count
/baoyu-slide-deck path/to/content.md --slides 10
# Generate outline only (skip image generation)
/baoyu-slide-deck path/to/content.md --outline-only
# Direct content input
/baoyu-slide-deck
[paste content]
# Combine options
/baoyu-slide-deck path/to/content.md --style storytelling --audience experts --slides 15
Script Directory
Important: All scripts are located in the scripts/ subdirectory of this skill.
Agent Execution Instructions:
- Determine this SKILL.md file's directory path as
SKILL_DIR - Script path =
${SKILL_DIR}/scripts/<script-name>.ts - Replace all
${SKILL_DIR}in this document with the actual path
Script Reference:
| Script | Purpose |
|---|---|
scripts/merge-to-pptx.ts |
Merge slides into PowerPoint |
scripts/merge-to-pdf.ts |
Merge slides into PDF |
Options
| Option | Description |
|---|---|
--style <name> |
Visual style (see Style Gallery) |
--audience <type> |
Target audience: beginners, intermediate, experts, executives, general |
--lang <code> |
Output language for prompts and slides (en, zh, ja, etc.) |
--slides <number> |
Target slide count |
--outline-only |
Generate outline only, skip image generation |
Style Gallery
| Style | Description | Best For |
|---|---|---|
sketch-notes |
Hand-drawn sketch notes, warm & friendly | Educational, tutorials, knowledge sharing |
blueprint |
Technical blueprint, precise & analytical | Architecture, system design, data analysis |
bold-editorial |
Magazine editorial, high-impact & dynamic | Product launches, marketing, keynotes |
vector-illustration |
Flat vector with black outlines, retro & cute | Creative proposals, children's content, brand showcases |
minimal |
Ultra-clean, maximum whitespace | Executive briefings, keynotes, premium brands |
storytelling |
Cinematic, full-bleed visuals | Narratives, case studies, emotional impact |
warm |
Soft gradients, wellness aesthetic | Lifestyle, wellness, personal development |
notion (Default) |
SaaS dashboard, clean data focus | Product demos, SaaS, productivity tools |
corporate |
Navy/gold, professional business | Investor decks, client proposals, quarterly reports |
playful |
Vibrant colors, dynamic rounded shapes | Workshops, training, creative pitches |
Detailed style definitions: references/styles/<style>.md
Auto Style Selection
| Content Signals | Selected Style |
|---|---|
| tutorial, learn, education, guide, intro, beginner | sketch-notes |
| architecture, system, data, analysis, technical, engineering | blueprint |
| launch, marketing, brand, keynote, impact, showcase | bold-editorial |
| creative, children, kids, cute, illustration, retro | vector-illustration |
| executive, minimal, clean, simple, elegant | minimal |
| story, journey, case study, narrative, emotional | storytelling |
| wellness, lifestyle, personal, growth, mindfulness | warm |
| saas, product, dashboard, metrics, productivity | notion |
| investor, quarterly, business, corporate, proposal, client | corporate |
| workshop, training, fun, playful, energetic, team | playful |
| Default | notion |
Design Philosophy
This deck is designed for reading and sharing, not live presentation:
- Each slide must be self-explanatory without verbal commentary
- Structure content for logical flow when scrolling
- Include all necessary context within each slide
- Optimize for social media sharing and offline reading
File Management
With Content Path
Save to slide-deck/ subdirectory in the same folder as the content:
content-dir/
├── source-content.md
└── slide-deck/
├── 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
Without Content Path
Save to slide-outputs/YYYY-MM-DD/[topic-slug]/:
slide-outputs/
└── 2026-01-17/
└── ai-future-trends/
├── outline.md
├── prompts/
│ ├── 01-slide-cover.md
│ └── ...
├── 01-slide-cover.png
├── ...
├── ai-future-trends.pptx
└── ai-future-trends.pdf
Workflow
Step 1: Analyze Content & Determine Settings
- Read source material
- Style selection:
- If
--stylespecified, use that style - Otherwise, scan for style signals and auto-select
- If
- Language detection:
- If
--langspecified, use that language for all prompts and slide text - Otherwise, detect language from source material
- If uncertain (mixed languages or unclear), ask user to confirm
- If
- Slide count:
- If
--slidesspecified, use that count - Otherwise, dynamic based on content structure
- If
Step 2: Generate Outline with Style Instructions
Create outline with structured STYLE_INSTRUCTIONS block:
# Slide Deck Outline
**Topic**: [topic description]
**Style**: [selected style]
**Audience**: [target audience]
**Language**: [output language]
**Slide Count**: N slides
**Generated**: YYYY-MM-DD HH:mm
---
<STYLE_INSTRUCTIONS>
Design Aesthetic: [2-3 sentence description from style file]
Background:
Color: [Name] ([Hex])
Texture: [description]
Typography:
Primary Font: [detailed description for image generation]
Secondary Font: [detailed description for image generation]
Color Palette:
Primary Text: [Name] ([Hex]) - [usage]
Background: [Name] ([Hex]) - [usage]
Accent 1: [Name] ([Hex]) - [usage]
Accent 2: [Name] ([Hex]) - [usage]
Visual Elements:
- [element 1 with rendering guidance]
- [element 2 with rendering guidance]
- ...
Style Rules:
Do: [guidelines from style file]
Don't: [anti-patterns from style file]
</STYLE_INSTRUCTIONS>
---
## Slide 1 of N
**Type**: Cover
**Filename**: 01-slide-cover.png
// NARRATIVE GOAL
[What this slide achieves in the story arc]
// KEY CONTENT
Headline: [main title]
Sub-headline: [supporting tagline]
// VISUAL
[Detailed visual description - specific elements, composition, mood]
// LAYOUT
[Composition, hierarchy, spatial arrangement]
---
## Slide 2 of N
**Type**: Content
**Filename**: 02-slide-{slug}.png
// NARRATIVE GOAL
[What this slide achieves in the story arc]
// KEY CONTENT
Headline: [main message - narrative, not label]
Sub-headline: [supporting context]
Body:
- [point 1 with specific detail]
- [point 2 with specific detail]
- [point 3 with specific detail]
// VISUAL
[Detailed visual description]
// LAYOUT
[Composition, hierarchy, spatial arrangement]
---
...
## Slide N of N
**Type**: Back Cover
**Filename**: {NN}-slide-back-cover.png
// NARRATIVE GOAL
[Meaningful closing - not just "thank you"]
// KEY CONTENT
Headline: [memorable closing statement or call-to-action]
Body: [optional summary points or next steps]
// VISUAL
[Visual that reinforces the core message]
// LAYOUT
[Clean, impactful composition]
Step 3: Save Outline
Save outline as outline.md in the output directory.
If --outline-only is specified, stop here.
Step 4: Generate Prompts
Create prompt file per slide in prompts/ directory:
- Read
references/base-prompt.md - Combine with style-specific instructions from outline
- Add slide-specific content from outline
- Save as
01-slide-cover.md,02-slide-{slug}.md, etc.
Step 5: Generate Images
Image Generation Skill Selection:
- Check available image generation skills
- If multiple skills available, ask user to choose
Session Management:
If the image generation skill supports --sessionId:
- Generate a unique session ID at the start (e.g.,
slides-{topic-slug}-{timestamp}) - Use the same session ID for all slides in the series
- This ensures style consistency across all generated slides
Generation Flow:
- Call selected image generation skill with prompt file, output path, and session ID
- Confirm generation success
- Report progress: "Generated X/N"
- Continue to next
Step 6: Merge to PPTX and PDF
After all images are generated, merge them into PowerPoint and PDF files:
npx -y bun ${SKILL_DIR}/scripts/merge-to-pptx.ts <slide-deck-dir>
npx -y bun ${SKILL_DIR}/scripts/merge-to-pdf.ts <slide-deck-dir>
This creates:
{topic-slug}.pptx- PowerPoint with all images as full-bleed 16:9 slides and prompt content as speaker notes{topic-slug}.pdf- PDF with all images as full-page slides
Step 7: Output Summary
Slide Deck Complete!
Topic: [topic]
Style: [style name]
Audience: [audience type]
Location: [directory path]
Slides: N total
- 01-slide-cover.png ✓ Cover
- 02-slide-intro.png ✓ Content
- 03-slide-main-point.png ✓ Content
- ...
- {NN}-slide-back-cover.png ✓ Back Cover
Outline: outline.md
PPTX: {topic-slug}.pptx
PDF: {topic-slug}.pdf
Content Rules
- Respect reader attention -
- Data traceability - All statistics must include source attribution
- Self-contained prompts - Every detail in the image prompt, no external references
- No placeholders - Every element must be fully specified
Style Rules
-
Narrative headlines - Headlines tell the story, not label the content
- Bad: "Key Statistics"
- Good: "Usage doubled in 6 months"
-
Avoid AI clichés - No "dive into", "explore", "journey", "let's"
-
Meaningful back cover - Not just "Thank you"
- Include call-to-action, key takeaway, or memorable closing
-
Consistent visual language - Same icons, colors, layouts throughout
Slide Structure
- Cover (Slide 1): Title, visual hook, topic introduction
- Content (Middle): Key points, data, explanations - dynamic count based on content
- Back Cover (Final): Summary, call-to-action, or memorable closing
Key Specifications
- Aspect Ratio: 16:9 (landscape)
- Slide Count: Dynamic based on content
- Required Slides: Cover + Back Cover minimum
- No slide numbers, footers, or logos
- Language: Priority order:
--langoption → source material language → ask user if uncertain - Tone: Direct, confident language (avoid AI-sounding phrases)
Style Reference Details
| Style | Description |
|---|---|
sketch-notes |
Hand-drawn feel, soft brush strokes, warm off-white background, conceptual icons |
blueprint |
Technical schematics, grid texture, precise lines, engineering blue tones |
bold-editorial |
High contrast, bold typography, dark backgrounds, magazine-level impact |
vector-illustration |
Flat vector, black outlines, retro colors, toy model aesthetic |
minimal |
Maximum whitespace, single accent color, clean sans-serif, zen-like |
storytelling |
Full-bleed imagery, cinematic compositions, emotional photography |
warm |
Soft gradients, rounded shapes, wellness palette, approachable |
notion |
Dashboard aesthetic, clean data viz, SaaS-inspired, productivity focus |
corporate |
Navy/gold palette, structured layouts, professional iconography, business polish |
playful |
Vibrant coral/teal/yellow, rounded shapes, dynamic layouts, energetic |
Full style specifications: references/styles/<style>.md
Notes
- Image generation typically takes 10-30 seconds per slide
- Auto-retry once on generation failure
- Use stylized alternatives for sensitive public figures
- Output language matches input content language (or
--lang) - Maintain style consistency across all slides in deck