ドキュメント&知識ベース · anthropics/skills

pptx

.pptx または .potx ファイルが入力、出力、またはその両方として関与するあらゆる場面でこのスキルを使用します。これには以下が含まれます:スライド資料、ピッチデック、プレゼンテーションの作成;.pptx または .potx ファイルからのテキストの読み取り、パース、抽出(抽出したコンテンツをメールや要約など他の場所で使用する場合を含む);既存のプレゼンテーションの編集、修正、更新;スライドファイルの結合または分割;テンプレート(.potx)、レイアウト、発表者ノート、コメントの操作。ユーザーが「デック」「スライド」「プレゼン」と言及した場合や、.pptx または .potx ファイル名を参照した場合は、その後のコンテンツの用途に関わらずトリガーしてください。.pptx または .potx ファイルを開く、作成する、あるいは触れる必要がある場合は、このスキルを使用してください。

L4 高権限 · 段階的認可と監査V1 コミット固定コマンド実行ファイル書き込みDual-pass Audit
Author anthropicsGitHub anthropics/skills ↗Stars 175386License Proprietary(skill 自带 LICENSE.txt:© 2025 Anthropic, PBC. All rights reserved. 按 Anthropic Consumer/Commercial Terms of Service 授权并附 ADDITIONAL RESTRICTIONS;非开源许可)Commit 41bbe19d1a
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

docx/xlsx と同一のコンテナ思想:`.pptx` も ZIP+XML であり、タスクに応じてルートを選択します。新規作成は pptxgenjs(npm)によるプログラム生成、既存・テンプレート編集は unzip → slideN.xml 修正 → zip、読み取りは markitdown を使用します。

skills/pptx/SKILL.md
A `.pptx` is a ZIP archive of XML files. Choose your approach by task:
ルート表:'| **Create** a new deck | Write a `pptxgenjs` script — see gotchas below |'、'| **Edit** an existing deck, or build from a template | unzip → edit `ppt/slides/slideN.xml` → zip |'。テンプレート改変は高頻度シナリオであるため、専用のフルワークフローが用意されています。

構造操作は手動コピーではなくスクリプト経由が必須:add_slide.py がスライド/レイアウトの複製とパッケージ内登録(rels/content-type/sldIdLst)の補完を担当し、clean.py が孤立コンポーネントを削除します。ファイルレベルの一貫性はツールにより担保されます。

skills/pptx/SKILL.md
`add_slide.py` does every registration a new slide needs and reports what it made
スクリプト表:'`scripts/clean.py unpacked/` | Delete slides, media, and rels no longer referenced. Run **after** `<p:sldIdLst>` is final'。SKILL では 'Do all structural work — add, delete, reorder — before editing any slide's content.' と強調されています。

生成側の注意点(pptxgenjs の落とし穴)が極めて詳細:カラーコードの '#' や 8 桁 16 進数の禁止、不透明度は transparency を使用、シャドウの offset ≥ 0、リスト項目は bullet:true、複合グラフは valAxes + catAxes の二軸宣言が必須、dataLabelPosition outEnd によるファイル破損など。すべて validate.py で最終検証されます。

skills/pptx/SKILL.md
It reports the two chart faults above and the slide-XML defects PowerPoint refuses, and names the fix for each.
SKILL はエコシステムの不一致を明言:'pptxgenjs emits chart XML PowerPoint refuses to open, and every other tool accepts: python-pptx opens those decks, LibreOffice renders them, the XSD passes them.'—そのため validate.py による検証が必須基準となります。

グラフ戦略は「ネイティブ可能なものは絶対に画像化しない」:PowerPoint が描画可能なものは addChart() を使用し、ライブラリ非対応機能(近似曲線/誤差範囲)は自前で series を計算するか OOXML を後処理します。PowerPoint にネイティブ形式が存在しない図(サンキー/ネットワーク/コードダイアグラム)のみ画像化して挿入します。

skills/pptx/SKILL.md
Use `addChart()` for everything PowerPoint can chart
アイコンパイプラインは逆のアプローチ:react-icons で SVG をレンダリング → sharp で ≥256px にラスタライズ → base64 で挿入('the `image/png;base64,` prefix is required')。

