git clone https://github.com/ai-analyst-lab/ai-analyst
T=$(mktemp -d) && git clone --depth=1 https://github.com/ai-analyst-lab/ai-analyst "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/presentation-themes" ~/.claude/skills/ai-analyst-lab-ai-analyst-presentation-themes && rm -rf "$T"
.claude/skills/presentation-themes/skill.mdSkill: Presentation Themes
Purpose
Generate slide decks that look professional, tell a coherent analytical story, and follow consistent theme standards matching the visualization patterns.
When to Use
Apply this skill whenever creating a presentation, slide deck, or structured output intended for stakeholders. Always apply the active theme. Default theme:
corporate.
Instructions
Slide Structure Templates
Every presentation follows this arc:
Title → Executive Summary → Context → Insight Slides → Synthesis → Recommendations → Appendix
Slide Types
1. Title Slide
# [Takeaway headline — not "Q3 Analysis"] ## [Subtitle: scope, date range, audience] ### [Author / Team] | [Date]
2. Executive Summary Slide
# [Key takeaway in one sentence] - **Finding 1:** [One sentence with key number] - **Finding 2:** [One sentence with key number] - **Finding 3:** [One sentence with key number] **Recommendation:** [One clear action]
3. Context / Setup Slide
# [Why we looked at this] - **Question:** [The business question that triggered this analysis] - **Data:** [What data we used, time range, scope] - **Method:** [How we analyzed it — one sentence]
4. Insight Slide (one per finding)
# [Finding as a headline — "Mobile conversion dropped 18% in Q3"] [ONE chart that proves this finding] - [Supporting detail 1] - [Supporting detail 2] **So what:** [Why this matters for the business]
5. Synthesis Slide
# [So what? — The combined story] [How the findings connect to each other and what they mean together] - **Pattern:** [What the findings reveal as a whole] - **Root cause:** [If identified] - **Magnitude:** [How big is this? Revenue impact, user impact]
6. Recommendation Slide
# [Action to take — imperative verb] | Action | Owner | Timeline | Expected Impact | |--------|-------|----------|-----------------| | [Action 1] | [Team] | [When] | [Quantified if possible] | | [Action 2] | [Team] | [When] | [Quantified if possible] | **Next step:** [The one thing to do Monday morning]
7. Appendix Slide
# Appendix: [Topic] [Supporting data, methodology details, caveats, additional charts] [This is where you put things that support the story but would slow down the main narrative]
Narrative Arc
Every deck follows: Situation → Analysis → Finding → Implication → Recommendation
| Arc Element | Slide Types | Purpose |
|---|---|---|
| Situation | Context slide | Why are we here? What question are we answering? |
| Analysis | (Implied — the work happened) | Don't show methodology unless asked |
| Finding | Insight slides (1 per finding) | What did we discover? One chart, one headline per finding. |
| Implication | Synthesis slide | So what? Why does this matter? |
| Recommendation | Recommendation slide | Now what? What should we do? |
Content Density Rules
- Maximum 3 bullet points per slide — if you need more, split into two slides
- One chart per slide — never stack charts; each deserves its own headline
- Headlines are takeaways, not labels — "Mobile conversion dropped 18%" not "Conversion by Device"
- No full sentences in bullets — fragments with key numbers
- Slide count guidance: 5-8 slides for a 10-minute readout, 10-15 for a 30-minute presentation
- The "headline test": read only the headlines in sequence — they should tell the complete story
Theme Specifications
Theme: corporate
corporate- Title font: Arial Bold, 28pt, #1B2A4A
- Body font: Arial, 16pt, #333333
- Accent color: #0066CC
- Background: white
- Chart style:
from Visualization Patterns skillcorporate - Header bar: thin #0066CC line below headline
Theme: minimal
minimal- Title font: Helvetica Bold, 24pt, #333333
- Body font: Helvetica, 14pt, #555555
- Accent color: #2563EB
- Background: white
- Chart style:
from Visualization Patterns skillminimal - No decorative elements
Theme: nyt
nyt- Title font: Georgia Bold, 26pt, #000000
- Body font: Arial, 14pt, #333333
- Accent color: #D03A2B
- Background: white
- Chart style:
from Visualization Patterns skillnyt - Source attribution at bottom of each chart slide
Theme: economist
economist- Title font: Helvetica Bold, 24pt, #1F2E3C
- Body font: Helvetica, 14pt, #333333
- Accent color: #E3120B
- Background: #D7E4E8
- Chart style:
from Visualization Patterns skilleconomist - Red bar at top of each slide
Theme: analytics
analytics- Title font: Inter/system sans-serif Bold, 36pt, #1F2937
- Body font: Inter/system sans-serif, 16pt, #4B5563
- Accent color: #D97706 (amber)
- Background: #F7F6F2 (warm off-white)
- Surface: #FFFFFF (white cards — charts integrate naturally)
- Chart style: charts on white backgrounds with clean borders
- Brand signature: 3px amber left border on every slide
- Positive metrics: #059669 (emerald), Negative metrics: #DC2626 (red)
- Marp CSS theme:
themes/analytics-light.css - Best for: Analytics presentations with charts, data tables, and KPI metrics. Designed for screen share and print.
Analytics theme components:
— Single big number with label and context.metric-callout
>.kpi-row
— Multiple metrics side by side (value, label, delta).kpi-card
— Insight card with headline, detail, and impact callout.finding
— White card with border for chart images.chart-container
— Recommendation with number, action, rationale, confidence badge.rec-row
— Amber callout box for key takeaways.callout
— Amber highlight box for "so what" on insight slides.so-what
— Inline change indicator (.delta
green,.up
red,.down
gray).flat
— Tags (.badge
,.positive
,.negative
,.accent
).neutral
— Attribution line at bottom of slide.data-source
Analytics layout variants:
| Variant | Class Directive | Purpose |
|---|---|---|
| Insight (full-width) | | Full-width chart under headline — default for first insight slide |
| Chart-left (60/40) | | Chart on left, text/callout on right — good for chart + so-what pairs |
| Chart-right (40/60) | | Text/callout on left, chart on right — alternates with chart-left |
| Impact | | Centered statement slide — breathing/pacing between insight runs |
Theme: analytics-dark
analytics-dark- Background: #1A1A17 (warm dark)
- Surface: #222220
- Elevated: #2A2A27
- Text: #F5F5F0 (off-white)
- Text secondary: #A8A090 (muted amber)
- Text muted: #8A8580
- Accent: #D97706 (amber-orange)
- Accent light: #F0A060
- Brand signature: 3px amber left border on every slide
- Positive: #22C55E, Negative: #EF4444
- Marp CSS theme:
themes/analytics-dark.css - Best for: Workshop presentations, talks, screen-share heavy contexts, dark environments
Analytics-dark slide variants:
| Variant | Class Directive | Purpose |
|---|---|---|
| Default dark | (no class needed) | Standard content slides — warm dark bg, amber accents |
| Dark title | | Opening/hero slides — larger type, centered layout |
| Dark impact | | Breathing/statement slides — centered, big numbers or single takeaway |
| Two-column | | Side-by-side layout (inherits dark styling automatically) |
| Diagram | | Extra padding for visual components |
| Insight | | Compact padding for chart + so-what callout |
| Chart-left | | 60/40 split — chart on left, text/callout on right |
| Chart-right | | 40/60 split — text/callout on left, chart on right |
All components (
.kpi-card, .finding, .rec-row, .box-card, .before-after, etc.) render correctly on every slide variant without additional class overrides — the CSS handles dark styling at the theme level.
CSS scoping warning: When extending
analytics-dark.css with new component styles, ensure overrides cover all three dark-specific variants if they have unique backgrounds:
section.dark-title .component, section.dark-impact .component { ... }
This prevents light-mode colors from leaking through on title and impact slides (which have distinct background gradients). The base
section selector covers standard dark slides.
Automatic Theme Selection
When no
{{THEME}} is explicitly passed, Deck Creator auto-selects the theme based on context:
| Condition | Default Theme | Rationale |
|---|---|---|
explicitly provided | Use as-is | Explicit override always wins |
is "workshop" or "talk" | | Dark themes project better in live settings |
is "marp" (no context) | (light) | Analyst deliverables default to light for readability |
| Otherwise | | Gamma output default |
Pass
{{THEME}} to override auto-selection for any context.
Font Size Minimums for Presentations
These minimums ensure readability during screen-share and projection:
| Element | Minimum Size | Recommended |
|---|---|---|
| h1 (title slides) | 48px | 52px |
| h1 (content slides) | 44px | 44px |
| h2 | 36px | 36px |
| h3 | 28px | 28px |
| Body / paragraphs | 24px | 24px |
| List items | 22px | 22px |
| Minimum readable | 16px | — |
| Footer / page numbers | 12-14px | 14px |
Nothing except footers and page numbers should be below 16px. If text must be smaller, it belongs in the appendix or speaker notes.
QR Code Integration Pattern
When embedding QR codes on dark slides, wrap in a white container to ensure scannability:
<div style="background:#fff; border-radius:10px; padding:6px; display:inline-block;"> <img src="qr-code.png" style="width:140px; height:140px; display:block;"> </div> <div style="font-size:14px; color:#8A8580; margin-top:6px;">Scan for [description]</div>
Sizing: 120-160px for supporting QR codes, 180-220px for primary CTA QR codes.
Workshop Closing Sequence Template
Optional slide sequence for workshop/talk decks. Add after the recommendation or appendix slides:
- Course overview slide — Brief description of full course offering with QR code link
- Free resource slide — Email course, community, newsletter with QR code
- Free workshops slide — Upcoming dates and topics
- CTA / discount slide — Discount code, enrollment link, contact info
This sequence follows an escalating commitment pattern: free resources first (low barrier), then paid offering (higher commitment). Never lead with the paid CTA.
Speaker Notes Engagement Tactics
Enhance speaker notes beyond standard talking points with these engagement markers:
- Audience polls:
[POLL] "Drop in chat: 1, 2, or 3 — which scenario is closest to your team?" - Show of hands:
[HANDS] "Raise your hand if you've ever waited 2+ weeks for an analysis" - Reflective pause:
[PAUSE — let this sink in] - Story sharing:
[ASK] "Has anyone seen something like this at their company?" - Transition cues:
or[ADVANCE][NEXT SLIDE] - Chat engagement:
[CHAT] "Type your biggest analytics pain point in the chat"
Place engagement markers at natural breaks — after revealing a key number, before transitioning to recommendations, or when introducing a framework.
Export Formats
Marp PDF (recommended for
theme):analytics
Marp converts markdown directly to PDF via Chromium. Use when you need a self-contained PDF deck.
--- marp: true theme: analytics size: 16:9 paginate: true html: true footer: "[Organization] | [Author] | [Date]" --- ## Slide Headline Content here <!-- Speaker Notes: "Notes go in HTML comments." --> --- ## Next Slide Headline Content here
Generate PDF with:
# Light theme (analytics) npx @marp-team/marp-cli --no-stdin --pdf --html --allow-local-files \ --theme themes/analytics-light.css \ outputs/deck_name.marp.md \ -o outputs/deck_name.pdf # Dark theme (analytics-dark) npx @marp-team/marp-cli --no-stdin --pdf --html --allow-local-files \ --theme themes/analytics-dark.css \ outputs/deck_name.marp.md \ -o outputs/deck_name.pdf
Gamma-compatible Markdown:
--- theme: [theme_name] --- # Slide Title Content here --- # Next Slide Title Content here
Structured JSON (for programmatic use):
{ "title": "Deck Title", "theme": "corporate", "slides": [ { "type": "title", "headline": "...", "subtitle": "...", "speaker_notes": "..." } ] }
Speaker Notes Format: Every slide includes speaker notes with:
- Opening line (what to say when this slide appears)
- 2-3 talking points
- Transition to next slide
- Anticipated questions
Examples
Example 1: Correct insight slide
# Mobile conversion dropped 18% in Q3, erasing gains from the app redesign [Bar chart: Conversion rate by device, Q2 vs Q3, mobile highlighted in red] - Desktop conversion stable at 4.2% (±0.1%) - Mobile fell from 3.8% to 3.1% between July and September - Drop correlates with iOS 18 update rollout (Aug 12) **So what:** The app redesign ROI is negative until we fix the iOS 18 compatibility issue. ~$340K/month in lost mobile conversions.
Example 2: Correct executive summary
# Q3 conversion dropped 12% — mobile is the culprit, and it's fixable - **Mobile conversion fell 18%** after the iOS 18 update broke checkout flow on iPhones - **Desktop held steady** at 4.2%, confirming the issue is mobile-specific - **Fix is scoped** — engineering estimates 2 weeks to patch, recovering ~$340K/month **Recommendation:** Prioritize the iOS 18 checkout fix over the planned Q4 feature work.
Anti-Patterns
- Never put more than one chart on a slide — each finding deserves its own space
- Never use label headlines ("Revenue by Quarter") — use takeaway headlines ("Revenue grew 23%")
- Never exceed 3 bullet points — if you need more, you need another slide
- Never show methodology in the main deck — put it in the appendix
- Never skip the "so what" — every insight slide must answer "why does this matter?"
- Never create a deck without a recommendation slide — analysis without action is wasted
- Never use full sentences as bullets — use fragments with key numbers
- Never present findings in the order you discovered them — present in the order that tells the best story