Slide Design — Presentation Planning & Orchestration
Entry-point pipeline for creating professional presentations. This skill orchestrates the full workflow from content planning through format-specific generation, programmatically invoking the html-slides or pptx-slides skill for the final output.
Execute the steps below in order. Do NOT skip steps or ask the user to choose which steps to run — the pipeline is sequential.
Step 1: Content Discovery
Gather presentation requirements before generating anything. If $ARGUMENTS was provided, use it as the topic or content source.
- Topic & purpose — Identify the subject, key message, and call to action
- Audience — Technical level, interests, expected takeaways
- Duration & format — Map to the slide count guidelines below
- Language & tone — Bilingual (e.g., Spanish headings + English terms), formal, playful, meme-driven
- Existing content — Check for PPTX files to convert, markdown outlines, documents to adapt, or template PDFs to reference
Check for per-project settings that override defaults by reading .claude/slides-ai-plugin.local.md from the user's project directory (if it exists). This file may contain YAML frontmatter with preferences like default format, theme, language, or speaker-notes style.
Produce: slide-outline.md in the working directory with topic, audience, duration, language, and existing content summary.
Immediately continue to Step 2.
Step 2: Structure Planning
Build an outline following the talk-duration-indexed slide count:
| Duration | Slide Count | Structure |
|---|---|---|
| 5 min (Lightning) | 5-7 slides | Hook -> 2-3 key points -> CTA |
| 15 min (Short talk) | 12-18 slides | Intro -> 3-4 sections -> Summary -> CTA |
| 30 min (Conference) | 25-35 slides | Title -> Agenda -> 5-6 sections -> Q&A |
| 45 min (Keynote) | 35-50 slides | Title -> Agenda -> 7-8 sections -> Summary -> CTA |
| 60 min (Workshop) | 40-60 slides | Title -> Agenda -> Sections with exercises -> Wrap-up |
Apply the one idea per slide rule. Each slide communicates a single concept with supporting evidence.
Slide Type Vocabulary
Tag each slide in the outline with a type: title, section-divider, content, image-focus, comparison, quote, code, feature-grid, timeline, metrics, meme-gif, diagram, demo-divider, audience-question, closing.
Produce: Updated slide-outline.md with tagged slide outline.
Format Capabilities (Planning Reference)
Use this table when tagging slide types — some types work better in specific formats:
| Capability | HTML | PPTX | Notes |
|---|---|---|---|
| GSAP animations (timeline, scroll, spring) | Yes | No | Use for cinematic reveals, parallax, scroll-driven navigation |
| CSS transitions (fade, scale, blur) | Yes | No | Lightweight entrance animations |
| Mermaid diagrams | Yes | No | Flowcharts, sequence diagrams, ER diagrams |
| Inline video/embed | Yes | No | YouTube, Loom, demos |
| Editable text boxes | No | Yes | Recipients modify content directly in PowerPoint |
| Native shapes & charts | No | Yes | Architecture diagrams, org charts via PptxGenJS |
| Speaker notes (exportable) | Limited | Yes | PPTX speaker notes integrate with Presenter View |
| Offline sharing | No | Yes | PPTX works without a browser/server |
contenteditable inline edit | Yes | No | Browser-based live editing before presenting |
| Syntax highlighting | Prism.js (CDN) | PptxGenJS codeToRuns() | Both supported, different rendering |
| Responsive/mobile viewing | Yes | No | HTML adapts to viewport; PPTX is fixed layout |
When tagging slides: prefer meme-gif, diagram, timeline with animations for HTML; prefer comparison, feature-grid, metrics with native shapes for PPTX. Both formats handle title, content, quote, code, image-focus equally well.
Immediately continue to Step 3.
Step 3: Style Selection
Present 3 distinct visual directions. For each direction, provide: a one-line mood description, the typography pair, primary + accent colors, and the background recipe.
Read style presets from: ${CLAUDE_SKILL_DIR}/references/style-presets.md
Mixed-background decks: Some presentations use multiple background colors across slide groups. When the user's content suggests distinct sections with different moods, propose a mixed-background approach.
Produce: Updated slide-outline.md with selected style preset.
Immediately continue to Step 4.
Step 4: Format Selection & Generation
Determine which output format to generate:
- HTML — Interactive, animated, browser-based. Best for web sharing, embedded videos, GSAP animations.
- PPTX — Editable PowerPoint. Best for corporate settings, offline sharing, template reuse.
- Both — Generate HTML for presenting and PPTX for sharing/editing.
If the user already specified a format (or both) in the prompt or in $ARGUMENTS, use that — do not ask again.
Single-format generation
Invoke the appropriate generation skill, passing the full slide outline content:
- If HTML: Run
/html-slideswith the slide outline - If PPTX: Run
/pptx-slideswith the slide outline
Pass the full slide outline (content + style + structure) as the argument to the downstream skill. Then proceed to Step 5.
Dual-format generation (Both)
To avoid long-running forks, generate one format at a time:
- Save the finalized
slide-outline.mdwith all planning context (topic, structure, style, format notes) - Run
/html-slideswith the slide outline — wait for completion, then proceed to Step 5 validation for HTML - Run
/pptx-slideswith the same slide outline — wait for completion, then proceed to Step 5 validation for PPTX - Report both output file paths to the user
Step 5: Validation
After generation completes, verify the output:
- Slide count matches duration guidelines from Step 2
- Speaker notes present on every content slide
- For PPTX: Confirm the generation script included
h.validateDeck(pptx)before saving - For HTML: Verify viewport fitting (
100vh/100dvh),prefers-reduced-motionsupport, andclamp()font sizing - Content density respects per-slide limits (see below)
- Visual consistency across all slides (fonts, colors, spacing)
Report validation results to the user and provide the output file path.
Content Density Limits
For each slide type, enforce maximum content:
| Slide Type | Maximum Content |
|---|---|
| Title | 1 heading + 1 subtitle + optional image |
| Section divider | 1 heading + 1 sentence |
| Content | 1 heading + 4-6 bullet points (1-2 sentences each) |
| Image focus | 1 heading + 1 image + 1 caption |
| Comparison | 1 heading + 2 columns (3-4 items each) |
| Quote | 1 quote + attribution |
| Code | 1 heading + 1 code block (max 15 lines) |
| Feature grid | 1 heading + max 6 cards |
| Timeline | 1 heading + max 5 milestones |
| Metrics | 3-4 large numbers with labels |
| Meme/GIF | 1 image placeholder + 1 caption |
Exceeding limits triggers automatic splitting — never cram content.
Auto-Split Logic
When content exceeds the density limits, split intelligently:
- Long bullet lists (>6 items) -> Split into "Part 1/2" slides with consistent heading
- Dense code (>15 lines) -> Extract key snippet for slide, link to full example
- Multiple images -> One image per slide with caption, or a grid slide (max 4)
- Complex diagrams -> Build up incrementally across 2-3 slides (progressive revelation)
Never reduce font size to fit more content. The minimum body text is 18pt — non-negotiable for audience readability.
Design Anti-Patterns
Avoid these common mistakes:
- Font soup — More than 2 font families. Pick one heading + one body font.
- Color rainbow — More than 3 colors. Apply the 60-30-10 rule.
- Wall of text — Distill to keywords and phrases.
- **Clip