skills/deck-creator/SKILL.md
This skill should be used when the user asks to "create a deck", "make a presentation", "build slides", "pitch deck", "investor deck", "sales presentation", "design a deck", "interactive presentation", "presenter mode", "HTML slides", "video background deck", "deck playground", "visual deck editor", "deck builder UI", "publish deck link", or needs to generate a complete deck with minimal friction. Handles low-question discovery, early Deck Creator UI launch, theme selection, copywriting, parallel slide generation, PDF stitching, optional HTML presenter, and publishing workflows.
npx skillsauth add b-open-io/gemskills deck-creatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create professional presentation decks with consistent visual style, compelling copy, AI-generated slide images, and optional interactive HTML presenter with video backgrounds.
For a visual UI to design and generate decks interactively:
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/deck-creator/scripts/playground_server.ts --dir <deck-dir>
The playground provides style browsing, per-slide editing, live preview, and one-click generation. Supports both Gemini PNG and text-layered HTML modes.
IMPORTANT: Invoke this skill via the Skill tool (Skill("deck-creator")). Do not manually execute phases without loading this skill first. Follow the workflow step by step; do not skip phases.
Prefer speed over exhaustive questioning. Ask only what is necessary, infer the rest, and get the user into the UI quickly.
Ask one compact question set first:
pdf, html+pdf, or web/publish)Infer defaults when missing:
10html+pdf for live/web use, otherwise pdfnoneAfter creating THEME.md + DECK-PLAN.md, launch the playground immediately with the target deck dir preloaded:
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/deck-creator/scripts/playground_server.ts --dir <deck-dir>
Then ask exactly one fork-in-the-road question:
Do not auto-generate slides without explicit user confirmation (cost-sensitive), but offer a one-click quick start to generate slide 1 first.
Six phases, executed in order:
Gather only the minimum information needed before opening the UI.
Ask in tiers:
Tier 1 (Always): Audience, Purpose, Content sources/materials, Slide count (recommend 10-16)
Tier 2 (Context): Presentation setting, Brand guidelines, Style references, Existing assets
Tier 3 (If live/conference/webinar): PDF only or HTML presenter too? Video backgrounds? Browse styles visually or auto-suggest?
If example decks or references are provided, analyze visual style, layout patterns, typography, and messaging patterns.
<deck-dir>THEME.md and DECK-PLAN.md with best-guess defaults--dir <deck-dir> so the user lands in the deck immediatelyThis is the normal flow. Do not delay UI launch until every detail is finalized.
Establish a consistent visual system before generating slides.
Option A: Theme Factory (recommended) - Install and invoke theme-factory skill for a cohesive palette.
Option B: Manual - Define Background, Primary, Secondary, Text, and Accent colors from brand guidelines.
Aspect Ratio: 16:9 (--size 2K produces 1376x768)
Art Style: (optional) Any style ID from browsing-styles skill (e.g., pixl, cybr, deco)
Typography: Headlines Bold 48-64px, Body 18-24px, Stats Extra Bold 72-96px
Layout: Card-based with generous whitespace
Apply a consistent art style across all slides using --style <id>. Browse 169 styles with the browsing-styles skill. When a style is specified, add --style <id> to every generation command.
If the user wants an HTML presenter, add a Presenter Settings block to THEME.md:
## Presenter Settings
Format: html+pdf
Video Background: none | url(<url>) | veo-global | veo-per-slide
Transition: 500ms
Auto-Advance: false
Document the complete theme in THEME.md.
Apply copywriting principles: one message per slide, headlines tell the story, show don't tell, problem-solution-proof structure, concrete over abstract, end with action.
Create a DECK-PLAN.md with deck overview and per-slide plan (headline, content points, visual concept, key message). Continue gathering content until 10-16 slides are fully planned. Do not proceed to generation until the content plan is complete.
Consult references/copywriting.md for headline formulas, persuasion patterns, and audience-specific framing. Consult references/slide-types.md for detailed templates per slide type.
Launch all slide generation agents simultaneously. Spawn one gemskills:content-specialist agent per slide via the Task tool. Include theme spec, slide prompt, output path, and the generate-image command:
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts "prompt" --aspect 16:9 --size 2K [--style <id>] --output <path>
Limit to 12 parallel generations. For 14+ slides, generate in two batches.
Verify all slides exist, stitch into PDF, verify PDF, create DECK-INDEX.md, provide summary. Consult references/generation.md for detailed prompt templates, PDF stitching methods, and post-generation steps.
Do not read generated slide images back into context. Ask the user to visually inspect.
If the user requested an HTML presenter (or THEME.md specifies Format: html+pdf):
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/deck-creator/scripts/build_presenter.ts --dir <deck-dir> [--open]
For video backgrounds, either pass --video <url> with a user-provided URL, or generate an ambient loop via Veo 3.1 first. Consult references/presenter.md for full CLI options, video modes, keyboard shortcuts, and verification checklist.
If the user asked for web/share/publish, guide them to Deck > Publish & Share... in the playground and complete one publish route (Vercel, Zip, or Cloudflare Tunnel). Treat "publish link delivered" as the finish line for web mode.
project/deck/
├── THEME.md # Visual style definition
├── DECK-PLAN.md # Content planning document
├── DECK-INDEX.md # Final deck inventory
├── deck.pdf # Stitched presentation PDF
├── presenter.html # Interactive HTML presenter (optional)
├── ambient.mp4 # AI-generated video background (optional)
├── PRESENTER-CONFIG.json # Per-slide video config (optional)
└── slides/
├── 01-title.png
└── ...
references/slide-types.md - Expanded templates for each slide typereferences/copywriting.md - Marketing copy principles and headline formulasreferences/generation.md - Prompt templates, parallel generation, PDF stitchingreferences/presenter.md - HTML presenter build, video modes, keyboard shortcutsassets/videos/ - Bundled ambient video backgrounds (seeded to ~/.gemskills on first use)development
This skill should be used when the user asks to "plan a workflow", "diagram an agent system", "visualize an architecture", "map out a pipeline", "create a flow diagram", "draw agent connections", "design a multi-agent system", "show how agents interact", "make a system diagram", "visualize a data pipeline", "map out a process", "diagram my workflow", "create an architecture diagram", "plan agent orchestration", "brainstorm a system design", "show the flow between components", "interactive workflow diagram", "workflow canvas", "visual-planner", "open in tldraw", or "plan this project visually". Produces tldraw .tldr diagrams natively — the standard infinite canvas format. Includes a thin playground wrapper with planning-specific UI (phase controls, agent assignment, KPI bar, agent callback bridge) and an "Open in tldraw" button for standalone editing.
data-ai
This skill should be used when the user asks to "upscale an image", "increase image resolution", "make image bigger", "enlarge image", or "enhance image resolution". Requires Vertex AI credentials.
data-ai
This skill should be used when the user asks to "create team photo", "generate group portrait", "make team banner", "team image in any style", "group shot with multiple people", or needs a composite image featuring multiple team members arranged together in any art style.
development
This skill should be used when the user asks to "add a new style", "create a style", "add an art style", "new aesthetic", "custom style", "make a style for", or needs to add a new art style to the gemskills style library. Guides the complete workflow from defining the style to generating and optimizing the reference tile.