Cleans up a deck: animations off, one font, slide numbers, notes, alignment, reorder, chart data.
Say it in your own words; the assistant finds this recipe by itself. Examples:
Tidy an EXISTING PowerPoint in ONE command with the DeckCraft engine: remove all animations and transitions before sending, add slide numbers and a footer, one font and size for every slide, speaker notes on every slide from a list, reorder or delete slides, delete empty 'Click to add text' boxes, align and distribute the boxes on a slide, replace a chart's numbers, replace a word everywhere; then render the first slides to PNG. Use for: clean this deck up before it goes out, remove the animations, add page numbers, make the fonts consistent, put my notes on the slides, move slide 9 to the front, line up the boxes on slide 4, update the chart with Q4 numbers. Triggers: tidy, clean up, fix the deck, animations, transitions, slide numbers, footer, consistent font, speaker notes, reorder slides, align, distribute, update chart, ryd op, sidetal, noter.
python3 /skills/slide-fixes/scripts/fixes.py IN.pptx OUT.pptx [fixes…] wraps deckcraft-cli, a
native engine that reads and writes real .pptx without PowerPoint. One run applies every fix
you list and prints one OK … line (what was done, slide count) or one ERROR … line. Inputs the
person uploaded are in /work/in; write results to /work/out. Slide numbers are 1-based.
| Need | Flag |
|---|---|
| Remove animations / transitions | --no-animations --no-transitions |
| Slide numbers, footer | --numbers --footer "Nordisk Widgets · Confidential" |
| One font (and size) everywhere | --font Carlito --size 18 (fonts in the sandbox: Liberation Sans/Serif, DejaVu Sans/Serif, Carlito, Caladea, Noto Sans) |
| Title size on every slide | --title-size 32 |
| Speaker notes | --notes /work/notes.json with {"1": "…", "2": "…"} by slide number (or a list, one per slide) |
| Reorder / delete slides | --order "20,1,2,3" (missing numbers keep their order after the listed ones) · --delete-slides "5,9" |
| Delete empty placeholders | --delete-empty |
| Align / spread the boxes on a slide | --align 22:top (left, center, right, top, middle, bottom) · --distribute 22:horizontal |
| Replace a chart's numbers | --chart-data 21:/work/chart.json with {"categories": [...], "series": [{"name": "…", "values": [...]}]} |
| Replace text everywhere | --replace "2026=2027" (repeatable) |
| Previews of the first slides | --preview /work/out/preview |
| What is on each slide (ids, kinds, positions) | fixes.py inspect /work/in/deck.pptx [--slide 22] |
Example: fixes.py /work/in/deck.pptx /work/out/deck.pptx --no-animations --no-transitions --numbers --footer "Confidential" --font Carlito --notes /work/notes.json --preview /work/out/preview
Order of work inside one run: per-slide edits (empty boxes, align, chart, fonts, notes), then animations and transitions, text replacements, deletions, the new order, footer. Look at the previews afterwards and give the person the links.
SKILL.mdgate.jsonscripts/__pycache__/fixes.cpython-313.pycscripts/fixes.pyWritten by Percerno, MIT licence.