hezaohezao/poirot/ppt-generation

Claude Code and agent skill by hezaohezao/poirot

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Generate PPTX presentations from slide plan + content.

Install

npx vskill@latest install hezaohezao/poirot/ppt-generation

SKILL.md

The same SKILL.md was published earlier as xilele777/poirot/ppt-generation.

PPT Generation

Overview

Generate professional PowerPoint presentations. Plan the structure with a consistent visual style, generate slide content, and compose into a PPTX file.

Poirot note: The original deer-flow skill uses AI image-generation per

slide. Poirot may not have image-generation available. This version generates text-based slides with python-pptx. Install: pip install python-pptx.

When to Use

  • User requests to generate, create, or make presentations (PPT/PPTX)
  • User wants slides for a topic with structured content
  • User needs a visual presentation from research findings

Presentation Styles

StyleDescriptionBest For
dark-premiumBlack bg, luminous accents, luxury aestheticExecutive presentations
gradient-modernBold mesh gradients, contemporary typographyStartups, brand launches
minimal-swissGrid-based, bold negative space, timelessConsulting, architecture
keynoteApple-inspired, bold typography, dramatic imageryKeynotes, product reveals
editorialMagazine-quality layouts, sophisticated typographyAnnual reports, thought leadership

Workflow

Step 1: Understand Requirements
  • Topic/subject
  • Number of slides (default: 5-10)
  • Style: dark-premium / gradient-modern / minimal-swiss / keynote / editorial
  • Aspect ratio: 16:9 (standard) or 4:3
  • Content outline: key points per slide
Step 2: Research (if needed)

Use deep-research skill to gather content for the presentation.

Step 3: Create Presentation Plan
json
{
"title": "Presentation Title",
"style": "dark-premium",
"slides": [
{"number": 1, "type": "title", "title": "...", "subtitle": "..."},
{"number": 2, "type": "content", "title": "...", "bullets": ["...", "..."]},
{"number": 3, "type": "chart", "title": "...", "data": {...}},
{"number": 4, "type": "section", "title": "..."},
{"number": 5, "type": "content", "title": "...", "bullets": ["...", "..."]},
{"number": 6, "type": "closing", "title": "Thank You", "subtitle": "..."}
]
}
Step 4: Generate PPTX
bash
python3 -c "
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN
prs = Presentation()
prs.slide_width = Inches(13.333) # 16:9
prs.slide_height = Inches(7.5)
# Style: dark-premium
BG_COLOR = RGBColor(0x0A, 0x0A, 0x0A)
TEXT_COLOR = RGBColor(0xFF, 0xFF, 0xFF)
ACCENT_COLOR = RGBColor(0x00, 0xD9, 0xFF)
def add_slide(prs, layout_idx=6): # 6 = blank
slide = prs.slides.add_slide(prs.slide_layouts[layout_idx])
bg = slide.background
fill = bg.fill
fill.solid()
fill.fore_color.rgb = BG_COLOR
return slide
def add_text(slide, text, left, top, width, height, size=24, color=TEXT_COLOR, bold=False):
txBox = slide.shapes.add_textbox(Inches(left), Inches(top), Inches(width), Inches(height))
tf = txBox.text_frame
p = tf.paragraphs[0]
p.text = text
p.font.size = Pt(size)
p.font.color.rgb = color
p.font.bold = bold
return txBox
# Slide 1: Title
slide = add_slide(prs)
add_text(slide, 'Presentation Title', 1, 2, 11, 2, size=44, bold=True)
add_text(slide, 'Subtitle', 1, 4, 11, 1, size=24, color=ACCENT_COLOR)
# Slide 2: Content with bullets
slide = add_slide(prs)
add_text(slide, 'Key Points', 1, 0.5, 11, 1, size=36, bold=True)
for i, bullet in enumerate(['Point one', 'Point two', 'Point three']):
add_text(slide, f'• {bullet}', 1, 2 + i*0.8, 11, 0.7, size=24)
# Slide 3: Section divider
slide = add_slide(prs)
add_text(slide, 'Section Title', 1, 3, 11, 1.5, size=40, bold=True, color=ACCENT_COLOR)
# Save
prs.save('.poirot/outputs/presentation.pptx')
print('Saved to .poirot/outputs/presentation.pptx')
"
Step 5: Present
present_files([".poirot/outputs/presentation.pptx"])

Slide Types

TypeContentLayout
titleTitle + subtitleCentered, large font
contentTitle + bulletsLeft-aligned, 3-5 bullets
sectionSection title onlyCentered, accent color
chartTitle + chart imageChart from chart-visualization skill
quoteLarge quote + attributionCentered, italic
closingThank you + contactCentered

Pitfalls

  • Too much text per slide: max 5-6 bullets, max 2 lines each. Slides are

visual aids, not documents.

  • Font sizes too small: title ≥36pt, body ≥24pt. If text doesn't fit,

split into more slides.

  • Inconsistent style: all slides must use the same color palette, font

sizes, and layout patterns.

  • No visual hierarchy: title > section headers > bullets > footnotes.

Use size + weight + color to establish hierarchy.

  • python-pptx not installed: pip install python-pptx first.
  • Image slides: if you need chart images, generate them first with the

chart-visualization skill, then embed as slide.shapes.add_picture().

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/hezaohezao/poirot/ppt-generation/badge)](https://verified-skill.com/skills/hezaohezao/poirot/ppt-generation)

Something wrong with this skill or its page? Tell us.