name: ppt-creator description: "Create professional PowerPoint (.pptx) presentations from scratch. This skill should be used when the user asks to create, make, generate, or build a PPT, PowerPoint, 演示文稿, 幻灯片, or PPT. It generates native .pptx files using python-pptx with support for multiple themes, slide types, Chinese text, and 16:9/4:3 aspect ratios. Triggers include phrases like 帮我做一个PPT, 创建演示文稿, 生成幻灯片, make a presentation, create slides, etc." agent_created: true
Generate professional PowerPoint (.pptx) presentations from scratch using python-pptx. The skill accepts a topic or outline from the user, plans the slide structure, writes a JSON content definition, and runs the generation script to produce a ready-to-use .pptx file.
Supports 5 color themes, 7 slide types, Chinese text, speaker notes, and both 16:9 and 4:3 aspect ratios.
来源于7w4.net。
Trigger this skill when the user requests creating a presentation, including but not limited to: - "帮我做一个PPT" / "创建一个演示文稿" / "生成幻灯片" - "make a presentation" / "create slides" / "build a PowerPoint" - "帮我做一个关于XX的PPT" - Any request to produce a .pptx file from a topic, outline, or existing content
Gather key information from the user (ask only what is not already clear):
- Topic: What is the presentation about?
- Audience: Who will see it? (affects tone and depth)
- Approximate length: How many slides? (default: 8-12 if unspecified)
- Theme preference: Any color preference? (default: default if unspecified)
- Aspect ratio: 16:9 or 4:3? (default: 16:9)
If the user provides a topic without other details, make reasonable assumptions and proceed — do not over-interrogate.
Based on the topic, plan the slide-by-slide structure. Reference references/design_guidelines.md for:
- Structure templates for different scenarios (business report, product intro, academic, training)
- Slide count recommendations based on presentation duration
- Content density and design principles
Common structure pattern: 1. Title page 2. Section divider 3-6. Content pages (mix of content, table, two_column, quote as appropriate) 7. Section divider (if long enough) 8-10. More content pages 11. Summary 12. Closing page
Create a JSON file defining all slides. Write it to a temporary location (e.g., the system temp directory). The JSON format:
{
"theme": "default",
"aspect_ratio": "16:9",
"slides": [
{"type": "title", "title": "...", "subtitle": "..."},
{"type": "section", "title": "..."},
{"type": "content", "title": "...", "bullets": ["...", {"text": "...", "level": 1}]},
{"type": "two_column", "title": "...", "left_title": "...", "left_bullets": [...], "right_title": "...", "right_bullets": [...]},
{"type": "quote", "quote": "...", "author": "..."},
{"type": "table", "title": "...", "headers": [...], "rows": [[...], ...]},
{"type": "closing", "title": "...", "subtitle": "..."}
]
}
For detailed JSON schema of each slide type, refer to references/slide_types.md.
Key content writing rules:
- Each bullet point should be concise (under 20 characters when possible)
- Use level: 1 for sub-points under a main bullet
- Use bold: true to emphasize key data
- Add notes field to content slides for speaker notes
- Keep tables to 5-8 rows, max 5 columns
- Insert section dividers every 4-6 content slides
Run the generation script:
/Users/a123456/.workbuddy/binaries/python/envs/default/bin/python3 <skill_dir>/scripts/create_pptx.py <content_json_path> <output_pptx_path>
Where:
- <skill_dir> is the directory containing this SKILL.md
- <content_json_path> is the JSON file created in Step 3
- <output_pptx_path> is the desired output .pptx path (save to the user's working directory)
Prerequisite: python-pptx must be installed. If not already available, install it:
/Users/a123456/.workbuddy/binaries/python/versions/3.13.12/bin/python3 -m venv /Users/a123456/.workbuddy/binaries/python/envs/default
/Users/a123456/.workbuddy/binaries/python/envs/default/bin/pip install python-pptx
After the .pptx file is generated:
1. Present the file to the user using present_files
2. Briefly summarize the presentation structure (theme, slide count, key sections)
3. Offer to adjust content, theme, or structure if needed
| Theme | ID | Best For |
|---|---|---|
| 默认蓝 | default |
Business, tech, general purpose |
| 深色 | dark |
Tech demos, creative presentations |
| 暖色 | warm |
Marketing, branding, cultural events |
| 绿色 | green |
Environment, health, education |
| 极简 | minimal |
Academic, design, consulting |
| Type | Purpose |
|---|---|
title |
Cover slide with title and subtitle |
section |
Section divider for structural breaks |
content |
Standard content slide with bullet points |
two_column |
Side-by-side comparison |
quote |
Highlighted quote or key statement |
table |
Structured data table |
closing |
Thank you / closing slide |
create_pptx.py — Main generation script. Reads a JSON content definition and produces a .pptx file. Execute directly with two arguments: content JSON path and output PPTX path.design_guidelines.md — PPT design best practices: theme selection, slide count recommendations, structure templates, content density, font hierarchy, and visualization tips. Load when planning slide structure.slide_types.md — Detailed JSON schema for each slide type with field descriptions and complete examples. Load when writing the JSON content definition.这个 PPT 生成 Skill 整体质量较好,功能丰富(多种主题和布局),文档详细易懂,能满足常见的演示文稿制作需求。主要问题是生成的代码包含固定路径信息,在不同环境下可能无法直接运行;此外某些细节处理不够完善(如名称拼写有误)。对于日常使用足够,但跨环境部署时可能需要额外调整。