ppt-master
A Claude Code skill that converts a PDF, DOCX, URL, or Markdown source into a natively editable .pptx — real PowerPoint shapes (DrawingML) rendered through an SVG intermediate, not exported images. Multi-role pipeline (Strategist → Image Generator → Executor) with strict serial execution.
Generate a .pptx where every text box and shape is editable in PowerPoint, not flattened to images
Trigger phrases
Phrases that activate this skill when typed to Claude Code:
generate a deck from this PDFconvert this doc to PPTXmake slides from this markdown
What it does
ppt-master is a Claude Code skill that turns source documents (PDF, DOCX, PPTX, URL, Markdown) into a .pptx file where every element is a real PowerPoint shape — clickable, editable, repositionable inside Microsoft Office. The differentiator the upstream repo states explicitly: “if a file can’t be opened and edited in PowerPoint, it shouldn’t be called a PPT.” That rules out the common AI-deck pattern of rendering each slide as an image and stuffing it into a .pptx shell.
The skill drives a multi-role internal pipeline: Strategist (eight confirmations on structure, audience, narrative arc) → optional Image Generator (when the deck needs imagery) → Executor (lays out each slide as SVG) → quality check → SVG-to-PPTX post-processing → export. The SVG intermediate is the design-time canvas; the final conversion step turns each SVG primitive into a corresponding DrawingML object so the PowerPoint output is genuinely editable.
A separate verify-charts sub-workflow handles decks containing data charts (bar, line, pie, radar) — it calibrates chart-coordinate math against the SVG plot area before the final conversion, since chart geometry is the part that most often breaks the “real shapes” promise.
When to use it
- A PDF whitepaper or DOCX brief that needs to become a deck the team can edit slide-by-slide
- A markdown spec that needs to become an internal presentation without a designer in the loop
- Building from a URL (e.g., a long-form blog post) where you want the resulting deck to remain editable
- Decks with data charts where you specifically need the bars and lines to be PPTX shapes, not embedded images
When not to reach for it:
- Image-only or “slide as visual” decks — the editable-shapes promise stops mattering
- Quick one-off internal slides where Google Slides or Keynote with a manual paste is faster than running a pipeline
- Highly templated brand decks where you already have a
.pptxmaster and just need text replaced — that’s a different problem - Environments where you can’t run Python 3.10+ locally or call out to an LLM for the strategist/executor roles
Install
From hugohe3/ppt-master. The skill lives at skills/ppt-master/SKILL.md with supporting references/, scripts/, templates/, and workflows/ folders. Requires Python 3.10+ and pip install -r requirements.txt from the repo root. The skill calls an LLM for the strategist and executor roles (Claude Opus or Sonnet recommended; GPT, Gemini, Kimi also supported); optional AI image generation needs separate API keys configured via .env.
A dedicated Windows install guide ships in the repo because the toolchain has platform-specific setup steps. Everything except the LLM call runs locally — no mandatory cloud upload of the source document.
What a session looks like
- Source conversion. Run the appropriate
scripts/source_to_md/converter (pdf_to_md.py,doc_to_md.py,ppt_to_md.py, orweb_to_md.py) against the source file or URL. The skill normalizes everything to markdown first. - Project init.
scripts/project_manager.py init <name> --format ppt169creates a project folder with the right canvas template (16:9 the default). Import the markdown source viaimport-sources. - Strategist phase. The skill runs the strategist role through eight confirmations — audience, goal, structural arc, slide count, tone, visual register, density, key takeaways. Nothing executes until those confirmations are explicit.
- Image generation (optional). For decks that need imagery,
scripts/image_gen.pygenerates per-slide images with aspect-ratio control.scripts/analyze_images.pyvalidates the output set against the deck plan. - Executor phase. Lays out each slide as an SVG file in
svg_output/, applying layout templates and the icon library. The output of each step is the input of the next — strict serial discipline, no parallel slide rendering. - Quality check.
scripts/svg_quality_checker.pyflags malformed shapes, overflow, or missing elements before post-processing. - Chart calibration (only for chart decks). Identify chart pages with
grep -l "chart-plot-area" svg_output/*.svg, then runscripts/svg_position_calculator.py calc {bar|line|pie|radar}per page with the right--dataand--areaarguments. Skip this entire step if the deck has no charts. - Post-processing pipeline. Run sequentially, one command at a time:
total_md_split.py→finalize_svg.py→svg_to_pptx.py -s final. The serial discipline is enforced by the skill — non-blocking adjacent steps may chain, but blocking ones wait. - Export. A
.pptxlands in the project folder. Open it in PowerPoint and click any element to confirm it’s a real shape, not an image.
The discipline that makes it work: the strategist’s eight confirmations and the strict step ordering. The skill explicitly refuses to skip ahead — outputs of one step are inputs to the next, and partial states aren’t acceptable hand-offs.
Receipts
TODO — to be filled in from a real generation run. Once the skill has been used to generate a deck end-to-end, this section will capture: which source format was used, how many slides the strategist’s eight confirmations produced versus what the executor actually shipped, whether the SVG-to-PPTX step preserved every shape as editable (open in PowerPoint, click each element, verify), and how the chart calibration sub-workflow held up if the deck contained charts.
Source and attribution
From Hugo He’s ppt-master repository. The repo describes itself as a “workflow/skill package, not an app or service scaffold” — meaning it’s intentionally shaped to drop into ~/.claude/skills/ as a single, self-contained Claude Code skill rather than a service to deploy.
License: MIT.
The wedge is the editable-shapes promise. Most AI-deck tools render each slide as a flat image and wrap it in a .pptx container so it opens in PowerPoint without being editable in any meaningful sense. ppt-master’s SVG-to-DrawingML pipeline keeps each text box, shape, and chart element as a real PPTX object — which is what makes the output usable for teams who actually need to edit the deck after generation.