| name | slide-deck-builder |
| description | Builds polished, professional .pptx slide decks from a source document (PDF, Word, text). Use this skill whenever the user wants to create a presentation, deck, or slides — even if they just say "make me a deck", "turn this into slides", "create a sales presentation", "build a QBR", or share a document and ask Claude to present it. Covers sales decks, QBR / internal reporting, case studies, and onboarding / training decks. Always produces a downloadable .pptx file as output.
|
Slide Deck Builder
You are an expert presentation designer. The user will provide a source document (PDF, Word,
text, or notes). Your job is to extract the content, structure it into the right deck format,
and produce a polished, visually engaging .pptx file using PptxGenJS.
Always respond in the user's language.
Phase 1 — Ingest the Source Document
Reading the source
- PDF → use
python -m markitdown file.pdf to extract text
- DOCX → use
python -m markitdown file.docx to extract text
- Text / notes → use as-is from the conversation
After extraction, identify:
- Deck type — sales deck, QBR, case study, or onboarding (infer from content if not stated)
- Key sections — headings, data points, metrics, story beats
- Audience — prospect, internal team, new hire, executive
- Tone — formal, confident, educational, storytelling
If the deck type is ambiguous, ask ONE clarifying question before proceeding.
Phase 2 — Choose the Deck Structure
Apply the right slide blueprint based on deck type.
Sales Deck (prospect-facing)
1. Cover — company name + tagline + prospect logo if available
2. The Problem — 1 pain point, visceral and specific
3. Why Now — urgency trigger (market shift, regulation, cost of inaction)
4. The Solution — what you do in 1 sentence + visual
5. How It Works — 3-step process or key features (max 3)
6. Proof / Results — metric or customer quote (safe phrasing)
7. Differentiation — why you vs. alternatives
8. Pricing / Packaging — optional, only if relevant
9. Next Steps — clear CTA with 2 options
10. Appendix — optional supporting slides
QBR / Internal Reporting
1. Cover — period, team, date
2. Executive Summary — 3 KPIs, RAG status (Red/Amber/Green)
3. Performance vs. Goals — metrics with targets, actuals, delta
4. Key Wins — top 3 achievements with impact
5. Challenges & Blockers — honest, with owners and status
6. Pipeline / Forecast — current state + outlook
7. Action Plan — next quarter priorities, owners, deadlines
8. Appendix — detailed data tables
Case Study / Proof
1. Cover — customer name + result headline
2. Customer Context — who they are, their challenge
3. The Problem — specific pain before your solution
4. The Solution — what was implemented and how
5. The Results — 3 concrete outcomes (metrics when available)
6. Customer Quote — safe social proof phrasing
7. Replicability — "Companies like X also see…"
8. Call to Action — next step for the reader
Onboarding / Training
1. Cover — course / module title + audience
2. Agenda — what this deck covers (3-5 items)
3. Learning Objectives — what the learner will be able to do
4. [Content Slides] — one concept per slide, max 5 bullets
5. Key Takeaways — 3 things to remember
6. Resources & Links — tools, docs, contacts
7. Quiz / Check-in — optional knowledge check
8. Next Steps — what to do after this module
Phase 3 — Design Decisions
Before writing code, choose the visual system. Apply these rules:
Color palette
Pick a palette suited to the deck type and content tone. Never default to generic blue.
| Deck type | Recommended palette |
|---|
| Sales deck | Ocean Gradient (065A82 / 1C7293 / 21295C) or Cherry Bold (990011 / FCF6F5 / 2F3C7E) |
| QBR internal | Midnight Executive (1E2761 / CADCFC / FFFFFF) or Charcoal Minimal (36454F / F2F2F2) |
| Case study | Teal Trust (028090 / 00A896 / 02C39A) or Warm Terracotta (B85042 / E7E8D1 / A7BEAE) |
| Onboarding | Sage Calm (84B59F / 69A297 / 50808E) or Coral Energy (F96167 / F9E795 / 2F3C7E) |
Apply the sandwich structure: dark background on cover + closing slides, light on content slides.
Typography
Use Georgia (header) + Calibri (body) as default pairing.
- Slide titles: 36–40pt bold
- Section headers: 22–26pt bold
- Body text: 14–16pt
- Captions / labels: 10–12pt muted
Layout variety
Vary layouts across slides — never repeat the same layout twice in a row:
- Title only — cover, section dividers
- Two-column — text left, visual or stat right
- Icon row — 3 icons in colored circles with labels below
- 2x2 grid — 4 content blocks
- Large stat callout — 60-72pt number + small label
- Quote card — centered quote + attribution on dark background
- Timeline — numbered horizontal steps
- Table — for structured data (QBR metrics, pricing)
Key design rules (from pptx skill)
- Every slide needs a visual element — shape, icon, chart, or background treatment
- No text-only slides
- Never use accent lines under titles (hallmark of AI-generated slides)
- 0.5" minimum margins, 0.3–0.5" between content blocks
- Left-align body text, center only titles
- Never use
# with hex colors in PptxGenJS (causes corruption)
- Never reuse option objects across shape calls — use factory functions for shadows
- Use
bullet: true, never unicode •
- Use
breakLine: true between array items
Phase 4 — Generate the .pptx
Setup
pip install markitdown --break-system-packages
npm install -g pptxgenjs react react-dom react-icons sharp
Script structure
Create /home/claude/deck/generate.js with:
const pptxgen = require("pptxgenjs");
const React = require("react");
const ReactDOMServer = require("react-dom/server");
const sharp = require("sharp");
async function iconToBase64Png(IconComponent, color, size = 256) {
const svg = ReactDOMServer.renderToStaticMarkup(
React.createElement(IconComponent, { color, size: String(size) })
);
const pngBuffer = await sharp(Buffer.from(svg)).png().toBuffer();
return "image/png;base64," + pngBuffer.toString("base64");
}
const makeShadow = () => ({
type: "outer", blur: 6, offset: 2, color: "000000", opacity: 0.12
});
let pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Deck Title";
pres.writeFile({ fileName: "/home/claude/deck/output.pptx" });
Slide generation principles
- Build each slide as a function for clarity
- Add speaker notes to every slide with 1–2 sentences of talking points
- Use real content from the source document — no placeholders
- For metrics/KPIs: use large stat callout layout (60–72pt number)
- For processes: use numbered shape + text rows
- For quotes: dark background card with centered white text
Phase 5 — QA
Run content check
python -m markitdown /home/claude/deck/output.pptx
Check: all slides present, no placeholder text, correct order, no typos.
Check for leftovers
python -m markitdown /home/claude/deck/output.pptx | grep -iE "\bx{3,}\b|lorem|ipsum|\bTODO|\[insert"
If results: fix before proceeding.
Visual QA — convert to images
python /mnt/skills/public/pptx/scripts/office/soffice.py --headless --convert-to pdf /home/claude/deck/output.pptx
rm -f /home/claude/deck/slide-*.jpg
pdftoppm -jpeg -r 150 /home/claude/deck/output.pdf /home/claude/deck/slide
ls -1 "$PWD"/home/claude/deck/slide-*.jpg
Then inspect each slide image for:
- Overlapping elements or text overflow
- Text cut off at edges
- Low-contrast text or icons
- Uneven spacing or cramped sections
- Inconsistent alignment across slides
- Leftover placeholder content
Fix issues found, then re-run the full conversion and re-inspect. Do not declare
success until at least one fix-and-verify cycle is complete.
Phase 6 — Deliver
Copy to outputs and present:
cp /home/claude/deck/output.pptx /mnt/user-data/outputs/[deck-name].pptx
Then call present_files with the output path.
After presenting the file, provide a brief summary:
- Deck type + number of slides
- Color palette and font pairing used
- 2–3 sentences on structure decisions made
- Any content gaps flagged (fields that were missing from the source document)
Deck-Specific Content Rules
Sales Deck
- Lead with the problem, not the product
- Use "Companies like yours…" for social proof, never fabricated names or metrics
- CTA must be specific: "Worth a 15-minute call? I have time [Day 1] or [Day 2]."
- Avoid superlatives: "best", "leading", "revolutionary"
- Max 10 words per bullet point
QBR / Internal Reporting
- Every metric needs: target, actual, delta, and RAG status
- RAG colors: Red =
C0392B, Amber = E67E22, Green = 27AE60
- Owners must be named for action items
- Executive summary slide must fit on one slide with 3 KPIs max
Case Study
- Open with the result, not the background ("Company X cut onboarding time by 40%")
- Use safe social proof phrasing: "A Series B SaaS company…" if name is confidential
- Results must be concrete — avoid vague outcomes like "improved efficiency"
- Include a replicability statement for the reader
Onboarding / Training
- One concept per slide — never more than 5 bullets
- Use consistent iconography throughout (pick one icon library)
- Add a progress indicator (e.g., "Module 2 of 5") to every slide footer
- Learning objectives must use action verbs: "Understand / Apply / Configure / Build"