Skill detail
powerpoint-automation
Creates and edits professional PowerPoint presentations from web articles, existing PPTX, or templates, with COM automation and overflow review.
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: Create and edit professional PowerPoint presentations from web articles, blog posts, existing PPTX files, or templates. Use when creating PPTX, converting articles to slides, translating presentations, editing open PowerPoint files, or doing COM Automation / RefURL / overflow review work. Triggers on PowerPoint, PPTX, パワポ, スライド作成, 記事をスライド化, COM自動化, RefURL.
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 | `extract_images.py` | Source -> content.json |
| 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 deck was opened**: `Invoke-Item` / エクスプローラー経由で開いた OneDrive・SharePoint 上の PPTX は `Presentation.FullName` が `https://` になり、**`SaveCopyAs` が %TEMP% へも書かずに例外なしで失敗する**。PDF 書き出し前に `FullName` を確認し、URL なら一度 Close してローカル絶対パスで `Presentations.Open()` し直してから `SaveRead the full source on GitHub (opens external page)