$npx -y skills add skateddu/claude-code-python-setup --skill pptxUse 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 (even if the extracted content will be used elsewhere, like in an
| 1 | # PPTX Skill |
| 2 | |
| 3 | ## Quick Reference |
| 4 | |
| 5 | | Task | Guide | |
| 6 | |------|-------| |
| 7 | | Read/analyze content | `python -m markitdown presentation.pptx` | |
| 8 | | Edit or create from template | Read [editing.md](editing.md) | |
| 9 | | Create from scratch | Read [pptxgenjs.md](pptxgenjs.md) | |
| 10 | |
| 11 | --- |
| 12 | |
| 13 | ## Reading Content |
| 14 | |
| 15 | ```bash |
| 16 | # Text extraction |
| 17 | python -m markitdown presentation.pptx |
| 18 | |
| 19 | # Visual overview |
| 20 | python scripts/thumbnail.py presentation.pptx |
| 21 | |
| 22 | # Raw XML |
| 23 | python scripts/office/unpack.py presentation.pptx unpacked/ |
| 24 | ``` |
| 25 | |
| 26 | --- |
| 27 | |
| 28 | ## Editing Workflow |
| 29 | |
| 30 | **Read [editing.md](editing.md) for full details.** |
| 31 | |
| 32 | 1. Analyze template with `thumbnail.py` |
| 33 | 2. Unpack → manipulate slides → edit content → clean → pack |
| 34 | |
| 35 | --- |
| 36 | |
| 37 | ## Creating from Scratch |
| 38 | |
| 39 | **Read [pptxgenjs.md](pptxgenjs.md) for full details.** |
| 40 | |
| 41 | Use when no template or reference presentation is available. |
| 42 | |
| 43 | --- |
| 44 | |
| 45 | ## Design Ideas |
| 46 | |
| 47 | **Don't create boring slides.** Plain bullets on a white background won't impress anyone. Consider ideas from this list for each slide. |
| 48 | |
| 49 | ### Before Starting |
| 50 | |
| 51 | - **Pick a bold, content-informed color palette**: The palette should feel designed for THIS topic. If swapping your colors into a completely different presentation would still "work," you haven't made specific enough choices. |
| 52 | - **Dominance over equality**: One color should dominate (60-70% visual weight), with 1-2 supporting tones and one sharp accent. Never give all colors equal weight. |
| 53 | - **Dark/light contrast**: Dark backgrounds for title + conclusion slides, light for content ("sandwich" structure). Or commit to dark throughout for a premium feel. |
| 54 | - **Commit to a visual motif**: Pick ONE distinctive element and repeat it — rounded image frames, icons in colored circles, thick single-side borders. Carry it across every slide. |
| 55 | |
| 56 | ### Color Palettes |
| 57 | |
| 58 | Choose colors that match your topic — don't default to generic blue. Use these palettes as inspiration: |
| 59 | |
| 60 | | Theme | Primary | Secondary | Accent | |
| 61 | |-------|---------|-----------|--------| |
| 62 | | **Midnight Executive** | `1E2761` (navy) | `CADCFC` (ice blue) | `FFFFFF` (white) | |
| 63 | | **Forest & Moss** | `2C5F2D` (forest) | `97BC62` (moss) | `F5F5F5` (cream) | |
| 64 | | **Coral Energy** | `F96167` (coral) | `F9E795` (gold) | `2F3C7E` (navy) | |
| 65 | | **Warm Terracotta** | `B85042` (terracotta) | `E7E8D1` (sand) | `A7BEAE` (sage) | |
| 66 | | **Ocean Gradient** | `065A82` (deep blue) | `1C7293` (teal) | `21295C` (midnight) | |
| 67 | | **Charcoal Minimal** | `36454F` (charcoal) | `F2F2F2` (off-white) | `212121` (black) | |
| 68 | | **Teal Trust** | `028090` (teal) | `00A896` (seafoam) | `02C39A` (mint) | |
| 69 | | **Berry & Cream** | `6D2E46` (berry) | `A26769` (dusty rose) | `ECE2D0` (cream) | |
| 70 | | **Sage Calm** | `84B59F` (sage) | `69A297` (eucalyptus) | `50808E` (slate) | |
| 71 | | **Cherry Bold** | `990011` (cherry) | `FCF6F5` (off-white) | `2F3C7E` (navy) | |
| 72 | |
| 73 | ### For Each Slide |
| 74 | |
| 75 | **Every slide needs a visual element** — image, chart, icon, or shape. Text-only slides are forgettable. |
| 76 | |
| 77 | **Layout options:** |
| 78 | - Two-column (text left, illustration on right) |
| 79 | - Icon + text rows (icon in colored circle, bold header, description below) |
| 80 | - 2x2 or 2x3 grid (image on one side, grid of content blocks on other) |
| 81 | - Half-bleed image (full left or right side) with content overlay |
| 82 | |
| 83 | **Data display:** |
| 84 | - Large stat callouts (big numbers 60-72pt with small labels below) |
| 85 | - Comparison columns (before/after, pros/cons, side-by-side options) |
| 86 | - Timeline or process flow (numbered steps, arrows) |
| 87 | |
| 88 | **Visual polish:** |
| 89 | - Icons in small colored circles next to section headers |
| 90 | - Italic accent text for key stats or taglines |
| 91 | |
| 92 | ### Typography |
| 93 | |
| 94 | **Choose an interesting font pairing** — don't default to Arial. Pick a header font with personality and pair it with a clean body font. |
| 95 | |
| 96 | | Header Font | Body Font | |
| 97 | |-------------|-----------| |
| 98 | | Georgia | Calibri | |
| 99 | | Arial Black | Arial | |
| 100 | | Calibri | Calibri Light | |
| 101 | | Cambria | Calibri | |
| 102 | | Trebuchet MS | Calibri | |
| 103 | | Impact | Arial | |
| 104 | | Palatino | Garamond | |
| 105 | | Consolas | Calibri | |
| 106 | |
| 107 | | Element | Size | |
| 108 | |---------|------| |
| 109 | | Slide title | 36-44pt bold | |
| 110 | | Section header | 20-24pt bold | |
| 111 | | Body text | 14-16pt | |
| 112 | | Captions | 10-12pt muted | |
| 113 | |
| 114 | ### Spacing |
| 115 | |
| 116 | - 0.5" minimum margins |
| 117 | - 0.3-0.5" between content blocks |
| 118 | - Leave breathing room—don't fill every inch |
| 119 | |
| 120 | ### Avoid (Common Mistakes) |
| 121 | |
| 122 | - ** |