skills/pptx/SKILL.md
Use this skill any time a .pptx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx file; editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates, layouts, speaker notes. Trigger whenever the user mentions 'deck', 'slides', 'presentation', or references a .pptx filename. Covers: create from scratch with python-pptx, read/extract with markitdown, edit via XML unpack/pack workflow, visual QA.
npx skillsauth add openxjarvis/openclaw-python pptxInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| Task | Guide |
|------|-------|
| Read/analyze content | python -m markitdown presentation.pptx |
| Edit or create from template | Read editing.md |
| Create from scratch | Read python-pptx.md |
# Text extraction
python -m markitdown presentation.pptx
# Visual overview (thumbnail grid)
python scripts/thumbnail.py presentation.pptx
# Raw XML
python scripts/office/unpack.py presentation.pptx unpacked/
Read editing.md for full details.
thumbnail.pyRead python-pptx.md for full details.
Use when no template or reference presentation is available.
Don't create boring slides. Plain bullets on a white background won't impress anyone.
Choose colors that match your topic — don't default to generic blue:
| Theme | Primary | Secondary | Accent |
|-------|---------|-----------|--------|
| Midnight Executive | 1E2761 (navy) | CADCFC (ice blue) | FFFFFF (white) |
| Forest & Moss | 2C5F2D (forest) | 97BC62 (moss) | F5F5F5 (cream) |
| Coral Energy | F96167 (coral) | F9E795 (gold) | 2F3C7E (navy) |
| Warm Terracotta | B85042 (terracotta) | E7E8D1 (sand) | A7BEAE (sage) |
| Ocean Gradient | 065A82 (deep blue) | 1C7293 (teal) | 21295C (midnight) |
| Charcoal Minimal | 36454F (charcoal) | F2F2F2 (off-white) | 212121 (black) |
| Teal Trust | 028090 (teal) | 00A896 (seafoam) | 02C39A (mint) |
| Berry & Cream | 6D2E46 (berry) | A26769 (dusty rose) | ECE2D0 (cream) |
| Sage Calm | 84B59F (sage) | 69A297 (eucalyptus) | 50808E (slate) |
| Cherry Bold | 990011 (cherry) | FCF6F5 (off-white) | 2F3C7E (navy) |
Every slide needs a visual element — image, chart, icon, or shape. Text-only slides are forgettable.
Layout options:
Data display:
Choose an interesting font pairing — don't default to Arial:
| Header Font | Body Font | |-------------|-----------| | Georgia | Calibri | | Arial Black | Arial | | Calibri | Calibri Light | | Cambria | Calibri | | Palatino | Garamond |
| Element | Size | |---------|------| | Slide title | 36-44pt bold | | Section header | 20-24pt bold | | Body text | 14-16pt | | Captions | 10-12pt muted |
Assume there are problems. Your job is to find them.
python -m markitdown output.pptx
Check for missing content, typos, wrong order.
Check for leftover placeholder text:
python -m markitdown output.pptx | grep -iE "xxxx|lorem|ipsum|this.*(page|slide).*layout"
Use subagents — even for 2-3 slides. You've been staring at the code and will see what you expect, not what's there.
Convert slides to images (see Converting to Images), then use this prompt:
Visually inspect these slides. Assume there are issues — find them.
Look for:
- Overlapping elements (text through shapes, lines through words)
- Text overflow or cut off at edges/box boundaries
- Elements too close (< 0.3" gaps) or sections nearly touching
- Insufficient margin from slide edges (< 0.5")
- Columns or similar elements not aligned consistently
- Low-contrast text or icons
- Leftover placeholder content
For each slide, list issues or areas of concern, even if minor.
Report ALL issues found, including minor ones.
Do not declare success until you've completed at least one fix-and-verify cycle.
python scripts/office/soffice.py --headless --convert-to pdf output.pptx
pdftoppm -jpeg -r 150 output.pdf slide
Creates slide-01.jpg, slide-02.jpg, etc.
To re-render specific slides after fixes:
pdftoppm -jpeg -r 150 -f N -l N output.pdf slide-fixed
# Core Python libraries
uv pip install "python-pptx>=0.6.23" "markitdown[pptx]" Pillow
# System tools (macOS)
brew install libreoffice poppler
python-pptx — create and edit .pptx programmaticallymarkitdown[pptx] — text extraction from .pptxPillow — thumbnail generationsoffice) — PDF conversion for visual QApdftoppm) — PDF to imagestools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.
development
Spreadsheet operations: open, read, edit, create .xlsx/.xlsm/.csv/.tsv files. Use for financial models, data tables, formula-based spreadsheets, data cleaning, charting, or any Excel file task. Triggers on: any .xlsx/.csv filename, 'spreadsheet', 'Excel', 'workbook'. Use openpyxl for formulas/formatting, pandas for data analysis.
development
Test local web applications using Playwright. Use when: testing a running web app, checking UI behavior, automating browser interactions, verifying HTML artifacts, or doing visual regression checks.
tools
Search the web for information and fetch URL content. Use when user asks to search for recent information, look up websites, fetch web page content, or find online resources. No external tools required — uses built-in web_search and web_fetch capabilities.