document-pptx について
PowerPointデッキの検査、入力、ノート抽出、検証に特化したスキルです。特にデザイナー作成のテンプレートや破損ファイルを対象とし、構造、アクセシビリティ、レンダリング確認の手順とスクリプトを備えています。
主な機能
- 01テンプレートのレイアウトとプレースホルダー確認
- 02PPTX-Automizer による名前付き要素の入力
- 03発表者ノートの抽出
- 04OOXML の関係性の検査
- 05アクセシビリティとスライド描画の確認
活用シーン
- 01自動入力前のテンプレート検査
- 02プレゼンテーションノートの抽出やバックアップ
- 03破損した PPTX ファイルの調査
- 04スライドのアクセシビリティと描画の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ vasilyu1983/ ai-agents-public --skill document-pptxインストール後、Claude Code で/document-pptxを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
learnings.consolidated.mdlearnings.mdagents/openai.yamlassets/pitch-deck.mdquarterly-review.mdslide-narrative-template.mddata/sources.jsonreferences/deck-narrative-and-visual-patterns.mdextraction-stack.mdpptx-accessibility-compliance.mdpptx-animations-transitions.mdpptx-charts.mdpptx-layouts.mdpptx-speaker-notes-delivery.mdpptx-template-branding.mdpptx-troubleshooting-repair.mdscripts/pptx_extract_notes.pypptx_inventory.pypptx_ooxml_inspect.pytest_pptx_ooxml_inspect.py詳細
ドキュメント PPTX
対象範囲: claude.ai の Slides アーティファクトタイプ、または公式 Anthropic の pptx スキルを利用できる場合、一般的な作成・編集、汎用テンプレートへの入力、ビジュアル QA にはそちらを優先してください。このスキルは、次の専門的な用途に使用します。
- 自動化前のテンプレート検査(レイアウト、プレースホルダー idx、シェイプ名、OOXML パーツ)
- PPTX-Automizer によるデザイナー作成テンプレートへの入力
- 発表者ノートの抽出と破損したデッキの検査
- アクセシビリティと EN 301 549 のレビュー
クイックリファレンス
| 作業 | デフォルト | 備考 |
|---|---|---|
| 入力前にテンプレートを検査する | scripts/pptx_inventory.py --json | レイアウト名、プレースホルダーの idx と種類、シェイプ名 |
| 破損したデッキまたはそのパーツを検査する | scripts/pptx_ooxml_inspect.py | 壊れたリレーションシップ、ターゲットの欠落、修復ダイアログ |
| 発表者ノートを抽出またはバックアップする | scripts/pptx_extract_notes.py | Markdown または JSON |
| デザイナー作成テンプレートに入力する | PPTX-Automizer | 名前付き要素のみ置換(グラフデータ、テキスト、表、画像) |
| Python によるレポート作成または抽出 | python-pptx | 標準グラフ、ノート、プレースホルダー |
| JS/TS またはブラウザーでのエクスポート | PptxGenJS | 実際の複合グラフ、デフォルトのレイアウトは 16:9 |
スクリプトと終了コード
| スクリプト | 0 | 1 | 2 |
|---|---|---|---|
pptx_ooxml_inspect.py | 壊れたリレーションシップのターゲットなし | 壊れたターゲットを検出(ゲート)。--report-only は、壊れたターゲットを含む整形式のパッケージでは 0 で終了 | ファイルがない、パッケージが無効、またはリレーションシップパーツの形式が不正 |
pptx_inventory.py / pptx_extract_notes.py | 書き込み完了 | 該当なし | ファイルがない、読み取れない、または .pptx ではない |
判断ルール
- テンプレートを使うか、最初から作成します。 外部向けのデッキ、ブランドまたは法務のレビューが必要な場合、あるいは依頼で「当社のテンプレート」が指定されている場合は、ブランドテンプレートを使用します。社内向けドラフト、試作、またはブランドよりも速度が重要なデータ中心のレポートは、最初から作成します。テンプレートがある場合、ブランドカラー、フォント、レイアウト名を推測してはいけません。まずインベントリを確認します。テンプレートがなく、ブランド要件もない場合は、独自に作った企業風のデザインより、装飾のないすっきりしたデッキが適しています。
- PPTX-Automizer は限定的な入力にのみ使用します。 デザイナーが作成した構成に名前付き要素を統合するものであり、汎用スライドジェネレーターではありません。
- レイアウトは毎回名前で解決します。 レイアウトのインデックスはテンプレート間で共通ではなく、デザイナーがバージョン間でレイアウトの順序を変更したり、名前を変更したりすることがあります。
- プレースホルダーは idx の集合で確認します。
1 in slide.placeholdersは常にFalseです。{ph.placeholder_format.idx for ph in slide.placeholders}に対してテストしてください。references/pptx-template-branding.md を参照してください。 - スライドごとに伝える要点は 1 つにし、グラフのデータは単一の信頼できる情報源に結び付け、単位、期間、情報源を明示します。
- アクセシビリティは作成工程の一部です。 タイトル、読み上げ順序、コントラスト、代替テキストは、最後にまとめて確認するのではなく、作成時に考慮します。
既知の制限事項
-
python-pptxにはアニメーション API(ビルド効果や開始効果)がなく、スライド切り替え API もありません。どちらも OOXML の<p:timing>/<p:transition>を直接編集する必要があります。モーションを約束する前に、references/pptx-animations-transitions.md を参照してください。 -
python-pptxでは真の複合グラフ(縦棒と折れ線)を作成できません。複数プロットを作成するコンストラクターがありません。テンプレートの複合グラフにreplace_dataでデータを入力するか、PptxGenJSを使用してください。 -
python-pptxにはグラデーション塗りつぶし API がなく、テーマの色(theme1.xml)を編集するサポートされた方法もありません。どちらも、事前にバックアップを作成したうえで XML を直接編集する必要があります。 -
色クラスは
RGBColor(pptx.dml.colorから)であり、RgbColorではありません。大文字・小文字を誤るとImportErrorが発生します。 -
既定のスライドサイズは異なります。python-pptx の既定のテンプレートは 10 × 7.5 in(4:3)、PptxGenJS の既定値は 10 × 5.625 in(16:9)です。すべての図形とグラフが対象サイズに収まっていることを確認してください(
y + h <= slide height)。4:3 の例からコピーした位置は、16:9 のスライドからはみ出します。 -
PptxGenJSにはスライド切り替えや自動進行のオプションがありません。slide.transition/advanceAfterは無視されます。代わりに<p:transition>の OOXML を記述してください。 -
PPTX-Automizer の
modifyElement(selector, callback)が受け取るのは変更コールバック(ModifyTextHelper.setText(...)、ModifyTableHelper.setTable(...)、ModifyChartHelper.setChartData(...))であり、{ text: ... }のようなオプションオブジェクトではありません。 -
テンプレートを無造作に編集すると、タイミング、メディア、または修復可能性が損なわれることがあります。Keynote や Google Slides でファイルが問題なく開けても、PowerPoint との互換性が確認されたことにはなりません。逆も同様です。
-
ライブラリの動作はリリースによって変わります。API の不足や既定値についての主張を前提にする前に、インストール済みのバージョンで再テストしてください。確認できない場合は、未検証であることを明記してください。
ワークフロー
- 作業を分類します。新規デッキの作成、テンプレートへの入力、ノートの抽出、または修復のいずれかです。
- スライドのコードを書く前に、スライドの構成を作成します(assets/slide-narrative-template.md)。
- 自動処理を変更する前に、テンプレートを調査します(
pptx_inventory.py --json、pptx_ooxml_inspect.py --json)。 - 生成または編集したあと、以下のリリースゲートを実施します。
レンダリング済みスライドのリリースゲート
最終保存後、デッキを再度開き、スライド数、レイアウト名、プレースホルダー、メディアの関連付け、グラフデータ、発表者ノートを一覧化します。指定された納品先で全スライドを画像または PDF にレンダリングし、テキストの切れ、フォントの置換、スライド外にはみ出したオブジェクト、グラフラベルの崩れ、低解像度の画像、意図しない空のプレースホルダーがないか確認します。PowerPoint との互換性またはアクセシビリティが受け入れ条件の場合は、実際に PowerPoint で検証してください。それ以外の場合は、利用可能な対象レンダラーを使い、PowerPoint との互換性は未検証と明記してください。
レンダリング後に、生成コードだけでなく、グラフと主要な数値をソースデータと照合してください。テンプレートを編集した場合は、マスターとテーマの関連付けが引き続き解決されること、および指定された対象ビューアーで修復ダイアログが表示されずにファイルが開くことを確認してください。ビューアーによる差異があれば記録し、あるビューアーでの結果を別のビューアーでも同じだとみなさないでください。
ナビゲーション
参考資料
- references/pptx-layouts.md
- references/pptx-charts.md
- references/pptx-template-branding.md
- references/pptx-speaker-notes-delivery.md
- references/pptx-accessibility-compliance.md
- references/pptx-troubleshooting-repair.md
- references/pptx-animations-transitions.md
- references/deck-narrative-and-visual-patterns.md — デッキの構成、説得の流れ、スライドごとのレイアウト、スライドタイプのスケール、またはスライドのグラフを選ぶときに読み込みます
- references/extraction-stack.md — 新しいLLM/RAGパイプラインで抽出ツール(ネイティブ解析、Docling、OCR)を選ぶときに読み込みます
- data/sources.json
スクリプト
テンプレート
関連スキル
学びのループ
過去の判断や落とし穴が関係する場合は、learnings.consolidated.md があれば参照してください。必要な履歴がある場合、または利用可能な代替資料として必要な場合に限り、learnings.md を使用してください。それ以外の場合は、どちらも参照しないでください。
適用後、覚えておく価値のあるパターン、再発防止が必要なミス、または意外だった分野の知識に気づいた場合は、agents-skills-feedback-loop/scripts/append_learning.py を使って、日付入りの箇条書きを learnings.md に1件追記してください。SKILL.md 自体は変更しないでください。