Percerno Skillsbeta
← everything it can do · slides

Deck Builder PPTX

Build a finished PowerPoint (.pptx) in ONE command from a short JSON outline: title slide, section and bullet slides, two-column, quote, big-number and closing slides, with a clean theme and speaker notes, optional PDF. Use for any request for a deck, presentation, slides or pitch when the content is text and bullets. Faster and far cheaper than hand-written pptxgenjs code: write outline.json, run build_deck.py, done. Triggers: PowerPoint, pptx, deck, slides, presentation, præsentation, pitch deck.

11 uses this weeksource Percernolicence MIT
Quality gate: PASS · makes it possible · measured 2026-10-23
Delivered a valid file in 3 of 3 requests; the bare model cannot produce this file type.
3/3 requests produced a file that opens
Security scan: clean · 2026-10-24 · 2 files · ran in sandbox
no network calls, shell tricks, credential access or instruction tampering found in its files.

Try asking

Say it in your own words; the assistant finds this recipe by itself. Examples:

“Use the deck-builder skill to …”
Try this skill from Claude, ChatGPT or a chat on your own page. Free plan, no credit card.Get started free

Details

When it is the right choice

Build a finished PowerPoint (.pptx) in ONE command from a short JSON outline: title slide, section and bullet slides, two-column, quote, big-number and closing slides, with a clean theme and speaker notes, optional PDF. Use for any request for a deck, presentation, slides or pitch when the content is text and bullets. Faster and far cheaper than hand-written pptxgenjs code: write outline.json, run build_deck.py, done. Triggers: PowerPoint, pptx, deck, slides, presentation, præsentation, pitch deck.

The full recipe the assistant reads

Deck builder (one command)

Write the outline as JSON, run one script, hand back the file. Do not write pptxgenjs or python-pptx code yourself; do not inspect the result slide by slide. The script validates the file.

1. Write the outline

/work/outline.json:

{
  "title": "On-premise AI for Danish SMEs",
  "subtitle": "Why keep the model in the building",
  "author": "Percerno",
  "theme": "navy",
  "language": "en",
  "slides": [
    {"type": "section", "title": "The problem"},
    {"type": "bullets", "title": "Cloud AI leaves three gaps", "bullets": ["Data leaves the EU", "Per-token cost scales with success", "No control over model changes"], "notes": "Open with the GDPR point."},
    {"type": "two-column", "title": "Cloud vs on-premise", "left_title": "Cloud", "left": ["Fast start", "No hardware"], "right_title": "On-premise", "right": ["Data stays", "Fixed cost"]},
    {"type": "big-number", "title": "Payback", "number": "14 months", "caption": "at 200 daily users"},
    {"type": "quote", "quote": "We stopped asking legal for permission.", "attribution": "CIO, manufacturing company"},
    {"type": "bullets", "title": "Next steps", "bullets": ["Pilot on one team", "Measure for 90 days", "Decide on rollout"]},
    {"type": "closing", "title": "Thank you", "subtitle": "questions@percerno.ai"}
  ]
}

Slide types: section, bullets (3–6 bullets, each under 14 words), two-column, big-number, quote, closing. Every slide may carry "notes". Themes: navy, teal, charcoal, warm. language only affects the date format on the title slide. Aim for 6–12 slides; one idea per slide; put the takeaway in the title.

2. Build

python3 /skills/deck-builder/scripts/build_deck.py /work/outline.json /work/out/deck.pptx --pdf

Prints OK <slides> slides -> /work/out/deck.pptx (and deck.pdf) or a clear error. --pdf also renders a PDF with LibreOffice (adds ~10 s). That is the whole job: give the person the download link(s).

Editing an existing deck or reading one

Not this skill: use pptx-generator (template editing, XML) or python -m markitdown file.pptx (text extraction).

Files in this skill (2)
  • SKILL.md
  • scripts/build_deck.py
Where it comes from

Written by Percerno, MIT licence.