.claude/skills/presentation-themes/SKILL.md
# Skill: 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 →
npx skillsauth add ai-analyst-lab/ai-analyst .claude/skills/presentation-themesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate slide decks that look professional, tell a coherent analytical story, and follow consistent theme standards matching the visualization patterns.
Apply this skill whenever creating a presentation, slide deck, or structured output intended for stakeholders. Always apply the active theme. Default theme: corporate.
Every presentation follows this arc:
Title → Executive Summary → Context → Insight Slides → Synthesis → Recommendations → Appendix
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]
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? |
corporatecorporate from Visualization Patterns skillminimalminimal from Visualization Patterns skillnytnyt from Visualization Patterns skilleconomisteconomist from Visualization Patterns skillanalyticsthemes/analytics-light.cssAnalytics theme components:
.metric-callout — Single big number with label and context.kpi-row > .kpi-card — Multiple metrics side by side (value, label, delta).finding — Insight card with headline, detail, and impact callout.chart-container — White card with border for chart images.rec-row — Recommendation with number, action, rationale, confidence badge.callout — Amber callout box for key takeaways.so-what — Amber highlight box for "so what" on insight slides.delta — Inline change indicator (.up green, .down red, .flat gray).badge — Tags (.positive, .negative, .accent, .neutral).data-source — Attribution line at bottom of slideAnalytics layout variants:
| Variant | Class Directive | Purpose |
|---------|----------------|---------|
| Insight (full-width) | <!-- _class: insight --> | Full-width chart under headline — default for first insight slide |
| Chart-left (60/40) | <!-- _class: chart-left --> | Chart on left, text/callout on right — good for chart + so-what pairs |
| Chart-right (40/60) | <!-- _class: chart-right --> | Text/callout on left, chart on right — alternates with chart-left |
| Impact | <!-- _class: impact --> | Centered statement slide — breathing/pacing between insight runs |
analytics-darkthemes/analytics-dark.cssAnalytics-dark slide variants:
| Variant | Class Directive | Purpose |
|---------|----------------|---------|
| Default dark | (no class needed) | Standard content slides — warm dark bg, amber accents |
| Dark title | <!-- _class: dark-title --> | Opening/hero slides — larger type, centered layout |
| Dark impact | <!-- _class: dark-impact --> | Breathing/statement slides — centered, big numbers or single takeaway |
| Two-column | <!-- _class: two-col --> | Side-by-side layout (inherits dark styling automatically) |
| Diagram | <!-- _class: diagram --> | Extra padding for visual components |
| Insight | <!-- _class: insight --> | Compact padding for chart + so-what callout |
| Chart-left | <!-- _class: chart-left --> | 60/40 split — chart on left, text/callout on right |
| Chart-right | <!-- _class: 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.
When no {{THEME}} is explicitly passed, Deck Creator auto-selects the theme based on context:
| Condition | Default Theme | Rationale |
|-----------|--------------|-----------|
| {{THEME}} explicitly provided | Use as-is | Explicit override always wins |
| {{CONTEXT}} is "workshop" or "talk" | analytics-dark | Dark themes project better in live settings |
| {{FORMAT}} is "marp" (no context) | analytics (light) | Analyst deliverables default to light for readability |
| Otherwise | corporate | Gamma output default |
Pass {{THEME}} to override auto-selection for any context.
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.
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.
Optional slide sequence for workshop/talk decks. Add after the recommendation or appendix slides:
This sequence follows an escalating commitment pattern: free resources first (low barrier), then paid offering (higher commitment). Never lead with the paid CTA.
Enhance speaker notes beyond standard talking points with these engagement markers:
[POLL] "Drop in chat: 1, 2, or 3 — which scenario is closest to your team?"[HANDS] "Raise your hand if you've ever waited 2+ weeks for an analysis"[PAUSE — let this sink in][ASK] "Has anyone seen something like this at their company?"[ADVANCE] or [NEXT SLIDE][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.
Marp PDF (recommended for analytics theme):
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:
# 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.
# 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.
testing
# Skill: {{BLANK_1_SKILL_NAME}} ## Purpose {{BLANK_2_WHEN_TO_FIRE}} ## When to Use Fires automatically when the user asks Claude to do something that matches the trigger condition above. ## Instructions 1. Detect the trigger condition 2. Execute your guardrail check 3. If the check matters, print a clear, visible warning with "{{BLANK_3_SIGNATURE_PHRASE}}" as the first line 4. Continue with the analysis, incorporating the warning into the output ## Anti-Patterns - Do not fire when the condit
development
# Skill: Visualization Patterns ## Purpose Ensure every chart Claude Code produces follows high-quality design standards with named themes, consistent styling, and clear data communication. ## When to Use Apply this skill whenever generating a chart, graph, or data visualization. Always apply the active theme unless the user specifies otherwise. Default theme: `minimal`. ## Instructions ### Pre-flight: Load Learnings Before executing, check `.knowledge/learnings/index.md` for relevant entrie
development
# Skill: Triangulation / Sanity Check ## Purpose Cross-reference analytical findings against multiple data sources, external benchmarks, and common sense to catch errors before they become bad decisions. ## When to Use Apply this skill after every analysis, before presenting findings to stakeholders, and whenever a result seems surprising. If a finding would change a decision, it MUST be triangulated first. ## Instructions ### Triangulation Framework Every finding gets checked through four
data-ai
# Skill: Tracking Gap Identification ## Purpose Assess whether the data needed for an analysis actually exists, identify what's missing, and produce prioritized instrumentation requests for engineering when gaps are found. ## When to Use Apply this skill after the Data Explorer agent inventories available data, when an analysis requires data that might not exist, or when initial query results suggest incomplete tracking. Run before committing to an analysis approach. ## Instructions ### Gap