PPTX Generation Skill
Domain: Presentation Generation
Purpose: Programmatic PowerPoint creation via PptxGenJS
Expertise: Data-driven slides, Markdown conversion, Alex brand templates
Capabilities
| Capability |
Description |
| Markdown → PPTX |
Convert .md files to branded presentations |
| Data-Driven Slides |
Generate charts/tables from JSON data |
| Template System |
Alex brand Slide Masters (title, content, section, chart) |
| Multi-Format Export |
File output or base64 for web delivery |
Activation Triggers
- "create presentation", "generate slides", "make pptx"
- "convert markdown to powerpoint", "md to pptx"
- "data visualization slides", "chart presentation"
- "alex branded deck", "presentation template"
Slide Types
| Type |
Use Case |
Data Shape |
title |
Opening slide with main title + subtitle |
{ title, subtitle?, notes? } |
content |
Bullet list slide |
{ title, bullets[], notes? } |
section |
Section divider |
{ title, subtitle? } |
chart |
Data visualization |
{ chartType, series[], title? } |
table |
Tabular data |
{ headers[], rows[][] } |
image |
Image slide |
{ path|base64, caption? } |
twoColumn |
Side-by-side content |
{ left: {title, bullets}, right: {title, bullets} } |
Chart Types
bar — Category comparison
line — Trend over time
pie — Part-of-whole (use ≤6 segments)
doughnut — Pie variant with center hole
area — Volume over time
scatter — Correlation analysis
Alex Brand Colors
| Name |
Fill |
Text |
Border |
| Blue |
ddf4ff |
0550ae |
80ccff |
| Green |
d3f5db |
1a7f37 |
6fdd8b |
| Purple |
d8b9ff |
6639ba |
bf8aff |
| Gold |
fff8c5 |
9a6700 |
d4a72c |
| Gray |
eaeef2 |
24292f |
afb8c1 |
Example: Markdown Input
# Quarterly Review
## Executive Summary
---
# Q4 2024 Results
## Performance Overview
- Revenue up 23% YoY
- Customer acquisition: 1,200 new accounts
- NPS improved from 45 to 62
> Speaker notes: Highlight the NPS improvement as key win
---
## Next Quarter [section]
Focus areas for Q1 2025
---
# Strategic Priorities
- Expand enterprise segment
- Launch self-serve tier
- Hire 15 engineers
Example: Programmatic API
import { generateAndSavePresentation, SlideContent } from './pptxGenerator';
const slides: SlideContent[] = [
{ type: 'title', title: 'Q4 Review', subtitle: 'Performance & Strategy' },
{ type: 'content', title: 'Highlights', bullets: ['Revenue +23%', 'NPS 62'] },
{ type: 'chart', title: 'Revenue Trend', data: {
chartType: 'line',
series: [{ name: 'Revenue', labels: ['Q1','Q2','Q3','Q4'], values: [100,120,115,146] }]
}}
];
await generateAndSavePresentation(slides, { title: 'Q4 Review' }, 'review.pptx');
CLI Usage
# From markdown (planned)
# node .github/muscles/pptxgen-cli.cjs --input slides.md --output deck.pptx
# Quick content (planned)
# node .github/muscles/pptxgen-cli.cjs --content "Welcome to Alex|Point 1|Point 2" --output quick.pptx
Integration Points
| Integration |
Description |
| Chat command |
/pptx <topic> to generate slides from topic |
| Memory export |
Convert episodic memories to slides |
| Skill output |
Any skill can request PPTX output |
| Data connectors |
Azure SQL / Power BI → charts |
Constraints
- Offline-only (no cloud dependencies)
- 16:9 default layout (4:3, 16:10 available)
- Max recommended: 50 slides per deck
- Images: local path, URL, or base64
1---2name: pptx-generation-23description: Programmatic PowerPoint creation via PptxGenJS with data-driven slides and Markdown conversion4---56# PPTX Generation Skill78**Domain**: Presentation Generation 9**Purpose**: Programmatic PowerPoint creation via PptxGenJS 10**Expertise**: Data-driven slides, Markdown conversion, Alex brand templates 1112---1314## Capabilities1516| Capability | Description |17|------------|-------------|18| **Markdown → PPTX** | Convert `.md` files to branded presentations |19| **Data-Driven Slides** | Generate charts/tables from JSON data |20| **Template System** | Alex brand Slide Masters (title, content, section, chart) |21| **Multi-Format Export** | File output or base64 for web delivery |2223---2425## Activation Triggers2627- "create presentation", "generate slides", "make pptx"28- "convert markdown to powerpoint", "md to pptx"29- "data visualization slides", "chart presentation"30- "alex branded deck", "presentation template"3132---3334## Slide Types3536| Type | Use Case | Data Shape |37|------|----------|-----------|38| `title` | Opening slide with main title + subtitle | `{ title, subtitle?, notes? }` |39| `content` | Bullet list slide | `{ title, bullets[], notes? }` |40| `section` | Section divider | `{ title, subtitle? }` |41| `chart` | Data visualization | `{ chartType, series[], title? }` |42| `table` | Tabular data | `{ headers[], rows[][] }` |43| `image` | Image slide | `{ path\|base64, caption? }` |44| `twoColumn` | Side-by-side content | `{ left: {title, bullets}, right: {title, bullets} }` |4546---4748## Chart Types4950- `bar` — Category comparison51- `line` — Trend over time52- `pie` — Part-of-whole (use ≤6 segments)53- `doughnut` — Pie variant with center hole54- `area` — Volume over time55- `scatter` — Correlation analysis5657---5859## Alex Brand Colors6061| Name | Fill | Text | Border |62|------|------|------|--------|63| Blue | `ddf4ff` | `0550ae` | `80ccff` |64| Green | `d3f5db` | `1a7f37` | `6fdd8b` |65| Purple | `d8b9ff` | `6639ba` | `bf8aff` |66| Gold | `fff8c5` | `9a6700` | `d4a72c` |67| Gray | `eaeef2` | `24292f` | `afb8c1` |6869---7071## Example: Markdown Input7273```markdown74# Quarterly Review7576## Executive Summary7778---7980# Q4 2024 Results8182## Performance Overview8384- Revenue up 23% YoY85- Customer acquisition: 1,200 new accounts86- NPS improved from 45 to 628788> Speaker notes: Highlight the NPS improvement as key win8990---9192## Next Quarter [section]9394Focus areas for Q1 20259596---9798# Strategic Priorities99100- Expand enterprise segment101- Launch self-serve tier102- Hire 15 engineers103```104105---106107## Example: Programmatic API108109```typescript110import { generateAndSavePresentation, SlideContent } from './pptxGenerator';111112const slides: SlideContent[] = [113 { type: 'title', title: 'Q4 Review', subtitle: 'Performance & Strategy' },114 { type: 'content', title: 'Highlights', bullets: ['Revenue +23%', 'NPS 62'] },115 { type: 'chart', title: 'Revenue Trend', data: {116 chartType: 'line',117 series: [{ name: 'Revenue', labels: ['Q1','Q2','Q3','Q4'], values: [100,120,115,146] }]118 }}119];120121await generateAndSavePresentation(slides, { title: 'Q4 Review' }, 'review.pptx');122```123124---125126## CLI Usage127128```bash129# From markdown (planned)130# node .github/muscles/pptxgen-cli.cjs --input slides.md --output deck.pptx131132# Quick content (planned)133# node .github/muscles/pptxgen-cli.cjs --content "Welcome to Alex|Point 1|Point 2" --output quick.pptx134```135136---137138## Integration Points139140| Integration | Description |141|-------------|-------------|142| **Chat command** | `/pptx <topic>` to generate slides from topic |143| **Memory export** | Convert episodic memories to slides |144| **Skill output** | Any skill can request PPTX output |145| **Data connectors** | Azure SQL / Power BI → charts |146147---148149## Constraints150151- Offline-only (no cloud dependencies)152- 16:9 default layout (4:3, 16:10 available)153- Max recommended: 50 slides per deck154- Images: local path, URL, or base64