PPTX Presentation Skill
Enables an AI agent to create, edit, and analyze PowerPoint (.pptx) files end to end — from blank decks to template-based and in-place XML editing.
Scripts run locally with no network calls or credential access, use defusedxml, work in temp dirs, validate by default, and delete corrupt output—good safety posture. Deducted for: SKILL.md declares 'Proprietary' licensing with LICENSE.txt not present in evidence, so republish rights and attribution are unverifiable; html2pptx flow assumes globally installed playwright/sharp/pptxgenjs with a broad dependency surface left unexplained.
Workflows are complete for reading, creating, OOXML editing, and template-based creation; validation scripts emit clear, aggregated errors (missing shapes, overflow measurements). Deducted for: hidden assumption that Node dependencies are 'globally installed'; SKILL.md is truncated mid-command at the soffice conversion section; key scripts (thumbnail.py, rearrange.py, inventory.py, replace.py, html2pptx.js) are absent from evidence; no tests.
Description enumerates precise trigger scenarios (create/edit/layouts/comments/notes) and workflows branch clearly by task. Deducted for: no declared non-fit boundaries—web-safe font list excludes Chinese fonts, so Chinese decks may render poorly; no notes on soffice/Node/playwright availability or mainland-China reachability of the dependency chain.
Docs are well layered (SKILL.md → html2pptx.md → ooxml.md → scripts) with abundant consistent examples and 0-based indexing conventions. Deducted for: proprietary license with terms not provided, unclear republish rights; no version, changelog, maintenance ownership, or update path; the skill file itself is truncated.
Covers the full read/create/edit/template lifecycle, produces directly openable .pptx, and gives concrete design guidance—clearly better than hand-writing OOXML. Deducted for: static review cannot confirm output usability; the multi-step, multi-dependency pipeline fails entirely if any component is missing; stated dependency availability may not match real deployments.
Primary material (docs plus script source) is auditable. Deducted for: no test suite, no CI execution evidence, no third-party corroboration; referenced scripts missing from evidence prevent independent reproduction of key paths; provenance of the skill cannot be cross-confirmed.
- License is declared Proprietary and republish rights in this repository are unclear; verify LICENSE.txt and upstream authorization before enterprise use.
- SKILL.md is truncated mid-command at the soffice conversion section, indicating an incomplete file; the actual repository may differ from this evidence.
- Depends on multiple external components (pptxgenjs, playwright, sharp, soffice, markitdown) that the docs assume are 'globally installed'; install and verify before use.
- The recommended web-safe font list contains no Chinese fonts; Chinese-language presentations may render with missing or substituted glyphs.
- No test suite or CI evidence; this static review executed nothing, so real-world results must be validated by the user.
What does this skill do, and when should you use it?
This is an Agent Skill for PowerPoint files, bundled in the MiniMax Mini-Agent skill collection (15 skills total) at mini_agent/skills/document-skills/pptx/. It provides complete workflows for three task types: creating new presentations from scratch (converting HTML to PPTX via html2pptx), building presentations from existing templates, and editing existing files at the OOXML level. It also supports text extraction, thumbnail grid generation, and slide-to-image conversion for analysis. The skill ships with Python scripts including unpack, pack, validate, rearrange, inventory, and replace. Note that the SKILL.md declares a proprietary license (complete terms in LICENSE.txt), which differs from the repository's MIT license.
Reads .pptx files and extracts text to Markdown with markitdown; unpacks files to OOXML with unpack.py to read and edit raw XML (slides, notes, comments, layouts, themes, media), enabling work on comments, speaker notes, animations, and layouts; for new decks, follows the html2pptx workflow — writes an HTML file per slide (e.g., 720pt × 405pt), converts via html2pptx.js, adds charts and tables through the PptxGenJS API, then validates visually with thumbnail.py and iterates; for template-based creation, analyzes the template with thumbnail.py, reorders/duplicates/deletes slides with rearrange.py, extracts a text-shape inventory with inventory.py, and applies formatted replacements with replace.py (bullets, alignment, fonts, colors, overflow detection); for editing, modifies XML per the OOXML workflow with validate.py checks after each step and repacks via pack.py; converts slides to images with soffice (PDF) and pdftoppm (JPEG) for visual analysis.
- Users who need precise, machine-verified slide output: generating new decks such as product reports or lecture slides from scratch, with html2pptx ensuring accurate element positioning.
- Professionals with a corporate template: let the skill analyze the brand template, pick appropriate layouts, and batch-replace placeholder text to produce on-brand presentations.
- Recipients of someone else's PPT who need small edits: unpack and edit OOXML directly to change text, notes, or comments without breaking formatting, with validation at each step.
- Anyone needing to quickly understand an unfamiliar deck: extract all text via markitdown or generate a thumbnail grid to scan the overall design.
- Users extracting speaker notes, comments, or analyzing animations and theme colors: access these via raw XML, which plain text extraction cannot reach.
What are this skill's strengths and limitations?
- Covers the full PPT lifecycle: four distinct workflows (create, template-based, edit, analyze), each with step-by-step instructions and supporting scripts
- Built-in quality gates: validate.py after every XML edit, mandatory thumbnail.py visual inspection with iteration for generated decks, and overflow detection in replace.py
- The html2pptx workflow includes concrete design guidance (palettes, fonts, layouts, chart styling) rather than vague advice
- replace.py's inventory/validation/auto-clearing design reduces the risk of referencing nonexistent shapes or destroying template formatting
- Heavy dependency footprint: Python, global Node.js packages, LibreOffice, and Poppler must all be present, raising setup cost
- SKILL.md carries a proprietary license (terms in LICENSE.txt) inconsistent with the repo's MIT license; review it before commercial use
- No standalone installation instructions for the skill itself; the README installs the whole Mini-Agent project and assumes a MiniMax model
- SKILL.md contains no test evidence for the skill itself; the repo's test suite targets the agent core, and coverage of the pptx scripts is not shown
- Visual validation depends on the model reading thumbnails, and failure modes around font availability and playwright rendering are under-documented
How do you install this skill?
The skill is not installed standalone; it ships with the Mini-Agent skill collection at mini_agent/skills/document-skills/pptx/. Per the repository README, install Mini-Agent either via quick mode: uv tool install git+https://github.com/MiniMax-AI/Mini-Agent.git, then run the setup-config script and add a MiniMax API key; or development mode: git clone https://github.com/MiniMax-AI/Mini-Agent.git then uv sync, with git submodule update --init --recursive to initialize skills (marked optional in the README). Also install the SKILL.md dependency list: Python packages markitdown[pptx] and defusedxml; global npm packages pptxgenjs, playwright, sharp, react-icons; plus system-level LibreOffice and Poppler. SKILL.md says these 'should already be installed,' but in a self-built environment you must verify. The source provides no standalone porting instructions for using only this skill in other Agent Skills clients.
How do you use this skill?
The skill is triggered by its SKILL.md description: any task involving creating, modifying, or analyzing a .pptx file. Typical usage: ask the Mini-Agent runner, e.g., 'Build a 16:9 product intro deck from this outline' (html2pptx workflow), 'Apply template.pptx's design to this content' (template workflow), or 'Change the title on slide 3 and add a speaker note' (OOXML editing workflow). You can also invoke the scripts manually in any client that reads SKILL.md, e.g., python scripts/thumbnail.py out.pptx or python ooxml/scripts/unpack.py file.pptx out_dir. SKILL.md mandates reading html2pptx.md and ooxml.md completely before starting, with no range limits on those reads.
How does this skill compare with similar options?
SKILL.md references the Claude Skills project (anthropics/skills); this skill is that ecosystem's PPTX skill, redistributed with Mini-Agent. The README demonstrates sibling skills such as PDF/DOCX generation, but their capabilities do not belong to this skill.