AI-powered PPTX generation using Orchestrator-Workers pattern.
When to Use
- When you want to turn web articles or blogs into slides
- When you want to translate and restructure an existing PPTX
- When you want to directly edit an open PPTX via COM Automation
- When you want to generate a PPTX based on a template
- When you want to make content.json the SSOT and separate extraction, translation, generation, and review
Quick Start
From Web Article
Create a 15-slide presentation from: https://zenn.dev/example/article
From Existing PPTX
Translate this presentation to Japanese: input/presentation.pptx
Edit Open PPTX with COM
Edit the currently open PowerPoint deck with COM Automation and verify RefURL, notes, overflow, and hyperlinks.
Workflow
TRIAGE → PLAN → PREPARE_TEMPLATE → EXTRACT → TRANSLATE → BUILD → REVIEW → DONE
| Phase | Main Actor | Purpose |
|---|---|---|
| EXTRACT | reconstruct_analyzer.py |
Source -> content.json (+ extract_images.py for images) |
| BUILD | create_from_template.py |
content.json -> PPTX |
| REVIEW | PPTX Reviewer | Overflow / consistency / quality |
Core Assets
Scripts
Script selection, arguments, and validation entry points are defined in references/SCRIPTS.md.
content.json
content.json is the SSOT for this skill. Always use this as the basis between extraction, translation, generation, and review.
{
"slides": [
{ "type": "title", "title": "Title", "subtitle": "Sub" },
{ "type": "content", "title": "Topic", "items": ["Point 1"] }
]
}
For schema details, see references/schemas/content.schema.json .
Template
The standard template is assets/template.pptx. Details on layouts and use cases are managed on the template side, and only the minimum is kept in the main SKILL.
python scripts/create_from_template.py assets/template.pptx content.json output.pptx --config assets/template_layouts.json
Agents
Role definitions and handoffs are in references/AGENTS.md and references/agents/.
Operating Rules
- SSOT: Derive content.json from the approved manuscript and retain stable topic/question-to-slide mappings. Reuse approval for unchanged content; changed claims or explicit scope constraints need confirmation. Compress related Q&A for the presentation format, not by dropping qualifying conditions.
- One phase, one purpose: Do not mix extraction, translation, generation, and review
- Fail fast: If a problem arises, do not force progress to the next phase
- Human in loop: Include user confirmation in the PLAN
- Technical content is verified content: For Azure / Microsoft content, verify with primary sources via MCP before including it
- PowerPoint lock first: Do not overwrite an open PPTX with python-pptx. Reading it will also
PermissionError, soCopy-Itemで%TEMP%read after duplicating tomarkitdownoutput gets garbled when piped through PowerShell, so have it written to a file with-oto write to a file - COM for open decks: For direct editing of an open PPTX or an existing deck, refer to references/instructions/com-automation.instructions.md to reference
- Leave it open or close it fully: At the end of COM work, always decide whether to "leave it open so the user can see it" or "close it completely." Do not leave an empty PowerPoint window behind. If it is internal processing only, after
Presentation.Close()afterPresentations.Countconfirm thatApplication.Quit()is 0 andPOWERPNTは then only processes whose MainWindowTitle is empty or has no filename stop (those with a filename are the user's work in progress) - Know how the deck was opened:
Invoke-Item/ PPTX on OneDrive or SharePoint opened via Explorer becomesPresentation.FullNameがhttps://, andSaveCopyAsfails without exception and without even writing to %TEMP%. Before exporting to PDF, checkFullName, and if it is a URL, Close it once andPresentations.Open()again with a local absolute path, thenSaveAs($tmp, 32)do - Notes are distributable content: Put presenter guidance in notes, but exclude material the recipient may not receive from the entire deliverable, including hidden slides, notes and embedded sources. Use a separate restricted file; NDA labels and hidden flags do not grant sharing permission.
- Audience context first: Introduce each topic's purpose or trigger, current situation and unresolved concern before answers and next actions. Keep this context on main slides, not only in notes; reserve notes for permitted presenter guidance and implementation detail.
- Template means template: If there is a user-specified template, especially for the cover, use the template's existing placeholders/layouts and do not overlay different shapes on top to hide them
- Reusable template means slide master: If asked to "create a template," place the reusable designs for the cover, body, and Ending not directly on slides but in
SlideMaster.CustomLayouts, and keep the text to be edited as placeholders / text shapes - PPTX asset metadata gate: Before including a template or distribution PPTX in skill assets / public artifacts,
scripts/clean_template.pyでdocProps/custom.xml(MIP labels, tenant, SharePoint fields, colleague emails) anddocProps/core.xml(cp:lastModifiedBy/cp:revision) sanitize. PowerPoint re-applies MIP every time it is opened from OneDrive / SharePoint, so run this every time just before check-in. For details, see references/instructions/template.instructions.md. Do not judge safety based only on searching the slide body text - JP template font default: In Japanese reuse templates, align the default Japanese font of master/layout to
BIZ UDPゴシックand do not design it so that the font is fixed every time in post-processing on the generated slide side - Rendered QA before handoff: Export every slide after building or COM touch-up; check overlaps, font consistency and table readability. If an image-capable, read-only reviewer is available, delegate previews, approved content.json and template constraints; request reviewed slide IDs, issues and fixes only. Otherwise inspect locally. Re-render and recheck affected slides after fixes.
- Review like a critic, not a generator: Before showing it to the user, use rendered images to find and fix "too sparse, text too small, sloppy icons, insufficient template adherence, old wording remaining" yourself. For details, see references/instructions/deck-iteration-review.instructions.md
- Media restore gate: slide insertion/deletion/recovery after a user review must re-check expected slide count and embedded video/media positions before continuing
- Template base-slide gate: When duplicating and generating from a template, first explicitly specify the sample slides to retain, and delete unnecessary contact / next-event etc. by structural editing. Before completion, verify the expected number of slides derived from the content manifest, remaining placeholders, and slide order
- Editable diagrams: Generated images are optional design references, not editable output. Rebuild text, shapes and connectors from approved content.json with suitable licensed icon assets; preserve diagram relationships. Keep photos/screenshots as images; no ASCII art or full-slide rasterization as a substitute for editable slides.
- Grid-first placement: Initialize positions on a consistent layout grid, refine against actual slide renders, and remove temporary grid overlays from final exports.
- Appendix URLs use Title - URL: Unify the display format of reference URLs
- Review content and visuals separately: After generation, not only review the appearance but also check accuracy against official information, the number of URL hyperlinks, the number of notes, and placeholder/internal wording
Reference Map
Frequently Needed
- references/SCRIPTS.md
- references/USE_CASES.md
- references/content-guidelines.md
- references/IMPLEMENTATION_PATTERNS.md
- references/instructions/com-automation.instructions.md
- references/instructions/template.instructions.md
- references/instructions/customer-facing-deck.instructions.md
- references/instructions/deck-iteration-review.instructions.md
Use Implementation Patterns for shape diagrams, template XML, SlideMaster edits, visual QA, hyperlinks, RefURL, locks, centering, corruption recovery, and media embedding.
Done Criteria
- source and goal are fixed
- content.json is treated as the source of truth and each phase is separated
- the assumptions of template / layout have been confirmed
- technical content has been confirmed against primary sources
- operational text does not appear on the slide surface
- when using a template, monotonous repetition of the same layout and excess placeholders have been checked
- the expected number of slides, including what to retain/delete in the template, matches the actual slide set
- visual QA is performed using rendered images, and the relevant slides are rechecked after fixes
- tables should in principle use body text of 16pt or larger, and header visibility is checked with center alignment and middle alignment
- after build, overflow / consistency / hyperlink have been reviewed