Agent Skills by ALSEL
Anthropic Claudeその他⭐ リポ 0品質スコア 50/100

pptx-official

ユーザーから .pptx ファイルの作成・編集・分析を依頼された際に使用するスキルです。.pptx ファイルは XML ファイルやその他のリソースを含む ZIP アーカイブ形式であり、タスクの種類に応じて異なるツールやワークフローを活用して対応します。

description の原文を見る

A user may ask you to create, edit, or analyze the contents of a .pptx file. A .pptx file is essentially a ZIP archive containing XML files and other resources that you can read or edit. You have different tools and workflows available for different tasks.

SKILL.md 本文

PPTX ファイルの作成、編集、および分析

概要

ユーザーが .pptx ファイルの作成、編集、または内容の分析をリクエストする場合があります。.pptx ファイルは本質的には XML ファイルおよび他のリソースを含む ZIP アーカイブであり、読み取りまたは編集できます。異なるタスク用に異なるツールとワークフローが利用可能です。

コンテンツの読み取りと分析

テキスト抽出

プレゼンテーションのテキストコンテンツを読み取るだけの場合は、ドキュメントを Markdown に変換する必要があります。

# ドキュメントを Markdown に変換
python -m markitdown path-to-file.pptx

生の XML アクセス

以下の機能については生の XML アクセスが必要です:コメント、スピーカーノート、スライドレイアウト、アニメーション、デザイン要素、複雑な書式設定。これらの機能のいずれかについては、プレゼンテーションを展開して生の XML コンテンツを読み取る必要があります。

ファイルの展開

python ooxml/scripts/unpack.py <office_file> <output_dir>

:unpack.py スクリプトはプロジェクトルートからの相対パス skills/pptx/ooxml/scripts/unpack.py にあります。スクリプトがこのパスに存在しない場合は、find . -name "unpack.py" を使用して検索してください。

キー ファイル構造

  • ppt/presentation.xml - メインプレゼンテーションメタデータとスライド参照
  • ppt/slides/slide{N}.xml - 個別スライドコンテンツ (slide1.xml, slide2.xml など)
  • ppt/notesSlides/notesSlide{N}.xml - 各スライドのスピーカーノート
  • ppt/comments/modernComment_*.xml - 特定スライドのコメント
  • ppt/slideLayouts/ - スライドのレイアウトテンプレート
  • ppt/slideMasters/ - マスタースライドテンプレート
  • ppt/theme/ - テーマとスタイル情報
  • ppt/media/ - 画像およびその他メディアファイル

タイポグラフィと色の抽出

エミュレート対象の設計例が与えられた場合:以下の方法を使用して、まずプレゼンテーションのタイポグラフィと色を分析してください。

  1. テーマファイルを読み取るppt/theme/theme1.xml で色 (<a:clrScheme>) およびフォント (<a:fontScheme>) を確認
  2. サンプルスライドコンテンツを確認ppt/slides/slide1.xml で実際のフォント使用 (<a:rPr>) と色を確認
  3. パターンを検索:すべての XML ファイル全体で色 (<a:solidFill><a:srgbClr>) およびフォント参照を検索するために grep を使用

テンプレートなしで新しい PowerPoint プレゼンテーションを作成する

ゼロから新しい PowerPoint プレゼンテーションを作成する場合は、html2pptx ワークフローを使用して HTML スライドを正確な配置で PowerPoint に変換します。

デザイン原則

重要:プレゼンテーションを作成する前に、コンテンツを分析して適切なデザイン要素を選択してください。

  1. 主体について考える:このプレゼンテーションは何についてのものですか?どのようなトーン、業界、またはムードを示唆していますか?
  2. ブランディングを確認:ユーザーが企業/組織について言及している場合は、そのブランドカラーとアイデンティティを検討
  3. パレットをコンテンツに合わせる:主体を反映した色を選択
  4. アプローチを述べる:コードを書く前にデザインの選択について説明

