mbb-decks について
MBB Decksは、JSON仕様からコンサルティング形式のPowerPoint資料を作るスキルです。まず各スライドのタイトルで構成するストーリーを確認し、その後内容を展開して、定められた構成とビジュアルで.pptxを生成します。
主な機能
- 01JSONから.pptx資料を生成
- 02スライドタイトルのストーリーを先に作成
- 036セクションの資料構成
- 04MECEな箇条書きと引用ルール
- 05チャートとビジュアルシステムの指針
- 06Pythonスクリプトによる資料レンダリング
活用シーン
- 01経営層向けの戦略プレゼン作成
- 02分析をコンサルティング形式の資料に変換
- 03取締役会向け事前資料や提言資料の準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ floflo11/ mbb-decks --skill mbb-decksインストール後、Claude Code で/mbb-decksを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.gitignoreREADME.mdLICENSE.claude-plugin/marketplace.jsonexamples/data-center-landscape/README.mdbuild_vanilla.pyinput.jsonexamples/market-entry/README.mdinput.jsonscripts/build_deck.pydownload_logos.py詳細
MBB デッキ
JSON 仕様から、コンサルティング品質の .pptx デッキを生成します。MBB のハウススタイルのルール(アクションタイトルによるストーリー展開、6 セクション構成、MECE の箇条書き、引用の規律、ネイビーと白を基調としたエディトリアルなビジュアルシステム)を組み込んでいます。
使用する場面
- MBB デッキ、マッキンゼー風デッキ、コンサルティングデッキ、取締役会向け事前資料、経営幹部向け報告資料、市場参入デッキ、デューデリジェンスデッキ、提言デッキ、または戦略プレゼンテーションを求められた場合。
- 技術者以外の経営幹部向けに、分析をスライドにまとめる必要がある場合。
- Markdown のアウトラインではなく、実際の .pptx ファイルを求められた場合。
ワークフロー:まずゴーストデッキを作成し、次に展開する
ゴーストデッキのステップを省略しないでください。これが品質を左右する最大の要素です。
- レンダラーの依存関係を確認します(初回のみ)。 デッキを作成する前に、Python 3.9 以降と
python-pptxがインストールされていることを、次のコマンドを実行して確認します。
バージョンが表示された場合は、ステップ 1 に進みます。python3 -c "import pptx; print(f'python-pptx {pptx.__version__} on Python {__import__(\"sys\").version.split()[0]}')"ModuleNotFoundError: No module named 'pptx'が表示された場合は、次のようにユーザーに伝えます。レンダラーには
python-pptxが必要です。ターミナルでpip install python-pptxを実行してから、「準備完了」と入力してください。続きはこちらで進めます。 先に進む前に、ユーザーの確認を待ちます。この確認を省略しても、ビルドスクリプトは同じインストールメッセージを表示して正常に失敗しますが、事前に確認しておくほうがスムーズです。 - ゴーストデッキ。 すべてのスライド(表紙、エグゼクティブサマリーの見出し、アジェンダ項目、各コンテンツスライドのアクションタイトル、提言の見出し)について、アクションタイトルだけを作成します。上から順に読んで、ひとつの段落として成り立つようにします。状況 → 課題 → 解決策、または主張 → 根拠 → 提言という、一貫した論旨にしてください。
- ユーザーに確認します。 ゴーストデッキを表示し、「このストーリー展開で伝わりますか?展開する前に、追加、削除、並べ替えをしたい内容はありますか?」と尋ねます。確認を待ちます。
- 展開します。 箇条書き、チャート、脚注、出典を追加します。各スライドのアクションタイトルの下で、内容が MECE になるようにします。
- レンダリングします。 JSON 仕様をディスクに書き込み、
scripts/build_deck.pyを呼び出します。
デッキの構成(6 セクション)
上限:セクション 1〜5 は 15 スライド。付録に上限はありません。
| # | セクション | 備考 |
|---|---|---|
| 1 | 表紙 | タイトル、副題、作成者、組織名。テーマなし。 |
| 2 | エグゼクティブサマリー | 「つまり何を意味するのか」に答える見出しを 1 つ。MECE の箇条書き 3〜5 個。 |
| 3 | アジェンダ | セクションを 2〜4 個。セクションタイトルは区切りスライドと一致させます。 |
| 4 | セクション | 各セクションは区切りスライド(番号+タイトル)から始めます。各セクションにコンテンツスライドを 2〜4 枚配置します。 |
| 5 | 提言 | 見出し+アクション表(担当者 / アクション / 成果)。アクション表は必須です。 |
| 6 | 付録 | 任意。補足情報と裏付けとなる分析を掲載します。コンテンツスライドの形式は同じです。 |
アクションタイトルのルール
表紙、区切りスライド、付録の区切りスライドを除くすべてのスライドに、アクションタイトルを付けます。アクションタイトルが意味を伝え、本文がそれを裏付けます。
- 完全な 1 文にします。 10〜15 語で、主語+動詞+主張の形にします。
- 具体的にします。 「ベトナムの中間層の支出は 2030 年まで年平均成長率 7%で増加する」は、「市場は魅力的である」よりも優れています。
- タイトルだけで意味が通じるようにします。 アクションタイトルだけを拾い読みしても、読み手が論旨を理解できる必要があります。
- 可能な限り因果関係を示します。 「X が Y を促進する」は、「X と Y」よりも優れています。
- 疑問文やラベルは使いません。 「市場規模の推定」はラベルであり、アクションタイトルではありません。調査結果に置き換えてください。
本文を書く前に、すべてのアクションタイトルを順番に読んでください。一貫したストーリーになっていない場合は、展開する前にストーリー展開を修正してください。
MECE の箇条書き
各スライドの箇条書きは、最大 3〜5 個です。次の条件を満たす必要があります。
- 相互に排他的。 重複がないこと。
- 全体として網羅的。 アクションタイトルに関して、明らかな抜けがないこと。
- 並列構造。 1 枚のスライド内の箇条書きで、同じ文法パターンを使うこと。
- 具体的。 数字、日付、固有名詞を含めること。「複数のパートナーを検討」よりも、「現地パートナー 3 社を審査」のほうが優れています。
ビジュアルシステム
デフォルト設定は scripts/build_deck.py に記述されています。ユーザーから明示的な依頼がない限り、変更しないでください。
| 要素 | 仕様 |
|---|---|
| 背景 | 白 #FFFFFF |
| 見出し | Georgia、濃紺 #051C2C |
| 本文 | Calibri、ほぼ黒 #1A1A1A |
| アクセント | エレクトリックブルー #2251FF。罫線とセクション番号に控えめに使用 |
| グリッド線、区切り線 | ライトグレー #E5E7EB |
| 脚注、出典、ページ番号 | Calibri 8pt、ミディアムグレー #949BA8 |
| スライドサイズ | 16:9、13.333" × 7.5" |
| 余白 | 左右 0.5" |
| ページ番号 | 右下、「Page X / Y」の形式 |
| フッターの日付 | 使用しない |
| アイコン | ユーザーから明示的な依頼がない限り使用しない |
チャートの種類
アクションタイトルの主張に合ったチャートを選択してください。
| アクションタイトルの動詞 | チャートの種類 |
|---|---|
| 「増加する」「減少する」「推移した」 | 縦棒または折れ線 |
| 「〜で構成される」「〜のシェア」 | 100%積み上げ縦棒または円(円グラフは控えめに使用) |
| 「〜より高い」「1位にランクされる」 | 値で並べ替えた横棒 |
| 「〜を推進する」「〜を説明する」 | ウォーターフォールまたは積み上げ棒 |
| 「〜と相関する」 | 散布図 |
| 「X から Y へ構築する」 | ウォーターフォール |
現在、このスクリプトでは集合縦棒グラフをきれいに描画できます。その他のチャート形式では、箇条書きに切り替えてデータを文章で説明し、PowerPoint で手動でチャートを追加するか、スクリプトを拡張してください。
引用形式
- 本文中のマーカー:特定の数値や主張に出典を付ける必要がある場合、本文中に
[1]、[2]などを記載します。 - 出典行:スライド下部に
Source: [text](url); [text](url)の形式で記載します。.pptxで各出典をクリック可能なハイパーリンクとして表示するため、Markdown 形式の[text](url)構文を使用してください。複数の出典はセミコロンで区切ります。公開 URL がない出典では、(url)を付けないプレーンテキストも使用できます。 - 脚注行:出典行の上に、数値に関する補足説明(例:「シンガポールを除く」)を記載します。出典とは別のものです。
- スライドに具体的なデータの主張がない場合、出典行は不要です。
データソースのルール(重要)
このスキルの信頼性は、数値の正確さにかかっています。これらのルールは、すべてのチャート、箇条書き、数値を含む主張に適用されます。
常に現行年を使用する
今日の日付は実行時のコンテキストで確認できます。これを使用してください。
- 過去のデータの場合:入手可能な最新のリリースを引用してください。2026 年のデータセットがある場合、2023 年版を引用しないでください。
- 将来予測の場合:予測期間は現行年以降から開始してください。今日が 2026 年なら、将来の年は
2026E、2027E、2028Eとします。過去の年にE(推定)を付けないでください。 - 脚注の「時点」表記:古い日付ではなく、「as of Q[現行四半期] [現行年]」としてください。
権威があり、広く認知された情報源のみを使用する
分野ごとに、Claude が参照すべき情報源の簡潔なリストを以下に示します(網羅的なリストではありません)。
| 分野 | 権威ある情報源 |
|---|---|
| マクロ経済、貿易 | World Bank、IMF、OECD、BIS、UN ComTrade、WTO |
| クラウド、AI インフラ | Synergy Research Group、IDC、Dell'Oro Group、Gartner、JLL Data Center Outlook、Structure Research |
| エネルギー、気候 | IEA、BloombergNEF、EIA、Lazard LCOE、NREL ATB、Wood Mackenzie |
| 金融市場 | Bloomberg、S&P Global、Refinitiv (LSEG)、FactSet、Capital IQ、PitchBook、Preqin |
| コンサルティング/戦略レポート | McKinsey Global Institute、BCG、Bain(公に引用されているもの)、Oliver Wyman |
| 消費者 | Euromonitor、Nielsen、Kantar、eMarketer、Statista |
| 上場企業 | 企業の 10-K、10-Q、S-1、決算説明会のトランスクリプト(SEC EDGAR) |
| 規制、政策 | Federal Reserve、BLS、BEA、ECB、EU Commission、規制当局への提出書類 |
以下は使用しないでください:無作為なブログ投稿、AI 生成の要約、検証可能な引用元のない有料コンテンツ、数値の主張の唯一の情報源としての「Statista projections」。
各ソースには、存在する場合、クリック可能なURLを付けてください
形式:Source: [BloombergNEF Energy Transition Investment Trends, 2025](https://about.bnef.com/energy-transition-investment/); [IEA World Energy Outlook, 2024](https://www.iea.org/reports/world-energy-outlook-2024)
ビルドスクリプトは自動的に以下を行います。
- 各
[text](url)セグメントを.pptx内のハイパーリンクとしてレンダリングします。 - レンダリング時に各URLへHEADリクエストを送信します。URLが4xxエラーを返した場合、リンクは何も通知せず削除され、プレーンテキストのみがレンダリングされます。読者に壊れたリンクが表示されることはありません。
- 4xx以外の結果(ネットワークタイムアウト、DNSエラー、HEADリクエストのブロック)の場合はリンクをそのまま残します。こうしたケースでは、リンク切れだと断定できないためです。
特定のレポートの公開URLが見つからない場合は、ソースをプレーンテキストのままにしてください。URLを捏造しないでください。
チャートと解説の組み合わせ
チャートだけのスライドは作成しないでください。読者がひと目でチャートと要点を把握できるように、すべてのチャートスライドに同じスライド内の解説パネルを配置してください。チャートを説明する箇条書きが次のスライドに回ってしまう場合は、統合してください。
レイアウトは2種類です。
commentary_position: "right"(デフォルト)。チャートは左側の62%を占め、右側には箇条書き3~4項目の「KEY TAKEAWAYS」パネルを配置します。大半のチャートスライドで使用してください。commentary_position: "below"。チャートを上部に全幅で配置し(高さ約2.8インチ)、その下に2列の解説を配置します。チャートにより広い横幅が必要な場合(複数系列を含むカテゴリが5つ以上の場合)、または要点が4項目以上ある場合に使用してください。
箇条書きマーカーとしてのロゴ
解説や2列の箇条書きで、単一の固有名詞(企業、規制当局、政府系ファンド)に焦点を当てる場合は、抽象的なアイコンや通常の点ではなく、その組織のロゴを箇条書きマーカーに使用してください。このスキルは logo.dev からロゴを自動ダウンロードし(公開トークンがスキルに含まれています。非公開のクォータを使用する場合は LOGODEV_TOKEN で上書きしてください)、assets/logos/ にキャッシュします。logo.dev にまだそのドメインのブランドマークがない場合はHTTP 202が返され、プレースホルダーではなく通常の • マーカーが使用されます。
箇条書き項目には、以下の形式を使用できます。
- 文字列のみ →
•マーカーでレンダリングされます。 { "icon": "→", "text": "..." }→ グリフが紺色のマーカーとしてレンダリングされます。{ "logo": "microsoft.com", "text": "..." }→ 企業ロゴがマーカーとしてレンダリングされます。初回のレンダリング時に自動ダウンロードされ、キャッシュされます。{ "logo": "...", "icon": "...", "text": "..." }→ ロゴが優先されます。
企業などではなく、地域や原則といった概念を取り上げる箇条書きでは、logo ではなく icon を使用してください。複数の企業を挙げる場合は、箇条書きを分け、それぞれに1つの中心となる企業を含めてください。
JSON仕様
スクリプトは、以下の形式のJSONファイルを読み込みます。完全な使用例は examples/market-entry/input.json と examples/data-center-landscape/input.json を参照してください。
{
"meta": { "title": "...", "subtitle": "...", "author": "...", "organization": "..." },
"executive_summary": {
"headline": "Full-sentence claim, 15 to 25 words",
"bullets": ["...", "...", "..."]
},
"agenda": [
{ "title": "Section title", "subtitle": "Optional subtitle" }
],
"sections": [
{
"title": "Matches an agenda title",
"slides": [
{
"action_title": "Full sentence, 10 to 15 words",
"content_type": "bullets", // or "bar_chart" or "two_column"
// for content_type "bullets"
"bullets": [
"Plain bullet text",
{ "icon": "$", "text": "Bullet with abstract icon marker" },
{ "logo": "microsoft.com", "text": "Bullet with company logo marker" }
],
// for content_type "bar_chart"
"chart": {
"categories": ["A", "B", "C"],
"series": [{ "name": "...", "values": [1.0, 2.0, 3.0] }],
"unit": "USD millions"
},
"commentary": [ // optional; pairs with chart
{ "logo": "aws.amazon.com", "text": "AWS-specific takeaway" },
{ "logo": "microsoft.com", "text": "Azure-specific takeaway" },
{ "icon": "◆", "text": "General takeaway not tied to one company" }
],
"commentary_position": "right", // or "below"; default "right"
// for content_type "two_column"
"left_header": "...",
"left": [ "plain", { "icon": "$", "text": "..." }, { "logo": "...", "text": "..." } ],
"right_header": "...",
"right": [ /* same shape as left */ ],
"footnote": "Optional. Auto-prefixed with '*'. Body or chart label should carry a matching '*' marker.",
"source": "Optional. Format: '[Org], [Publication], [Year]; [Org 2], [Year]'"
}
]
}
],
"recommendations": {
"headline": "Approve / proceed / invest claim",
"actions": [
{ "owner": "CFO", "action": "Specific action by date", "outcome": "What it produces" }
]
},
"appendix": [
// Same shape as section slides
]
}
ビルドスクリプトの実行
python scripts/build_deck.py <input.json> <output.pptx>
スクリプトはスライド数を検証し、メインのデッキが15枚を超える場合に警告を出力します。
よくある間違い
| 間違い | 修正方法 |
|---|---|
| アクションタイトルがラベルになっている(「市場規模の推定」など) | 動詞と主張を含む文に書き換えます |
| アクションタイトルがストーリーとしてつながっていない | 順序を入れ替えるか、書き換えます。すべてを一段落として声に出して読みます。 |
| 1枚のスライドに箇条書きが5つを超えている | 3つに減らすか、スライドを分けます |
| 箇条書きがアクションタイトルを繰り返している | 箇条書きには主張を言い換えるのではなく、根拠を加えます |
| 解説のないグラフスライド | 同じスライドにcommentaryパネルを追加します。グラフを説明する箇条書きを次のスライドに持ち越してはいけません |
| グラフが装飾的で、主張の根拠になっていない | アクションタイトルを裏付けるグラフに置き換えます |
| データスライドに出典がない | 出典を追加します。数値を含む主張にはすべて出典が必要です。 |
| 本文に装飾アイコンが散りばめられている | 削除します。アイコンやロゴは箇条書きのマーカーとしてのみ使用し、ページの装飾には使いません |
| 箇条書きで企業名を挙げているのに、抽象的なアイコンを使っている | {"logo": "<domain>", "text": "..."}に置き換えます。ロゴがマーカーになります |
| 同じパネル内でロゴマーカーと紺色の円形アイコンを併用している | アイコンの背景にある円を削除します(スクリプトが自動で処理します) |
| emダッシュ | ピリオドまたはカンマに置き換えます。スタイルガイドではemダッシュを使いません。 |
| フッターの日付 | 削除します。スタイルガイドでは日付を記載しません。 |
| メインデッキのスライドが15枚を超えている | 詳細を付録に移します。 |
中止してやり直すべき危険信号
- 「先にスライドを書いて、あとでストーリーを考えます。」中止します。まずゴーストデッキを作成します。
- 「アクションタイトルが長すぎるので、短くします。」完全な主張のままか確認します。ラベルのほうが短い場合、それは適切なトレードオフではありません。
- 「箇条書き3つでは足りません。もっと伝えたいことがあります。」スライドを2枚に分けるか、詳細を付録に移します。
- 「グラフを1枚のスライドに置き、説明する箇条書きを次のスライドに置きます。」中止します。同じスライドにまとめ、
commentaryパネルを追加します。 - 「見た目をよくするため、アイコンをいくつか追加します。」企業名を挙げる箇条書きにはロゴを使います。抽象的なアイコンは概念を示す箇条書きにのみ使います。装飾アイコンを散りばめてはいけません。