GitHub Park

PowerPoint Slides Skill: Create visually rich PowerPoint (.pptx) presentations with native OMML math, LaTeX formulas, and Graphviz/Mermaid/TikZ diagrams

PowerPoint Skill is an AI coding assistant built on Node.js and PptxGenJS, designed to generate PowerPoint (.pptx) files from academic papers, research notes, or various structured content. It natively supports OMML math formulas and LaTeX formula rendering as images, integrates multiple chart rendering pipelines for Graphviz, Mermaid, and TikZ, and includes five built‑in color themes. The skill is natively compatible with Claude Code and also works with other AI coding assistants.

Core Commands

The skill includes seven operation types covering PPT creation, compilation, validation, asset extraction, and more:

Command Description
create [topic/paper] Full pipeline: content analysis → requirements clarification → structure planning → formula/chart preparation → script generation → quality validation
compile [file.js] Execute a PptxGenJS script to generate a .pptx file
review [file.pptx] Read‑only proofreading for grammar, spelling, content consistency, academic quality, etc.
audit [file.pptx] Convert PPT to images and review visual layout
visual-check [file.pptx] Systematic visual review based on a PDF (executed by a parallel sub‑agent)
validate [file.pptx] Validate PPT structure against skill constraints
extract-figures [pdf] Extract charts and figures from a paper PDF for use in slides

Key Features

Multiple Color Themes

Five built‑in themes with different styles:

Theme Name Style Characteristics Use Case
Academic Light (default) White/light gray background, clean Research sharing, academic seminars
Midnight Dark Full dark palette Technical talks, high‑impact presentations
Ocean Blue Blue‑dominant palette Professional academic reporting
Forest Green Natural green palette Biology, environmental sciences
Sandwich Dark title/conclusion slides + light content slides Conference presentations

Professional Formula Rendering

  • Native OMML math formulas: Converted via pandoc into editable native PowerPoint math.
  • LaTeX image fallback: Inline formulas rendered into high‑resolution images (600 DPI) using XeLaTeX.

Five‑Layer Chart Rendering

Integrates multiple charting tools, automatically adapting to the chosen theme: Graphviz (structural diagrams) → Mermaid (flowcharts, sequence diagrams, etc.) → TikZ (mathematical figures) → Native PptxGenJS shapes → PDF figure extraction

Automated Quality Checks

  • Quality scoring: Starts at 100, deducts points for detected issues; parallel sub‑agents assist with visual validation.
  • 29 hard rules: Content density, layout variety, typography, formula rendering, boundary checks, content overflow prevention, etc.
  • Content density limits: Each slide has both upper bounds (e.g., 7 bullet points, 2 formulas, 5 symbols) and lower bounds to ensure every slide contains substantial content.

Academic‑Focused Slide Design

  • 5 structured templates: definition, construction, comparison, theorem proof, insight analysis.
  • Visual‑first approach: Follows the “10‑second recognition principle” – automatically uses charts, tables, or graphs when plain text is insufficient.
  • Pacing guidance: Provides speaker notes and time suggestions; limits consecutive theory slides to 3‑4 pages and breaks them with visual content.

Standardized Layout & Utility Functions

  • Fixed 16:9 aspect ratio; precise positioning using constants like SW, SH, M, CW, CY, CH.
  • 17 helper functions: sTitle, sectionSlide, addBullets, addCard, addTable, etc.
  • 9 layout templates: two‑column, three cards, process flow, centered formula, striped table, annotated data, text+chart, full chart, centered chart.

Environment Setup

Required Dependencies

brew install node                     # Node.js
brew install pandoc                   # OMML formula conversion
brew install --cask mactex            # TeX distribution (LaTeX formulas + TikZ)
brew install graphviz                 # Graphviz diagrams
pip install Pillow lxml               # Image processing, OMML injection
brew install --cask libreoffice       # PPT to PDF conversion (for visual validation)
pip install "markitdown[pptx]"        # Text extraction, content validation

Recommended Dependencies

npm install -g @mermaid-js/mermaid-cli   # Mermaid diagrams
pip install git+https://github.com/Noi1r/pdf-mcp.git
claude mcp add pdf-mcp --scope user pdf-mcp   # PDF figure extraction

Optional Dependencies

brew install ghostscript   # dvisvgm for SVG formula output

Installation & Deployment

  1. Clone the repository
    git clone https://github.com/Noi1r/powerpoint-skill.git
    
  2. Configure for Claude Code
    mkdir -p ~/.claude/skills
    cp -r powerpoint-skill/powerpoint-slides ~/.claude/skills/
    
  3. Restart Claude Code – the skill triggers automatically when keywords like powerpoint, pptx, PPT, slides appear in the conversation.

Usage Examples

  • Generate a PPT from a paper: Help me make a PPT based on this paper: /path/to/paper.pdf
  • Generate with a specific theme: Make a presentation about X using the Midnight theme
  • Compile an existing script: Compile generate_slides.js
  • Review a generated PPT: Review my slides: output.pptx
  • Extract figures from specific pages of a paper: Extract figures from /path/to/paper.pdf pages 3-5

Workflow

Full PPT Creation Pipeline

  1. Analyze paper: Extract core concepts, prerequisites, domain‑specific symbols.
  2. Clarify requirements: Confirm duration, audience, content scope, theme.
  3. Plan structure: Propose a structural outline for user approval.
  4. Prepare formulas: Convert LaTeX to OMML metadata + 600 DPI PNGs.
  5. Prepare charts: Convert DOT/Mermaid/TikZ to SVG/PNG.
  6. Generate JS script: Write a PptxGenJS script using helper functions; self‑validate.
  7. Quality validation: Run script → convert to PDF → visual check → score → fix issues.
  8. Final review: Confirm output.

Formula Rendering Pipeline

formulas.json → render_latex.py → formulas/manifest.json
                                      ↓
                              Images: 600DPI PNG
                              OMML: metadata only
                                      ↓
              generate_slides.js → .pptx (with {{MATH:id}} placeholders)
                                      ↓
              inject_omml.py → .pptx (injects native OMML formulas)

Chart Rendering Pipeline

diagrams.json → render_diagrams.py → diagrams/manifest.json
                    ↓
            Graphviz → SVG (structural)
            Mermaid  → SVG (behavioral)
            TikZ     → SVG/PNG (mathematical)
            Extract  → 300DPI PNG (original paper figures)

Known Limitation

OMML is the native math format for PowerPoint. LibreOffice’s rendering of OMML is incomplete – when converting a .pptx to PDF using LibreOffice, OMML formulas may appear blank or distorted. This is a limitation of LibreOffice, not a bug in the generated file. The formulas display correctly in Microsoft PowerPoint and WPS Office. The visual‑check step in QA uses LibreOffice for PDF conversion, so OMML formulas may appear abnormal during that preview; the check only validates the sharpness of LaTeX‑to‑PNG image‑based formulas.

Visit Noi1r/powerpoint-skill to access the source code and obtain more information.