
Pptx
Turn an existing PPTX template into a varied, professional slide deck by analyzing layouts, restructuring slides, and editing slide XML with Python office scripts.
Overview
pptx is an agent skill most often used in Build (also Validate and Launch) that edits PowerPoint decks from templates using Python unpack, layout mapping, and parallel slide XML updates.
Install
npx skills add https://github.com/k-dense-ai/scientific-agent-skills --skill pptxWhat is this skill?
- Template analysis with thumbnail previews and markitdown placeholder extraction before you map content to layouts
- Explicit layout-variety rules so decks avoid repetitive title-plus-bullet slides in favor of columns, quotes, stats, and
- Unpack → structural edits (delete, duplicate, reorder via add_slide.py and sldIdLst) → parallel per-slide XML content up
- Subagent-friendly workflow: finish all structural slide changes first, then edit separate slide{N}.xml files in parallel
- Python office toolchain: scripts/thumbnail.py, scripts/office/unpack.py, and markitdown for inspection-driven editing
- Template workflow spans analyze, plan mapping, unpack, structural build, and XML content edit phases with dedicated Pyth
Adoption & trust: 607 installs on skills.sh; 27.6k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You have slide content and a PPTX template, but hand-editing layouts in PowerPoint is slow and your agent keeps producing samey bullet-heavy decks.
Who is it for?
Solo builders repurposing an on-disk template.pptx for pitches, demos, or update decks with inspect → map → unpack → edit discipline.
Skip if: Builders who only need Google Slides or PDF exports, have no template file to clone, or want net-new deck generation without touching Office Open XML.
When should I use this skill?
When you need to create or edit a .pptx using an existing presentation as a template, including layout planning, unpack/repack, and slide XML updates.
What do I get? / Deliverables
You get a reordered, layout-varied .pptx with placeholder text replaced in slide XML after structural edits are finished and content passes are complete.
- Updated .pptx with reordered or duplicated slides and varied layouts
- Per-slide XML content replacements aligned to mapped template sections
- Inspection artifacts such as thumbnails.jpg and markitdown text review for placeholder mapping
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Presentation files are a primary documentation and communication deliverable while you are building and packaging the product story, even though the same skill is reused for pitches and launch materials. The canonical shelf is docs because the skill’s output is structured slide artifacts (plans, specs, updates) rather than app code or live distribution automation.
Where it fits
Map investor narrative sections onto varied template layouts before you lock MVP scope in a pitch deck.
Repurpose an internal spec template into a product walkthrough deck with multi-column and image slides for stakeholders.
Refresh a launch announcement deck by duplicating hero slides and swapping XML placeholders without redoing branding in PowerPoint.
Turn quarterly metrics copy into stat-callout and quote layouts on an existing customer-update template.
How it compares
Use instead of asking the agent to vaguely “make slides” in chat without thumbnail analysis, unpack steps, or layout-mapping rules.
Common Questions / FAQ
Who is pptx for?
pptx is for solo and indie builders using coding agents who need to produce or refresh real .pptx files from templates, especially when deck quality and layout variety matter for pitches and updates.
When should I use pptx?
Use it when you have template.pptx (or similar) and need to map sections to varied layouts, unpack with Python, reorder or duplicate slides, then edit slide XML—common in Validate for pitch scope, Build for product or spec decks, and Launch for distribution-ready presentations.
Is pptx safe to install?
The skill drives local Python scripts against your presentation files and filesystem; review the Security Audits panel on this Prism page and inspect scripts/office/unpack.py and related helpers in the repo before running them on sensitive decks.
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