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.
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
# Using markitdown
markitdown presentation.pptx > slides.md
Access Raw XML
# 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
python scripts/thumbnail.py presentation.pptx thumbnails/
Creates a visual grid showing all slides for quick analysis.
Creating New Presentations
Using html2pptx (Recommended)
- Create HTML slides with proper dimensions
- Convert using html2pptx library
- Add charts/data programmatically
See html2pptx.md for complete guide.
Using Template
# 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.
python scripts/thumbnail.py input.pptx output_dir/ [--columns 5]
inventory.py
Extracts all text shapes with properties.
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.
python scripts/replace.py input.pptx replacements.json output.pptx
Replacements format:
{
"slide_1": {
"shape_2": "New title text",
"shape_5": "Updated bullet points"
}
}
rearrange.py
Duplicates, reorders, or deletes slides.
python scripts/rearrange.py input.pptx operations.json output.pptx
Operations format (0-indexed):
{
"operations": [
{"action": "duplicate", "source": 0, "count": 2},
{"action": "delete", "index": 5},
{"action": "move", "from": 3, "to": 1}
]
}
validate.py
Validates PPTX structure and content.
python ooxml/scripts/validate.py output.pptx
Checks:
- XML well-formedness
- Required files present
- Relationship integrity
- Content overflow
Editing Existing Presentations
Workflow
- Unpack:
python ooxml/scripts/unpack.py input.pptx unpacked/ - Modify: Edit XML files directly
- Validate:
python ooxml/scripts/validate.py unpacked/ - 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
# 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
- Always validate output immediately after creation
- Use web-safe fonts to ensure cross-platform compatibility
- Check overflow - text that doesn't fit won't render
- Batch similar operations for efficiency
- Keep unused resources out of final file (fonts, media)
- Test on target platform - PowerPoint vs Keynote vs Google Slides
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
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.
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.
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.
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.
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.
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.
Didn't find tool you were looking for?