Presentation Builder
Overview
This skill turns a topic, document, or rough idea into a tight, persuasive presentation outline. It enforces three rules that separate good decks from forgettable ones:
- One core message — the whole deck exists to make ONE point land.
- A narrative arc — slides progress like a story (tension → resolution), not a list of facts.
- One idea per slide — each slide advances the argument by exactly one step, with spoken-word speaker notes.
Keywords: presentation, slide deck, slides, pitch deck, keynote, talk, lecture, demo, storytelling, narrative arc, speaker notes, outline, slide outline, deck structure, conference talk, sales pitch.
The output is a structured outline (slide-by-slide), NOT a visually rendered deck. Hand the outline to PowerPoint, Google Slides, Keynote, or a tool like Marp/reveal.js.
When to use vs. not use
- USE for: structuring a new deck, converting a document/report into slides, reordering a rambling deck, writing speaker notes, sharpening a pitch.
- DON'T over-engineer for: a single status slide, or when the user already has a finished deck and only wants visual styling (that's a design task, not a structure task).
Workflow
Follow these steps in order. Do not skip the discovery step — a deck built without knowing the audience and the ask is the #1 cause of bad presentations.
Step 1 — Discover the four anchors
Before writing any slide, establish (ask the user if unknown, max 3-4 crisp questions):
| Anchor |
Question to answer |
| Audience |
Who is in the room? What do they already know, care about, and fear? |
| Goal / Ask |
What should they DO or DECIDE after the talk? (One verb.) |
| Core message |
The single sentence they should remember tomorrow. |
| Constraints |
Time limit, slide count, format (live/async), tone. |
If the user gave a document, infer drafts of these from it, then confirm the core message before proceeding.
Step 2 — Lock the core message
Write the core message as ONE declarative sentence (see references/storytelling-frameworks.md → "Core Message Test"). Every slide must earn its place by supporting this sentence. If a slide doesn't, cut it.
Step 3 — Choose a narrative arc
Pick the arc that fits the goal. Defaults:
- Pitch / persuade / sell → "What is — What could be" (problem/possibility oscillation, ending on a call to action).
- Inform / teach → "Pyramid" (answer first, then supporting groups of ideas).
- Report / update → "Situation → Complication → Resolution → Next steps."
- Inspire / keynote → "Hero's journey lite" (status quo → catalyst → struggle → transformation).
See references/storytelling-frameworks.md for full descriptions and when to use each.
Step 4 — Draft the slide spine
Lay out section headers first (3-5 sections for a typical talk), then slides under each. Use the canonical spine:
- Hook (1 slide) — a question, surprising stat, or vivid scene. No agenda slide as slide 1.
- Stakes (1-2) — why this matters now, to THIS audience.
- Core message (1) — state it plainly, early.
- Body (3-7) — the argument, one idea per slide, each building on the last.
- Proof (1-3) — evidence, demo, case study, data.
- Call to action (1) — the specific ask / next step.
- Close (1) — restate core message; memorable final line.
Adjust counts to the time budget (rule of thumb: ~1-2 minutes per content slide; see scripts/pacing.py).
Step 5 — Write each slide using the slide contract
Every slide gets the fields in templates/slide-outline.md:
- Slide title — a full assertion ("Sales fell because onboarding broke"), NOT a topic label ("Sales").
- One idea — the single point.
- On-slide content — minimal: a phrase, one chart, or one image cue. No paragraphs.
- Speaker notes — what you actually SAY (conversational, 30-90 sec worth).
- Transition — one line linking to the next slide ("But there's a catch...").
Step 6 — Self-review with the checklist
Run every slide and the whole deck through references/deck-review-checklist.md. Fix violations. Most common: topic-label titles, multi-idea slides, missing call to action, no transitions.
Step 7 — Deliver
Output the full outline using templates/slide-outline.md structure. Offer to: (a) generate Marp/reveal.js markdown, (b) tighten to a shorter time, or (c) write a 30-second elevator version of the core message.
Decision Heuristics
- Assertion titles — if a title could be a slide in any deck, it's too vague. Make it say something.
- The "so what?" test — after each slide, the audience should never think "so what?". The transition answers it.
- Cut to clarify — when unsure whether to include a slide, cut it. Fewer slides, more impact.
- Data needs a verdict — never show a chart without stating what it proves on the slide title.
- Demos > descriptions — if you can show it, show it; replace a "features" slide with a proof slide.
- One emotion per section — curiosity, concern, hope, urgency. Map the emotional beat.
Best Practices
- Open with tension, not logistics. Save the agenda (if any) for after the hook.
- State the core message in the first 90 seconds AND at the end. Repetition is the medium.
- Write speaker notes as speech, not bullet points — read them aloud to test.
- Use the 1-7-7 sanity guide loosely (≤7 lines, ≤7 words) but prefer even less; aim for one phrase.
- Each chart answers one question. Title the chart with the answer.
- End on a sentence, not a "Thank you / Questions?" slide. Land the message, then thank.
Common Pitfalls
- Topic titles ("Background", "Results") instead of assertions. Always rewrite.
- The everything slide — multiple ideas crammed together. Split it.
- Reading the slide — slide text duplicates speech. Slide = visual aid; notes = words.
- Burying the ask — call to action vague or missing. Make it one concrete verb + deadline.
- No arc — a flat list of facts. Add tension/resolution beats.
- Death by data — slide after slide of charts with no narrative thread.
- Skipping audience analysis — generic deck that lands with no one.
Bundled Files
references/storytelling-frameworks.md — narrative arcs, the core-message test, emotional mapping, opening/closing patterns.
references/deck-review-checklist.md — per-slide and whole-deck review checklist.
templates/slide-outline.md — the fill-in outline format for the final deliverable.
examples/saas-pitch-deck.md — a complete worked example (input brief → finished outline).
scripts/pacing.py — computes slide budget and flags over/under-packed decks from time + slide count.
1---2name: presentation-builder3description: Outlines compelling presentations built around a single core message, a clear narrative arc, one idea per slide, and concrete speaker notes. Use this skill when the user wants to create, outline, structure, or improve a slide deck, talk, pitch, keynote, conference presentation, sales demo, lecture, or any "build me slides / a presentation / a pitch deck" request — including requests like "turn this doc into slides", "help me prepare a talk", "make a deck about X", or "tighten my presentation".4license: MIT5---67# Presentation Builder89## Overview1011This skill turns a topic, document, or rough idea into a tight, persuasive presentation outline. It enforces three rules that separate good decks from forgettable ones:12131. **One core message** — the whole deck exists to make ONE point land.142. **A narrative arc** — slides progress like a story (tension → resolution), not a list of facts.153. **One idea per slide** — each slide advances the argument by exactly one step, with spoken-word speaker notes.1617Keywords: presentation, slide deck, slides, pitch deck, keynote, talk, lecture, demo, storytelling, narrative arc, speaker notes, outline, slide outline, deck structure, conference talk, sales pitch.1819The output is a structured outline (slide-by-slide), NOT a visually rendered deck. Hand the outline to PowerPoint, Google Slides, Keynote, or a tool like Marp/reveal.js.2021## When to use vs. not use2223- USE for: structuring a new deck, converting a document/report into slides, reordering a rambling deck, writing speaker notes, sharpening a pitch.24- DON'T over-engineer for: a single status slide, or when the user already has a finished deck and only wants visual styling (that's a design task, not a structure task).2526## Workflow2728Follow these steps in order. Do not skip the discovery step — a deck built without knowing the audience and the ask is the #1 cause of bad presentations.2930### Step 1 — Discover the four anchors3132Before writing any slide, establish (ask the user if unknown, max 3-4 crisp questions):3334| Anchor | Question to answer |35|--------|-------------------|36| **Audience** | Who is in the room? What do they already know, care about, and fear? |37| **Goal / Ask** | What should they DO or DECIDE after the talk? (One verb.) |38| **Core message** | The single sentence they should remember tomorrow. |39| **Constraints** | Time limit, slide count, format (live/async), tone. |4041If the user gave a document, infer drafts of these from it, then confirm the core message before proceeding.4243### Step 2 — Lock the core message4445Write the core message as ONE declarative sentence (see `references/storytelling-frameworks.md` → "Core Message Test"). Every slide must earn its place by supporting this sentence. If a slide doesn't, cut it.4647### Step 3 — Choose a narrative arc4849Pick the arc that fits the goal. Defaults:5051- **Pitch / persuade / sell** → "What is — What could be" (problem/possibility oscillation, ending on a call to action).52- **Inform / teach** → "Pyramid" (answer first, then supporting groups of ideas).53- **Report / update** → "Situation → Complication → Resolution → Next steps."54- **Inspire / keynote** → "Hero's journey lite" (status quo → catalyst → struggle → transformation).5556See `references/storytelling-frameworks.md` for full descriptions and when to use each.5758### Step 4 — Draft the slide spine5960Lay out section headers first (3-5 sections for a typical talk), then slides under each. Use the canonical spine:61621. **Hook** (1 slide) — a question, surprising stat, or vivid scene. No agenda slide as slide 1.632. **Stakes** (1-2) — why this matters now, to THIS audience.643. **Core message** (1) — state it plainly, early.654. **Body** (3-7) — the argument, one idea per slide, each building on the last.665. **Proof** (1-3) — evidence, demo, case study, data.676. **Call to action** (1) — the specific ask / next step.687. **Close** (1) — restate core message; memorable final line.6970Adjust counts to the time budget (rule of thumb: ~1-2 minutes per content slide; see `scripts/pacing.py`).7172### Step 5 — Write each slide using the slide contract7374Every slide gets the fields in `templates/slide-outline.md`:75- **Slide title** — a full assertion ("Sales fell because onboarding broke"), NOT a topic label ("Sales").76- **One idea** — the single point.77- **On-slide content** — minimal: a phrase, one chart, or one image cue. No paragraphs.78- **Speaker notes** — what you actually SAY (conversational, 30-90 sec worth).79- **Transition** — one line linking to the next slide ("But there's a catch...").8081### Step 6 — Self-review with the checklist8283Run every slide and the whole deck through `references/deck-review-checklist.md`. Fix violations. Most common: topic-label titles, multi-idea slides, missing call to action, no transitions.8485### Step 7 — Deliver8687Output the full outline using `templates/slide-outline.md` structure. Offer to: (a) generate Marp/reveal.js markdown, (b) tighten to a shorter time, or (c) write a 30-second elevator version of the core message.8889## Decision Heuristics9091- **Assertion titles** — if a title could be a slide in any deck, it's too vague. Make it say something.92- **The "so what?" test** — after each slide, the audience should never think "so what?". The transition answers it.93- **Cut to clarify** — when unsure whether to include a slide, cut it. Fewer slides, more impact.94- **Data needs a verdict** — never show a chart without stating what it proves on the slide title.95- **Demos > descriptions** — if you can show it, show it; replace a "features" slide with a proof slide.96- **One emotion per section** — curiosity, concern, hope, urgency. Map the emotional beat.9798## Best Practices99100- Open with tension, not logistics. Save the agenda (if any) for after the hook.101- State the core message in the first 90 seconds AND at the end. Repetition is the medium.102- Write speaker notes as speech, not bullet points — read them aloud to test.103- Use the 1-7-7 sanity guide loosely (≤7 lines, ≤7 words) but prefer even less; aim for one phrase.104- Each chart answers one question. Title the chart with the answer.105- End on a sentence, not a "Thank you / Questions?" slide. Land the message, then thank.106107## Common Pitfalls108109- **Topic titles** ("Background", "Results") instead of assertions. Always rewrite.110- **The everything slide** — multiple ideas crammed together. Split it.111- **Reading the slide** — slide text duplicates speech. Slide = visual aid; notes = words.112- **Burying the ask** — call to action vague or missing. Make it one concrete verb + deadline.113- **No arc** — a flat list of facts. Add tension/resolution beats.114- **Death by data** — slide after slide of charts with no narrative thread.115- **Skipping audience analysis** — generic deck that lands with no one.116117## Bundled Files118119- `references/storytelling-frameworks.md` — narrative arcs, the core-message test, emotional mapping, opening/closing patterns.120- `references/deck-review-checklist.md` — per-slide and whole-deck review checklist.121- `templates/slide-outline.md` — the fill-in outline format for the final deliverable.122- `examples/saas-pitch-deck.md` — a complete worked example (input brief → finished outline).123- `scripts/pacing.py` — computes slide budget and flags over/under-packed decks from time + slide count.