テンプレート編集における XML セキュリティ要件:変換処理は必ず defusedxml.minidom でパースし、xml.etree は禁止(名前空間プレフィックスが書き換えられファイルが破損するため)。テンプレートのスロット数 ≠ 入力項目数(例:4 人用テンプレートに 3 人を配置する場合、文字だけを消すのではなくグループごと削除)。

skills/pptx/SKILL.md
If you script an XML transform, parse with `defusedxml.minidom` — round-tripping OOXML through `xml.etree.ElementTree` rewrites namespace prefixes and corrupts the deck.
`<a:t>` 前後の空白に xml:space="preserve" が必要な点、リスト項目と `<a:p>` の 1 対 1 対応、bullet のレイアウト継承など、XML の詳細なルールも含まれます。

3 段階の必須 QA:コンテンツ QA(markitdown テキスト確認 + プレースホルダー残骸 grep)、ファイル QA(validate.py 必須実行、テンプレート派生ファイルは --original でベースライン比較)、視覚 QA(soffice で PDF 変換 → pdftoppm で画像化し全スライド目視確認、別視点を持つ subagent の活用を推奨)。

skills/pptx/SKILL.md
After staring at the generating code you tend to see what you expect rather than what rendered, so look at the images fresh (a subagent works well for this if you have one)
視覚 QA チェックリストは、はみ出し/重複/配置/コントラスト/プレースホルダー残骸などの具体的欠陥を網羅:'Text overflow or text cut off at a box or slide boundary — check this first.'

デザイン層に組み込まれた「アンチ AI スロップ(安っぽい AI 感の排除)」指針:テーマパレットの先行決定、60〜70% のドミナントカラー比率、カラーバーや下線モチーフの回避、デフォルトの青やクリーム背景の禁止、フォントの QA 信頼性 2 分類(LibreOffice での文字幅差異によるレイアウト崩れ誤認を防止)。

skills/pptx/SKILL.md
**NEVER use accent lines under titles** — these are a hallmark of AI-generated slides
フォント戦略:'Safe fonts (render true-to-width in QA *and* ship with Office): Arial, Calibri, Cambria…'—QA 描画は LibreOffice、納品は PowerPoint という環境差異を踏まえ、フォントメトリクスの違いを明示的に管理しています。

2コア機能

01pptxgenjs によるプログラマティックなスライド生成(ネイティブグラフ、複合グラフ、アイコンパイプライン、発表者ノート対応)と包括的なトラップ回避ルール
02テンプレートおよび既存デックの編集:展開 → スライド XML 編集 → 再パッケージ化、サムネイルによるレイアウト選定(thumbnail.py)
03スライドの追加・削除・並べ替えに伴うパッケージレベルの整合性管理(add_slide.py / clean.py)
04構造検証:スキーマ、リレーション、content-type、グラフ構造のチェック、および --original テンプレート比較
053 段階 QA:コンテンツ(markitdown + プレースホルダー grep)、ファイル(validate.py)、視覚(ラスタライズ目視確認)
06読み取りとパース:markitdown テキストブロック + サムネイルグリッド、python-pptx の互換性注意事項の提示(スライド複製不可、書式保持不可、SVG-EMF 読み込み不可)
07デザインシステム:テーマカラーパレット集(10 種)、レイアウト・余白・組版仕様および禁止事項リスト

3外部依存関係

KindDependency / Endpoint
packagepptxgenjs(npm,deck 生成)
packagemarkitdown[pptx] / Pillow / defusedxml / lxml(pip:文本转储/缩略图/clean/validate)
packagereact-icons / react / react-dom / sharp(npm,图标管线,条件安装)
cliLibreOffice soffice(视觉 QA 渲染/.ppt 转换,经 soffice.py 包装)
clipdftoppm(Poppler,出图)

4推奨統制措置と判定根拠

