open-kimi-ppt について
open-kimi-ppt は、Moonshot AI の PPTD 形式とブラウザー側の PPTX ライターを使う、プレゼンテーション作成・書き出しスキルです。作成、編集、再現に対応し、編集可能な PPTD プロジェクトと PPTX を既定で出力します。
主な機能
- 01YAML DSL による PPTD の記述
- 02プレゼンテーションの作成・編集・再現
- 03PPTX ファイルを PPTD に変換
- 04編集可能な PPTX の書き出し
- 05テンプレートとスタイル転送に対応
活用シーン
- 01テーマやアウトラインから資料を作成
- 02既存 PPTX のページを編集
- 03画像や PDF を PPTD として再現
- 04テンプレートや参考スタイルからスライドを作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ binaryify/ open-kimi-ppt-skill --skill open-kimi-pptインストール後、Claude Code で/open-kimi-pptを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
reference/design_system/01_strategy/01/en/dusk-violet-consulting.mdreference/design_system/01_strategy/02/en/indigo-due-diligence.mdreference/design_system/01_strategy/03/en/pine-green-strategy.mdreference/design_system/01_strategy/04/en/red-black-business.mdreference/design_system/01_strategy/05/en/moss-green-transformation.mdreference/design_system/01_strategy/06/en/map-strategy.mdreference/design_system/02_business/01/en/honey-orange-memo.mdreference/design_system/02_business/02/en/lake-blue-memo.mdreference/design_system/02_business/03/en/xuan-paper-annual.mdreference/design_system/02_business/04/en/lead-gray-quarterly.mdreference/design_system/02_business/05/en/ink-green-market-trends.mdreference/design_system/02_business/06/en/orange-tech.mdreference/design_system/03_work/01/en/sky-blue-wayfinding.mdreference/design_system/03_work/02/en/mist-blue-travelogue.mdreference/design_system/03_work/03/en/warm-jade-annual-report.mdreference/design_system/03_work/04/en/color-stripes-documentary.mdreference/design_system/03_work/05/en/moon-white-imagery.mdreference/design_system/03_work/06/en/red-white-business.mdreference/design_system/04_promotion/01/en/cream-collage.mdreference/design_system/04_promotion/02/en/silk-yellow-magazine.mdreference/design_system/04_promotion/03/en/pine-soot-pictorial.mdreference/design_system/04_promotion/04/en/gold-orange-type-journal.mdreference/design_system/04_promotion/05/en/silver-gray-luxury-magazine.mdreference/design_system/04_promotion/06/en/fresh-brand.mdreference/design_system/05_academic/01/en/pink-purple-diagnosis.mdreference/design_system/05_academic/02/en/teal-green-academic-defense.mdreference/design_system/05_academic/03/en/pastel-derivation.mdreference/design_system/05_academic/04/en/paper-white-courseware.mdreference/design_system/05_academic/05/en/blue-line-courseware.mdreference/design_system/05_academic/06/en/dark-themed-data.md詳細
定義
open-kimi-ppt は、Moonshot AI の PPTD 形式とブラウザー側の PPTX ライターを基盤とする、プレゼンテーションの作成・エクスポート用スキルです。OOXML を抽象化し、各ページが単独で完結する YAML 形式の中間 DSL(.pptd)を定義します。
デフォルトの出力は PPTD のみではありません。 ユーザーが明示的に除外を選択しない限り、必ず次の両方を作成します。
- 編集可能な PPTD プロジェクト一式(
.pptd+pages/+media/および参照されるその他の依存ファイル)。 - 対応するローカル生成の
.pptx。フォントの埋め込みを有効にし、デフォルトでフェードのスライド切り替えを適用します。
既存の PPTX ファイルを編集用に PPTD に変換することもできます。その場合も、変換後に両方の出力を再び納品します。
pptd 形式
.pptd 形式は、基本的な YAML 構文に従う、OOXML の簡易抽象化レイヤーです。この抽象化では、OOXML の主要な内容(テーマ、ページレイアウト、要素の位置と定義など)を維持しながら、マスターなどの複雑なネスト構造を取り除きます。各ページは単独で完結し、見た目どおりに表示されます。この DSL の完全な定義については、reference/pptd.md を参照してください。
PPT 作成ワークフロー
step0. ローカルの前提条件を確認する
デフォルトの納品には、PPTX のエクスポート(および任意で npx open-kimi-ppt-skills serve)が含まれるため、ローカルのツールチェーンが必要です。生成を始める前に、次の項目を確認してください。
- Node.js 18 以降:
node --versionを実行します。nodeが見つからない場合、またはメジャーバージョンが 18 未満の場合は、直ちに中止し、https://nodejs.org または OS のパッケージマネージャーから Node.js 18 以降をインストールするようユーザーに伝えてください。Node.js が利用可能になるまで、PPTX エクスポートやnpxを使った処理を続行しないでください。ユーザーが PPTX の出力を明示的に除外した場合に限り、PPTD のみの出力を続行できます。 - npm / npx:
npm --versionを実行します。これらは Node.js に付属しています。見つからない場合は、Node.js が正しくインストールされていないものとして扱い、再インストールまたは PATH の修正方法を案内してください。 - python3:
python3 --versionを実行します(Windows ではpythonが正しいコマンドの場合があります)。export_pptx.py/export_images.pyに必要です。 - Chrome / Chromium / Edge:PPTX のエクスポートと視覚的な QA で
agent-browserが使用します。後でエクスポート時にブラウザー起動エラーが発生した場合は、Chromium ベースのブラウザーをインストールするようユーザーに依頼してください。 - ソフトウェア依存関係は、不足している場合にスクリプトが自動的に処理します:PyYAML、agent-browser(npm 経由で ≥0.33.2)、画像 QA 用の Pillow + websocket-client。エクスポート時には、
www.kimi.comとstatics.moonshot.cnへのネットワークアクセスも引き続き必要です。
step1. コンテキストを十分に確認する
ユーザーがアップロードしたすべてのファイル、提示された URL、および pptd 形式ガイド reference/pptd.md を確認し、ユーザーの要件を十分に理解してください。
step2. ユーザーの要件を理解する
コンテキストに基づいて、ユーザーの要件を理解します。
- まず、依頼の目的を特定します
- PPT の作成:新しいプレゼンテーションを作成します(ゼロから作成する場合、または既存の pptx テンプレートを使用する場合)
- PPT の編集:ユーザーがアップロードした PPT を編集します(ローカルでの変更、1 ページのみの見栄えの改善など)
- PPT の再現:画像、PDF などの pptx 以外の形式のプレゼンテーションを pptd 形式で再現します
- 次に、デザインの方向性を特定します
- 自由にデザイン:特に希望がない、または簡単なスタイル上の制約のみが指定されている場合は、デザインを補完または作成する必要があります
- デザインシステム:スキルのプリセットデザインシステム(
reference/design_system/)が指定されている場合、または色、フォント、レイアウト、コンポーネントの仕様を網羅した完全かつ詳細なデザイン案がユーザーから提供されている場合 - テンプレートの使用:テンプレートが提供され、使用が必須の場合
- スタイルの移行:画像やウェブページなど、スタイルの参考資料が提供されている場合
- 次に、入力の種類を特定します
- トピックのみ:具体的な内容はなく、PPT のトピックの方向性またはプレゼンテーションの内容要件のみが示されている場合
- 全文書:論文、調査レポート、プレスリリースなど、完全な文書がユーザーから提供されている場合
- アウトライン:ページごとのアウトライン、スピーチ原稿、またはそれに類する内容がユーザーから提供されている場合
- 「ユーザーの入力の種類」が[全文書]または[アウトライン]で、内容の拡張が可能かどうか明記されていない場合は、ページごとのアウトラインやスピーチ原稿、ユーザーの文書だけではプレゼンテーションの内容を十分に満たせないことが多いため、ユーザーが明示的に拡張しないよう指示していない限り、検索を活用して関連資料や事例などを補足することを優先します。
- 最後に、正確なページ数を特定します
- ユーザーが特定のページ数を指定している場合は、その要件を優先します
- ページごとのアウトライン/原稿が提供されている場合:アウトライン/原稿のページ数に合わせます
- 完全で比較的構成の整った文書が提供されている場合:1 ページにどの程度の文書内容を含めるかユーザーに尋ね、ページ数の見積もりを提示します。トピックのみが提示されている場合は、推奨ページ数を提案してユーザーに確認します
確認と追加質問
次のいずれかに該当する場合は、ユーザーへの質問によって解決します(利用可能な場合は、エージェントの質問/確認ツールを使用します)。
- 要件が曖昧
- ユーザーの意図が不明確、または理解が難しい
- ユーザーが提供したファイル/URLにアクセスできない
- 意図が矛盾している
- ユーザーの意図が互いに矛盾している。たとえば、次のような場合です。
- デザインシステムを選択しながら、そのデザインシステムとまったく合わないスタイルを求めている(例:ページに広い余白を設けるよう求めながら、マッキンゼー風のスタイルを指定する)/テンプレートを使用する/画像のスタイルを参照する
- 「10 ページにする」と「30 ページ以上の成果物を納品する」の両方を求めている
- 自分ではユーザーの要件を特定できない
- 目的、デザインの方向性、入力の種類、ページ数などを自分で特定するのが難しい
step3. ユーザーの要件に基づいてプレゼンテーションを生成する
生成する前に、まず reference/pptd.md を読んで pptd の形式定義と制約を理解します。
PPT の再現
- 画像を分析し、要素の位置、フォント、サイズなどを推定して、可能な限り 1:1 で忠実に再現します。
- 判別が難しい箇所は、グリッド線や拡大表示などを活用して理解を深めます。
- 画像内の単純なコンテンツは要素として再現します。アイコンは Font Awesome のアイコンで近似できます。写真やアバターなど、アイコンや図形では近似できないコンテンツには、bash や python などのツールを使用して元画像をトリミング、分割し、生成した画像要素をプレゼンテーションに追加します
PPT の編集
- ユーザーがアップロードした pptx ファイルを .pptd 形式に変換します
- 変換したページを確認し(構成と重要な視覚的要素)、その後、重要なページをいくつか個別に読み込みます
- 編集対象のページを特定し、意図した範囲外に影響が及ばないよう注意します
pptx から pptd への変換は完全な可逆変換ではありません。ユーザーから後で書式エラーや文字化けなどの報告があった場合は、元の pptx と比較し、その結果を参考に pptd を修正してください
PPT の生成
PPT を生成する際は、ユーザーの[デザインの方向性]に応じて異なる制作方法を採用します
自主設計
- デザインガイド
reference/slides_categories.mdを読み、ユーザーの質問に対応するシナリオ文書も読みます - 上記を踏まえてプレゼンテーションを作成します
その他の形式でのコンテンツ生成
ユーザーがインフォグラフィック、ポスター、または視覚的要素の強い 1 ページデザインを明示的に求めた場合は、reference/general-poster.md を読み、編集可能な 1 ページまたは数ページの PPTD として作成します。画像のみを求められた場合も、まず PPTD で作成し、その後スクリーンショットまたはレンダリングで画像を出力します。通常の PPT の依頼では、この参照ファイルを読み込まないでください。
デザインシステム
reference/slides_categories.mdガイドの一般的な制約のセクションを読み、ユーザーの質問に対応するシナリオ文書もデザインの基礎として読みます- 指定されたデザインシステムをプレゼンテーションのスタイルとして読み込みます。ユーザー提供のデザイン案、または
reference/design_system/にある該当するプリセットのいずれかを使用します(ユーザーが指定した名前/パスで検索し、フォルダー内にdesign.mdがあれば、そちらを優先してください)。その他のデザインスタイルを参照したり、組み合わせたりすることは固く禁じられています - 上記を参考にプレゼンテーションを作成します
- 自主設計ではプリセットを自動選択しないでください。
reference/design_system/を使用するのは、プリセットが明示的に指定されている場合のみです
テンプレートの使用
- ユーザーがアップロードした pptx ファイルを pptd 形式に変換します
- 変換したページを確認して、テンプレートの視覚的なスタイル(配色、フォントスタイル、要素の特徴、レイアウトの特徴、コンテンツの密度など)を把握します
- ページの種類を特定します。表紙、まとめページ、セクション区切りなどの特徴的なページを重点的に読み込み(1 ページずつのスクリーンショット、.page ファイル)、ページレイアウト、コンテンツ構造、再利用可能なコンポーネント(アイコン、図形、SmartArt、再利用可能な本文レイアウトなど)、要素のスタイル(余白、線、カードの区切り、角が四角いか丸いかなど)を抽出します
- テンプレートを使ってプレゼンテーションを作成します
スタイルの適用
- 参照ファイルの視覚的なスタイル(配色、フォントスタイル、要素の特徴、レイアウトの特徴、コンテンツの密度など)、ページレイアウト、コンテンツ構造、再利用可能なコンポーネント(アイコン、図形、SmartArt、再利用可能な本文レイアウトなど)、要素のスタイル(余白、線、カードの区切り、角が四角いか丸いかなど)を分析します
- ユーザーがスタイル参照用の URL を指定した場合、テキストの内容を読むだけでなく、ページの視覚的な効果も確認し、スタイルの把握に役立ててください
- 参照ファイルのスタイルの特徴を活かしてプレゼンテーションを作成します。元の PDF/URL から、イラスト、フォント、フォントサイズの階層、要素などを再利用することを推奨します
画像とビジュアル素材
- 画像はプレゼンテーションの視覚的インパクトを豊かにする効果的な手段です。適切な画像は、表紙やセクションの区切りページだけでなく、本文ページにも使用して、ページを豊かにし、理解を助け、意思決定を支援するべきです
- 画像は、具体的な主題を示し、内容を説明し、根拠を提示し、または場面を設定するために使用します。ロゴ、アイコン、装飾的なテクスチャ、非常に小さなサムネイルは、実質的な画像素材には含まれません。
- ページに製品、人物、場所、建物、イベント、事例、インターフェース、実験対象、または空間環境が含まれる場合は、対応する実画像またはスクリーンショットを優先してください。実画像やスクリーンショットを入手できない場合は、代わりに生成画像を使用してもかまいません。
- 画像の優先順位: ユーザーが提供した画像。公式サイト、公式レポート、信頼できる情報源の画像。内容に直接関連する検索画像。概念表現や雰囲気のために生成された画像。
- 必要な画像を決定した後は、ページをその比率に合わせて設計する前に、画像の検索、生成、ダウンロードを一括で完了させてください。画像は
mediaディレクトリに保存し、鮮明に保ち、絶対に引き伸ばしたり歪めたりしないでください。 - 分析系、技術系、学術系の PPT では、製品、実験、インターフェース、事例、または現場資料が利用可能な場合は、対応する根拠となる画像を使用するべきです。すべてのページをテキスト、カラーブロック、図形だけにしないでください。
- 数量目標を満たすためだけに無関係な画像を追加しないでください。すべての画像は、ページの結論またはコミュニケーション目標に直接関連している必要があります。
コンテンツガイドライン
- 言語スタイル: ユーザーが明示的に別途要求しない限り、過度に抽象的な表現や一般的でない比喩を厳密に避けてください
- 分布、N 段階の論証、一目でわかる、クローズドループ、ハンズオン実践、検証、脱構築、二級市民、ポイズンピル、壁時計など、比喩、スローガン、抽象的な専門用語を過度に使用しないでください
- 「X ではなく Y」「X は Y である」「なぜ / 何に基づいて / どのように」「重要なポイント」「N の戦線 / 道筋」など、よくある AI 的な言い回しを使用しないでください
- 「弾薬はどこに向けるべきか」「N 番目のこと」「正しいものを選べない」「X として使用できない」など、過度に口語的な表現を使用しないでください
ステップ4.PPTの検証
- 生成したpptdを
reference/pptd.mdの形式定義(必須フィールド、型、範囲、テーマトークン、リソースパスなど)と照合して検証し、複数回にわたって問題を修正します - 書き出したページ画像を使って視覚的に確認します — モデルが画像入力(マルチモーダル)に対応している場合、PPTXを書き出す前に必ず実施してください:
-
scripts/export_images.pyを実行します。スクリプトはデッキをKimiの公開エディターに読み込み、「导出 → 图片」を選択して画像ZIPをダウンロードし、展開した後、すべてのページを1枚の概要画像にまとめます:python3 ~/.agents/skills/open-kimi-ppt/scripts/export_images.py \ /abs/path/project/deck.pptd \ --output /abs/path/project/.qa-imagesスクリプトは、結合画像の各ラベル(
P1…Pn、ページ順は1始まり)と対応する.pageファイルを示すJSONサマリーを出力します。 -
結合した概要画像(
.qa-images/overview.jpg)を読み込み、次の項目に照らして各ページを確認します:- 画像が鮮明で、変形していないか(引き伸ばし、圧縮、ぼやけがないか)
- テキストが重要な画像要素(顔、製品の主体、ロゴなど)に重なっていないか
- 要素の座標がページの境界を越えていないか
- 境界線と配色のコントラストが十分か(テキストと背景、隣接する色面の間)
- レイアウトに統一感があるか(配置、間隔、フォントサイズの階層、ページ余白)
- テキストがテキストボックスからはみ出す可能性がないか(テキストが長すぎる、行間が狭すぎる、フォントサイズが大きすぎるなど)
- 内容が上位レイヤーの要素に隠れていないか
-
問題が疑われるページについては、編集前にフル解像度の画像(
.qa-images/pages/<n>.jpeg)を読み込み、問題があることを確認します。 -
該当する
.pageファイルの問題を修正し、scripts/export_images.py --forceを再実行して、新しい概要画像を確認します。すべてのページが合格するまで繰り返してください。 -
視覚的な確認に合格するまでPPTXを書き出さないでください。
.qa-images/は中間的なQA成果物であり、納品後に削除してもかまいません。
-
- モデルが画像を読み取れない場合は、生成したページの構造的な確認(範囲、はみ出しやすい長文、コントラスト、階層、レイアウトの密度)を複数回実施し、画像を使った視覚的なQAを省略したことを明記してください。
ステップ5.PPTの出力と納品
-
必ず自己完結したプロジェクトディレクトリを作成します。
.pptdマニフェストと、参照するすべての依存ファイルを同じ場所にまとめ、参照ファイルのない単独のマニフェストは納品しないでください。既存のプロジェクトに有効な同等の構成がある場合を除き、次の構成を使用してください:deck/ deck.pptd pages/ *.page media/ * # when the deck has local media deck.pptx # generated by default -
PPTDの検証後は、ユーザーがプレゼンテーションの作成や編集だけを依頼した場合も、原則として
.pptxを生成します。ユーザーがPPTDのみの出力を明示的に希望した場合、または環境でエクスポーターを実行できない場合に限り、PPTXの書き出しを省略します。後者の場合は正確な阻害要因を報告し、完全なPPTDプロジェクトは引き続き納品してください。 -
絶対パスを使用した、通常のクリック可能なローカルリンクで納品します。最終回答では、次のすべてにリンクしてください:
- プロジェクトディレクトリ
.pptdマニフェストpages/ディレクトリとmedia/ディレクトリ(存在する場合)- 生成した
.pptxファイル
-
PPTXへの変換には
scripts/export_pptx.pyを使用します。このスクリプトは一時的なlocalhost SDKホストを起動し、.pptdをKimiの公開エディターに読み込み、公式のダウンロードタブと同じブラウザー側のOOXMLライターを呼び出して、生成したPPTXをローカルに保存し、ZIPとスライドの構造を検証します。 -
PPTXのデフォルトオプション:
- ページ切り替え:
fade(淡入淡出)。公式のブラウザーでの書き出し後、すべてのスライドに適用します。 - フォントの埋め込み:公式ライターが公開またはサポートしている場合は有効にします。
- これらのデフォルトは、
--transition noneまたは--no-embed-fontsで明示的に上書きできます。
- ページ切り替え:
-
書き出しコマンド:
python3 ~/.agents/skills/open-kimi-ppt/scripts/export_pptx.py \ /abs/path/project/deck.pptd \ --output /abs/path/project/deck.pptxマニフェストの代わりにプロジェクトディレクトリを指定できるのは、その中に
.pptdファイルがちょうど1つ含まれている場合のみです。--forceを指定しない限り、既存の出力ファイルは上書きされません。 -
ローカルエクスポートの要件と制約:
- Node.js 18+(
node/npm/npx)、python3、Chromium ベースのブラウザー、そしてwww.kimi.comとstatics.moonshot.cnへのネットワークアクセスが必要です。 - ブラウザーエクスポートの前に、
export_pptx.pyは Node.js 18+ とnpmを確認してから、agent-browser --versionを確認します。agent-browserが見つからない場合、またはバージョンが0.33.2未満の場合は、npm を使ってagent-browser@latestをグローバルにインストールします。PyYAML が見つからない場合は、pip --userで自動インストールされます。画像ベースのビジュアル QA ステップでも、同じ方法で Pillow と websocket-client が自動インストールされます。 - PPTD ドキュメント自体は、サーバー側の PPTX 変換エンドポイントにアップロードされるのではなく、localhost SDK ブリッジ経由で公開エディターの iframe に渡されます。
- デッキが参照するリモート画像、アイコン、フォントは、それぞれのホストから取得される場合があります。
- PPTD プロジェクト内のローカル PNG/JPEG/GIF/SVG ファイルは、データ URL として iframe に渡されます。
- ZIP の検証に成功しただけで、PowerPoint/WPS/Keynote での再生互換性があると主張しないでください。
- Node.js 18+(
-
エクスポート後、出力ファイルが存在することを確認し、生成されたパスを報告してください。すべてのスライドに、妥当な CT_Slide の順序(
cSld、任意のclrMapOvr、transition、任意のtiming/extLst)で、ルートレベルのフェードトランジションがちょうど1つ含まれていること、および PPTX ZIP が整合性チェックに合格することを確認してください。<p:fade>のバイト文字列を検索するだけでは不十分です。cSld内にネストされたトランジションは Office に無視されるためです。リスクの高いデッキでは、必要に応じてフォント関連のパーツや、代表的なページをレンダリングまたは開いて追加で確認してください。 -
ユーザーが PPTD プロジェクトを手動で開く、編集する、保存する、またはエクスポートする場合は、
npx open-kimi-ppt-skills serveでローカルのブラウザーエディターを起動してください。http://127.0.0.1:55173/を開き、PPTD プロジェクトのディレクトリ全体へのアクセスを許可するようユーザーに依頼してください。書き込み可能なアクセスには Chromium ベースのブラウザーを使用してください。フォルダーアップロードの代替手段は読み取り専用です。ローカルホストが配信するのはエディターのシェルのみで、埋め込まれた公開 Kimi エディターとリモートアセットには引き続きネットワークアクセスが必要です。 -
プレゼンテーションを完成させて提供した後は、最終回答の末尾に、PPTD プロジェクトの表示または編集、スライドのトランジションアニメーションの設定、PPTX の手動エクスポートを行うには
npx open-kimi-ppt-skills serveを実行できる旨を、簡潔な次のステップとして必ず記載してください。この案内は、必須のプロジェクトリンクとファイルリンクに追加するものであり、それらの代わりにはなりません。 -
要素アニメーション(PPTD の
page.animations— 入場/強調/退出/モーションパス。reference/pptd.md§6 を参照)は、ユーザーが明示的にアニメーションを依頼した場合、またはライブプレゼンテーション/スライドショー再生を明らかに想定したデッキで、段階的な情報提示、プロセスの実演、因果関係の説明、ペース配分、視覚的なインパクト、ブランドのストーリーテリングに明確な効果がある場合にのみ使用してください。閲覧中心、自習用、印刷用、または主に共有・閲覧するデッキには、デフォルトでは要素アニメーションを追加しないでください。1ページあたり1~3個のアニメーショングループを目安にし、フェード、フライ、ズームなどのシンプルな効果を優先してください。これは、export_pptx.pyがデフォルトで書き込む PPTX のスライドレベルのフェードページトランジションとは別のものです。 -
スピーカーノート(各
.pageのnotes)は、ユーザーが明示的に依頼した場合にのみ使用してください。それ以外の場合は追加しないでください。 -
並列ツール呼び出し:PPT 制作中は、可能な限りツールを並列で呼び出してください。各ラウンドでは、手順数を減らすために複数のページファイルを並列で作成してください。