From slides-ai-plugin
Orchestrates presentation creation from content planning to format-specific generation (HTML slides or PPTX). Invokes html-slides or pptx-slides skills for final output.
How this skill is triggered — by the user, by Claude, or both
Slash command
/slides-ai-plugin:slide-designgeneral-purposeThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
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.
Gather presentation requirements before generating anything. If $ARGUMENTS was provided, use it as the topic or content source.
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.
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.
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.
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.
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.
Determine which output format to generate:
If the user already specified a format (or both) in the prompt or in $ARGUMENTS, use that — do not ask again.
Invoke the appropriate generation skill, passing the full slide outline content:
/html-slides with the slide outline/pptx-slides with the slide outlinePass the full slide outline (content + style + structure) as the argument to the downstream skill. Then proceed to Step 5.
To avoid long-running forks, generate one format at a time:
slide-outline.md with all planning context (topic, structure, style, format notes)/html-slides with the slide outline — wait for completion, then proceed to Step 5 validation for HTML/pptx-slides with the same slide outline — wait for completion, then proceed to Step 5 validation for PPTXAfter generation completes, verify the output:
h.validateDeck(pptx) before saving100vh/100dvh), prefers-reduced-motion support, and clamp() font sizingReport validation results to the user and provide the output file path.
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.
When content exceeds the density limits, split intelligently:
Never reduce font size to fit more content. The minimum body text is 18pt — non-negotiable for audience readability.
Avoid these common mistakes:
Before generating any slide, define and propagate these design parameters:
${CLAUDE_SKILL_DIR}/references/style-presets.mdTo convert an existing PowerPoint to HTML:
python ${CLAUDE_PLUGIN_ROOT}/skills/html-slides/scripts/extract-pptx.py <input.pptx>/html-slides skillreferences/style-presets.md — 12 curated visual style presets with typography, colors, and signature elementsreferences/design-principles.md — Typography, color theory, layout, accessibility, and professional polish guidelineshtml-slides — HTML generation with GSAP animations and viewport fittingpptx-slides — PowerPoint generation with PptxGenJS and validationnpx claudepluginhub proyecto26/slides-ai-plugin --plugin slides-ai-pluginGenerates a professionally designed HTML slide deck from a brief or content notes. Single-file output with 13 layout types and 8 style presets.
Creates slide presentations from topics, URLs, PDFs, git repos, or vault notes. Handles research, synthesis, outlining, and editing existing decks. Default output is reveal.js HTML; pptx available on request.
Generates HTML slide decks for presentations with fixed 1920×1080 canvas, chapter-driven titles, slide-native type scale, and JS scaling. Activates when users request slide presentations.