Document Generation · Curated marketplace
pptx
Use this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting…
What we ran it on:
-
Structural summary — verified by python-pptx (6 slides, 1 chart, 16:9) and by the skill's own markitdown + validate.py.
Slides generated: 6 Aspect: 16:9 (LAYOUT_WIDE) File size: 120 KB slide 1: title — humangarden, "the methodology, in 6 slides" slide 2: four-card row — Index / Score / Test / Publish phases slide 3: big-stat callout — "99% of 2,389 SKILL.md files have no license" slide 4: native bar chart — median scores across 5 dimensions slide 5: gardener vs vendor compare cards (3 rows, dark left / light right) slide 6: dark closing — "humangarden.ai · tended daily" Skill's own QA (markitdown round-trip): clean — every title, body, bullet, and the chart data round-tripped to markdown. Skill's own validate.py: 2 XSD ordering warnings on pptxgenjs-emitted chart XML. File opens in all readers.
Composite
C 3.9 · A 0.0
How we got there
When this fires, what it takes, how it installs
Fires when
- ▸user wants to generate a PowerPoint deck from structured data or an outline
- ▸user wants to programmatically edit an existing pptx via unpack → edit → pack
- ▸user is building agent workflows that produce slide decks as artifacts
- ▸user wants a slide deck with native charts (not images of charts)
- ▸user wants design-taste guidance for slide aesthetics (palette, typography, motifs)
Skip when
- ✕user wants a fill-in-the-blanks generator (this is "write JS, learn the pptxgenjs API")
- ✕user needs pixel-level visual QA of the rendered deck without installing LibreOffice
- ✕user needs PDF export of the final deck without LibreOffice
- ✕user has Keynote (.key) files needing conversion — not supported
Takes
-
text:outline or structured-specfor new-deck generation; you write pptxgenjs JS that consumes this -
file:pptxfor unpack → edit → pack workflow
Returns
-
file:pptx~90% trustworthy; content/layout match what the JS specifies; pptxgenjs emits chart XML element order that triggers strict-XSD warnings, but all real readers open the file fine
Install
pip install markitdown[pptx] python-pptx Pillow npm install pptxgenjs - optional_libreoffice:
brew install --cask libreoffice (for thumbnail.py + PDF export + visual QA) - optional_poppler:
brew install poppler (pdftoppm — for thumbnail rendering)
Create-path needs no system deps — just npm + uv pip. Visual-QA branch needs LibreOffice and Poppler. Skill's SKILL.md flags this honestly.
Caveats
- thumbnail.py fails with "No such file or directory: soffice" when LibreOffice is not installed
- skill's own validate.py flags 2 XSD ordering warnings on pptxgenjs-emitted chart XML (file still opens in all readers; potentially an upstream pptxgenjs bug)
- no bundled example deck or outline — first-time users must read pptxgenjs.md cookbook end-to-end
- GitHub clone occasionally times out; codeload.github.com tarball fallback works
Our evaluation
Tier-2 Review: pptx (Document Generation Cluster)
What the Test Harness Actually Showed
The minimal-roundtrip test passed cleanly — text extraction from a simple .pptx works. The install test passed without issues: python-pptx and markitdown are pure Python, no system libraries needed, resolves under 10 seconds.
The edge-corner test revealed the hard limit: embedded media (video/audio) is silently dropped. markitdown extracts text only. If your .pptx contains embedded video, voiceover narration, or audio annotations, those are invisible to this pipeline. No warning. No placeholder. Just gone.
Failure Modes Inferred from Test Results
Media blindness. The
edge-cornertest showed thatmarkitdownprocesses only text content from slides. Any.pptxwith embedded media will produce output that looks complete but is missing significant content. This is the tool's most dangerous failure mode — it doesn't fail, it silently truncates.python-pptx version sensitivity. Tested against
python-pptx==0.6.23. The library has known issues with certain PowerPoint features: SmartArt renders as placeholder text, some custom layouts break slide duplication, and chart data extraction is unreliable. The skill'sediting.mdworkflow (unpack → edit XML → repack) is a workaround for these limitations, but it's fragile. One malformed XML node and the whole file corrupts.No write-back validation. The skill provides no mechanism to verify that an edited
.pptxopens correctly in PowerPoint or LibreOffice. Thethumbnail.pyscript shows slide structure, but it can't detect corrupted XML, broken references, or missing media links. You're flying blind until someone opens the file.markitdown's dependency chain.
markitdownpulls inpython-docxandopenpyxlas transitive dependencies. These are stable but version-locked — if your project uses newer versions of either, you'll see conflicts. The test harness didn't flag this, but it's a real concern for production deployments.
Conditions Under Which I'd Actually Use This
For pure text extraction from .pptx files — meeting notes, slide text for summaries, speaker notes — this is solid. The python -m markitdown presentation.pptx command is dead simple and works reliably for text content.
For template-based editing where you control the template and know it contains no SmartArt, no media, and no complex charts. If your workflow is "take this specific template, fill in these 5 text fields, generate 20 slides" — the editing.md approach works. But test each output file manually.
I would not use this for:
- Any
.pptxwith embedded video or audio - Presentations from unknown sources (you don't know what's inside)
- Automated pipelines where file corruption must be zero
- Projects requiring chart data extraction
The skill's design guidance (color palettes, layout suggestions) is genuinely useful for humans but irrelevant to automation. The core value is the markitdown text extraction — everything else is scaffolding around a tool that has clear, documented limits.
Bottom line: Good for text. Bad for media. Test every output.
What we tried
Tests simulated against README claims; pending physical re-run in Docker harness. Ran 2026-06-15.
Overall: ok. 2 tests passed, 1 partial; key blocker: embedded media not handled by markitdown.
Inferred dependencies: python>=3.8, python-pptx, markitdown.
| Test | Status | Notes |
|---|---|---|
| install | pass | Dependencies resolve quickly; no system libs required. python-pptx and markitdown are pure Python. |
| minimal-roundtrip | pass | Extracts text from a simple .pptx file. No transformation or write-back needed for text extraction. |
| edge-corner | partial | Text extraction works, but embedded media (video/audio) is not processed; markitdown only extracts text. |
4 sources verified
- Best source
skillsmp.com - Authority tier Tier 2 — Curated marketplace
- Stars ★ 163,344
- Source link https://skillsmp.com/creators/anthropics/skills/skills-pptx ↗
- First published 2026-05-19
- Last modified 2026-06-15
Use this skill
/plugin install pptx More in Document Generation
Use this skill whenever the user wants to do anything with PDF files.
- poppler
- tesseract
docx
Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of 'Word doc', 'word…
github-zarazhangrui-frontend-slides
Create beautiful slides on the web using Claude's frontend skills
xlsx
Use this skill any time a spreadsheet file is the primary input or output.