Run this skill before any PPTX generation. The goal: stop AI from inventing content that should come from a human.
Core Principle
Never guess what the user can provide. Never let the user discover problems only after the PPTX is generated.
Workflow
Phase 1: Confirm slide structure
If the user has not provided a clear page-by-page outline, ask 3-5 questions:
- How many PPT pages?
- What is the topic / scenario?
- What are the key modules? (Cover → Team → Milestones → Results → Summary)
Output the skeleton for the user to confirm:
## 幻灯片结构(请确认或调整)
1. 封面 — [标题]
2. 团队 — [成员]
3. 里程碑 — [时间线]
4. 成果 — [数据]
5. 总结 — [联系方式]
Do not proceed to the next step before the structure is confirmed.
Phase 2: Scan human-dependent materials
Check page by page, and mark the status of each material. Use the following icons:
| Icon | Status | Meaning |
|---|---|---|
| ✅ | Available | Material is ready, no user action needed |
| ❌ | Needs supplementing | Must be provided by the user (photos, data, Logo) |
| 🤖 | To be verified | AI can generate a draft, but accuracy needs user confirmation |
Output in the following format:
## 材料扫描
| Slide | 材料 | 类型 | 状态 |
|-------|------|------|------|
| 1 封面 | 标题文案 | 文字 | ✅ 可用 |
| 1 封面 | 封面照片 | 照片 | ❌ 需补充 |
| 2 简介 | 人物基本信息 | 文字 | 🤖 待核实 |
| 3 数据 | Q2收入数字 | 数据 | ❌ 需补充 |
5 major categories of inspection basis
Category 1: Personal information — Name, position, date, contact information Keywords: team introduction, members, person in charge, name, position, contact information, date
Category 2: Visual assets — Photos, Logo, screenshots, icons Keywords: photo, Logo, screenshot, avatar, icon, poster
Category 3: Data statistics — Revenue, metrics, research results, specifications Keywords: revenue, data, metrics, growth, statistics, sales revenue
Category 4: Custom branding — Slogan, brand colors, quotations, terminology Keywords: slogan, brand colors, vision, tagline, quotation
Category 5: External references — Intranet links, reference documents, templates Keywords: intranet, reference documents, templates, links, past PPTs
Phase 3: Missing threshold judgment
Count the total number of materials. If ❌ Needs supplementing accounts for > 50%, warn the user:
"⚠ More than half of the materials are missing—AI will be forced to fabricate a large amount of content. It is recommended to provide the core materials first before continuing, otherwise the generated result may be full of placeholders. Continue anyway?"
If ❌ ≤ 50%, continue. Handle the remaining gaps item by item.
Phase 4: Layered content generation
| Tier | Condition | Mark |
|---|---|---|
| 🤖 To be verified | AI can draft it but accuracy matters (e.g. company introduction, market analysis) | source: ai confidence: needs-review |
| ✅ Can generate | General knowledge, no personalization needed (e.g. HTTP principles, general processes) | source: ai confidence: verified |
| ❌ Human-dependent | Must be provided by the user (e.g. team photos, actual revenue, Logo) | Proceed to Phase 5 |
Tier-1 (can generate) is released directly. Tier-2 (to be verified) is generated but marked for review. Tier-3 (human-dependent) enters material collection.
Phase 5: Collect materials
When the user says "I have photos/materials":
First create a materials folder in the project directory, and tell the user the path:
"I created the
materials/folder under the project directory. Please put the files into it:
- Slide 1: cover photo
- Slide 4: Q2 revenue data
- ..."
After the user puts in the files and tells you, you scan the materials/ directory,automatically matchthe files to the corresponding slots:
- Analyze file content (view images / read data)
- Filename signals
- In manifest, the
descriptionfield
After matching,provide the complete mapping table:
"Automatic matching results:
Material slot ← File Basis Slide 1 Cover photo ✅ materials/photo.jpg Portrait photo, vertical Slide 4 Q2 revenue ✅ materials/data.xlsx Table contains numbers Slide 1 Logo ✅ materials/logo.png Logo graphic All matched successfully. Is there anything you'd like to adjust?"
If the user corrects a match (e.g., "R.png is the awards ceremony, not a work photo"): you must re-output the complete mapping table; you cannot just say "updated."
Phase 6: Photo aspect ratio check + immediate options
When the user's photo aspect ratio deviates from the slide slot by >10%,immediately provide A/B/C options, without waiting:
"⚠ Slide 6's photo slot is 16:9 landscape, but R.png is 1:1 square. How should this be handled? A) contain — show the full photo, with blank space on the left and right B) cover — fill the frame, with the top and bottom cropped C) I'll swap in a different photo"
Do not just flag risks without providing options. Ask immediately about every mismatched photo.
If the user chooses A or B, record it as fill_mode. If they choose C, wait for the new photo and then re-check.
Phase 7: Quality gate
Check each material; if it does not meet the standard, reject + explain + provide options:
- Photo with any dimension < 200px → "The photo is too small (200×150px) and will look blurry when enlarged. Please replace it with a larger one, or accept and continue."
- Content type is clearly wrong (e.g., a photo of a cat submitted for a Logo slot) → point it out and confirm whether to replace it.
Never block — always provide the "accept and continue" option.
Phase 8: Content overflow check
Text/data volume vs slot capacity estimate:
- Title page: ~20 characters
- Body block: ~150 Chinese characters
- Data table: ~5 rows × 5 columns
Content exceeds capacity × 1.5:
"⚠ Slide 3 has about 320 characters of text, while the slot is designed for about 150 characters. AI will automatically shrink the font size, which may look crowded. Suggestions:
- Condense to within 150 characters
- Split into 2 pages (⚠ Not recommended — new pages may not match the template style)
- Continue and let AI handle it"
When capacity is exceeded × 3, the "split pages" option must include a "not recommended" warning.
Phase 9: Handling missing items
For materials the user does not have:
"Slide 7: Award photo — you don't have one. How should this be handled? A) AI searches for images — I'll help you find suitable real images B) AI generates an image — create an illustration/cartoon-style image C) Keep placeholder — leave it blank and add it yourself later D) I'll upload — provide the photo later"
- A → prep searches immediately. Use available tools to search for real images, download them to
materials/, and show the results for the user to confirm. After confirmation, change it in the manifest tostatus: ready+source: ai-search+confidence: needs-review。 - B → prep generates immediately. Use an image generation tool to create an illustration-style image, download it to
materials/, show the result for the user to confirm. After confirmation, change it in the manifest tostatus: ready+source: ai-generated+confidence: needs-review。 - C →
status: placeholder - D → Wait for the user to upload, then return to Phase 5 to collect materials
Key constraints for the A/B options:
- Search/generation must be completed within Phase 9; it cannot be marked
ai-filland left for downstream - Download the result to the
materials/directory - Show the result for the user to confirm
- Before handing off to pptx, there should not be any items in the manifest with
ai-fillstatus.
Option D must be retained. The user may say at first that there is none, and then find it later.
Phase 10: Output manifest
Write to the project directory manifest.yml. Structure:
manifest_version: "1.0"
project:
title: "..."
slide_count: N
materials:
- field: unique_key
type: photo | text | data | branding | reference
description: "..."
used_in: [slide-N]
status: ready | placeholder
source: ai | ai-search | ai-generated | user
confidence: verified | needs-review | placeholder
path: "materials/filename.jpg" # if ready
slot: # for photo type
aspect_ratio: "16:9"
fill_mode: cover
warnings: [] # optional
summary:
total: N
ready: N
placeholder: N
needs_review: N
Phase 11: Output summary
Use Chinese + icons to clearly distinguish:
## 材料检查完成
### ✅ 你提供的 (3):
- 封面照 ← materials/photo.jpg (Slide 1)
- 公司Logo ← materials/logo.png (Slide 1)
- Q2收入 ← materials/数据.xlsx (Slide 4)
### 🤖 AI 生成,请审核 (2):
- 公司简介 (Slide 2) — AI 撰写,请核实数据准确性
- 里程碑描述 (Slide 3) — AI 编写了时间线文字
### 🔍 AI 将自动填充 (1):
- 获奖照片 (Slide 7) — 用户选择让 AI 搜索
### 📌 占位符 (0):
- 无
Phase 12: Internal handoff
Self-check before handoff:
- There should be no items in the manifest with
status: ai-fill(already handled in Phase 9) - There should be no items in the manifest with
status: missing(all collected or marked as placeholder) - All files provided by the user have been placed in the
materials/directory
Dynamically detect available PPTX generation skills:
Review the list of available skills; prefer using pptx. If other PPTX-related skills exist, use the matching one. If none can be found:
"The materials are ready. I did not detect an available PPTX generation skill. Please confirm which one you have installed."
Once detected:
"Materials are ready. Starting PPTX generation."
Call that skill.Do not ask the user to copy anything or open a new conversation. Complete it within the same session.
Key Rules
- Do not guess. If it is not in the conversation or project files, mark it as missing.
- Be specific. Say "Slide 2 is missing the team photo" instead of "missing some photos."
- Do not over-mark. Do not mark text content the user has already provided because they "might want to change it."
- Check the project directory first. Before marking something as missing, first confirm it is not in the project.
- Respect choices. If the user says to skip it, skip it; do not repeatedly ask.
- Automatic matching takes priority. Do not excessively require the user to rename things; match by content analysis.
- Warnings do not block. For quality issues, give a warning + provide an option to continue.
- Complete in one conversation. prep → collect → generate, from beginning to end without switching sessions.
- Immediate options in Phase 6. When an aspect ratio mismatch is detected, immediately provide A/B/C; do not delay.
- Re-list after correction. After the user adjusts the matching, output the complete comparison table again, not just a one-line reply.
- Dynamically discover downstream tools. Do not hardcode "pptx"; detect the actually available generation skill.
Examples
Example 1: Team introduction PPT (many missing items)
User: "Help our English group make a 7-page PPT introducing Lu Hong"
| Material | Status |
|---|---|
| Group member names (Slide 1) | ❌ Needs to be added |
| Lu Hong Photo (Slide 2-7) | ❌ To be supplemented |
| Content Story (from tips.txt) | ✅ Available |
| Slide Structure (7 pages) | ✅ Available |
❌ > 50% → Warn the user and suggest providing core materials first.
Example 2: Simple Tutorial PPT (Zero Missing)
User: "Make a 3-page PPT explaining the principles of HTTP"
| Material | Status |
|---|---|
| HTTP Content | ✅ Can be generated |
No human-dependent materials. Hand off directly to PPTX generation.
Example 3: Mixed Scenario
User: "Make a financing roadshow PPT" + provided company name, team information, product screenshots
| Material | Status |
|---|---|
| Company Name, Team Information | ✅ Available |
| Product Screenshots | ✅ Available |
| Logo | ❌ To be supplemented |
| Financial Forecast | ❌ To be supplemented |
❌ ≤ 50%. Collect Logo + data selection, then generate.