canghe-slide-deck
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".
By freestylefly · 495 installs
npx skills add freestylefly/canghe-skills --skill canghe-slide-deck
Source repository · Upstream listing
Slide Deck Generator
Transform content into professional slide deck images.
Usage
Script Directory
Agent Execution Instructions :
1. Determine this SKILL.md file's directory path as SKILL DIR
2. Script path = ${SKILL DIR}/scripts/<script name .ts
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: 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)
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
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 :
1. lang flag (explicit)
2. EXTEND.md language setting
3. User's conversation language (input language)
4. 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:
Flow
Step 1: Setup & Analyze
1.1 Load Preferences (EXTEND.md)
Use Bash to check EXTEND.md existence (priority order):
┌──────────────────────────────────────────────────┬───────────────────┐
│ Path │ Location │
├──────────────────────────────────────────────────┼───────────────────┤
│ .canghe skills/canghe slide deck/EXTEND.md │ Project directory │
├──────────────────────────────────────────────────┼───────────────────┤
│ $HOME/.canghe skills/canghe slide deck/EXTEND.md │ User home │
└──────────────────────────────────────────────────┴───────────────────┘
When EXTEND.md Found → Read, parse, output summary to user :
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
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
3. Analyze content signals for style recommendations
4. Detect source language
5. Determine recommended slide count
6. 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:
If directory exists , use AskUserQuestion:
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
Question 2: Audience
Question 3: Slide Count
Question 4: Review Outline
Question 5: Review Prompts
Round 2 (Only if "Custom dimensions" selected)
Use AskUserQuestion for all 4 dimensions:
Question 1: Texture
(Note: "paper" available via Other)
Question 2: Mood
(Note: "dark", "neutral" available via Other)
Question 3: Typography
(Note: "technical" available via Other)
Question 4: Density
After Round 2 : Store custom dimensions as the style configuration.
After Confirmation :
1. Update analysis.md with confirmed preferences
2. Store skip outline review flag from Question 4
3. Store skip prompt review flag from Question 5
4. → 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 :
1. Follow references/outline template.md for structure
2. Build STYLE INSTRUCTIONS from style or dimensions
3. Apply confirmed audience, language, slide count
4. 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:
Use AskUserQuestion :
After response :
1. If "Edit outline first" → Inform user to edit outline.md , ask again when ready
2. If "Regenerate outline" → Back to Step 3
3. If "Yes, proceed" → Continue to Step 5
Step 5: Generate Prompts
1. Read references/base prompt.md
2. 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 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:
Path to prompts directory: prompts/
Use AskUserQuestion :
After response :
1. If "Edit prompts first" → Inform user to edit prompts, ask again when ready
2. If "Regenerate prompts" → Back to Step 5
3. 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
2. Generate session ID: slides {topic slug} {timestamp}
3. 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)
5. Auto retry once on failure before reporting error
Step 8: Merge to PPTX and PDF
Step 9: Output Summary
Language : Use user's input language or saved language preference.
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:
Output: outline.md + prompts/ .md ready for review/editing.
Using images only
Generate images from existing prompts (starts at Step 7):
Prerequisites:
prompts/ directory with slide prompt files
outline.md with style information
Using regenerate
Regenerate specific slides:
Flow:
1. Read existing