Creates self-contained PPT template SKILLS (not presentations) from user-provided PowerPoint templates. Use ONLY when a user wants to create a reusable skill from their template. For creating actual presentations, use the pptx skill instead.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "ppt-template-creator" skill from askskill: 1. Download https://raw.githubusercontent.com/anthropics/financial-services/main/plugins/vertical-plugins/financial-analysis/skills/ppt-template-creator/SKILL.md 2. Save it as ~/.claude/skills/ppt-template-creator/SKILL.md 3. Reload skills and tell me it's ready
This skill creates SKILLS, not presentations. Use this when a user wants to turn their PowerPoint template into a reusable skill that can generate presentations later. If the user just wants to create a presentation, use the pptx skill instead.
The generated skill includes:
assets/template.pptx - the template fileSKILL.md - complete instructions (no reference to this meta skill needed)For general skill-building best practices, refer to the skill-creator skill. This skill focuses on PPT-specific patterns.
skill-creator skill to set up the skill structureassets/template.pptxskill-creator skill to package into a .skill fileCRITICAL: Extract precise placeholder positions - this determines content area boundaries.
from pptx import Presentation
prs = Presentation(template_path)
print(f"Dimensions: {prs.slide_width/914400:.2f}\" x {prs.slide_height/914400:.2f}\"")
print(f"Layouts: {len(prs.slide_layouts)}")
for idx, layout in enumerate(prs.slide_layouts):
print(f"\n[{idx}] {layout.name}:")
for ph in layout.placeholders:
try:
ph_idx = ph.placeholder_format.idx
ph_type = ph.placeholder_format.type
# IMPORTANT: Extract exact positions in inches
left = ph.left / 914400
top = ph.top / 914400
width = ph.width / 914400
height = ph.height / 914400
print(f" idx={ph_idx}, type={ph_type}")
print(f" x={left:.2f}\", y={top:.2f}\", w={width:.2f}\", h={height:.2f}\"")
except:
pass
Key measurements to document:
CRITICAL: The content area does NOT always start immediately after the subtitle placeholder. Many templates have a visual border, line, or reserved space between the subtitle and content area.
Best approach: Look at Layout 2 or similar "content" layouts that have an OBJECT placeholder - this placeholder's y position indicates where content should actually start.
# Find the OBJECT placeholder to determine true content start
for idx, layout in enumerate(prs.slide_layouts):
for ph in layout.placeholders:
try:
if ph.placeholder_format.type == 7: # OBJECT type
top = ph.top / 914400
print(f"Layout [{idx}] {layout.name}: OBJECT starts at y={top:.2f}\"")
# This y value is where your content should start!
except:
pass
Example: A template might have:
Use the OBJECT placeholder's y position as your content start, not the subtitle's end position.
The generated skill should have this structure:
[company]-ppt-template/
├── SKILL.md
└── assets/
└── template.pptx
The generated SKILL.md must be self-contained with all instructions embedded. Use this template, filling in the bracketed values from your analysis:
---
name: [company]-ppt-template
```
…
Find target companies, check prior relationships, and draft founder outreach emails.
Screen inbound deal materials and generate a one-page memo.
Build quick IRR and MOIC sensitivity tables for PE deal evaluation.
Evaluate FX carry trades with forwards, volatility, and historical data.
Build M&A accretion dilution models with pro forma EPS and sensitivity analysis.
Analyze portfolio company financials, flag variances, and produce board-ready summaries.