pptxlisted
Install: claude install-skill smith-network-solutions/threadknot
# PowerPoint decks (.pptx)
**python-pptx** for everything. The library is capable, but the deck you get is
only as good as your handling of two things: **layouts** and **units**.
## Layouts first — always
A slide is created *from a layout*, and the layout supplies the placeholders you
then fill. Guessing layout indices produces the classic broken deck: text in the
wrong place, a title that is really a body box, branding that silently
disappears.
scripts/inspect_pptx.py template.pptx --layouts
Prints every layout in the template with its index, name, and each placeholder's
index, type and position. **Run this before authoring against any template**,
including the default one — index 1 is "Title and Content" in the stock template
but frequently something else in a corporate deck.
```python
from pptx import Presentation
prs = Presentation("template.pptx") # or Presentation() for the stock template
layout = prs.slide_layouts[1] # verify this index with --layouts first
slide = prs.slides.add_slide(layout)
slide.shapes.title.text = "Q1 results"
body = slide.placeholders[1] # placeholder IDX, not position in a list
body.text = "Revenue up 14%"
for line in ["Costs flat", "Margin improved"]:
para = body.text_frame.add_paragraph()
para.text = line
para.level = 1 # indent level, 0-4
```
Building on the user's template is what preserves their fonts, colours and
master — always prefer it to `Presentation()` plus manual stylin