Skill detail
powerpoint-automation
Convert web articles or blog posts into slides through a content.json pipeline, translate or rebuild existing PPTX files onto a template, and edit an already-open PowerPoint deck with COM Automation (RefURL, overflow review). Use for article-to-slides conversion, deck translation, template-based…
Why we recommend it: Article-to-slides, deck translation, template rebuilds, and COM editing of PPTX.
Inspect before use
Read the source instructions and check the requirements before you install this skill.
SKILL.md
The saved excerpt is a snapshot from when this skill was listed. The external source remains the complete and most current version.
---
name: powerpoint-automation
description: Convert web articles or blog posts into slides through a content.json pipeline, translate or rebuild existing PPTX files onto a template, and edit an already-open PowerPoint deck with COM Automation (RefURL, overflow review). Use for article-to-slides conversion, deck translation, template-based rebuilds, or live COM editing of an open deck. Not for simply reading, inspecting, or lightly editing a .pptx file. Triggers on 記事をスライド化, スライド翻訳, 開いているパワポを編集, COM自動化, RefURL, content.json.
argument-hint: "変換したい URL・PPTX・テンプレート、または編集内容"
user-invocable: true
license: CC BY-NC-SA 4.0
metadata:
author: yamapan (https://github.com/aktsmm)
---
# PowerPoint Automation
AI-powered PPTX generation using Orchestrator-Workers pattern.
## When to Use
- Web 記事やブログをスライド化したいとき
- 既存 PPTX を翻訳・再構成したいとき
- 開いている PPTX を COM Automation で直接編集したいとき
- テンプレートベースで PPTX を生成したいとき
- content.json を SSOT にして、抽出・翻訳・生成・レビューを分離したいとき
## Quick Start
**From Web Article**
```text
Create a 15-slide presentation from: https://zenn.dev/example/article
```
**From Existing PPTX**
```text
Translate this presentation to Japanese: input/presentation.pptx
```
**Edit Open PPTX with COM**
```text
Edit the currently open PowerPoint deck with COM Automation and verify RefURL, notes, overflow, and hyperlinks.
```
## Workflow
```text
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](references/SCRIPTS.md).
### content.json
`content.json` はこの skill の SSOT。抽出、翻訳、生成、レビューの間は常にこれを基準にする。
```json
{
"slides": [
{ "type": "title", "title": "Title", "subtitle": "Sub" },
{ "type": "content", "title": "Topic", "items": ["Point 1"] }
]
}
```
スキーマ詳細は [references/schemas/content.schema.json](references/schemas/content.schema.json) を参照。
### Template
標準テンプレートは `assets/template.pptx`。レイアウトや用途の詳細は template 側で管理し、main SKILL には最小限だけ残す。
```bash
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](references/AGENTS.md) and [references/agents/](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**: 抽出・翻訳・生成・レビューを混ぜない
- **Fail fast**: 問題が出たら次フェーズへ無理に進めない
- **Human in loop**: PLAN でユーザー確認を入れる
- **Technical content is verified content**: Azure / Microsoft の内容は MCP で一次情報確認してから入れる
- **PowerPoint lock first**: 開いている PPTX に対して python-pptx で上書きしない。読み取りも `PermissionError` になるので、`Copy-Item` で `%TEMP%` へ複製してから読む。`markitdown` の出力を PowerShell でパイプすると文字化けするため `-o` でファイルへ書かせる
- **COM for open decks**: 開いている PPTX や既存 deck の直接編集は [references/instructions/com-automation.instructions.md](references/instructions/com-automation.instructions.md) を参照する
- **Leave it open or close it fully**: COM 作業の最後は「ユーザーに見せるので開いたまま」か「完全に終了」かを必ず決める。中身のない PowerPoint ウィンドウを残さない。内部処理だけなら `Presentation.Close()` の後に `Presentations.Count` が 0 であることを確認して `Application.Quit()` し、それでも残る `POWERPNT` は **MainWindowTitle が空またはファイル名なしのプロセスだけ** 停止する(ファイル名入りはユーザー作業中)
- **Know how the Read the full source on GitHub (opens external page)