Agent skill

creating-presentations

Creates, edits, and analyzes PowerPoint presentations (.pptx files), including slide design, chart and table insertion, HTML-to-PPTX conversion, and template-based generation. Activates when the user works with .pptx files or requests presentation authoring.

Stars 5
Forks 0

Install this agent skill to your Project

npx add-skill https://github.com/jawhnycooke/claude-plugins/tree/main/plugins/ms-office-suite/skills/pptx

SKILL.md

PowerPoint (.pptx) Guide

This guide covers creating, editing, and analyzing PowerPoint presentations. For HTML-to-PPTX conversion, see html2pptx.md. For OOXML technical details, see ooxml.md.

Workflows Overview

Task Approach Reference
Read/analyze slides Markdown conversion or raw XML This file
Create from HTML html2pptx library html2pptx.md
Create from template Python scripts This file
Edit existing PPTX Unpack/modify/repack ooxml.md

Important: .pptx files are ZIP archives containing XML and resources.

Reading & Analysis

Convert to Markdown

bash
# Using markitdown
markitdown presentation.pptx > slides.md

Access Raw XML

bash
# Unpack
python ooxml/scripts/unpack.py presentation.pptx unpacked/

# View slide content
cat unpacked/ppt/slides/slide1.xml

# View speaker notes
cat unpacked/ppt/notesSlides/notesSlide1.xml

Create Thumbnail Grid

bash
python scripts/thumbnail.py presentation.pptx thumbnails/

Creates a visual grid showing all slides for quick analysis.

Creating New Presentations

Using html2pptx (Recommended)

  1. Create HTML slides with proper dimensions
  2. Convert using html2pptx library
  3. Add charts/data programmatically

See html2pptx.md for complete guide.

Using Template

python
# 1. Analyze template
python scripts/inventory.py template.pptx > inventory.json

# 2. Create replacements JSON
# Map placeholder text to new content

# 3. Apply replacements
python scripts/replace.py template.pptx replacements.json output.pptx

Design Principles

Required

  • State design approach before writing code
  • Use web-safe fonts only: Arial, Helvetica, Times New Roman, Georgia, Courier New, Verdana, Tahoma, Trebuchet MS
  • Ensure text contrast ratio ≥ 4.5:1 for readability
  • Validate output immediately after creation

Recommended

  • Content-informed design (colors/style match topic)
  • Consistent visual hierarchy across slides
  • Maximum 6 bullet points per slide
  • Meaningful use of whitespace

Example Color Palettes

Choose palette based on content:

Style Background Primary Secondary Accent
Corporate FFFFFF 2C3E50 34495E 3498DB
Creative F5F5F5 E74C3C F39C12 9B59B6
Tech 1A1A2E 16213E 0F3460 E94560
Nature F0F4F0 27AE60 2ECC71 16A085
Elegant FAF9F5 141413 B0AEA5 D97757

Supporting Scripts

thumbnail.py

Creates thumbnail grids for visual analysis.

bash
python scripts/thumbnail.py input.pptx output_dir/ [--columns 5]

inventory.py

Extracts all text shapes with properties.

bash
python scripts/inventory.py input.pptx > inventory.json

Output includes:

  • Slide number and shape ID
  • Text content and formatting
  • Position (x, y) and dimensions
  • Overflow detection

replace.py

Applies text replacements from JSON.

bash
python scripts/replace.py input.pptx replacements.json output.pptx

Replacements format:

json
{
  "slide_1": {
    "shape_2": "New title text",
    "shape_5": "Updated bullet points"
  }
}

rearrange.py

Duplicates, reorders, or deletes slides.

bash
python scripts/rearrange.py input.pptx operations.json output.pptx

Operations format (0-indexed):

json
{
  "operations": [
    {"action": "duplicate", "source": 0, "count": 2},
    {"action": "delete", "index": 5},
    {"action": "move", "from": 3, "to": 1}
  ]
}

validate.py

Validates PPTX structure and content.

bash
python ooxml/scripts/validate.py output.pptx

Checks:

  • XML well-formedness
  • Required files present
  • Relationship integrity
  • Content overflow

Editing Existing Presentations

Workflow

  1. Unpack: python ooxml/scripts/unpack.py input.pptx unpacked/
  2. Modify: Edit XML files directly
  3. Validate: python ooxml/scripts/validate.py unpacked/
  4. Repack: python ooxml/scripts/pack.py unpacked/ output.pptx

Common Modifications

  • Text changes: Edit <a:t> elements in slide XML
  • Add images: Add to ppt/media/, update relationships
  • Reorder slides: Modify presentation.xml <p:sldIdLst>

See ooxml.md for detailed XML patterns.

Dependencies

bash
# Python
pip install markitdown python-pptx Pillow defusedxml

# JavaScript (for html2pptx)
npm install pptxgenjs playwright sharp

# System tools (for thumbnails)
brew install libreoffice poppler  # macOS
apt-get install libreoffice poppler-utils  # Ubuntu

Best Practices

  1. Always validate output immediately after creation
  2. Use web-safe fonts to ensure cross-platform compatibility
  3. Check overflow - text that doesn't fit won't render
  4. Batch similar operations for efficiency
  5. Keep unused resources out of final file (fonts, media)
  6. Test on target platform - PowerPoint vs Keynote vs Google Slides

Expand your agent's capabilities with these related and highly-rated skills.

jawhnycooke/claude-plugins

demonstrating-skill-format

Provides a reference template and structural guide for creating Claude Code plugin skills. Activates when the user asks about skill development patterns, requests a skill template, or wants to understand the SKILL.md format and frontmatter options.

5 0
Explore
jawhnycooke/claude-plugins

coauthoring-documents

Guides collaborative creation of structured documents through a three-stage workflow of context gathering, iterative refinement, and reader testing. Activates when the user drafts documentation, proposals, technical specs, or decision documents that benefit from structured co-authoring.

5 0
Explore
jawhnycooke/claude-plugins

processing-pdfs

Reads, creates, merges, splits, and edits PDF files, including text and table extraction, form filling, OCR on scanned documents, and watermarking. Activates when the user works with .pdf files or requests any PDF manipulation task.

5 0
Explore
jawhnycooke/claude-plugins

editing-word-documents

Reads, creates, edits, and formats Word documents (.docx files), including tracked changes, comments, and template-based generation. Activates when the user works with .docx files or requests document authoring, redlining, or text extraction from Word documents.

5 0
Explore
jawhnycooke/claude-plugins

analyzing-spreadsheets

Creates, edits, and analyzes Excel spreadsheets (.xlsx, .xlsm, .csv), including formula-based calculations, cell formatting, financial modeling, and data analysis with pandas and openpyxl. Activates when the user works with spreadsheet files or requests Excel-related tasks.

5 0
Explore
jawhnycooke/claude-plugins

creating-sdk-apps

This skill should be used when the user asks to "create an agent SDK app", "build a Claude Agent SDK project", "set up a new SDK application", "scaffold an agent app", "create a new agent", or needs guidance on initializing, configuring, and building applications with the Claude Agent SDK in TypeScript or Python.

5 0
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results