| name | presentation |
| description | Triggered when user wants to create a presentation, slide deck, slides, or interactive HTML slide deck.
Matches: "create a presentation", "make a slide deck", "build slides",
"presentation for [audience]", "pitch deck", "status update slides",
"training presentation", "proposal slides", "help me with a deck",
"keynote slides", "PowerPoint presentation", "PPTX", "investor deck",
"sales deck", "quarterly update", "interactive HTML slide deck". Also trigger when user explicitly asks for
slides or a deck, even without the word "presentation".
Do NOT use for written reports, memos, or documents in prose form (use
report-writer), meeting notes or call summaries (use meeting-notes), budget
creation (use budget-wizard — though presentation can chain to budget-wizard
for cost slides), data visualization tools or dashboards (not a slide deck),
or "show me" requests that mean list or table output rather than a slide
presentation.
|
| allowed-tools | ["Read","Write","Edit","Glob","Bash"] |
| help_text | Builds slide decks from a brief conversation — pitch decks, status updates, quarterly reviews. |
Presentation Builder
Create structured slide decks through guided conversation. Output is markdown with slide structure, key points, and speaker notes.
Language
Detect the user's preferred language from Personal Preferences. Respond entirely in that language.
If no preference is set:
AskUserQuestion: "What language should this presentation be in?"
Options: ["English", "עברית", "Русский"]
Workflow
Step 1: Presentation Type
AskUserQuestion: "What type of presentation are you creating?"
Options: ["Pitch / Sales deck", "Status update / Report", "Training / Educational", "Proposal / Recommendation", "Custom"]
Step 2: Audience
AskUserQuestion: "Who is the audience?"
Options: ["Executives / Leadership", "Team / Colleagues", "Clients / Customers", "Investors", "General / Mixed audience", "Custom — I'll describe"]
Step 3: Slide Count
AskUserQuestion: "How many slides?"
Options: ["5 slides (quick overview)", "10 slides (standard)", "15 slides (detailed)", "Custom number"]
Step 3b: Output Format
AskUserQuestion: "What format do you want?"
Options: ["Markdown outline (with speaker notes)", "Interactive HTML slide deck (open in browser)", "Both"]
If HTML or Both selected: Apply the HTML Slide Deck rules below when generating slides in Step 6.
Step 4: Content Input
Gather the core content through conversation:
AskUserQuestion: "How would you like to provide the content?"
Options: [
"I'll describe the topic — you create the outline",
"I have bullet points — organize them into slides",
"I have a document — extract key points into slides",
"Use a standard outline for [type] and I'll fill in details"
]
If using a standard outline, present the recommended structure for the selected type (see Type-Specific Structures below).
Step 5: Outline Review
Present the proposed slide outline (titles only) for approval:
AskUserQuestion: "Here's the proposed outline. What would you like to do?"
Options: ["Looks good — generate full slides", "Reorder slides", "Add a slide", "Remove a slide", "Change a title"]
Step 6: Generate Slides
For each slide, produce:
- Slide number and title
- Key points: 3-5 bullet points (concise, presentation-friendly)
- Speaker notes: 2-3 sentences of what to say (conversational tone)
- Visual suggestion: Recommended visual element (chart type, image description, icon)
Use the format from template.md.
Step 7: Review and Iterate
AskUserQuestion: "Presentation is ready. What would you like to do?"
Options: ["Looks great — save it", "Edit a specific slide", "Change the tone", "Add more detail", "Make it shorter", "Switch to HTML format", "Switch to markdown format"]
If "Edit a specific slide": Ask which slide number, then what to change
If "Change the tone": Ask for target tone (more formal, more casual, more persuasive)
If "Save it": Save to ~/Tandem/documents/presentation-[topic]-[date].md
Type-Specific Structures
Pitch / Sales Deck (10 slides)
- Title + Hook
- Problem
- Solution
- How It Works / Product
- Market Opportunity
- Traction / Proof Points
- Business Model
- Team
- Competition / Differentiation
- Ask / Call to Action
Status Update (5 slides)
- Summary / TL;DR
- Progress Since Last Update
- Key Metrics
- Issues & Risks
- Next Steps & Timeline
Training / Educational (10 slides)
- Title + Learning Objectives
- Agenda / Overview
3-8. Content Sections (one topic per slide)
- Summary / Key Takeaways
- Q&A / Resources
Proposal (8 slides)
- Title + Context
- Current Situation / Problem
- Proposed Solution
- Approach / Methodology
- Timeline
- Investment / Cost
- Expected Outcomes / ROI
- Next Steps
Design Suggestions
For each slide, include one visual recommendation:
| Content Type | Suggested Visual |
|---|
| Comparison | Side-by-side columns or table |
| Progress | Timeline or Gantt-style bar |
| Metrics | Bar chart, line graph, or big number |
| Process | Flowchart or numbered steps |
| Team | Photo grid with name/role |
| Market data | Pie chart or stacked bar |
| Quote/Testimonial | Large quote with attribution |
| Problem/Solution | Before/After split |
HTML Slide Deck Mode
When HTML output is selected, generate a single self-contained HTML file with fullscreen slides, keyboard navigation, and polished visual components.
HTML Structure
- Fullscreen slides (100vw x 100vh), content centered, max-width 900px, 60px padding
- Arrow key navigation (left/right), slide counter in bottom-right corner
- Smooth CSS transitions between slides
- All CSS and JS inline — zero external dependencies (except Google Fonts with system-ui fallback)
Design System
| Token | Value |
|---|
| Background | #0a0a0a |
| Text primary | #ffffff |
| Text secondary | #a0a0a0 |
| Card surface | #1a1a1a |
| Card border | #2a2a2a |
| Font | System sans-serif (no CDN required) |
| Heading size | 48-64px bold |
| Body size | 24-28px |
| Stat number size | 72-96px in accent color |
Accent Color Selection
Pick one accent color per deck based on topic:
| Topic Area | Color | Hex |
|---|
| AI / Tech | Electric blue | #3B82F6 |
| Business / Finance | Warm amber | #F59E0B |
| Design / Creative | Coral pink | #F43F5E |
| Health / Wellness | Soft teal | #14B8A6 |
| Education | Royal purple | #8B5CF6 |
| Marketing / Sales | Vibrant orange | #F97316 |
| General | Clean white | #E5E5E5 |
If user has brand colors in memory, use those instead.
Visual Components (HTML mode)
Every slide MUST have a visual component. Text-only slides are NOT allowed. Choose from:
| Component | Use For | Structure |
|---|
| Card Grid | Features, benefits, categories | 2-4 cards with icon/emoji, title, one-line description |
| Comparison Panel | Old vs new, A vs B | Two columns with a "vs" divider |
| Stat Callout | Key numbers, growth, costs | One huge number (72-96px) in accent color with label |
| Step Flow | Processes, tutorials | Horizontal or vertical numbered steps with arrows |
| Quote Block | Testimonials, key statements | Large quotation marks, italic text, attribution |
| Icon + Label List | Feature lists, agendas | Vertical list with emoji/icons on left, labels on right |
| Code Block | Code examples, configs | Monospace on dark card with syntax coloring |
| Timeline | Roadmaps, history | Horizontal line with dots and labels |
| Metric Dashboard | KPIs, performance data | 3-4 stat boxes in a row with label and value |
| Comparison Grid | Multi-item comparison | Rows and columns with checkmarks or values |
HTML Content Rules
- One idea per slide — two points = two slides
- Max 30 words per slide — slides are visual aids, not documents
- Every slide has a visual component — no exceptions
- No bullet point dumps — use Icon + Label List component instead
- Whitespace is essential — crowded slides lose the audience
HTML File Output
Save as presentation-[topic]-[date].html alongside the markdown file (if both formats selected).
The file must be completely self-contained — opening in any browser displays the full interactive deck.
Proactivity — Next Steps
After completion, suggest 1-2:
- "Want me to create speaker notes with timing for each slide?"
- "Should I generate a one-page handout version of this deck?"
- "Want me to save this and set a reminder to update it before [event date]?"
- "Need a budget to accompany this proposal?"
Memory
Memory is user-triggered only. Offer to remember:
- Preferred presentation style and slide count
- Recurring presentation templates
- Brand colors or design preferences mentioned
Output Format
Follow template.md for slide format. See examples/pitch-deck.md and examples/status-update.md for complete examples.
For HTML slide decks, generate self-contained HTML following the HTML Slide Deck Mode section above.
Hebrew RTL Note
When creating Hebrew presentations:
- Bullet points use right-to-left alignment
- Numbers and English terms remain LTR within RTL context
- Slide titles in Hebrew
Error Handling
- Vague topic: "Can you give me a bit more context? For example, what's the one thing you want the audience to take away?"
- Too many slides requested: "For [topic], I'd recommend [N] slides to keep it focused. We can always add more later."
Activity Logging
After completing the workflow, append an entry to ~/Tandem/stats.json:
{
"type": "document",
"action": "created",
"count": 1,
"timeSavedMinutes": 30,
"description": "Created presentation: Investor Pitch Deck (12 slides)",
"timestamp": "<current ISO 8601>",
"file": {
"name": "product-launch-deck.md",
"path": "~/Tandem/documents/product-launch-deck.md"
}
}
Include a file object with the name and full path of the created presentation/deck.
If ~/Tandem/stats.json does not exist, create it as [<entry>]. If it exists, read it, parse the JSON array, append the new entry, and write it back.
Dashboard Sync
After appending to stats.json, follow the /sync workflow from tandem-skills/core/sync/SKILL.md to rebuild ~/Tandem/dashboard.html with updated statistics. This keeps the dashboard current after every skill run. If /sync fails (e.g., dashboard.html does not exist yet), continue — the main skill workflow must complete successfully regardless of sync outcome.