PPTX Generator & Editor
Overview
This skill handles all PowerPoint tasks: reading/analyzing existing presentations, editing template-based decks via XML manipulation, and creating presentations from scratch using PptxGenJS. It includes a complete design system (color palettes, fonts, style recipes) and detailed guidance for every slide type.
Quick Reference
Reference Files
Reading Content
Creating from Scratch — Workflow
Use when no template or reference presentation is available.
Step 1: Research & Requirements
Search to understand user requirements — topic, audience, purpose, tone, content depth.
Step 2: Select Color Palette & Fonts
Use the Color Palette Reference [blocked] to select a palette matching the topic and audience. Use the Font Reference [blocked] to choose a font pairing.
Step 3: Select Design Style
Use the Style Recipes [blocked] to choose a visual style (Sharp, Soft, Rounded, or Pill) matching the presentation tone.
Step 4: Plan Slide Outline
Classify every slide as exactly one of the 5 page types [blocked]. Plan the content and layout for each slide. Ensure visual variety — do NOT repeat the same layout across slides.
Step 5: Generate Slide JS Files
Create one JS file per slide in slides/ directory. Each file must export a synchronous createSlide(pres, theme) function. Follow the Slide Output Format and the type-specific guidance in slide-types.md [blocked]. Generate up to 5 slides concurrently using subagents if available.
Tell each subagent:
- File naming:
slides/slide-01.js,slides/slide-02.js, etc. - Images go in:
slides/imgs/ - Final PPTX goes in:
slides/output/ - Dimensions: 10" x 5.625" (LAYOUT_16x9)
- Fonts: Chinese = Microsoft YaHei, English = Arial (or approved alternative)
- Colors: 6-char hex without # (e.g.
"FF0000") - Must use the theme object contract (see Theme Object Contract)
- Must follow the PptxGenJS API reference [blocked]
Step 6: Compile into Final PPTX
Create slides/compile.js to combine all slide modules:
Run with: cd slides && node compile.js
Step 7: QA (Required)
See QA Process [blocked].
Output Structure
Slide Output Format
Each slide is a complete, runnable JS file:
Theme Object Contract (MANDATORY)
The compile script passes a theme object with these exact keys:
NEVER use other key names like background, text, muted, darkest, lightest.
Page Number Badge (REQUIRED)
All slides except Cover Page MUST include a page number badge in the bottom-right corner.
- Position: x: 9.3", y: 5.1"
- Show current number only (e.g.
3or03), NOT "3/12" - Use palette colors, keep subtle
Circle Badge (Default)
Pill Badge
Dependencies
pip install "markitdown[pptx]"— text extractionnpm install -g pptxgenjs— creating from scratchnpm install -g react-icons react react-dom sharp— icons (optional)