要件

  • ✅ コードを書く前にコンテンツに基づいたデザインアプローチを述べてください
  • ✅ Web セーフフォントのみを使用:Arial、Helvetica、Times New Roman、Georgia、Courier New、Verdana、Tahoma、Trebuchet MS、Impact
  • ✅ サイズ、太さ、色を通じて明確な視覚的階層を作成
  • ✅ 読みやすさを確認:強いコントラスト、適切にサイズされたテキスト、クリーンな配置
  • ✅ 一貫性を保つ:スライド全体でパターン、間隔、視覚的言語を繰り返す

カラーパレット選択

創造的に色を選ぶ

  • デフォルトを超えて考える:この特定のトピックに本当に合う色は何ですか?自動パイロット選択を避けてください。
  • 複数の角度を検討:トピック、業界、ムード、エネルギーレベル、ターゲットオーディエンス、ブランドアイデンティティ (言及されている場合)
  • 冒険的に:予期しない組み合わせを試してください - ヘルスケアプレゼンテーションは緑である必要はなく、ファイナンスは紺である必要はありません
  • パレットを構築:一緒に機能する 3~5 色を選択 (支配色 + サポート色 + アクセント)
  • コントラストを確認:テキストは背景で明確に読める必要があります

カラーパレットの例 (これらを使用して創造性を刺激してください - 1 つを選択、調整、または独自のカラーパレットを作成):

  1. クラシックブルー:深いネイビー (#1C2833)、スレート灰色 (#2E4053)、シルバー (#AAB7B8)、オフホワイト (#F4F6F6)
  2. ティール&コーラル:ティール (#5EA8A7)、深いティール (#277884)、コーラル (#FE4447)、白 (#FFFFFF)
  3. ボールドレッド:赤 (#C0392B)、ブライトレッド (#E74C3C)、オレンジ (#F39C12)、黄色 (#F1C40F)、緑 (#2ECC71)
  4. ウォームブラッシュ:モーブ (#A49393)、ブラッシュ (#EED6D3)、ローズ (#E8B4B8)、クリーム (#FAF7F2)
  5. バーガンディラグジュアリー:バーガンディ (#5D1D2E)、クリムゾン (#951233)、ラスト (#C15937)、ゴールド (#997929)
  6. 深いパープル&エメラルド:パープル (#B165FB)、ダークブルー (#181B24)、エメラルド (#40695B)、白 (#FFFFFF)
  7. クリーム&フォレストグリーン:クリーム (#FFE1C7)、フォレストグリーン (#40695B)、白 (#FCFCFC)
  8. ピンク&パープル:ピンク (#F8275B)、コーラル (#FF574A)、ローズ (#FF737D)、パープル (#3D2F68)
  9. ライム&プラム:ライム (#C5DE82)、プラム (#7C3A5F)、コーラル (#FD8C6E)、ブルーグレー (#98ACB5)
  10. ブラック&ゴールド:ゴールド (#BF9A4A)、ブラック (#000000)、クリーム (#F4F6F6)
  11. セージ&テラコッタ:セージ (#87A96B)、テラコッタ (#E07A5F)、クリーム (#F4F1DE)、チャコール (#2C2C2C)
  12. チャコール&レッド:チャコール (#292929)、赤 (#E33737)、ライトグレー (#CCCBCB)
  13. ビブラントオレンジ:オレンジ (#F96D00)、ライトグレー (#F2F2F2)、チャコール (#222831)
  14. フォレストグリーン:ブラック (#191A19)、緑 (#4E9F3D)、ダークグリーン (#1E5128)、白 (#FFFFFF)
  15. レトロレインボー:パープル (#722880)、ピンク (#D72D51)、オレンジ (#EB5C18)、アンバー (#F08800)、ゴールド (#DEB600)
  16. ビンテージアーシー:マスタード (#E3B448)、セージ (#CBD18F)、フォレストグリーン (#3A6B35)、クリーム (#F4F1DE)
  17. コースタルローズ:オールドローズ (#AD7670)、ビーバー (#B49886)、エッグシェル (#F3ECDC)、アッシュグレー (#BFD5BE)
  18. オレンジ&ターコイズ:ライトオレンジ (#FC993E)、グレーっぽいターコイズ (#667C6F)、白 (#FCFCFC)

ビジュアル詳細オプション

幾何学的パターン

  • 水平ではなく対角線セクション仕切り
  • 非対称列幅 (30/70、40/60、25/75)
  • 90° または 270° で回転したテキストヘッダー
  • 画像用の円形/六角形フレーム
  • コーナーの三角形アクセント形状
  • 深さのための重なった形状

ボーダー&フレーム処理

  • 片側のみの太い単色ボーダー (10~20pt)
  • 対照的な色のダブルラインボーダー
  • フルフレームの代わりにコーナーブラケット
  • L 字形ボーダー (上+左、または下+右)
  • ヘッダーの下の下線アクセント (3~5pt 厚)

タイポグラフィ処理

  • 極度のサイズ対比 (72pt ヘッドライン対 11pt 本文)
  • 幅広い文字間隔を持つ大文字ヘッダー
  • 超大型ディスプレイ タイプの番号付きセクション
  • データ/統計/技術コンテンツ用モノスペース (Courier New)
  • 高密度情報用の圧縮フォント (Arial Narrow)
  • 強調のためのアウトラインテキスト

チャート&データスタイリング

  • キーデータ用の単一アクセント色を持つモノクロームチャート
  • 垂直の代わりに水平棒グラフ
  • 棒グラフの代わりにドットプロット
  • 最小グリッドラインまたはなし
  • データラベルは直接要素の上 (凡例なし)
  • キーメトリクスの超大型数値

レイアウトの革新

  • テキストオーバーレイ付きフルブリードイメージ
  • ナビゲーション/コンテキスト用のサイドバー列 (20~30% 幅)
  • モジュラーグリッドシステム (3×3、4×4 ブロック)
  • Z パターンまたは F パターンコンテンツフロー
  • 色付き形状上の浮いたテキストボックス
  • マガジンスタイルの複数列レイアウト

背景処理

  • スライドの 40~60% を占める単色ブロック
  • グラデーション塗りつぶし (垂直または対角線のみ)
  • 分割背景 (2 色、対角線または垂直)
  • エッジツーエッジの色帯
  • デザイン要素としてのネガティブスペース

レイアウトのヒント

チャートまたはテーブルを含むスライドを作成する場合

  • 2 列レイアウト (推奨):フルwidth を占めるヘッダーを使用し、その下に 2 列 - 一方の列にテキスト/箇条書き、もう一方にフィーチャーコンテンツを配置します。これにより、より良いバランスが得られ、チャート/テーブルがより読みやすくなります。不等列幅 (例:40%/60% スプリット) で flexbox を使用して、各コンテンツタイプの空間を最適化します。
  • フルスライドレイアウト:フィーチャーコンテンツ (チャート/テーブル) がスライド全体を占有して、最大の影響と読みやすさを実現します
  • 垂直スタックは厳禁:チャート/テーブルを単一列のテキストの下に配置しないでください - これは読みやすさとレイアウトの問題を引き起こします

ワークフロー

  1. 必須 - ファイル全体を読むhtml2pptx.md を最初から最後まで完全に読んでください。このファイルを読むときに範囲制限を設定しないでください。 プレゼンテーション作成に進む前に、詳細な構文、重要なフォーマットルール、および最適な慣行について、ファイル全体の内容を読んでください。
  2. 各スライド用に適切な寸法の HTML ファイルを作成 (例:16:9 用 720pt × 405pt)
    • すべてのテキストコンテンツに <p><h1>-<h6><ul><ol> を使用
    • チャート/テーブルが追加される領域に class="placeholder" を使用 (可視性のためグレー背景でレンダリング)
    • 重要:最初に Sharp を使用してグラデーションとアイコンを PNG 画像にラスタライズしてから、HTML で参照
    • レイアウト:チャート/テーブル/画像を含むスライドについては、より良い読みやすさのためにフルスライドレイアウトまたは 2 列レイアウトのいずれかを使用
  3. html2pptx.js ライブラリを使用して JavaScript ファイルを作成して実行し、HTML スライドを PowerPoint に変換してプレゼンテーションを保存
    • html2pptx() 関数を使用して各 HTML ファイルを処理
    • PptxGenJS API を使用してプレースホルダー領域にチャートとテーブルを追加
    • pptx.writeFile() を使用してプレゼンテーションを保存
  4. ビジュアル検証:サムネイルを生成してレイアウトの問題をチェック
    • サムネイルグリッドを作成:python scripts/thumbnail.py output.pptx workspace/thumbnails --cols 4
    • サムネイル画像を注意深く読んで確認:
      • テキストカットオフ:テキストがヘッダーバー、形状、またはスライドエッジでカットオフされている
      • テキスト重複:テキストが他のテキストまたは形状と重複している
      • 配置の問題:コンテンツがスライドの境界や他の要素に近すぎる
      • コントラストの問題:テキストと背景の間でコントラスト不足
    • 問題が見つかった場合は、HTML マージン/間隔/色を調整して、プレゼンテーションを再生成
    • すべてのスライドが視覚的に正しくなるまで繰り返す

既存の PowerPoint プレゼンテーションを編集する

既存の PowerPoint プレゼンテーションのスライドを編集するときは、生の Office Open XML (OOXML) フォーマットで作業する必要があります。これには、.pptx ファイルを展開し、XML コンテンツを編集し、パックし直すが含まれます。

ワークフロー

  1. 必須 - ファイル全体を読むooxml.md (~500 行) を最初から最後まで完全に読んでください。このファイルを読むときに範囲制限を設定しないでください。 プレゼンテーション編集の前に、OOXML 構造と編集ワークフローについて詳細ガイダンスについてファイル全体の内容を読んでください。
  2. プレゼンテーションを展開:python ooxml/scripts/unpack.py <office_file> <output_dir>
  3. XML ファイルを編集 (主に ppt/slides/slide{N}.xml および関連ファイル)
  4. 重要:各編集直後に検証して、検証エラーを修正してから進めてください:python ooxml/scripts/validate.py <dir> --original <file>
  5. 最終プレゼンテーションをパック:python ooxml/scripts/pack.py <input_directory> <office_file>

テンプレートを使用して新しい PowerPoint プレゼンテーションを作成する

既存テンプレートのデザインに従うプレゼンテーションを作成する必要がある場合、テンプレートスライドを複製および並べ替えしてから、プレースホルダーコンテンツを置き換える必要があります。

ワークフロー

  1. テンプレートテキストを抽出し、ビジュアルサムネイルグリッドを作成

    • テキスト抽出:python -m markitdown template.pptx > template-content.md
    • template-content.md を読む:ファイル全体を読んでテンプレートプレゼンテーションのコンテンツを理解してください。このファイルを読むときに範囲制限を設定しないでください。
    • サムネイルグリッドを作成:python scripts/thumbnail.py template.pptx
    • 詳細は サムネイルグリッドの作成 を参照
  2. テンプレートを分析してインベントリをファイルに保存

    • ビジュアル分析:サムネイルグリッドを確認してスライドレイアウト、デザインパターン、ビジュアル構造を理解
    • template-inventory.md にテンプレートインベントリファイルを作成して保存:
      # テンプレートインベントリー分析
      **スライド総数:[count]**
      **重要:スライドは 0 インデックス (最初のスライド = 0、最後のスライド = count-1)**
      
      ## [カテゴリ名]
      - スライド 0:[利用可能な場合はレイアウトコード] - 説明/目的
      - スライド 1:[レイアウトコード] - 説明/目的
      - スライド 2:[レイアウトコード] - 説明/目的
      [... すべてのスライドがインデックス付きで個別にリストされていなければなりません ...]
      
    • サムネイルグリッドを使用:ビジュアルサムネイルを参照して以下を特定:
      • レイアウトパターン (タイトルスライド、コンテンツレイアウト、セクション区切り)
      • 画像プレースホルダーの位置と数
      • スライドグループ全体のデザイン一貫性
      • ビジュアル階層と構造
    • このインベントリファイルは次のステップで適切なテンプレートを選択するために必須
  3. テンプレートインベントリに基づいてプレゼンテーションアウトラインを作成

    • ステップ 2 から利用可能なテンプレートを確認
    • 最初のスライドの intro またはタイトルテンプレートを選択。これは最初のテンプレートの 1 つであるべき
    • 他のスライドについては安全なテキストベースのレイアウトを選択
    • 重要:レイアウト構造を実際のコンテンツに合わせる
      • 単一列レイアウト:統一されたナラティブまたは単一トピック用
      • 2 列レイアウト:正確に 2 つの異なる項目/概念がある場合のみ使用
      • 3 列レイアウト:正確に 3 つの異なる項目/概念がある場合のみ使用
      • 画像 + テキストレイアウト:挿入する実際の画像がある場合のみ使用
      • 引用レイアウト:人からの実際の引用 (帰属付き) の場合のみ使用、決して強調用ではない
      • プレースホルダーより多くコンテンツを持つレイアウトは決して使用しない
      • 2 つの項目がある場合、3 列レイアウトに無理に押し込まない
      • 4 つ以上の項目がある場合、複数スライドに分割するか、リスト形式の使用を検討
    • レイアウトを選択する前に、実際のコンテンツピースを数える
    • 選択したレイアウトの各プレースホルダーが有意なコンテンツで満たされることを確認
    • 各コンテンツセクションの 最適な レイアウトを表すオプションを 1 つ選択
    • 利用可能な設計を活かすコンテンツとテンプレートマッピングを含む outline.md を保存
    • テンプレートマッピングの例:
      # テンプレートスライドを使用 (0 ベースのインデックス)
      # 警告:インデックスが範囲内であることを確認!73 スライドのテンプレートはインデックス 0-72
      # マッピング:アウトラインのスライド番号 -> テンプレートスライドインデックス
      template_mapping = [
          0,   # スライド 0 を使用 (タイトル/カバー)
          34,  # スライド 34 を使用 (B1:タイトルと本文)
          34,  # スライド 34 を再度使用 (2 番目 B1 の複製)
          50,  # スライド 50 を使用 (E1:引用)
          54,  # スライド 54 を使用 (F2:クロージング + テキスト)
      ]
      
  4. rearrange.py を使用してスライドを複製、並べ替え、削除

    • scripts/rearrange.py スクリプトを使用して、目的の順序でスライドを含む新しいプレゼンテーションを作成:
      python scripts/rearrange.py template.pptx working.pptx 0,34,34,50,52
      
    • スクリプトは、繰り返されたスライドの複製、未使用スライドの削除、自動的な並べ替えを処理
    • スライドインデックスは 0 ベース (最初のスライドは 0、2 番目は 1 など)
    • スライドインデックスが複数回表示され、そのスライドを複製する
  5. inventory.py スクリプトを使用してすべてのテキストを抽出

    • インベントリ抽出を実行

      python scripts/inventory.py working.pptx text-inventory.json
      
    • text-inventory.json を読む:すべての形状とそのプロパティを理解するために、ファイル全体を読んでください。このファイルを読むときに範囲制限を設定しないでください。

    • インベントリ JSON 構造:

        {
          "slide-0": {
            "shape-0": {
              "placeholder_type": "TITLE",  // または null で非プレースホルダー
              "left": 1.5,                  // インチでの位置
              "top": 2.0,
              "width": 7.5,
              "height": 1.2,
              "paragraphs": [
                {
                  "text": "段落テキスト",
                  // オプションプロパティ (非デフォルト時のみ含まれる):
                  "bullet": true,           // 明示的な箇条書きを検出
                  "level": 0,               // bullet が true の場合のみ含まれる
                  "alignment": "CENTER",    // CENTER、RIGHT (LEFT ではない)
                  "space_before": 10.0,     // 段落前の空白 (ポイント)
                  "space_after": 6.0,       // 段落後の空白 (ポイント)
                  "line_spacing": 22.4,     // 行間隔 (ポイント)
                  "font_name": "Arial",     // 最初の実行から
                  "font_size": 14.0,        // ポイント単位
                  "bold": true,
                  "italic": false,
                  "underline": false,
                  "color": "FF0000"         // RGB 色
                }
              ]
            }
          }
        }
      
    • 重要な機能:

      • スライド:"slide-0"、"slide-1" などという名前
      • 形状:ビジュアル位置で順序付け (上から下、左から右) として "shape-0"、"shape-1" など
      • プレースホルダータイプ:TITLE、CENTER_TITLE、SUBTITLE、BODY、OBJECT、または null
      • デフォルトフォントサイズ:レイアウトプレースホルダー (利用可能な場合) から抽出されたポイント単位
      • スライド番号がフィルタリング:SLIDE_NUMBER プレースホルダータイプの形状はインベントリから自動的に除外
      • 箇条書きbullet: true の場合、level は常に含まれます (0 の場合でも)
      • 間隔:ポイント単位の space_beforespace_afterline_spacing (設定されている場合のみ含まれる)
      • :RGB の color (例:"FF0000")、テーマ色の theme_color (例:"DARK_1")
      • プロパティ:デフォルト以外の値のみ出力に含まれます
  6. 置き換えテキストを生成し、データを JSON ファイルに保存 前のステップからのテキストインベントリに基づいて:

    • 重要:最初に、インベントリに存在する形状を確認 - 実際に存在する形状のみを参照
    • 検証:replace.py スクリプトは、置き換え JSON 内のすべての形状がインベントリに存在することを検証
      • 存在しない形状を参照すると、利用可能な形状を表示するエラーが表示
      • 存在しないスライドを参照すると、スライドが存在しないことを示すエラーが表示
      • すべての検証エラーは、スクリプトが終了する前に一度に表示
    • 重要:replace.py スクリプトは、すべてのテキスト形状を識別するために内部的に inventory.py を使用
    • 自動クリア:置き換え JSON で "paragraphs" を提供しない限り、インベントリからすべてのテキスト形状がクリアされます
    • テキストが必要な形状に "paragraphs" フィールドを追加 ("replacement_paragraphs" ではなく)
    • 置き換え JSON に "paragraphs" がない形状は、テキストが自動的にクリアされます
    • 箇条書き付き段落は自動的に左揃えになります。"bullet": true の場合、alignment プロパティを設定しないでください
    • プレースホルダーテキスト用に適切な置き換えコンテンツを生成
    • 形状サイズを使用して適切なコンテンツ長を決定
    • 重要:元のインベントリから段落プロパティを含める - テキストだけを提供しないでください
    • 重要bullet: true の場合、テキストに箇条書き記号 (•、-、*) を含めないでください - 自動的に追加されます
    • 必須フォーマットルール
      • ヘッダー/タイトルは通常 "bold": true を持つ
      • リスト項目は "bullet": true, "level": 0 を持つべき (bullet が true の場合、level は必須)
      • 配置プロパティを保持 (例:中央揃えテキストの "alignment": "CENTER")
      • デフォルトと異なる場合はフォントプロパティを含める (例:"font_size": 14.0"font_name": "Lora")
      • 色:RGB 用に "color": "FF0000" またはテーマ色用に "theme_color": "DARK_1" を使用
      • 置き換えスクリプトは 適切にフォーマットされた段落 を期待し、テキスト文字列ではない
      • 重複する形状:より大きいデフォルトフォントサイズまたはより適切な placeholder_type の形状を優先
    • 置き換え情報を含む更新されたインベントリを replacement-text.json に保存
    • 警告:異なるテンプレートレイアウトは異なる形状数を持ちます - 置き換えを作成する前に常に実際のインベントリを確認

    適切なフォーマットを示す段落フィールドの例:

    "paragraphs": [
      {
        "text": "新しいプレゼンテーションタイトルテキスト",
        "alignment": "CENTER",
        "bold": true
      },
      {
        "text": "セクションヘッダー",
        "bold": true
      },
      {
        "text": "箇条書き記号なしの最初の箇条書き項目",
        "bullet": true,
        "level": 0
      },
      {
        "text": "赤色のテキスト",
        "color": "FF0000"
      },
      {
        "text": "テーマ色のテキスト",
        "theme_color": "DARK_1"
      },
      {
        "text": "特別なフォーマットなしの通常の段落テキスト"
      }
    ]
    

    置き換え JSON にリストされていない形状は自動的にクリアされます

    {
      "slide-0": {
        "shape-0": {
          "paragraphs": [...] // この形状は新しいテキストを取得
        }
        // インベントリから shape-1 と shape-2 は自動的にクリアされる
      }
    }
    

    プレゼンテーションの一般的なフォーマットパターン

    • タイトルスライド:太いテキスト、場合によっては中央揃え
    • スライド内のセクションヘッダー:太いテキスト
    • 箇条書きリスト:各項目は "bullet": true, "level": 0 が必要
    • 本文テキスト:通常、特別なプロパティは不要
    • 引用:配置やフォントプロパティの特別な設定がある場合があります
  7. replace.py スクリプトを使用して置き換えを適用

    python scripts/replace.py working.pptx replacement-text.json output.pptx
    

    スクリプトは以下のことを実行します:

    • まずインベントリを抽出してすべてのテキスト形状を識別
    • 置き換え JSON 内のすべての形状がインベントリに存在することを検証
    • インベントリで識別されたすべての形状からテキストをクリア
    • 置き換え JSON で定義された "paragraphs" を持つ形状のみに新しいテキストを適用
    • JSON から段落プロパティを適用してフォーマットを保持
    • 箇条書き、配置、フォントプロパティ、色を自動的に処理
    • 更新されたプレゼンテーションを保存

    検証エラーの例:

    ERROR: 置き換え JSON 内の無効な形状:
      - 形状 'shape-99' が 'slide-0' に見つかりません。利用可能な形状:shape-0、shape-1、shape-4
      - スライド 'slide-999' がインベントリに見つかりません
    
    ERROR: 置き換えテキストがこれらの形状でオーバーフローを悪化させました:
      - slide-0/shape-2: オーバーフロー悪化 1.25"  (0.00" だった、今 1.25")
    

サムネイルグリッドの作成

PowerPoint スライドのビジュアルサムネイルグリッドを迅速な分析と参照用に作成:

python scripts/thumbnail.py template.pptx [output_prefix]

機能

  • 作成:thumbnails.jpg (または大規模デッキの場合 thumbnails-1.jpgthumbnails-2.jpg など)
  • デフォルト:5 列、グリッドあたり最大 30 スライド (5×6)
  • カスタムプレフィックス:python scripts/thumbnail.py template.pptx my-grid
    • 注:出力プレフィックスが特定のディレクトリに出力する場合は、パスを含める (例:workspace/my-grid)
  • 列を調整:--cols 4 (範囲:3~6、グリッドあたりのスライドに影響)
  • グリッド制限:3 列 = 12 スライド/グリッド、4 列 = 20、5 列 = 30、6 列 = 42
  • スライドは 0 インデックス (スライド 0、スライド 1 など)

使用例

  • テンプレート分析:スライドレイアウトとデザインパターンを迅速に理解
  • コンテンツレビュー:プレゼンテーション全体のビジュアル概要
  • ナビゲーション参照:ビジュアル外観で特定のスライドを検索
  • 品質チェック:すべてのスライドが適切にフォーマットされていることを確認

# 基本的な使用法
python scripts/thumbnail.py presentation.pptx

# オプション結合:カスタム名、列
python scripts/thumbnail.py template.pptx analysis --cols 4

スライドを画像に変換する

PowerPoint スライドを視覚的に分析するために、2 ステップのプロセスを使用して画像に変換:

  1. PPTX を PDF に変換

    soffice --headless --convert-to pdf template.pptx
    
  2. PDF ページを JPEG 画像に変換

    pdftoppm -jpeg -r 150 template.pdf slide
    

    これにより slide-1.jpgslide-2.jpg などが作成されます

オプション:

  • -r 150:解像度を 150 DPI に設定 (品質/サイズバランスのために調整)
  • -jpeg:JPEG 形式で出力 (設定用 PNG が必要な場合 -png を使用)
  • -f N:変換する最初のページ (例:-f 2 はページ 2 から開始)
  • -l N:変換を停止するページ (例:-l 5 でページ 5 で停止)
  • slide:出力ファイルのプレフィックス

特定範囲の例:

pdftoppm -jpeg -r 150 -f 2 -l 5 template.pdf slide  # ページ 2~5 のみを変換

コードスタイルガイドライン

重要:PPTX 操作用のコードを生成するときは:

  • 簡潔なコードを書く
  • 冗長な変数名と不要な操作を避ける
  • 不要な print ステートメントを避ける

依存関係

必要な依存関係 (既にインストール済みであるべき):

  • markitdownpip install "markitdown[pptx]" (プレゼンテーションからのテキスト抽出用)
  • pptxgenjsnpm install -g pptxgenjs (html2pptx を通じたプレゼンテーション作成用)
  • playwrightnpm install -g playwright (html2pptx での HTML レンダリング用)
  • react-iconsnpm install -g react-icons react react-dom (アイコン用)
  • sharpnpm install -g sharp (SVG ラスタライゼーションと画像処理用)
  • LibreOfficesudo apt-get install libreoffice (PDF 変換用)
  • Popplersudo apt-get install poppler-utils (PDF を画像に変換するための pdftoppm 用)
  • defusedxmlpip install defusedxml (安全な XML 解析用)

使用する場合

このスキルは、上記の概要で説明されているワークフローまたはアクションを実行する場合に適用されます。

制限事項

  • このスキルは、上記で説明されているスコープに明確に一致するタスクの場合のみ使用してください。
  • 環境固有の検証、テスト、または専門家のレビューの代わりとして出力を扱わないでください。
  • 必要な入力、許可、安全の境界、または成功基準が不足している場合は、停止して明確化を求めてください。

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
sickn33
リポジトリ
sickn33/antigravity-awesome-skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/sickn33/antigravity-awesome-skills / ライセンス: MIT

関連スキル

汎用その他⭐ リポ 1,982

superfluid

Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper

by LeoYeAI
汎用その他⭐ リポ 100

civ-finish-quotes

実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。

by huxiuhan
汎用その他⭐ リポ 1,110

nookplot

Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。

by BankrBot
汎用その他⭐ リポ 59

web3-polymarket

Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。

by elophanto
汎用その他⭐ リポ 52

ethskills

Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。

by jiayaoqijia
汎用その他⭐ リポ 44

xxyy-trade

このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。

by Jimmy-Holiday
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: sickn33 · sickn33/antigravity-awesome-skills · ライセンス: MIT