SkillAgentSearch skills...

slide-making-skill

Implement single-slide PowerPoint pages with PptxGenJS

Install / Use

npx skills add MiniMax-AI/skills --skill slide-making-skill

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

85/100

Supported Platforms

Universal

Our assessment of slide-making-skill

slide-making-skill scores 85/100 on our quality scale, 376th of 622 Content & Media skills we index.

Its SKILL.md is 7.0 KB long, well organised into 23 sections with 13 code examples: a thorough specification that gives an agent plenty to work with.

With 13,641 GitHub stars, it is one of the more widely adopted skills in the catalogue.

Substance
29/30
Structure
20/20
Description
8/15
Adoption
18/20
Freshness
11/15

Maintenance, license and trust

  • The repository was last updated about 5 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 98/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.

AI review by kimi-k2.7-code on 2026-09-27. Automated pattern scan on 2026-09-27. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

slide-making-skill compared with similar skills

All 4 of these similar skills score higher than slide-making-skill; compare them before choosing.

SkillScoreStarsUpdatedFormat
slide-making-skill (this skill)by MiniMax-AI8513.6k5mo agoSKILL.md
Agent-Reachby Panniantong10085.7k12d agoCLAUDE.md
headroomby headroomlabs-ai10073.9ktodayCLAUDE.md
crawl4aiby unclecode10084.4k2d agoMCP Server
Scraplingby D4Vinci10084.0ktodayMCP Server

Frequently asked questions

How do I install slide-making-skill?
Run npx skills add MiniMax-AI/skills --skill slide-making-skill. The install tabs above show the steps for each supported agent.
Which AI agents does slide-making-skill work with?
It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
Is slide-making-skill safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It is MIT-licensed and scores 98/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is slide-making-skill still maintained?
The repository was last updated about 5 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.

name: slide-making-skill description: "Implement single-slide PowerPoint pages with PptxGenJS. Use when writing or fixing slide JS files: dimensions, positioning, text/image/chart APIs, styling rules, and export expectations for native .pptx output."

PptxGenJS Slide Making Skill

This skill teaches how to generate native .pptx slides using PptxGenJS (JavaScript).

PptxGenJS Reference

Read pptxgenjs.md for the complete PptxGenJS API reference, including:

  • Setup & basic structure
  • Text & formatting
  • Lists & bullets
  • Shapes & shadows
  • Images & icons
  • Slide backgrounds
  • Tables & charts

Font Rules

Font Family Standards

| Language | Default | Alternatives | |----------|---------|--------------| | Chinese | Microsoft YaHei (微软雅黑) | — | | English | Arial | Georgia, Calibri, Cambria, Trebuchet MS |

fontFace: "Microsoft YaHei"  // Chinese text
fontFace: "Arial"            // English text (or approved alternative)

Use system-safe fonts for cross-platform compatibility. Header/body can use different fonts (e.g., Georgia + Calibri).

No Bold for Body Text

Plain body text and caption/legend text must NOT use bold.

  • Body paragraphs, descriptions → normal weight
  • Captions, legends, footnotes → normal weight
  • Reserve bold for titles and headings only
// ✅ Correct
slide.addText("Main Title", { bold: true, fontSize: 36, fontFace: "Arial" });
slide.addText("Body text here.", { bold: false, fontSize: 14, fontFace: "Arial" });

// ❌ Wrong
slide.addText("Body text here.", { bold: true, fontSize: 14 });

Color Palette Rules (MANDATORY)

Strict Palette Adherence

Use ONLY the provided color palette. Do NOT create or modify colors.

  • All colors must come from the user-provided palette
  • Do NOT use colors outside the palette
  • Do NOT modify palette colors (brightness, saturation, mixing)
  • Only exception: Add transparency using the transparency property (0-100)
// ✅ Correct: Using palette colors
slide.addShape(pres.shapes.RECTANGLE, { fill: { color: theme.primary } });
slide.addText("Title", { color: theme.accent });

// ❌ Wrong: Colors outside palette
slide.addShape(pres.shapes.RECTANGLE, { fill: { color: "1a1a2e" } });

No Gradients

Gradients are prohibited. Use solid colors only.

// ✅ Correct: Solid colors
slide.background = { color: theme.bg };

// ✅ Correct: Solid + transparency for overlay
slide.addShape(pres.shapes.RECTANGLE, { fill: { color: theme.accent, transparency: 50 } });

No Animations

Animations and transitions are prohibited. All slides must be static.


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: 5.1, w: 0.4, h: 0.4,
  fill: { color: theme.accent }
});
slide.addText("3", {
  x: 9.3, y: 5.1, w: 0.4, h: 0.4,
  fontSize: 12, fontFace: "Arial",
  color: "FFFFFF", bold: true,
  align: "center", valign: "middle"
});

Pill Badge

slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
  x: 9.1, y: 5.15, w: 0.6, h: 0.35,
  fill: { color: theme.accent },
  rectRadius: 0.15
});
slide.addText("03", {
  x: 9.1, y: 5.15, w: 0.6, h: 0.35,
  fontSize: 11, fontFace: "Arial",
  color: "FFFFFF", bold: true,
  align: "center", valign: "middle"
});

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.


Subagent Output Format

Each subagent outputs 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",  // English text uses Arial
    color: theme.primary, bold: true, align: "center"
  });

  return slide;
}

// Standalone preview - use slide-specific filename (slide-XX-preview.pptx)
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);
  // Replace XX with actual slide index (01, 02, etc.) to avoid conflicts
  pres.writeFile({ fileName: "slide-01-preview.pptx" });
}

module.exports = { createSlide, slideConfig };

Critical Pitfalls

NEVER use async/await in createSlide()

// ❌ WRONG - compile.js won't await
async function createSlide(pres, theme) { ... }

// ✅ CORRECT
function createSlide(pres, theme) { ... }

NEVER use "#" with hex colors

color: "FF0000"      // ✅ CORRECT
color: "#FF0000"     // ❌ CORRUPTS FILE

NEVER encode opacity in hex strings

shadow: { color: "00000020" }              // ❌ CORRUPTS FILE
shadow: { color: "000000", opacity: 0.12 } // ✅ CORRECT

Prevent text wrapping in titles

// ✅ Use fit:'shrink' for long titles
slide.addText("Long Title Here", {
  x: 0.5, y: 2, w: 9, h: 1,
  fontSize: 48, fit: "shrink"
});

Quick Reference

  • Dimensions: 10" × 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"

QA (Required)

Assume there are problems. Your job is to find them.

Your first render is almost never correct. Approach QA as a bug hunt, not a confirmation step. If you found zero issues on first inspection, you weren't looking hard enough.

Content QA

python -m markitdown slide-XX-preview.pptx

Check for missing content, typos, wrong order.

Check for leftover placeholder text:

python -m markitdown slide-XX-preview.pptx | grep -iE "xxxx|lorem|ipsum|placeholder"

If grep returns results, fix them before declaring success.

Verification Loop

  1. Generate slide → Extract text with python -m markitdown slide-XX-preview.pptx → Review content
  2. List issues found (if none found, look again more critically)
  3. Fix issues
  4. Re-verify — one fix often creates another problem
  5. Repeat until verification reveals no new issues

Do not declare success until you've completed at least one fix-and-verify cycle.


Related Skills

View on GitHub
GitHub Stars13.6k
CategoryContent
Updated5mo ago
Forks1.2k

Languages

C#

Trust signals

98/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 info