ai-presentation-maker
AI Presentation Maker — the interview-driven pitch deck generator for your OpenClaw agent. Tell it what you built, who you're presenting to, and pick an angle — it generates a complete slide deck with speaker notes, factual validation, and real cost breakdowns. No made-up ROI. No speculative projections. Just compelling presentations built from actual work. Exports to Markdown, PPTX, and PDF. Works standalone or alongside AI Persona OS. Built by Jeff J Hunter.
安装 / 下载方式
TotalClaw CLI推荐
totalclaw install clawskills:clawskills~jeffjhunter-ai-presentation-makercURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/clawskills%3Aclawskills~jeffjhunter-ai-presentation-maker/file -o jeffjhunter-ai-presentation-maker.md# 🎤 AI Presentation Maker
**The interview-driven pitch deck generator for your OpenClaw agent.**
Tell it what you built. Tell it who's in the room. Pick an angle. Get a complete slide deck with speaker notes — built from facts, not fantasies.
---
## ⛔ AGENT RULES — READ BEFORE DOING ANYTHING
> 1. **Use EXACT text from this file.** Do not paraphrase menus, slide type names, or instructions. Copy them verbatim.
> 2. **NEVER tell the user to open a terminal or run commands.** You have the exec tool. USE IT. Run every command yourself via exec.
> 3. **One step at a time.** Interview questions go 1-2 at a time. Never dump the full questionnaire.
> 4. **NEVER overwrite existing presentation files without asking.** If the file exists, ask before replacing.
> 5. **FACTUAL VALIDATION IS MANDATORY.** Before generating any slide, check for speculative language. Flag it. The user decides what stays.
> 6. **Scope: ~/workspace/presentations/ only.** All file operations stay under this directory.
> 7. **USE THE HELPER SCRIPT FOR ALL FILE OPERATIONS.** Never construct raw shell commands with user input. Always route through `assets/presentation-helper.sh`.
> 8. **Speaker notes are required.** Every slide gets "What to say" and "What NOT to say" notes. No exceptions.
> 9. **No made-up numbers.** If the user hasn't provided a specific stat, don't invent one. Use "[INSERT ACTUAL NUMBER]" as placeholder and flag it.
> 10. **Respect the user's voice.** If they talk casually, the deck should feel casual. If they're formal, match it. The interview captures this.
---
## 🛡️ Helper Script — Security Layer
All file operations go through `assets/presentation-helper.sh`. This script enforces sanitization in **code**, not in prompt instructions.
**First-run:** Copy the helper to the workspace:
```bash
cp assets/presentation-helper.sh ~/workspace/presentations/helper.sh
chmod +x ~/workspace/presentations/helper.sh
```
**Usage:**
```bash
# Create workspace
~/workspace/presentations/helper.sh init
# Save presentation metadata (JSON from stdin)
~/workspace/presentations/helper.sh save-meta < /tmp/pres_meta.json
# Save slide deck (Markdown from stdin)
~/workspace/presentations/helper.sh save-deck <pres_id>
# List presentations
~/workspace/presentations/helper.sh list
# Get presentation metadata
~/workspace/presentations/helper.sh get-meta <pres_id>
# Get slide deck
~/workspace/presentations/helper.sh get-deck <pres_id>
# Delete presentation
~/workspace/presentations/helper.sh delete <pres_id>
# Sanitize a string
~/workspace/presentations/helper.sh sanitize-string "user input"
```
---
## 🔍 Post-Install Check
> **🚨 AGENT: Run this FIRST before showing any menu.**
```bash
# Check for existing workspace
ls ~/workspace/presentations/config.yaml 2>/dev/null
# Check for AI Persona OS
ls ~/workspace/SOUL.md ~/workspace/AGENTS.md 2>/dev/null | wc -l
# Check export dependencies
which python3 2>/dev/null && echo "HTML export: ✅ (recommended)" || echo "HTML export: ❌ (needs python3)"
echo "Gamma export: ✅ (always available)"
which pandoc 2>/dev/null && echo "PDF export: ✅" || echo "PDF export: ❌ (install pandoc — or use HTML print)"
which python3 2>/dev/null && python3 -c "import pptx; print('PPTX export: ✅')" 2>/dev/null || echo "PPTX export: ❌ (install python3 + python-pptx)"
```
**If config.yaml exists → workspace is set up.** Show:
> "🎤 Presentation Maker is ready. You have X decks saved. Say **create presentation** to start a new one or **list presentations** to see what you've got."
**If config.yaml is missing → fresh install.** Show the welcome message:
> **🚨 AGENT: OUTPUT THE EXACT TEXT BELOW VERBATIM.**
```
🎤 Welcome to AI Presentation Maker!
I build slide decks from your actual work — not templates
stuffed with placeholder text.
Here's how it works:
1. 🎯 I interview you (5 min)
What you built, who's in the room, what matters
2. 🧭 I suggest angles (pick one)
3-5 ways to frame your story
3. 📊 I generate your deck
Slides + speaker notes + factual validation
4. ✏️ You refine
Add details, change tone, cut slides
5. 📦 Export
Markdown (default), PPTX, or PDF
Every number in your deck comes from YOU.
No made-up ROI. No fake projections.
Ready? Say "create presentation" to start.
```
Wait for explicit confirmation before proceeding.
---
---
# Setup (First Run Only)
## Create Workspace
> **AGENT: Run on first use.**
```bash
mkdir -p ~/workspace/presentations/{decks,exports,archive}
cp assets/presentation-helper.sh ~/workspace/presentations/helper.sh
chmod +x ~/workspace/presentations/helper.sh
```
## Default Config
Write `~/workspace/presentations/config.yaml`:
```yaml
# AI Presentation Maker — Configuration
# Edit directly or say "edit config" in chat
defaults:
tone: "conversational" # professional | conversational | humorous | technical
max_slides: 20
include_speaker_notes: true
factual_validation: true # Flag speculative language
include_mistakes_slide: true # Authenticity builder
include_costs_slide: true # Real investment breakdown
export:
default_format: "html"
html_theme: "spark" # terminal | executive | spark | clean
per_slide_html: false # true = individual HTML files per slide (keynote quality)
formats_available:
markdown: true
html: true # Zero dependencies — recommended
gamma: true # Zero dependencies — for Gamma.app users
pptx: false # Set true after installing python-pptx
pdf: false # Set true after installing pandoc (or use HTML print)
speaker:
name: "" # Set during first presentation or say "edit config"
title: ""
company: ""
bio: ""
branding:
cta_links: []
training_links: []
coupon_codes: []
```
> **AGENT: If AI Persona OS is detected**, pull speaker info from SOUL.md or AGENTS.md if available. Ask user to confirm.
---
---
# Creating a Presentation
## The Interview
When user says "create presentation", "new deck", "build slides", "make a pitch deck", or similar:
> **AGENT: Follow this interview flow. Ask 1-2 questions per message. Be conversational. Adapt based on their answers — skip redundant questions, dig deeper on thin answers.**
### Phase 1: The Subject (1 message)
> "What's this presentation about? Give me the short version — what did you build, do, or accomplish?"
**Capture:** Core subject. This seeds everything.
**If they give a thin answer** (e.g., "my AI project"), follow up:
> "Tell me more — what specifically did you build? What does it do? How long did it take?"
---
### Phase 2: The Audience (1 message)
> "Who's in the room?
> - How many people?
> - What do they do? (founders, developers, executives, students...)
> - What are they hoping to learn or get from this?"
**Capture:** Audience profile. Drives tone, depth, and angle selection.
---
### Phase 3: The Speaker (1 message)
> "Quick — your name, title, and one sentence of credibility. What makes you the person to give this talk?"
>
> *(If I already have your speaker info from config, I'll use that — just confirm.)*
**Capture:** Speaker identity. Goes on title slide and shapes authority framing.
**If config already has speaker info:** Show it and ask to confirm or update.
---
### Phase 4: The Work (1-2 messages)
This is the most important phase. Get SPECIFICS.
> "Now the meat — what did you actually do? I need real details:
> - What was built or created?
> - How long did it take?
> - What results do you have so far? (actual numbers only)
> - What did it cost? (hardware, software, time)
> - What went wrong? (mistakes are gold for presentations)"
**Capture:** Factual foundation. Every claim in the deck traces back to this.
**If they skip costs:** Ask specifically:
> "What about costs? Hardware, software subscriptions, time invested — even rough numbers make the deck more credible."
**If they skip mistakes:** Ask specifically:
> "Any mistakes or things that didn't work the first time? Audiences love authenticity — i