719 lines
24 KiB
Markdown
719 lines
24 KiB
Markdown
---
|
|
name: baoyu-slide-deck
|
|
description: 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".
|
|
version: 1.56.1
|
|
metadata:
|
|
openclaw:
|
|
homepage: https://github.com/JimLiu/baoyu-skills#baoyu-slide-deck
|
|
requires:
|
|
anyBins:
|
|
- bun
|
|
- npx
|
|
---
|
|
|
|
# Slide Deck Generator
|
|
|
|
Transform content into professional slide deck images.
|
|
|
|
## Usage
|
|
|
|
```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
|
|
```
|
|
|
|
## Script Directory
|
|
|
|
**Agent Execution Instructions**:
|
|
1. Determine this SKILL.md file's directory path as `{baseDir}`
|
|
2. Script path = `{baseDir}/scripts/<script-name>.ts`
|
|
3. Resolve `${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 |
|
|
|
|
## 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 |
|
|
| `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: `references/dimensions/*.md`
|
|
|
|
### Auto Style Selection
|
|
|
|
| Content Signals | Preset |
|
|
|-----------------|--------|
|
|
| tutorial, learn, education, guide, beginner | `sketch-notes` |
|
|
| 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
|
|
|
|
```
|
|
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}.pdf
|
|
```
|
|
|
|
**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:
|
|
|
|
```
|
|
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 summary
|
|
```
|
|
|
|
### Flow
|
|
|
|
```
|
|
Input → Preferences → Analyze → [Check Existing?] → Confirm (1-2 rounds) → Outline → [Review Outline?] → Prompts → [Review Prompts?] → Images → Merge → Complete
|
|
```
|
|
|
|
### Step 1: Setup & Analyze
|
|
|
|
**1.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**
|
|
|
|
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:
|
|
|
|
```bash
|
|
test -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:
|
|
- 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**
|
|
```
|
|
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"
|
|
```
|
|
|
|
#### 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**
|
|
```
|
|
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**:
|
|
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:
|
|
|
|
```
|
|
| # | 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**:
|
|
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:
|
|
|
|
```
|
|
| # | Filename | Slide Title |
|
|
|---|----------|-------------|
|
|
| 1 | 01-slide-cover.md | [title] |
|
|
| 2 | 02-slide-xxx.md | [title] |
|
|
| ... | ... | ... |
|
|
```
|
|
|
|
- Path to prompts directory: `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**:
|
|
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
|
|
|
|
```bash
|
|
${BUN_X} {baseDir}/scripts/merge-to-pptx.ts <slide-deck-dir>
|
|
${BUN_X} {baseDir}/scripts/merge-to-pdf.ts <slide-deck-dir>
|
|
```
|
|
|
|
### Step 9: Output Summary
|
|
|
|
**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
|
|
```
|
|
|
|
## 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:
|
|
|
|
```bash
|
|
/baoyu-slide-deck content.md --prompts-only
|
|
```
|
|
|
|
Output: `outline.md` + `prompts/*.md` ready for review/editing.
|
|
|
|
### Using `--images-only`
|
|
|
|
Generate images from existing prompts (starts at Step 7):
|
|
|
|
```bash
|
|
/baoyu-slide-deck slide-deck/topic-slug/ --images-only
|
|
```
|
|
|
|
Prerequisites:
|
|
- `prompts/` directory with slide prompt files
|
|
- `outline.md` with style information
|
|
|
|
### Using `--regenerate`
|
|
|
|
Regenerate 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:
|
|
1. Read existing prompts for specified slides
|
|
2. Regenerate images only for those slides
|
|
3. Regenerate PPTX/PDF
|
|
|
|
## Slide Modification
|
|
|
|
### Quick Reference
|
|
|
|
| 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 |
|
|
|
|
### Edit Single Slide
|
|
|
|
1. **Update prompt file FIRST** in `prompts/NN-slide-{slug}.md`
|
|
2. Run: `/baoyu-slide-deck <dir> --regenerate N`
|
|
3. 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: `prompts/NN-slide-{new-slug}.md`
|
|
2. Generate image using same session ID
|
|
3. **Renumber**: Subsequent files NN+1 (slugs unchanged)
|
|
4. Update `outline.md`
|
|
5. Regenerate PPTX/PDF
|
|
|
|
### Delete Slide
|
|
|
|
1. Remove `NN-slide-{slug}.png` and `prompts/NN-slide-{slug}.md`
|
|
2. **Renumber**: Subsequent files NN-1 (slugs unchanged)
|
|
3. Update `outline.md`
|
|
4. Regenerate PPTX/PDF
|
|
|
|
### File Naming
|
|
|
|
Format: `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.
|
|
|
|
## References
|
|
|
|
| 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 |
|
|
|
|
## 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.
|