ai-presentation-maker

TotalClaw 作者 Jeff J Hunter v1.0.0

AI Presenter Maker — 为您的 OpenClaw 代理提供面试驱动的推介材料生成器。告诉它你建造了什么,你要向谁展示,并选择一个角度 - 它会生成一个完整的幻灯片,其中包含演讲者注释、事实验证和实际成本细分。没有虚构的投资回报率。没有投机性预测。只是根据实际工作构建的引人注目的演示文稿。导出为 Markdown、PPTX 和 PDF。可独立工作或与 AI Persona OS 一起工作。由杰夫·J·亨特建造。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~jeffjhunter-ai-presentation-maker
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~jeffjhunter-ai-presentation-maker/file -o jeffjhunter-ai-presentation-maker.md
## 概述(中文)

AI Presenter Maker — 为您的 OpenClaw 代理提供面试驱动的推介材料生成器。告诉它你建造了什么,你要向谁展示,并选择一个角度 - 它会生成一个完整的幻灯片,其中包含演讲者注释、事实验证和实际成本细分。没有虚构的投资回报率。没有投机性预测。只是根据实际工作构建的引人注目的演示文稿。导出为 Markdown、PPTX 和 PDF。可独立工作或与 AI Persona OS 一起工作。由杰夫·J·亨特建造。

## 原文

# 🎤 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?