From pm-skills
Generates professional .pptx and .pdf presentations from JSON deck specs using 18 slide types with themes for stakeholder updates, product reviews, and team presentations.
npx claudepluginhub product-on-purpose/pm-skillsThis skill uses the workspace's default tool permissions.
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
Generates PPTX (python-pptx), Markdown (Marp/Slidev), or HTML (Reveal.js) presentation slides from structured JSON input. Supports title, content, image, two-column, quote, stats types.
Generates professional slide deck images from Markdown content with styles like blueprint or sketch-notes, audience targeting, and PPTX/PDF export scripts.
Generates self-contained HTML slide decks from briefs, notes, or topics. Supports 13 layouts, 8 style presets, inline editing, and PDF export.
Share bugs, ideas, or general feedback.
Generate professional presentations (.pptx and .pdf) from a JSON deck specification. Zero design decisions at generation time . Claude selects slide types and fills content slots; all visual properties are pre-decided by the theme.
Two-phase architecture:
node scripts/generate-deck.js deck-spec.json to produce .pptx. Optionally run node scripts/export-pdf.mjs deck-spec.json for PDF. Deterministic rendering, zero token cost.Both outputs come from the same JSON spec, so .pptx and .pdf always match.
| # | Type Key | Purpose | Default Variant |
|---|---|---|---|
| 1 | title_dark | Opening slide (bold) | dark only |
| 2 | title_light | Opening slide (internal/lighter) | light only |
| 3 | section | Section divider | dark |
| 4 | content | Paragraph explanation | light |
| 5 | bullets | 3-6 key points | light |
| 6 | two_col | Side-by-side comparison | light |
| 7 | stat | Single key metric | light |
| 8 | dual_stat | Two metrics compared | dark |
| 9 | quote | Testimonial or pull quote | dark |
| 10 | three_card | Three parallel concepts | dark |
| 11 | four_grid | Four concepts in 2x2 grid | dark |
| 12 | timeline | Dates or milestones (max 6) | light |
| 13 | process_flow | Sequential workflow (max 5) | light |
| 14 | agenda | Meeting agenda (max 7) | light |
| 15 | highlight | Key finding or executive summary | light |
| 16 | table | Tabular data | light |
| 17 | icon_rows | Feature list with markers (max 4) | light |
| 18 | closing | End slide | dark only |
Full slot definitions and character limits: references/slide-types.md
| Content Pattern | Use |
|---|---|
| Opening the deck (bold) | title_dark |
| Opening the deck (internal) | title_light |
| Transitioning between topics | section |
| Paragraph explanation | content |
| List of 3-6 points | bullets |
| Side-by-side comparison | two_col |
| Single key metric | stat |
| Two metrics compared | dual_stat |
| Testimonial or pull quote | quote |
| Three parallel concepts | three_card |
| Four concepts in a grid | four_grid |
| Dates or milestones | timeline |
| Sequential workflow | process_flow |
| Meeting agenda | agenda |
| Key finding or summary | highlight |
| Tabular data | table |
| Feature list with markers | icon_rows |
| Ending the deck | closing |
Full decision logic with variant strategy: references/decision-logic.md
{
"title": "Q3 Product Update",
"author": "Product Team",
"footerText": "Internal . Q3 Review",
"slides": [
{ "type": "title_dark", "title": "Q3 Product Update", "subtitle": "October 2026" },
{ "type": "stat", "stat": "94%", "label": "Customer satisfaction score", "accentColor": "secondary" },
{ "type": "bullets", "title": "What Shipped", "bullets": ["Feature A", "Feature B", "Feature C"] },
{ "type": "closing" }
]
}
Colors accept theme token names ("accent", "secondary", "tertiary", "warm") or 6-character hex strings ("2563EB").
Full schema and workflow: references/TEMPLATE.md and references/platform-rules.md
references/slide-types.mdnode scripts/generate-deck.js deck-spec.jsonnode scripts/export-pdf.mjs deck-spec.json output.pdfreferences/slide-types.md# prefix)| File | Purpose |
|---|---|
references/TEMPLATE.md | JSON deck specification template with field documentation |
references/EXAMPLE.md | Worked example: Q3 Product Update deck (9 slides) |
references/slide-types.md | All 18 slide types: content slots, character limits, variants |
references/decision-logic.md | Content pattern → slide type mapping, variant strategy, deck sizing |
references/platform-rules.md | pptxgenjs requirements, Google Slides compatibility, output format |