Files
baoyu-skills/skills/baoyu-slide-deck/SKILL.md
T
2026-01-17 12:08:08 -06:00

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:

  1. Determine this SKILL.md file's directory path as SKILL_DIR
  2. Script path = ${SKILL_DIR}/scripts/<script-name>.ts
  3. 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 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

  1. Read source material
  2. Style selection:
    • If --style specified, use that style
    • Otherwise, scan for style signals and auto-select
  3. Language detection:
    • If --lang specified, 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
  4. Slide count:
    • If --slides specified, use that count
    • Otherwise, dynamic based on content structure

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:

  1. Read references/base-prompt.md
  2. Combine with style-specific instructions from outline
  3. Add slide-specific content from outline
  4. Save as 01-slide-cover.md, 02-slide-{slug}.md, etc.

Step 5: Generate Images

Image Generation Skill Selection:

  1. Check available image generation skills
  2. If multiple skills available, ask user to choose

Session Management: If the image generation skill supports --sessionId:

  1. Generate a unique session ID at the start (e.g., slides-{topic-slug}-{timestamp})
  2. Use the same session ID for all slides in the series
  3. This ensures style consistency across all generated slides

Generation Flow:

  1. Call selected image generation skill with prompt file, output path, and session ID
  2. Confirm generation success
  3. Report progress: "Generated X/N"
  4. 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

  1. Respect reader attention -
  2. Data traceability - All statistics must include source attribution
  3. Self-contained prompts - Every detail in the image prompt, no external references
  4. No placeholders - Every element must be fully specified

Style Rules

  1. Narrative headlines - Headlines tell the story, not label the content

    • Bad: "Key Statistics"
    • Good: "Usage doubled in 6 months"
  2. Avoid AI clichés - No "dive into", "explore", "journey", "let's"

  3. Meaningful back cover - Not just "Thank you"

    • Include call-to-action, key takeaway, or memorable closing
  4. Consistent visual language - Same icons, colors, layouts throughout

Slide Structure

  1. Cover (Slide 1): Title, visual hook, topic introduction
  2. Content (Middle): Key points, data, explanations - dynamic count based on content
  3. 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: --lang option → 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