
Pptx
Turn an existing PowerPoint template into a varied, polished deck for pitches, launches, or content without hand-editing every slide layout.
Overview
pptx is an agent skill most often used in Launch (also Validate, Grow) that edits PowerPoint decks via template analysis, OOXML unpack, and varied slide-layout mapping.
Install
npx skills add https://github.com/davila7/claude-code-templates --skill pptxWhat is this skill?
- Template workflow: thumbnail.py preview plus markitdown placeholder analysis
- Explicit anti-pattern: avoid repeating the same bullet-only layout across slides
- Six-step pipeline ending with parallel XML slide edits via subagents when available
- Structural-first edits (delete, duplicate, reorder in p:sldIdLst) before content pass
- office/unpack.py unpack path for direct slide{N}.xml manipulation
- 6-step template-based workflow
- Structural slide changes must finish before step 5 content edits
Adoption & trust: 705 installs on skills.sh; 27.8k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need a credible slide deck fast but every slide looks the same boring title-plus-bullets layout.
Who is it for?
Builders with an existing branded .pptx who want agent-guided OOXML edits and layout diversity.
Skip if: Greenfield slide design from scratch with no template, or environments where Python/office scripts cannot run.
When should I use this skill?
You have a .pptx template to adapt and need varied layouts, structural reordering, and XML-level content updates.
What do I get? / Deliverables
You get a rebuilt presentation from a template with diverse layouts, reordered structure, and updated slide XML content packed back into a .pptx.
- Updated slide XML set and repacked .pptx
- Slide mapping plan tied to template layouts
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Launch/distribution is the canonical shelf because decks primarily ship stories outward—investor updates, launch narratives, and partner materials. Distribution covers outbound presentation assets that are not the product UI but carry positioning and proof.
Where it fits
Refresh placeholder text in a seed-round template while keeping brand masters.
Build a launch-day deck with stat callouts and section dividers for press and community.
Convert a webinar outline into slides with quote and multi-column layouts.
How it compares
Use for script-driven .pptx surgery instead of asking the model to invent slide content without touching the real file structure.
Common Questions / FAQ
Who is pptx for?
Solo founders and marketers who ship PowerPoint assets and want Claude or similar agents to follow a disciplined template-and-XML workflow.
When should I use pptx?
At validate/landing for pitch drafts, launch/distribution for announcement decks, and grow/content when turning talks or posts into slide collateral.
Is pptx safe to install?
The skill expects local Python scripts on your filesystem; review the Security Audits panel on this Prism page and inspect scripts/ before running unpack or edit commands.
SKILL.md
READMESKILL.md - Pptx
# Editing Presentations ## Template-Based Workflow When using an existing presentation as a template: 1. **Analyze existing slides**: ```bash python scripts/thumbnail.py template.pptx python -m markitdown template.pptx ``` Review `thumbnails.jpg` to see layouts, and markitdown output to see placeholder text. 2. **Plan slide mapping**: For each content section, choose a template slide. ⚠️ **USE VARIED LAYOUTS** — monotonous presentations are a common failure mode. Don't default to basic title + bullet slides. Actively seek out: - Multi-column layouts (2-column, 3-column) - Image + text combinations - Full-bleed images with text overlay - Quote or callout slides - Section dividers - Stat/number callouts - Icon grids or icon + text rows **Avoid:** Repeating the same text-heavy layout for every slide. Match content type to layout style (e.g., key points → bullet slide, team info → multi-column, testimonials → quote slide). 3. **Unpack**: `python scripts/office/unpack.py template.pptx unpacked/` 4. **Build presentation** (do this yourself, not with subagents): - Delete unwanted slides (remove from `<p:sldIdLst>`) - Duplicate slides you want to reuse (`add_slide.py`) - Reorder slides in `<p:sldIdLst>` - **Complete all structural changes before step 5** 5. **Edit content**: Update text in each `slide{N}.xml`. **Use subagents here if available** — slides are separate XML files, so subagents can edit in parallel. 6. **Clean**: `python scripts/clean.py unpacked/` 7. **Pack**: `python scripts/office/pack.py unpacked/ output.pptx --original template.pptx` --- ## Scripts | Script | Purpose | |--------|---------| | `unpack.py` | Extract and pretty-print PPTX | | `add_slide.py` | Duplicate slide or create from layout | | `clean.py` | Remove orphaned files | | `pack.py` | Repack with validation | | `thumbnail.py` | Create visual grid of slides | ### unpack.py ```bash python scripts/office/unpack.py input.pptx unpacked/ ``` Extracts PPTX, pretty-prints XML, escapes smart quotes. ### add_slide.py ```bash python scripts/add_slide.py unpacked/ slide2.xml # Duplicate slide python scripts/add_slide.py unpacked/ slideLayout2.xml # From layout ``` Prints `<p:sldId>` to add to `<p:sldIdLst>` at desired position. ### clean.py ```bash python scripts/clean.py unpacked/ ``` Removes slides not in `<p:sldIdLst>`, unreferenced media, orphaned rels. ### pack.py ```bash python scripts/office/pack.py unpacked/ output.pptx --original input.pptx ``` Validates, repairs, condenses XML, re-encodes smart quotes. ### thumbnail.py ```bash python scripts/thumbnail.py input.pptx [output_prefix] [--cols N] ``` Creates `thumbnails.jpg` with slide filenames as labels. Default 3 columns, max 12 per grid. **Use for template analysis only** (choosing layouts). For visual QA, use `soffice` + `pdftoppm` to create full-resolution individual slide images—see SKILL.md. --- ## Slide Operations Slide order is in `ppt/presentation.xml` → `<p:sldIdLst>`. **Reorder**: Rearrange `<p:sldId>` elements. **Delete**: Remove `<p:sldId>`, then run `clean.py`. **Add**: Use `add_slide.py`. Never manually copy slide files—the script handles notes references, Content_Types.xml, and relationship IDs that manual copying misses. --- ## Editing Content **Subagents:** If available, use them here (after completing step 4). Each slide is a separate XML file, so subagents can edit in parallel. In your prompt to subagents, include: - The slide file path(s) to edit - **"Use the Edit tool for all changes"** - The formatting rules and common pitfalls below For each slide: 1. Read the slide's XML 2. Identify ALL placeholder content—text, images, charts, icons, captions 3. Replace each placeholder with final content **Use the Edit tool, not sed or Python scripts.** The Edit tool forces specificity about what to replace and where, yielding better reliability. ### Formatting Rules - **Bold all headers, subh