All skills
aktsmm avatar

/powerpoint-automation

@500f5af
by yamapanaktsmm/agent-skills26 stars
4

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.

Use this Skill: https://skilld.dev/gh/aktsmm/agent-skills/powerpoint-automation

This session only. Nothing lands on disk.

SKILL.md

≈105 tokens always: the name and description. ≈2.6k when used: this file. ≈72k more on demand in 34 files.

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

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 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.

content.json

content.json はこの skill の SSOT。抽出、翻訳、生成、レビューの間は常にこれを基準にする。

{
  "slides": [
    { "type": "title", "title": "Title", "subtitle": "Sub" },
    { "type": "content", "title": "Topic", "items": ["Point 1"] }
  ]
}

スキーマ詳細は references/schemas/content.schema.json を参照。

Template

標準テンプレートは assets/template.pptx。レイアウトや用途の詳細は template 側で管理し、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: 抽出・翻訳・生成・レビューを混ぜない
  • 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 を参照する
  • 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() し直してから SaveAs($tmp, 32) する
  • 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: ユーザー指定テンプレートがある場合、特に表紙はテンプレートの既存プレースホルダー/レイアウトを使い、上から別図形を重ねて隠さない
  • Reusable template means slide master: 「テンプレートを作る」と言われたら、表紙・本文・Ending の再利用デザインはスライド直置きではなく SlideMaster.CustomLayouts に置き、編集する文字は placeholder / text shape として残す
  • PPTX asset metadata gate: テンプレートや配布用 PPTX を skill asset / public artifact に含める前に scripts/clean_template.py で docProps/custom.xml(MIP ラベル、tenant、SharePoint フィールド、同僚メール)と docProps/core.xml(cp:lastModifiedBy / cp:revision)を sanitize する。PowerPoint は OneDrive / SharePoint から開くたびに MIP を再付与するので、check-in 直前に毎回実行する。詳細は references/instructions/template.instructions.md。スライド本文検索だけで安全判定しない
  • JP template font default: 日本語の再利用テンプレートでは master/layout の既定和文フォントを BIZ UDPゴシック に揃え、生成スライド側の後処理で毎回フォントを直す設計にしない
  • 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: ユーザーに見せる前に、レンダー画像で「スカスカ・文字が小さい・アイコンが雑・テンプレ踏襲不足・旧文言残り」を自分で探して直す。詳しくは 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: テンプレートを複製して生成する場合は、保持する sample slide を先に明示し、不要な contact / next-event 等を構造編集で削除する。完了前に content manifest から導いた期待枚数、残存 placeholder、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: 参考 URL の表示形式は統一する
  • Review content and visuals separately: 生成後は見た目レビューだけでなく、公式情報との正確性レビュー、URL hyperlink 数、notes 数、placeholder/internal wording を確認する

Reference Map

Frequently Needed

Use Implementation Patterns for shape diagrams, template XML, SlideMaster edits, visual QA, hyperlinks, RefURL, locks, centering, corruption recovery, and media embedding.

Done Criteria

  • source と goal が固定されている
  • content.json を正として各フェーズが分離されている
  • template / layout の前提が確認できている
  • technical content は一次情報確認が済んでいる
  • operational text がスライド面に出ていない
  • template 利用時は単調な同一レイアウト反復と余剰 placeholder を確認している
  • テンプレートの保持/削除対象を含む期待スライド数と実際の slide set が一致している
  • visual QA はレンダー画像で行い、修正後に該当スライドを再確認している
  • 表は本文 16pt 以上を原則とし、header は中央揃え・中段揃えで視認性を確認している
  • build 後に overflow / consistency / hyperlink をレビューできている

Source: SKILL.md on GitHub

1 alert1d5 checks · Risk MEDIUM
  • Gen Agent Trust Hub1d

    The skill automates PowerPoint creation by downloading external images and executing shell commands. Potential risks include command injection through user-influenced filenames and indirect prompt injection from processed web content.

  • Socket1d

    2 alerts: gptAnomaly

  • Snyk1d

    Risk: MEDIUM · 1 issue

  • Runlayer7mo

    12/58 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 500f5af. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 19 hours ago.

Activeupdated 2 days ago
argument-hint
変換したい URL・PPTX・テンプレート、または編集内容
user-invocable
true
metadata
{
  "author": "yamapan (https://github.com/aktsmm)"
}
  • Python
  • powerpoint
  • pptx
  • presentation
  • automation
  • com-automation
  • template
  • translation
  • web-scraping
  • content-generation

README badge

README badge for aktsmm/agent-skills/powerpoint-automation

Generates and edits PowerPoint presentations from web articles, blog posts, existing PPTX files, or templates using a content.json intermediate format. Supports COM Automation for direct editing of open decks, translation between languages, and structured review workflows that separate extraction, translation, generation, and quality assurance phases.

Generated from the current SKILL.md.

Does this skill work with existing PowerPoint files, or only create new presentations?
It works with both. You can create presentations from web articles or templates, translate and restructure existing PPTX files, or directly edit open PowerPoint files using COM Automation.
What's the central data format for this workflow?
content.json is the source of truth. All phases — extraction, translation, generation, and review — reference and operate on this JSON schema, keeping slides and their content decoupled from the final PPTX output.
Can I use my own PowerPoint template?
Yes. The skill supports custom templates via the template parameter and template_layouts.json config. When using a user-provided template, the skill preserves existing placeholders and layouts rather than overlaying new shapes on top.
How does this handle currently open PowerPoint files?
It uses COM Automation for direct editing of open decks, avoiding python-pptx overwrites. See the com-automation.instructions.md reference for specific workflows around RefURL, notes, overflow, and hyperlink verification.
Does this support languages other than English and Japanese?
The SKILL.md documents English and Japanese localization via a Localizer agent, but does not describe support for other languages.

Generated from the current SKILL.md. These answers refresh after source changes.