pptx-generator

minimax-ai/skills · updated Apr 8, 2026

$npx skills add https://github.com/minimax-ai/skills --skill pptx-generator
0 commentsdiscussion
summary

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.

skill.md

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

Task Approach
Read/analyze content python -m markitdown presentation.pptx
Edit or create from template See Editing Presentations
Create from scratch See Creating from Scratch below
Item Value
Dimensions 10" x 5.625" (LAYOUT_16x9)
Colors 6-char hex without # (e.g., "FF0000")
English font Arial (default), or approved alternatives
Chinese font Microsoft YaHei
Page badge position x: 9.3", y: 5.1"
Theme keys primary, secondary, accent, light, bg
Shapes RECTANGLE, OVAL, LINE, ROUNDED_RECTANGLE
Charts BAR, LINE, PIE, DOUGHNUT, SCATTER, BUBBLE, RADAR

Reference Files

File Contents
slide-types.md 5 slide page types (Cover, TOC, Section Divider, Content, Summary) + additional layout patterns
design-system.md Color palettes, font reference, style recipes (Sharp/Soft/Rounded/Pill), typography & spacing
editing.md Template-based editing workflow, XML manipulation, formatting rules, common pitfalls
pitfalls.md QA process, common mistakes, critical PptxGenJS pitfalls
pptxgenjs.md Complete PptxGenJS API reference

Reading Content

# Text extraction
python -m markitdown presentation.pptx

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 to select a palette matching the topic and audience. Use the Font Reference to choose a font pairing.

Step 3: Select Design Style

Use the Style Recipes 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. 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. Generate up to 5 slides concurrently using subagents if available.

Tell each subagent:

  1. File naming: slides/slide-01.js, slides/slide-02.js, etc.
  2. Images go in: slides/imgs/
  3. Final PPTX goes in: slides/output/
  4. Dimensions: 10" x 5.625" (LAYOUT_16x9)
  5. Fonts: Chinese = Microsoft YaHei, English = Arial (or approved alternative)
  6. Colors: 6-char hex without # (e.g. "FF0000")
  7. Must use the theme object contract (see Theme Object Contract)
  8. Must follow the PptxGenJS API reference

Step 6: Compile into Final PPTX

Create slides/compile.js to combine all slide modules:

// slides/compile.js
const pptxgen = require('pptxgenjs');
const pres = new pptxgen();
pres.layout = 'LAYOUT_16x9';

const theme = {
  primary: "22223b",    // dark color for backgrounds/text
  secondary: "4a4e69",  // secondary accent
  accent: "9a8c98",     // highlight color
  light: "c9ada7",      // light accent
  bg: "f2e9e4"          // background color
};

for (let i = 1; i <= 12; i++) {  // adjust count as needed
  const num = String(i).padStart(2, '0');
  const slideModule = require(`./slide-${num}.js`);
  slideModule.createSlide(pres, theme);
}

pres.writeFile({ fileName: './output/presentation.pptx' });

Run with: cd slides && node compile.js

Step 7: QA (Required)

See QA Process.

Output Structure

slides/
├── slide-01.js          # Slide modules
├── slide-02.js
├── ...
├── imgs/                # Images used in slides
└── output/              # Final artifacts
    └── presentation.pptx

Slide Output Format

Each slide is a complete, runnable JS file:

// slide-01.js
const pptxgen = require("pptxgenjs");

const slideConfig = {
  type: 'cover',
  index: 1,
  title: 'Presentation Title'
};

// MUST be synchronous (not async)
function createSlide(pres, theme) {
  const slide = pres.addSlide();
  slide.background = { color: theme.bg };

  slide.addText(slideConfig.title, {
    x: 0.5, y: 2, w: 9, h: 1.2,
    fontSize: 48, fontFace: "Arial",
    color: theme.primary, bold: true, align: "center"
  });

  return slide;
}

// Standalone preview - use slide-specific filename
if (require.main === module) {
  const pres = new pptxgen();
  pres.layout = 'LAYOUT_16x9';
  const theme = {
    primary: "22223b",
    secondary: "4a4e69",
    accent: "9a8c98",
    light: "c9ada7",
    bg: "f2e9e4"
  };
  createSlide(pres, theme);
  pres.writeFile({ fileName: "slide-01-preview.pptx" });
}

module.exports = { createSlide, slideConfig };

Theme Object Contract (MANDATORY)

The compile script passes a theme object with these exact keys:

Key Purpose Example
theme.primary Darkest color, titles "22223b"
theme.secondary Dark accent, body text "4a4e69"
theme.accent Mid-tone accent "9a8c98"
theme.light Light accent "c9ada7"
theme.bg Background color "f2e9e4"

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. 3 or 03), NOT "3/12"
  • Use palette colors, keep subtle

Circle Badge (Default)

slide.addShape(pres.shapes.OVAL, {
  x: 9.3, y

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.567 reviews
  • Chinedu Sethi· Dec 20, 2024

    Registry listing for pptx-generator matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Fatima Abbas· Dec 4, 2024

    pptx-generator reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Aarav Robinson· Dec 4, 2024

    Keeps context tight: pptx-generator is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Rahul Santra· Nov 23, 2024

    I recommend pptx-generator for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Neel Liu· Nov 23, 2024

    We added pptx-generator from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Aanya Chawla· Nov 23, 2024

    pptx-generator has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Chinedu Dixit· Nov 11, 2024

    pptx-generator fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Arya Ramirez· Nov 7, 2024

    I recommend pptx-generator for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Chinedu Shah· Nov 3, 2024

    Useful defaults in pptx-generator — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Kabir Srinivasan· Oct 26, 2024

    Useful defaults in pptx-generator — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

showing 1-10 of 67

1 / 7