Deck builder
Generate a real PowerPoint (.pptx) file from content, target audience, and a color palette. Produces structurally-appropriate decks (slide count, density, layout choice) tuned for the audience — execs, technical reviewers, sales prospects, investors, internal teams. Use when the user wants an actual editable .pptx, not just an outline.From its SKILL.md
npx -y skills add sananthanarayan/skilldrop --skill deck-builderAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.4 KB, as published. Nobody here has run it
deck-builder
You help the user produce an actual editable .pptx file, not just an outline. The skill runs python-pptx under the hood to materialize slides with a chosen color palette, multiple layout types, and audience-tuned density.
This skill pairs with two others:
audience-profile— decides how dense / how many / which sections the deck should haveslide-outliner— drafts the per-slide content before this skill turns it into a.pptx
For a single fast pipeline, use all three in order: profile → outline → build.
How to respond
-
Gather three inputs before generating anything:
-
Content. Either a finished outline (from
slide-outliner), a long doc the user wants compressed into slides, or a list of points. If the content is thin ("here's the topic, you fill in"), pause and ask — making slides up is the easiest way to make a bad deck. -
Audience. One of:
exec,board,technical,sales,internal,investor,partner,customer. If the user gives a free-form description ("VP of Eng + their staff at a partner"), map to the closest archetype and call out your choice. Useaudience-profilefor the structural rules. -
Palette. Always ask the user before generating — don't pick for them, and don't default silently. Present the choice like this:
Pick a palette before I generate the deck:
corporate-blue— default for B2B / enterprise audiencesmonochrome— restrained / when content is sensitivevibrant— internal / sales / pitch decksdark-mode— engineering audiences, live demoseditorial— long-form / read-ahead decksforest— calm, nature-leaningsunset— warm, narrative-leaning- Or give me hex values for
primary/secondary/accent/background/text - Or paste your brand colors and I'll map them into the five roles
If the user gives brand colors as a partial set (e.g. just a primary), derive the missing roles using the rules in
reference.mdand call out what you filled in.
-
-
Plan the slide list against the audience archetype. For example:
Audience Slide count Density Required sections exec6–10 Low — 3 bullets max Ask • TL;DR • Business impact • Risks • Ask (closing) board8–12 Low — big numbers Cover • TL;DR • Strategic context • Financials • Risks • Ask technical12–20 High — detail welcome Context • Goals • Proposal (3–5) • Alternatives • Risks • Rollout sales8–12 Story arc, visual Hook • Pain • Solution • Proof • Pricing • Close internal5–10 Mixed Context • Proposal • Discussion topics • Action items investor10–15 Polished, narrative Problem • Market • Product • Traction • Team • Ask The full archetype spec is in
audience-profile. -
Build a deck spec. The spec is a JSON document with this shape — full schema in
templates/deck-spec.json:{ "title": "ProjectX Migration — Board Update", "audience": "board", "palette": { "primary": "#1A2A6C", "accent": "#FDBB2D", ... }, "slides": [ { "layout": "title", "title": "...", "subtitle": "..." }, { "layout": "section", "title": "..." }, { "layout": "content", "title": "...", "bullets": ["..."] }, { "layout": "big_number", "title": "...", "number": "$24M", "caption": "ARR at risk" }, { "layout": "two_column", "title": "...", "left": {...}, "right": {...} }, { "layout": "quote", "quote": "...", "attribution": "..." }, { "layout": "closing", "title": "Approval requested", "subtitle": "..." } ] }Available layouts:
title,section,content,two_column,big_number,quote,closing. Most slides should becontent; sprinkle inbig_numberandquotefor emphasis. -
Run the build script to produce the actual
.pptx:# Claude Code python3 "${CLAUDE_SKILL_DIR}/scripts/build_deck.py" /tmp/deck-spec.json -o ./out/deck.pptx # Other IDEs (from the skill folder) cd path/to/deck-builder && python3 scripts/build_deck.py /tmp/deck-spec.json -o ./out/deck.pptxThe script writes a real
.pptxthe user can open in PowerPoint, Keynote, or Google Slides and edit further. Tell the user where the file landed and what to do next. -
Recommend post-generation refinement. A generated deck is a strong first draft, not a finished artifact. Always suggest:
- Reviewing speaker notes (they were written by the agent — verify before presenting)
- Replacing any placeholder images with real visuals
- Doing one "audience pass" — read every slide title in order, does the narrative make sense to that specific audience?
Useful references
reference.md— Color palette principles + layout-vs-content matching guidetemplates/deck-spec.json— Full JSON schema with every layout demonstratedtemplates/palettes.json— Pre-built color palettes (corporate-blue, monochrome, vibrant, dark-mode, editorial, forest, sunset)examples/exec-board-update.md— Worked example: brief → spec → resulting deckscripts/build_deck.py— The generator (don't edit unless extending layouts)
Quality bar
- Title slide isn't blank — it has a real title, subtitle, presenter, date.
- Section dividers used sparingly — at most one every 4–5 content slides.
- Big numbers are real — never invent statistics for emphasis. If the user gave you a number, use it; otherwise pick a different layout.
- Bullet density matches audience — for
exec, max 3 bullets per slide, period. Fortechnical, up to 6 if the content really needs it. - Speaker notes for every slide — even one sentence. They're how the presenter remembers what's between the bullets.
- Color palette is consistent — don't mix in random colors that aren't in the palette.
- No surprise pages — first and last slides match in style; the deck reads as one document.
Anti-patterns to avoid
- ❌ Generating a deck without confirming the audience. The same content for execs vs engineers is a different deck.
- ❌ Writing fake numbers to fill a
big_numberslide. - ❌ Defaulting to bullets when a
big_number,quote, ortwo_columnwould land harder. - ❌ Skipping speaker notes because the user "knows the topic" — they're for the reviewer/co-presenter too.
- ❌ Choosing low-contrast palettes (light grey text on white). If the palette has poor contrast, swap to a sensible default and explain.
- ❌ More than ~20 slides for any audience. If you can't make the point in 20, the deck isn't the right format.