Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Build a real, editable PowerPoint (.pptx) deck from an outline or brief. Use when asked to make a slide deck, a PowerPoint, a pitch/board/sales deck as an actual file, or to turn a doc/notes into slides. Produces an actual .pptx via a generated python-pptx script — a title slide, one idea per content slide with a clear headline and concise bullets, and consistent styling. Requires a code-execution environment (Claude Code, the API code tool, or Claude.ai).
.claude/skills/mohitagw15856-slide-deck/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 58% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 3% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 0% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 43% | 0% |
This produces a real, editable .pptx — not a markdown outline — by writing and running a python-pptx script. It turns a brief, doc, or outline into a deck that follows good slide hygiene: a headline that states the point (not a vague title), one idea per slide, concise bullets, and consistent styling — so the user opens an actual PowerPoint they can present and edit.
> Environment: produces a binary file, so it needs code execution — Claude Code, the > API code-execution tool, or Claude.ai. In the browser playground (no code execution), the > existing PPTX export turns any skill's markdown into slides; this skill is for a built-from-brief deck.
Ask for these only if they aren't already provided:
python-pptx script that:.pptx..pptx file.Presentation practice — assertion-evidence / one-idea-per-slide, Duarte/Minto narrative structure — implemented with python-pptx.
This skill ships scripts/pptx_tool.py — zero-dependency (stdlib zip+XML) generation of a real .pptx from a markdown outline:
bashpython3 scripts/pptx_tool.py build deck.pptx --outline-file deck.md
Outline: # Title (+ next line = subtitle) · ## Slide title · - bullet (two-space indent = sub-bullet) · > speaker note. Ships a clean 16:9 dark-title theme that opens in PowerPoint/Keynote/Slides. Design the narrative first (per this skill), then emit the outline and build. Honest limits: one theme, no images/charts — it's the restylable skeleton; for designed decks use the playground's slide export.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 84,655 | 17,643 | -79% | 1 | 1 | 0% | 8,295 | 1,276 | -85% | 0 | 0 | — |
case-02 | fail→fail | 43,655 | 30,049 | -31% | 1 | 1 | 0% | 8,271 | 2,972 | -64% | 0 | 0 | — |
case-03 | fail→fail | 65,229 | 39,627 | -39% | 1 | 1 | 0% | 8,254 | 5,697 | -31% | 0 | 0 | — |
case-04 | pass→pass | 16,804 | 18,716 | +11% | 1 | 1 | 0% | 1,913 | 2,865 | +50% | 0 | 0 | — |
case-05 | fail→pass | 16,380 | 17,372 | +6% | 1 | 1 | 0% | 1,710 | 2,699 | +58% | 0 | 0 | — |
case-06 | fail→pass | 20,802 | 12,368 | -41% | 1 | 1 | 0% | 2,550 | 2,916 | +14% | 0 | 0 | — |
case-07 | pass→fail | 13,546 | 14,790 | +9% | 1 | 1 | 0% | 1,821 | 2,539 | +39% | 0 | 0 | — |
case-08 | fail→pass | 15,661 | 9,130 | -42% | 1 | 1 | 0% | 1,425 | 1,470 | +3% | 0 | 0 | — |
case-09 | fail→pass | 13,046 | 7,519 | -42% | 1 | 1 | 0% | 1,365 | 1,366 | +0% | 0 | 0 | — |
case-10 | pass→pass | 17,226 | 12,559 | -27% | 1 | 1 | 0% | 1,951 | 2,657 | +36% | 0 | 0 | — |
case-11 | fail→pass | 23,871 | 31,624 | +32% | 1 | 1 | 0% | 3,480 | 4,982 | +43% | 0 | 0 | — |
case-12 | fail→fail | 15,207 | 17,259 | +13% | 1 | 1 | 0% | 1,396 | 2,242 | +61% | 0 | 0 | — |
case-13 | fail→pass | 30,794 | 14,699 | -52% | 1 | 1 | 0% | 1,953 | 2,151 | +10% | 0 | 0 | — |
case-14 | pass→pass | 19,523 | 14,444 | -26% | 1 | 1 | 0% | 1,849 | 2,275 | +23% | 0 | 0 | — |
case-15 | fail→fail | 16,531 | 17,122 | +4% | 1 | 1 | 0% | 1,943 | 1,144 | -41% | 0 | 0 | — |
case-16 | fail→pass | 15,826 | 22,850 | +44% | 1 | 1 | 0% | 1,510 | 1,530 | +1% | 0 | 0 | — |
case-17 | fail→fail | 20,517 | 18,985 | -7% | 1 | 1 | 0% | 2,163 | 2,798 | +29% | 0 | 0 | — |
case-18 | pass→pass | 11,891 | 7,163 | -40% | 1 | 1 | 0% | 1,769 | 2,053 | +16% | 0 | 0 | — |
case-19 | pass→pass | 14,620 | 10,560 | -28% | 1 | 1 | 0% | 1,373 | 1,706 | +24% | 0 | 0 | — |
case-20 | pass→fail | 18,650 | 14,642 | -21% | 1 | 1 | 0% | 1,683 | 2,213 | +31% | 0 | 0 | — |
case-21 | pass→pass | 18,007 | 16,821 | -7% | 1 | 1 | 0% | 2,206 | 2,987 | +35% | 0 | 0 | — |
case-22 | pass→pass | 26,132 | 16,837 | -36% | 1 | 1 | 0% | 2,838 | 3,276 | +15% | 0 | 0 | — |
case-23 | pass→pass | 38,969 | 38,777 | -0% | 1 | 1 | 0% | 4,765 | 5,254 | +10% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 20 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +22 percentage points is the difference between those two pass rates over the 20 comparable cases. 4 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.