安全運用のための推奨統制措置
Agent 向け
段階的・都度認可、サンドボックス推奨
管理者向け
承認フロー、ロールバック可能、全履歴監査
判定根拠(ファイルパスと抜粋)
  • scripts/: ローカルスクリプトまたはコマンドの実行: add_slide.py / clean.py / thumbnail.py / validate.py / soffice.py(同梱の Python
  • 本地工作目录: ファイル I/O と成果物出力: deck/out.pptx、unpacked/ 展開ディレクトリ、サムネイル jpg、soffice.py tempdir の C ソース/shim/プロファイルを出力
監査ノート: 同梱の Python/Node スクリプトおよびローカル CLI(soffice/pdftoppm)を実行してローカルファイルを読み書きし、デフォルトでの外部ネットワーク通信(npm/pip は公式レジストリへの条件付きフォールバックのみ)や認証情報の読み取りは行いません。留意事項:① OOXML の解析・編集には xml.etree ではなく defusedxml(セキュアなパーサー)を使用しており、XXE リスクは低減されています。② アイコンパイプライン実行時にローカルで Node(react-icons → sharp)を実行するため、事前インストールまたは条件付きインストールに依存します。③ validate.py は「PowerPoint 互換性」を担保するためのもので、セキュリティリスクではなく品質リスクに対応するものです。④ プロプライエタリライセンス。

5二重目の独立検証

  • [ok] office/ 树与 docx/xlsx 一致 — diff -rq 三目录 office/ 零差异;soffice.py/validate.py 为同一文件副本。
  • [ok] add_slide/clean/thumbnail 行为声明 — SKILL.md 表与正文描述(注册报路径、孤儿清理、labeled 网格)与各脚本 docstring/实现相符。
  • [ok] pptxgenjs 坑清单与 validate 兜底 — 'corrupts the file' 类规则 + 'After writeFile(), run validate.py' 原文在;validate.py 确有 chart/slide 检查逻辑。
  • [ok] defusedxml 安全解析 — SKILL.md 明文禁止 xml.etree 做变换并指定 defusedxml.minidom;脚本中实际使用 defusedxml。
  • [ok] 网络/凭证零命中 — 脚本无网络调用;环境变量仅 soffice.py 拷贝环境设 VCL 插件与 LD_PRELOAD(无读取密钥)。
  • [ok] 夸大检查 — description 'any time a .pptx or .potx file is involved'——正文覆盖 create/edit/template/read/QA 全链,无越界承诺;设计指导属 prompt 层(依赖模型遵循+validate 兜底)。
  • [ok] 元数据 — 本地 HEAD==pin 41bbe19;LICENSE 专有与 frontmatter 'Proprietary' 一致。

6結論

  • 「PowerPoint で確実に開ける」納品品質の担保:他ツールでは見逃される pptxgenjs 由来のグラフ XML 互換性問題を明示し、validate ゲートを設けている唯一のワークフロー。
  • テンプレート運用のエンジニアリング化:thumbnail による選定 → add_slide/clean による整合性管理 → XML 微小編集 → validate --original により、ブランドテンプレートの量産に直結。
  • 厳格な QA とアンチ AI スロップ仕様の内蔵:3 段階 QA と明確な「AI っぽさ」排除リスト(強調下線、カラーバー、デフォルト青の禁止)を完備。
  • レンダラー差異の体系的制御:フォントの QA 信頼度分類とマージン設計により、視覚 QA の判定精度を向上。
  • 安全な XML 編集:defusedxml の採用と徹底した作業規律(構造先行、スロット ≠ 項目、リスト項目の単一 a:p 化)。
  • 最適な用途: 管理された環境でプレゼン資料(営業、講義、レポート)を大量生成またはテンプレート適用して作成する場合、特に「テンプレートを厳格に遵守すること」と「PowerPoint で確実に開けること」の双方が求められるシナリオに最適です。デザイン規約(パレット/レイアウト/フォント)はチームのスライドスタイルの標準基準としても機能します。
    不向きな用途: LibreOffice、poppler、Node.js が存在しない環境(生成および視覚 QA が機能しないため);PowerPoint ネイティブグラフのセマンティクスではなくピクセル単位の完全再現を求める用途;プロセスのオーバーヘッドが大きすぎる単純なテキスト下書き作業;プロプライエタリライセンスを受け入れられない組織。
    Install Agent-Ready
    ① Verified Mirror 2026-09-09
    Option A · Direct DownloadDownload pptx.tar.gz
    sha256: fa29d7374c319c8e…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 41bbe19d1a.