<< All versions
Skill v1.0.1
currentAutomated scan100/100vasilyu1983/ai-agents-public/document-pptx
9 files
──Details
PublishedMay 22, 2026 at 08:44 AM
Content Hashsha256:a572fcd6fb362f1d...
Git SHA42094aca420c
Bump Typepatch
──Files
Files (1 file, 9.7 KB)
SKILL.md9.7 KBactive
SKILL.md · 316 lines · 9.7 KB
version: "1.0.1" name: document-pptx description: "Create/edit .pptx presentations with charts, templates, and speaker notes. Use when asked for pitch decks, QBR decks, or slide automation." allowed-tools: Bash, Read, Write, Glob, Grep
Document PPTX Skill - Quick Reference
This skill enables creation and editing of PowerPoint presentations programmatically. Claude should apply these patterns when users need to generate pitch decks, reports, training materials, or automate presentation workflows.
Modern Best Practices (Jan 2026):
- One slide = one takeaway; design the deck around a decision or audience goal.
- Cite numbers (definition + timeframe + source) and keep a single source of truth for charts.
- Accessibility: slide titles, reading order, contrast, and meaningful alt text; follow your org's standard (often WCAG 2.2 AA / EN 301 549).
- Version decks and enforce review loops (avoid "final_final_v7.pptx").
Quick Reference
| Task | Tool/Library | Language | When to Use | |
|---|---|---|---|---|
| Create PPTX | python-pptx | Python | Presentations, slide decks | |
| Create PPTX | PptxGenJS | Node.js | Server-side generation | |
| Template-driven | PPTX-Automizer | Node.js | Corporate branding, template injection | |
| Templates | python-pptx | Python | Master slides, themes | |
| Charts | python-pptx | Python | Data visualizations | |
| Extract content | python-pptx | Python | Parse existing decks |
Selection guide
- Prefer PPTX-Automizer when you have a branded .pptx template and need to "inject data into slides".
- Prefer python-pptx in Python-heavy pipelines (reporting, notebooks, ETL).
- Prefer PptxGenJS in Node.js pipelines (server-side generation, web apps).
Core Operations
Create Presentation (Python)
python
from pptx import Presentationprs = Presentation()# Title slidetitle_layout = prs.slide_layouts[0] # Title Slide layoutslide = prs.slides.add_slide(title_layout)title = slide.shapes.titlesubtitle = slide.placeholders[1]title.text = "Q4 2025 Business Review"subtitle.text = "Presented by Product Team"# Content slide with bulletsbullet_layout = prs.slide_layouts[1] # Title and Contentslide = prs.slides.add_slide(bullet_layout)slide.shapes.title.text = "Key Highlights"body = slide.placeholders[1]tf = body.text_frametf.text = "Revenue grew 25% YoY"p = tf.add_paragraph()p.text = "Customer base expanded to 10,000+"p.level = 0p = tf.add_paragraph()p.text = "New enterprise tier launched"p.level = 1 # Indented bullet# Add speaker notesnotes_slide = slide.notes_slidenotes_slide.notes_text_frame.text = "Emphasize the enterprise growth story here."prs.save('presentation.pptx')
Create Presentation (Node.js)
typescript
import pptxgen from 'pptxgenjs';async function main() {const pptx = new pptxgen();pptx.author = 'Product Team';pptx.title = 'Q4 Business Review';// Title slidelet slide = pptx.addSlide();slide.addText('Q4 2025 Business Review', {x: 1, y: 2, w: '80%',fontSize: 36, bold: true, color: '363636',align: 'center',});slide.addText('Presented by Product Team', {x: 1, y: 3.5, w: '80%',fontSize: 18, color: '666666',align: 'center',});// Content slide with bulletsslide = pptx.addSlide();slide.addText('Key Highlights', {x: 0.5, y: 0.5, w: '90%',fontSize: 28, bold: true,});slide.addText([{ text: 'Revenue grew 25% YoY', options: { bullet: true } },{ text: 'Customer base expanded to 10,000+', options: { bullet: true } },{ text: 'New enterprise tier launched', options: { bullet: true, indentLevel: 1 } },], { x: 0.5, y: 1.5, w: '90%', fontSize: 18 });// Add chartslide = pptx.addSlide();slide.addChart(pptx.ChartType.bar, [{ name: 'Sales', labels: ['Q1', 'Q2', 'Q3', 'Q4'], values: [100, 150, 180, 225] },], { x: 1, y: 1.5, w: 8, h: 4 });await pptx.writeFile({ fileName: 'presentation.pptx' });}main();
Add Charts (Python)
python
from pptx import Presentationfrom pptx.util import Inchesfrom pptx.chart.data import CategoryChartDatafrom pptx.enum.chart import XL_CHART_TYPEprs = Presentation()slide = prs.slides.add_slide(prs.slide_layouts[6]) # Blank# Chart datachart_data = CategoryChartData()chart_data.categories = ['Q1', 'Q2', 'Q3', 'Q4']chart_data.add_series('Revenue', (100, 150, 180, 225))chart_data.add_series('Expenses', (80, 90, 100, 110))# Add chartx, y, cx, cy = Inches(1), Inches(1.5), Inches(8), Inches(5)chart = slide.shapes.add_chart(XL_CHART_TYPE.COLUMN_CLUSTERED,x, y, cx, cy,chart_data).chartchart.has_legend = Truechart.legend.include_in_layout = Falseprs.save('charts.pptx')
Add Images and Tables
python
from pptx import Presentationfrom pptx.util import Inchesprs = Presentation()slide = prs.slides.add_slide(prs.slide_layouts[6]) # Blank# Add imageslide.shapes.add_picture('logo.png', Inches(0.5), Inches(0.5), width=Inches(2))# Add tablerows, cols = 4, 3table = slide.shapes.add_table(rows, cols, Inches(1), Inches(2), Inches(8), Inches(3)).table# Set column headerstable.cell(0, 0).text = 'Product'table.cell(0, 1).text = 'Sales'table.cell(0, 2).text = 'Growth'# Fill datadata = [('Widget A', '$1.2M', '+25%'),('Widget B', '$800K', '+15%'),('Widget C', '$500K', '+40%'),]for row_idx, (product, sales, growth) in enumerate(data, 1):table.cell(row_idx, 0).text = producttable.cell(row_idx, 1).text = salestable.cell(row_idx, 2).text = growthprs.save('images_and_tables.pptx')
Extract Content
python
from pptx import Presentationprs = Presentation('existing.pptx')for slide_num, slide in enumerate(prs.slides, 1):print(f"\n--- Slide {slide_num} ---")for shape in slide.shapes:if shape.has_text_frame:for paragraph in shape.text_frame.paragraphs:print(paragraph.text)if shape.has_table:table = shape.tablefor row in table.rows:row_text = [cell.text for cell in row.cells]print(row_text)
Slide Layout Reference
| Layout Index | Name | Use Case | |
|---|---|---|---|
| 0 | Title Slide | Opening, section dividers | |
| 1 | Title and Content | Standard bullet slides | |
| 2 | Section Header | Section transitions | |
| 3 | Two Content | Side-by-side comparison | |
| 4 | Comparison | Pros/cons, before/after | |
| 5 | Title Only | Custom content placement | |
| 6 | Blank | Full creative control | |
| 7 | Content with Caption | Image + description |
Presentation Structure Patterns
Pitch Deck (10 slides)
text
PITCH DECK STRUCTURE1. Title (company, tagline)2. Problem (pain point)3. Solution (your product)4. Market Size (TAM/SAM/SOM)5. Business Model (how you make money)6. Traction (metrics, growth)7. Team (founders, advisors)8. Competition (landscape)9. Financials (projections)10. Ask (funding, next steps)
Quarterly Review (8 slides)
text
QUARTERLY REVIEW STRUCTURE1. Title + Agenda2. Executive Summary (KPIs dashboard)3. Revenue & Growth4. Product Updates5. Customer Highlights6. Challenges & Learnings7. Next Quarter Goals8. Q&A
Do / Avoid (Dec 2025)
Do
- Use a slide narrative plan (title + 1-sentence takeaway + supporting visual).
- Put the executive summary up front for decision decks.
- Keep speaker notes aligned with slide takeaways.
Avoid
- Dense slides with multiple messages.
- Uncited numbers or charts without definitions.
- Pixelated screenshots and unreadable tables.
What Good Looks Like
- Narrative: each slide has a 1-sentence takeaway and supports a single decision or insight.
- Structure: opening executive summary + clear arc (problem -> insight -> recommendation -> next steps).
- Data hygiene: charts show units, timeframes, sources, and consistent axes.
- Design: consistent typography, spacing, and contrast; no "wall of text" slides.
- Accessibility: reading order set and meaningful alt text where needed.
Optional: AI / Automation
Use only when explicitly requested and policy-compliant.
- Draft slide headlines and speaker notes; humans verify accuracy and tone.
- Generate chart code from data; humans verify labels, units, and sources.
Navigation
Resources
- references/pptx-layouts.md - Master slides, themes, templates
- references/pptx-charts.md - Chart types, data visualization
- references/pptx-animations-transitions.md - Slide transitions, build animations, timing
- references/pptx-speaker-notes-delivery.md - Speaker notes, presenter mode, delivery prep
- references/pptx-template-branding.md - Corporate templates, multi-brand support
- data/sources.json - Library documentation links
Templates
- assets/pitch-deck.md - Startup pitch structure
- assets/quarterly-review.md - Business review template
- assets/slide-narrative-template.md - 1-sentence takeaway per slide
Related Skills
- ../document-pdf/SKILL.md - Export presentations to PDF
- ../document-xlsx/SKILL.md - Data source for charts
- ../product-management/SKILL.md - Product strategy decks
Fact-Checking
- Use web search/web fetch to verify current external facts, versions, pricing, deadlines, regulations, or platform behavior before final answers.
- Prefer primary sources; report source links and dates for volatile information.
- If web access is unavailable, state the limitation and mark guidance as unverified.