@ztffn/presentation-generator-plugin 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,190 @@
1
+ ---
2
+ name: presentation-generator
3
+ description: >
4
+ Generate complete graph-based presentations from natural language briefs and/or project documents.
5
+ Use when asked to create, generate, build, or design a presentation, pitch deck, or slide deck.
6
+ Triggers on: "create a presentation", "build a deck", "generate slides", "make a pitch",
7
+ "presentation for", "slide deck about".
8
+ ---
9
+
10
+ # Presentation Generator
11
+
12
+ Orchestrates a three-agent pipeline to produce a complete, navigable presentation graph JSON from a user brief and optional source documents.
13
+
14
+ ## Pipeline Overview
15
+
16
+ ```
17
+ User Brief + Documents
18
+
19
+ [1] Content Extraction → _temp/presentation-content-brief.json
20
+
21
+ [2] Narrative Design → _temp/presentation-outline.md
22
+
23
+ [3] User Approval → confirm or revise structure
24
+
25
+ [4] Design & JSON → _temp/presentation-draft.json
26
+
27
+ [5] Delivery → import instructions + media checklist
28
+ ```
29
+
30
+ ## Phase 1 — Context Gathering
31
+
32
+ Parse the user's request to identify:
33
+
34
+ 1. **What** is being presented (product, project, topic)
35
+ 2. **To whom** (audience type, their background, what they care about)
36
+ 3. **For what goal** (`pitch`, `demo`, `update`, `internal`, `exploratory`)
37
+ 4. **Source documents** — paths to files the user wants to draw from
38
+
39
+ If no documents are provided, skip Phase 2 and construct a minimal content brief directly from the prompt. Ask the user for any missing critical information:
40
+ - If audience is unclear, ask who the presentation is for
41
+ - If goal is unclear, ask what outcome they want
42
+
43
+ ## Phase 2 — Content Extraction
44
+
45
+ Invoke the `presentation-content` sub-agent:
46
+
47
+ ```
48
+ Agent: presentation-content
49
+ Input: List of document paths from the user
50
+ Output: _temp/presentation-content-brief.json
51
+ ```
52
+
53
+ The content agent reads all source documents and writes a structured content brief.
54
+
55
+ ### Brief Quality Gate
56
+
57
+ After the content brief is written, read `_temp/presentation-content-brief.json` and verify:
58
+
59
+ 1. **`keyMessages`** contains 3-5 declarative claims (subject + verb + specific claim), not topic labels
60
+ - BAD: "Our technology"
61
+ - GOOD: "Calora reduces industrial heat costs by 40% with no infrastructure replacement"
62
+
63
+ 2. **`dataPoints`** contains at least one entry with a specific number in `value`
64
+ - BAD: `{ "value": "significant" }`
65
+ - GOOD: `{ "value": "40%", "source": "Field trial, Oslo 2024" }`
66
+
67
+ 3. **`callToAction`** is a single actionable sentence with an action verb
68
+ - BAD: "Let's continue the conversation"
69
+ - GOOD: "Agree to a structured 3-month pilot at the Stavanger facility starting Q2"
70
+
71
+ If any check fails, ask the user ONE targeted question to fill the gap. Do not pass a weak brief to the narrative agent.
72
+
73
+ ## Phase 3 — Narrative Design
74
+
75
+ Invoke the `presentation-narrative` sub-agent:
76
+
77
+ ```
78
+ Agent: presentation-narrative
79
+ Input: Reads _temp/presentation-content-brief.json
80
+ Output: _temp/presentation-outline.md
81
+ ```
82
+
83
+ The narrative agent selects a story framework, designs the spine and drill-down structure, and writes a detailed slide outline.
84
+
85
+ ## Phase 4 — User Approval
86
+
87
+ Read `_temp/presentation-outline.md` and render it as a folder tree for the user:
88
+
89
+ ```
90
+ Cover: [headline]
91
+ Problem: [headline]
92
+ └─ Detail: [headline]
93
+ └─ Root Cause: [headline]
94
+ Solution: [headline]
95
+ └─ How It Works: [headline]
96
+ Value: [headline]
97
+ └─ Case Study: [headline]
98
+ Call to Action: [headline]
99
+ ```
100
+
101
+ **Rules:**
102
+ - Top-level items are spine nodes (horizontal navigation)
103
+ - Indented items with `└─` are drill-down children (vertical navigation)
104
+ - Siblings at the same indent level are horizontal peers within their branch
105
+
106
+ Write the tree to `_temp/presentation-plan.md` and present it in the chat.
107
+
108
+ Wait for the user to respond:
109
+ - **"approved"** or similar → proceed to Phase 5
110
+ - **change requests** → update the outline, re-render the tree, wait again
111
+ - **"start over"** → return to Phase 1
112
+
113
+ This loop continues until the user explicitly approves.
114
+
115
+ ## Phase 5 — Design and JSON Generation
116
+
117
+ Invoke the `presentation-design` sub-agent:
118
+
119
+ ```
120
+ Agent: presentation-design
121
+ Input: Reads _temp/presentation-outline.md
122
+ Output: _temp/presentation-draft.json
123
+ ```
124
+
125
+ The design agent translates each slide into a fully specified graph node, wires all edges with bidirectional pairs, and validates the result.
126
+
127
+ ## Phase 6 — Delivery
128
+
129
+ After `_temp/presentation-draft.json` is written:
130
+
131
+ 1. Confirm the JSON was written successfully
132
+ 2. Provide import instructions:
133
+
134
+ ```
135
+ Import your presentation:
136
+ 1. Open the graph editor at /present/plan
137
+ 2. Click "New presentation"
138
+ 3. Choose "Import JSON"
139
+ 4. Select _temp/presentation-draft.json
140
+ ```
141
+
142
+ 3. If any slides have video placeholders, list them:
143
+
144
+ ```
145
+ Slides requiring manual video upload:
146
+ - "[Slide Title]" — [description of needed video]
147
+
148
+ Upload path: POST /api/slide-images/upload
149
+ Accepted: image/*, video/mp4, video/webm, video/quicktime (max 50MB)
150
+ Replace the PLACEHOLDER string with the returned URL after upload.
151
+ ```
152
+
153
+ ## Sub-Agent Reference
154
+
155
+ | Agent | Skills Loaded | Purpose |
156
+ |---|---|---|
157
+ | `presentation-content` | `narrative/content-signals` | Extract structured brief from documents |
158
+ | `presentation-narrative` | `narrative/frameworks`, `narrative/slide-content`, `narrative/graph-topology` | Design story structure and slide content |
159
+ | `presentation-design` | `system/node-schema`, `system/edge-conventions`, `system/layout-templates`, `system/positioning`, `examples/pitch-reference` | Translate outline to valid graph JSON |
160
+
161
+ ## Working Without Documents
162
+
163
+ When the user provides only a verbal brief (no document paths):
164
+
165
+ 1. Skip Phase 2 entirely
166
+ 2. Construct the content brief yourself from the user's prompt:
167
+ - Ask clarifying questions for missing fields
168
+ - Populate what you can from the conversation
169
+ - Write the brief to `_temp/presentation-content-brief.json`
170
+ 3. Proceed to Phase 3 as normal
171
+
172
+ ## Large Document Sets
173
+
174
+ If the user provides many documents that may exceed a single agent's context:
175
+
176
+ 1. Split the document list into groups of 3-5 files
177
+ 2. Invoke `presentation-content` multiple times, each with a subset
178
+ 3. Merge the partial briefs into a single content brief
179
+ 4. Run the quality gate on the merged brief
180
+
181
+ ## File Manifest
182
+
183
+ All intermediate and output files:
184
+
185
+ | File | Created By | Read By |
186
+ |---|---|---|
187
+ | `_temp/presentation-content-brief.json` | Content agent or orchestrator | Narrative agent |
188
+ | `_temp/presentation-outline.md` | Narrative agent | Design agent, orchestrator |
189
+ | `_temp/presentation-plan.md` | Orchestrator | User (approval) |
190
+ | `_temp/presentation-draft.json` | Design agent | User (import) |
@@ -0,0 +1,155 @@
1
+ {
2
+ "_comment": "Reference example: 7-node presentation demonstrating key slide types. Trimmed from _temp/presentation-demo-output.json. Each node shows a different design pattern the design agent should know how to produce.",
3
+
4
+ "_node_1_comment": "COVER NODE: centered, branded, brand font. Sets the context. No content-heavy text.",
5
+ "_node_2_comment": "CONTENT NODE: standard bullets, left-aligned (centered:false). Includes notes field for speaker context. The workhorse slide type.",
6
+ "_node_3_comment": "TWO-COLUMN NODE: layout:two-column splits on --- delimiter. Good for comparison or text+visual.",
7
+ "_node_4_comment": "INLINE CHART NODE: [chart:name] tag in content with charts record. Data supports the text argument.",
8
+ "_node_5_comment": "R3F SCENE NODE: type:r3f with scene config. lightText:true for dark background. Content overlays the 3D scene.",
9
+ "_node_6_comment": "BACKGROUND IMAGE NODE: Unsplash URL, overlay for readability, lightText. Mood-setting slide.",
10
+ "_node_7_comment": "CLOSING NODE: centered, branded, call to action. Mirrors cover structure.",
11
+
12
+ "nodes": [
13
+ {
14
+ "id": "cover",
15
+ "type": "huma",
16
+ "position": { "x": 0, "y": 0 },
17
+ "data": {
18
+ "label": "Graph-Based Presentations",
19
+ "topic": "Huma Showcase",
20
+ "content": "Non-linear storytelling for technical teams.\n\nNavigate with arrow keys. Press **down** to drill into any topic.",
21
+ "centered": true,
22
+ "brandFont": true,
23
+ "showBranding": true,
24
+ "brandingText": "huma.energy"
25
+ },
26
+ "style": { "width": 180, "height": 70 },
27
+ "measured": { "width": 180, "height": 70 }
28
+ },
29
+ {
30
+ "id": "problem",
31
+ "type": "huma",
32
+ "position": { "x": 240, "y": 0 },
33
+ "data": {
34
+ "label": "The Problem",
35
+ "topic": "01 / Problem",
36
+ "content": "## Linear tools break complex stories\n\n- Cannot branch based on audience questions\n- Skipping sections breaks the flow\n- Presenters get lost navigating dense topics\n- No private view for speaker notes during screen share\n\nEvery meeting is different. The presentation should adapt.",
37
+ "notes": "Pause here and ask: 'Does this match what you experience with your current tooling?' — their answer shapes how much time to spend on this node. If they push back, the drill-down below has the data. Key talking point: the fourth bullet is the one that resonates most with technical presenters.",
38
+ "centered": false
39
+ },
40
+ "style": { "width": 180, "height": 70 },
41
+ "measured": { "width": 180, "height": 70 }
42
+ },
43
+ {
44
+ "id": "value-detail",
45
+ "type": "huma",
46
+ "position": { "x": 240, "y": 150 },
47
+ "data": {
48
+ "label": "Value Breakdown",
49
+ "topic": "03 / Value",
50
+ "content": "## Flexible narratives\nAdapt flow to audience type and questions in real time\n\n---\n\n## Consistent style\nReuse front-end web styling and components directly\n\n## Professional delivery\nSpeaker notes and timing without the audience seeing them",
51
+ "layout": "two-column",
52
+ "centered": false
53
+ },
54
+ "style": { "width": 180, "height": 70 },
55
+ "measured": { "width": 180, "height": 70 }
56
+ },
57
+ {
58
+ "id": "value",
59
+ "type": "huma",
60
+ "position": { "x": 480, "y": 0 },
61
+ "data": {
62
+ "label": "The Value",
63
+ "topic": "03 / Value",
64
+ "content": "## Why this approach wins\n\n[chart:value]\n\nAdapt to the audience. Reuse web components. Deliver with confidence.",
65
+ "charts": {
66
+ "value": {
67
+ "chartType": "radar",
68
+ "data": [
69
+ { "axis": "Flexibility", "graph": 95, "traditional": 30 },
70
+ { "axis": "Visual Quality", "graph": 90, "traditional": 50 },
71
+ { "axis": "Interactivity", "graph": 85, "traditional": 20 },
72
+ { "axis": "Ease of Use", "graph": 60, "traditional": 90 },
73
+ { "axis": "Consistency", "graph": 85, "traditional": 40 },
74
+ { "axis": "Tech Signal", "graph": 95, "traditional": 15 }
75
+ ],
76
+ "config": {
77
+ "xKey": "axis",
78
+ "yKeys": ["graph", "traditional"],
79
+ "showGrid": true,
80
+ "showLegend": true
81
+ }
82
+ }
83
+ },
84
+ "centered": false
85
+ },
86
+ "style": { "width": 180, "height": 70 },
87
+ "measured": { "width": 180, "height": 70 }
88
+ },
89
+ {
90
+ "id": "feat-3d",
91
+ "type": "huma",
92
+ "position": { "x": 720, "y": 0 },
93
+ "data": {
94
+ "label": "3D Scenes",
95
+ "topic": "04 / Features",
96
+ "type": "r3f",
97
+ "scene": {
98
+ "component": "rotating-cube",
99
+ "controls": true,
100
+ "background": "#1a1a2e"
101
+ },
102
+ "content": "Interactive React Three Fiber scene.\n\nDrag to rotate. Scroll to zoom. Scenes load from a component registry.",
103
+ "lightText": true
104
+ },
105
+ "style": { "width": 180, "height": 70 },
106
+ "measured": { "width": 180, "height": 70 }
107
+ },
108
+ {
109
+ "id": "feat-bgimage",
110
+ "type": "huma",
111
+ "position": { "x": 960, "y": 0 },
112
+ "data": {
113
+ "label": "Background Image",
114
+ "topic": "04 / Features",
115
+ "content": "## Full-bleed imagery\n\nUpload any image as a slide background. Toggle overlay for text readability.\n\n- Cover/contain fit modes\n- Dark overlay toggle\n- Light text auto-detection",
116
+ "backgroundImage": "https://images.unsplash.com/photo-1451187580459-43490279c0fa?w=1920&q=80",
117
+ "backgroundImageFit": "cover",
118
+ "backgroundImageOverlay": true,
119
+ "lightText": true,
120
+ "centered": false
121
+ },
122
+ "style": { "width": 180, "height": 70 },
123
+ "measured": { "width": 180, "height": 70 }
124
+ },
125
+ {
126
+ "id": "end",
127
+ "type": "huma",
128
+ "position": { "x": 1200, "y": 0 },
129
+ "data": {
130
+ "label": "Get Started",
131
+ "content": "Fork this template to build your own.\n\nEvery slide, chart, and scene is editable in the graph editor.",
132
+ "centered": true,
133
+ "brandFont": true,
134
+ "showBranding": true,
135
+ "brandingText": "huma.energy"
136
+ },
137
+ "style": { "width": 180, "height": 70 },
138
+ "measured": { "width": 180, "height": 70 }
139
+ }
140
+ ],
141
+ "edges": [
142
+ { "id": "e-cover-problem", "source": "cover", "target": "problem", "sourceHandle": "s-right", "targetHandle": "t-left" },
143
+ { "id": "e-problem-cover", "source": "problem", "target": "cover", "sourceHandle": "s-left", "targetHandle": "t-right" },
144
+ { "id": "e-problem-value", "source": "problem", "target": "value", "sourceHandle": "s-right", "targetHandle": "t-left" },
145
+ { "id": "e-value-problem", "source": "value", "target": "problem", "sourceHandle": "s-left", "targetHandle": "t-right" },
146
+ { "id": "e-problem-detail", "source": "problem", "target": "value-detail", "sourceHandle": "s-bottom", "targetHandle": "t-top" },
147
+ { "id": "e-detail-problem", "source": "value-detail", "target": "problem", "sourceHandle": "s-top", "targetHandle": "t-bottom" },
148
+ { "id": "e-value-3d", "source": "value", "target": "feat-3d", "sourceHandle": "s-right", "targetHandle": "t-left" },
149
+ { "id": "e-3d-value", "source": "feat-3d", "target": "value", "sourceHandle": "s-left", "targetHandle": "t-right" },
150
+ { "id": "e-3d-bgimage", "source": "feat-3d", "target": "feat-bgimage", "sourceHandle": "s-right", "targetHandle": "t-left" },
151
+ { "id": "e-bgimage-3d", "source": "feat-bgimage", "target": "feat-3d", "sourceHandle": "s-left", "targetHandle": "t-right" },
152
+ { "id": "e-bgimage-end", "source": "feat-bgimage", "target": "end", "sourceHandle": "s-right", "targetHandle": "t-left" },
153
+ { "id": "e-end-bgimage", "source": "end", "target": "feat-bgimage", "sourceHandle": "s-left", "targetHandle": "t-right" }
154
+ ]
155
+ }
@@ -0,0 +1,314 @@
1
+ # The Presentation Playbook
2
+
3
+ A practical guide for creating and delivering compelling presentations. Synthesizes frameworks from Nancy Duarte, Andy Raskin, Mike Maples Jr, Matthew Dicks, Tristan de Montebello, and others. References throughout for deep dives.
4
+
5
+ ---
6
+
7
+ ## Part 1 — Before You Open the Slide Software
8
+
9
+ ### Start With the Arrow
10
+
11
+ Define the one thing you want the audience to remember before writing a single slide. Not a topic — a sentence. "Our customers waste 11 hours a week reconciling three systems that don't talk to each other." Everything else in the presentation is the bow: the anecdotes, data points, and comparisons that give that sentence weight and launch it into the room.
12
+
13
+ If you cannot state your arrow in one sentence, you are not ready to build slides.
14
+
15
+ → Deep dive: *Bow and Arrow Technique* — Tristan de Montebello, Giving Presentations
16
+
17
+ ### Know Exactly Who Is in the Room
18
+
19
+ Before writing a word, answer three questions:
20
+
21
+ 1. **Who specifically is in the room?** Their role, what they know, what they care about
22
+ 2. **What do they need to believe to take the action you want?** Not "understand" — *believe*
23
+ 3. **What objections will they raise, and do you have data ready for each one?**
24
+
25
+ Casey Winters: "If you haven't thought through every question that might be asked, you're not prepared enough. You need to know the entire universe of how that meeting can go."
26
+
27
+ For high-stakes presentations: run pre-meetings with key individuals before the formal review. Surface concerns early. No surprises in the room.
28
+
29
+ → Deep dive: *De-risking Presentations* — Casey Winters, Giving Presentations
30
+
31
+ ### Find the Earned Secret
32
+
33
+ Identify the non-obvious insight that makes your argument urgent *right now*, not three years ago or three years from now. This is not a product feature — it is a shift in the world:
34
+
35
+ - A regulatory change that makes the old approach non-compliant
36
+ - A cost inflection that makes the status quo unaffordable
37
+ - A technology shift that makes the solution newly feasible
38
+ - A market move that closes existing options
39
+
40
+ Mike Maples Jr: "What do you know that's not obvious? Slide two of your pitch should be your earned secret." A presentation without an earned secret is a description. One with it is an argument.
41
+
42
+ → Deep dive: *Earned Secrets and Pitch Structure* — Mike Maples Jr, Giving Presentations
43
+
44
+ ### Write Story Points, Not Slides
45
+
46
+ Open a notes app, not slide software. Write the narrative structure — what you're arguing and in what order — before touching any visual tool. Janna Bastow: "Now I figure out what I'm actually trying to say, and then I fit it into the deck." The deck should serve the story, not generate it.
47
+
48
+ ---
49
+
50
+ ## Part 2 — Story Structure
51
+
52
+ ### The Five Frameworks
53
+
54
+ Choose based on `goal` and `audience`. The framework determines your spine.
55
+
56
+ **Problem-Solution-Value (PSV)**
57
+ For pitches where the audience already has the problem. Lead with the cost they feel, present the solution as the logical answer, prove it works, quantify the value.
58
+ *Flow:* Problem → Solution → Evidence → Value → Call to Action
59
+
60
+ **Before-After-Bridge (BAB)**
61
+ For audiences who don't yet recognize they have a problem. Show the current state vividly, paint the desired future, reveal your product as the bridge.
62
+ *Flow:* Current Reality → Desired Future → The Bridge → Evidence → Ask
63
+
64
+ **Hero's Journey**
65
+ For audiences going through disruption they did not choose. Cast them as the protagonist. You are the guide with the tool — not the hero.
66
+ *Flow:* Status Quo → Disruption → Challenge → Guide (you) → Transformation → New Normal
67
+
68
+ **Five-Whys**
69
+ For internal or diagnostic presentations where understanding root cause matters more than selling. Each "why" is a spine node peeling back one causal layer.
70
+ *Flow:* Observation → Why #1 → Why #2 → Root Cause → Solution
71
+
72
+ **Minto Pyramid**
73
+ For executive audiences who want the bottom line first. Lead with the recommendation, support with grouped arguments, provide evidence in drill-downs.
74
+ *Flow:* Conclusion → Argument 1 → Argument 2 → Argument 3 → Next Steps
75
+
76
+ → Deep dive: *Strategic Narrative* — Andy Raskin; *Resonate* — Nancy Duarte
77
+
78
+ ### What Is vs. What Could Be
79
+
80
+ The most persuasive presentations do not make their argument once — they alternate between the current flawed reality and the possible future, repeatedly widening the gap.
81
+
82
+ 1. Show the current state — the friction, cost, or limitation the audience recognizes
83
+ 2. Show what changes if the problem is solved — specific, concrete, desirable
84
+ 3. Repeat this cycle across the spine before the solution fully arrives
85
+ 4. Close with "new bliss" — the world after adoption, not just a product description
86
+
87
+ Nancy Duarte: "This motion of traversing between what is and what could be makes people leave their current state and long for the future." The audience should feel the gap before they hear the answer. Understanding is not urgency; tension is.
88
+
89
+ → Deep dive: *Resonate* — Nancy Duarte; *What Is vs. What Could Be* — Nancy Duarte, Giving Presentations
90
+
91
+ ### The Audience Is the Hero
92
+
93
+ You are Obi-Wan, not Luke. The customer is on a journey — your product is the lightsaber they need. Every slide should speak to "your situation," "your team," "your outcome." Do not make yourself the protagonist of your own presentation.
94
+
95
+ Mike Maples Jr: "Describe the world that is, describe the world that could be — your job as the founder is to be Obi-Wan, not Luke."
96
+
97
+ ### Establish Stakes Immediately
98
+
99
+ The audience must know what is at risk within 60 seconds. A problem slide without stakes creates intellectual interest, not urgency. Matthew Dicks calls this "the elephant" — something the audience is worried about from the first sentence.
100
+
101
+ Do not ease in. Do not start with "Today I'm going to talk about..." Start in the middle of the problem at its most acute moment.
102
+
103
+ Merci Grace: "Every pitch should start in the middle of the action. Skip the boring setup — hook them immediately."
104
+
105
+ → Deep dive: *Storyworthy* — Matthew Dicks
106
+
107
+ ### Spine Length and Drill-Down Logic
108
+
109
+ The spine is the minimum viable presentation — it must tell a complete story on its own. Drill-downs are optional depth that skeptics and deep questioners can access without breaking the flow for everyone else.
110
+
111
+ | Duration | Spine Nodes | Drill-Downs Per Node |
112
+ |---|---|---|
113
+ | 5–10 min | 4–5 | 0–1 |
114
+ | 15–20 min | 5–6 | 1–2 |
115
+ | 30+ min | 6–7 | 2–3 |
116
+
117
+ Place objections in drill-downs, not the spine. Putting objections on the spine breaks momentum. Making them available via drill-down shows you anticipated the question without making the audience sit through an answer they may not need.
118
+
119
+ ---
120
+
121
+ ## Part 3 — Writing Each Slide
122
+
123
+ ### The One Thing
124
+
125
+ Every slide has one key message. If you need "and" in the title, split the slide. If removing a bullet doesn't weaken the key message, remove it. If the audience cannot state what the slide was about in one sentence after it leaves the screen, it carried too much.
126
+
127
+ ### Assertion-Evidence Structure
128
+
129
+ Replace bullet lists with assertion + evidence. The assertion is the headline — a specific claim. The evidence is visual proof: a chart, comparison, quote, or before/after. Evidence does not repeat the headline in text. It proves it.
130
+
131
+ **Weak — assertion + more assertions:**
132
+ > *Title:* The Problem
133
+ > - Managing data is difficult
134
+ > - Current tools are inefficient
135
+ > - Teams waste time on manual processes
136
+
137
+ **Strong — assertion + evidence:**
138
+ > *Headline:* Mid-market finance teams lose 11 hours a week reconciling what three systems can't agree on
139
+ > [Chart or role-by-role breakdown of where those hours go]
140
+
141
+ → Deep dive: *Assertion-Evidence Structure* — Michael Alley; *Presentation Design* — presentation-design skill
142
+
143
+ ### Headlines vs. Titles
144
+
145
+ Titles label topics. Headlines make claims. The audience should understand your point from the title alone, without reading the body.
146
+
147
+ | Title (label) | Headline (claim) |
148
+ |---|---|
149
+ | "Market Overview" | "The market shifted to outcome-based pricing in 2023" |
150
+ | "Our Technology" | "One integration replaces three legacy systems" |
151
+ | "Q3 Results" | "Q3 revenue exceeded forecast by 18%" |
152
+ | "The Team" | "12 engineers with 200+ years of combined industrial experience" |
153
+
154
+ Andy Raskin: "Every single slide should be a takeaway, not a label."
155
+
156
+ ### Spoken vs. Shown
157
+
158
+ | Show on Slide | Speak Aloud |
159
+ |---|---|
160
+ | Headline claim | Why it matters to this specific audience |
161
+ | Visual evidence | Interpretation — what the data means |
162
+ | Specific numbers | The story behind the number |
163
+ | Call to action | The stakes of not acting |
164
+
165
+ The most common failure: slides containing everything the presenter plans to say. If the audience can read it, they will — and they'll tune out while you catch up. Slides are visual anchors for a spoken argument, not scripts.
166
+
167
+ ### Speaker Notes
168
+
169
+ Notes should add what the presenter says aloud, not repeat what is on screen. Strong notes include:
170
+
171
+ - The talking point the audience doesn't see
172
+ - Which drill-down to navigate to if a specific objection arises
173
+ - Audience-specific framing ("For technical audiences, emphasize...")
174
+ - Time guidance ("Spend max 2 minutes here")
175
+ - Transition language to the next slide
176
+
177
+ ### Framing Data
178
+
179
+ A number without a frame is noise. A number with a frame is an argument.
180
+
181
+ > ❌ "40% reduction"
182
+ > ✓ "40% reduction — enough to pay back the installation cost in 14 months"
183
+
184
+ Framing pattern: state the metric, then immediately state what it means for the audience. Use "enough to...", "which means...", "equivalent to...", or "compared to..." as connectors.
185
+
186
+ ### Chart Titles
187
+
188
+ A chart's title states the insight, not the data category. The audience should understand your point before they read the chart.
189
+
190
+ | Weak | Strong |
191
+ |---|---|
192
+ | "Revenue Data" | "Revenue grew 40% QoQ after the pricing change" |
193
+ | "Response Time" | "Response time dropped 60% after caching rollout" |
194
+ | "User Growth" | "1M users in 6 months — 2× ahead of plan" |
195
+
196
+ ---
197
+
198
+ ## Part 4 — Common Anti-Patterns
199
+
200
+ **Bullet Point Disease**
201
+ Slide after slide of lists, equal weight for unequal ideas, passive reading instead of active viewing. Fix: assertion-evidence. If you have a list, ask whether it should be a slide at all.
202
+
203
+ **The Script Reader**
204
+ Slides contain everything the presenter plans to say. Audiences read ahead, then tune out. Fix: slides show what you can't say; you say what you can't show.
205
+
206
+ **The Data Dump**
207
+ Every slide full of charts and statistics without interpretation or hierarchy. Audiences can't do analysis in real time. Fix: one insight per slide. State the conclusion; show the proof.
208
+
209
+ **The Vague Opening**
210
+ Starting with "Today I'm going to talk about...", an agenda slide, or a company overview before you've hooked anyone. Fix: start in the middle of the problem. Earn the agenda.
211
+
212
+ **The Success Story**
213
+ A presentation about how great things are, full of achievements and positive metrics. Audiences don't connect with success — they connect with problems and the path through them.
214
+ Jason Feifer: "Success stories are not interesting. Problem-solving stories are."
215
+
216
+ **The Franken-Deck**
217
+ Trying to answer every possible objection from every possible skeptic in one presentation. Fix: put objections in drill-downs, not the spine. Mike Maples Jr: "Don't build a deck that tries to satisfy non-believers — it satisfies nobody."
218
+
219
+ ---
220
+
221
+ ## Part 5 — Delivery
222
+
223
+ ### Internalize, Don't Memorize
224
+
225
+ Memorizing word-for-word creates catastrophic failure risk — lose your place once and the whole script collapses. Instead, internalize the structure:
226
+
227
+ **The Accordion Method** (Tristan de Montebello): Practice the talk at a strict 3-minute limit. Then 1 minute. Then 30 seconds. At 30 seconds, you have the pure skeleton — the essential logic. Then expand back to full length. You now own the talk instead of reciting it.
228
+
229
+ → Deep dive: *Accordion Method* — Tristan de Montebello, Giving Presentations
230
+
231
+ ### State Changes
232
+
233
+ Audience attention decays after 3–5 minutes of passive receiving. Build in a state change — a question, a data point to guess before revealing, a show of hands — every 3–5 slides. Make engagement a structural decision, not a personality trait.
234
+
235
+ Wes Kao: "Every three to five slides, put in a state change. Turn audience engagement from an art into a science."
236
+
237
+ ### Stay in Character
238
+
239
+ Do not apologize for minor verbal slips. Do not say "I'm nervous" or "I'm not sure this makes sense." Audiences rarely notice internal turbulence unless you leak it. Every apology signals uncertainty and invites doubt.
240
+
241
+ The internal cue: "stay in it." Commit to the end of each sentence. Maintain energy through the last word. Land the plane.
242
+
243
+ → Deep dive: *Stay in Character* — Tristan de Montebello, Giving Presentations
244
+
245
+ ### Managing Nerves
246
+
247
+ Anxiety and excitement share the same physiological response. Labeling the feeling as excitement rather than anxiety measurably improves performance.
248
+
249
+ Matt Abrahams: "When you feel those symptoms of anxiety, say 'This is exciting. I get to share my point of view.' By seeing it as more positive, it causes us to relax."
250
+
251
+ Breathing: exhale twice as long as you inhale (3 counts in, 6 counts out). The relaxation response is triggered by the exhale.
252
+
253
+ 98% of presentation nerves are pre-performance. Once you begin speaking, most of it falls away. The first sentence is the hardest. Prepare it cold.
254
+
255
+ ### Q&A
256
+
257
+ Answer, then give an example, then state the relevance. Don't assume the audience knows why your answer matters — connect the dots explicitly.
258
+
259
+ For difficult questions: "That's a valid concern. Here's how we thought about it." For out-of-scope questions: "Good question — let's take that offline." Never debug the problem in front of the room for more than 30 seconds. Have a "get out of jail" plan for any live demo or data pull that goes wrong.
260
+
261
+ ---
262
+
263
+ ## Quick Reference
264
+
265
+ **Before building the deck:**
266
+ 1. Define the arrow (one sentence: what should they remember?)
267
+ 2. Name the earned secret (why is this urgent now?)
268
+ 3. Identify the audience's hero journey and the problem they face
269
+ 4. Write story points before touching slide software
270
+
271
+ **Choosing a framework:**
272
+ - Audience has the problem → **PSV**
273
+ - Audience doesn't know they have the problem → **BAB**
274
+ - Audience is navigating disruption → **Hero's Journey**
275
+ - Audience needs to understand root cause → **Five-Whys**
276
+ - Audience is time-pressed, wants bottom line first → **Minto Pyramid**
277
+
278
+ **For every slide:**
279
+ - State the one thing
280
+ - Make the title a claim, not a label
281
+ - Pair assertion with visual evidence, not more assertions
282
+ - Put interpretation in speaker notes, not on screen
283
+
284
+ **Delivery:**
285
+ - Accordion method to internalize, not memorize
286
+ - State change every 3–5 slides
287
+ - Stay in character through the last word
288
+ - Reframe anxiety as excitement
289
+
290
+ ---
291
+
292
+ ## Source References
293
+
294
+ | Concept | Source |
295
+ |---|---|
296
+ | Bow and Arrow / The One Thing | Tristan de Montebello — *Giving Presentations* guest insights |
297
+ | What Is vs. What Could Be | Nancy Duarte — *Resonate*; *Giving Presentations* guest insights |
298
+ | Audience as Hero / Obi-Wan | Mike Maples Jr — *Giving Presentations* guest insights |
299
+ | Earned Secret / Non-Obvious Insight | Mike Maples Jr — *Giving Presentations* guest insights |
300
+ | The Elephant / Stakes Immediately | Matthew Dicks — *Storyworthy* |
301
+ | Start in the Middle of Action | Merci Grace — *Giving Presentations* guest insights |
302
+ | Make the Title the Takeaway | Andy Raskin — *Giving Presentations* guest insights |
303
+ | Lead a Movement, Not Just Solve a Problem | Andy Raskin — *Brand Storytelling* guest insights |
304
+ | Assertion-Evidence Structure | Michael Alley — *presentation-design* skill |
305
+ | State Changes Every 3–5 Slides | Wes Kao — *Giving Presentations* guest insights |
306
+ | Stay in Character | Tristan de Montebello — *Giving Presentations* guest insights |
307
+ | Accordion Method | Tristan de Montebello — *Giving Presentations* guest insights |
308
+ | Don't Memorize Word-for-Word | Paul Adams — *Giving Presentations* guest insights |
309
+ | Problem-Solving > Success Stories | Jason Feifer — *Brand Storytelling* guest insights |
310
+ | Memification | Yuhki Yamashata — *Brand Storytelling* guest insights |
311
+ | Anxiety as Excitement | Matt Abrahams — *Giving Presentations* guest insights |
312
+ | Chart Title = Insight Claim | *technical-presentations* slide design guide |
313
+ | Franken-Deck Anti-Pattern | Mike Maples Jr — *Giving Presentations* guest insights |
314
+ | Pre-Meetings to De-Risk | Casey Winters — *Giving Presentations* guest insights |