Build Keynote-style single-file HTML slide decks with brand-ready templates, minimal navigation, and Gemini nano banana media generation. Includes Narrative Engine integration for framework-driven deck creation with 17 proven storytelling structures and 5-agent review panel. Use when creating or editing slide decks, transforming content into presentations, or generating slide visuals.
<!-- ABOUTME: Skill guide for building Keynote-style HTML decks with brand tokens and Gemini media hooks. -->
<!-- ABOUTME: Points to the single-file template, templates, and media generation workflow. -->
1. Run the deck bootstrap to create a deck folder:
```bash
scripts/new-deck.sh example-pitch --entity northwind --title "Example Pitch" --type pitch
```
2. Update `decks/brands.js` when brand tokens change.
3. Edit `decks/<deck-id>/index.html` and duplicate slides inside `<main id="deck">`, keeping each `data-title` unique.
4. Use layout classes (`layout-title`, `layout-split`, `layout-grid`, `layout-metrics`, `layout-quote`) to keep spacing consistent.
5. Apply `reveal` plus `--reveal-index` to stagger key elements.
Export PMF Panel findings as deck input materials:
```bash
.claude/export-deck-brief.sh <scenario-id>
cp scenarios/<scenario-id>/deck-brief.md \
../keynote-slides-skill/decks/<deck-id>/resources/materials/pmf-brief.md
```
The brief includes diagnosis, scenarios, 30/60/90 plan, and specialist perspectives ready for narrative engine ingestion.
1. Add `data-gen` and `data-prompt` to `<img>` or `<video>` elements.
2. Open the generator panel with `g` or the `Gen` button.
3. Save the API key and model settings to localStorage (never commit keys).
4. For image-to-image or image-to-video, load a base image in the panel.
5. Run "Generate slide" or "Generate all" and review outputs.
Use the `/acquire-images` skill (see `skills/acquire-images.md`) to populate slides with visuals.
Claude decides whether to **generate** (Gemini) or **search** (stock photos) for each slide:
| Content Type | Decision | Why |
|--------------|----------|-----|
| Diagrams, flowcharts | GENERATE | Custom layouts, brand colors |
| Data visualizations | GENERATE | Precise data representation |
| Real-world photos | SEARCH | Authentic people, places |
| Team/people shots | SEARCH | Realistic human photos |
| Abstract concepts | GENERATE | Metaphorical, brand-styled |
| Branded hero images | HYBRID | Search base + AI overlay |
**Search sources:** Unsplash, Pexels, Google Custom Search.
**Attribution:** Downloaded images tracked in `resources/materials/image-credits.json`.
See `skills/acquire-images.md` for the full workflow.
```bash
scripts/serve-decks.sh
```
Then open `http://<tailscale-ip>:8921/decks/<deck-id>/index.html`.
```html
<aside class="slide-notes">Speaker notes here.</aside>
```
```html
<svg class="diagram" data-media="svg" viewBox="0 0 800 450" role="img" aria-label="Diagram"></svg>
```
- `data-gen` = Gemini only (optional `data-media="gemini"`).
- Inline SVG = no `data-gen`.
- Static images/videos = no `data-gen`.
Micro animations are **small decorative accent elements** that add subtle motion to slides without distracting from content.
**What micro animations ARE:**
**What micro animations are NOT:**
**Implementation:**
```html
<!-- Accent line after a headline -->
<h1 class="title">Your headline here</h1>
<span class="accent-line"></span>
```
**Available classes:**
**Behavior:**
**When to use:**
```bash
cp skills/keynote-slides/assets/keynote-editor.html decks/<deck-id>/editor.html
```
```bash
node scripts/export-pdf.js decks/<deck-id> --out /tmp/<deck-id>.pdf
```
Enable reviewers to leave comments on deck elements for collaborative feedback.
1. In review mode, hover over elements to see them highlighted
2. **Click** any commentable element (titles, text, cards, metrics, media frames)
3. **Or select text** within an element to comment on specific wording/typos
4. First-time commenters enter name and email (stored in session)
5. Type feedback in the popover and click "Add Comment"
6. A numbered badge (①②③) appears on commented elements for easy reference
From the comment sidebar:
Use `assets/feedback-viewer.html` to review all feedback outside the deck:
1. Open `feedback-viewer.html` in a browser
2. Load a `comments.json` file or enter a URL
3. Filter by open/resolved status
4. Mark comments as resolved
5. Export updated JSON or markdown
Add `?url=<path-to-json>` to auto-load comments.
Comments are stored in localStorage keyed by deck ID. Export structure:
```json
{
"deckId": "example-pitch",
"nextNumber": 4,
"comments": [
{
"id": "c_1706123456789_abc123",
"number": 1,
"slideIndex": 2,
"slideTitle": "Our Solution",
"elementSelector": "[data-comment-target='headline']",
"elementText": "First 50 chars of element...",
"selectedText": "specific phrase",
"comment": "This needs more specificity",
"author": {
"name": "Sarah Chen",
"email": "[email protected]"
},
"createdAt": "2024-01-24T10:30:00Z",
"resolved": false
}
]
}
```
For precise comment targeting, add `data-comment-target` attributes:
```html
<h2 data-comment-target="solution-headline">Our Solution</h2>
<p data-comment-target="value-prop-1">We reduce costs by 40%...</p>
```
Elements without explicit targets use a generated CSS selector path.
---
For content-driven deck creation, use the Narrative Engine workflow that matches your material to proven storytelling frameworks.
1. **Ingest resources:** Run `node scripts/ingest-resources.js decks/<deck-id>` to read all materials
- Or use `node scripts/narrative-build.js decks/<deck-id>` to prepare model-mediated prompts
2. **Focal discovery + discovery:** Align on the one point, then answer 5 questions (audience, purpose, content type, tone, reveal)
3. **Density + framework match:** Choose density mode, then get 2-3 recommendations with content mapped to structure
4. **Deck generation:** Build slides with source attribution tags
5. **Review panel:** 5 agents + Director synthesize feedback
| Question | Options |
|----------|---------|
| **Audience** | Executive, Technical, Investors, Skeptics, General, Mixed |
| **Purpose** | Persuade, Inform, Inspire, Align, Report, Defend, Entertain |
| **Content type** | Research, Strategy, Origin story, Post-mortem, Pattern insight, etc. |
| **Tone** | Authoritative, Provocative, Warm, Urgent, Balanced, Visionary |
| **Reveal potential** | Yes (has surprise), No (straightforward), Help me find one |
| If your content has... | Consider... |
|------------------------|-------------|
| A genuine surprise | The Prestige or Mystery Box |
| Multiple stakeholder views | Rashomon |
| A transformation story | Hero's Journey |
| Future vision | Time Machine |
| Root cause analysis | Columbo |
| Strategy/roadmap | The Heist |
| Paradigm shift | Trojan Horse |
| Agent | Lens | Key Question |
|-------|------|--------------|
| **Audience Advocate** | Target audience persona | "Does this land for [audience]?" |
| **Comms Specialist** | Messaging, emotion, PR risk | "Is this tight and bulletproof?" |
| **Visual Designer** | Metaphor coherence, S.T.A.R. moments | "What visual makes this unforgettable?" |
| **Critic** | Pacing, weak links, efficacy | "What's the weakest link?" |
| **Content Expert** | Accuracy, logic, sources | "Can every claim be defended?" |
After the 5-agent review, optionally stress-test with stakeholder personas auto-selected by content type:
| Persona | Questions | Best For |
|---------|-----------|----------|
| **Engineer** | "How does this actually work?" | Technical proposals, product launches |
| **Skeptic** | "Why should I believe this?" | Bold claims, paradigm shifts |
| **Risk Officer** | "What could go wrong?" | Strategy, transformation, investment |
| **CFO** | "What are the numbers?" | Pitches, business cases, ROI claims |
| **Lawyer** | "What's the exposure?" | Policy, compliance, external-facing |
| **Conservative** | "Why change what's working?" | Change management |
| **COO** | "Would this actually work?" | Execution plans, go-to-market |
The Director triages findings into **Must Fix**, **Should Fix**, and **Could Fix** categories.
| Tag | Meaning |
|-----|---------|
| `[DIRECT]` | Verbatim from source material |
| `[PARAPHRASE]` | Restated ideas |
| `[ELABORATED]` | Expanded concept |
| `[SYNTHESIZED]` | Combined multiple sources |
| `[GENERATED]` | New content for flow |
See `/docs/integrated-architecture.md` for full technical details.
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/keynote-slides/raw