consulting-pptx-skill
AIに「まじ」なPowerPointを作らせるためのClaude Codeスキル。 AIワークフロープラットフォーム Jinba を提供するメンバーにより作成されました。
スライドの設計規約、規約違反を見つける機械チェック、62型のHTMLパーツ集(基本27+追加35)、型カタログPDFをまとめたものです。資料は HTML(16:9)で組み、Chrome で PDF に書き出します。
進め方は、規約を読む → パーツ集から必要なパーツを取り出して1枚ずつ組む → 機械チェックを通す → 作り方を知らない別のエージェントにレビューさせる、の順です。
A Claude Code skill for generating boardroom-quality decks: a slide-design rulebook, an automated rule checker, a 62-part HTML slide library (16:9, one section per slide, printed to PDF via Chrome), and a visual catalog PDF.
私たちが実際に毎週の提案書・報告書づくりで使っている仕組みの公開版です。解説記事はこちら → AIにまじなスライド作らせる(note)
企業でお使いの方へ
本質は references/slide-rules.md
このリポジトリでいちばん価値があるのは、実はテンプレでもスクリプトでもなく、slide-rules.md というテキストファイルです。「結論はタイトルに書く」「角丸禁止」「塗りのあるボックスに枠線を付けない」「1資料1用語」「前提・定義は左、帰結は右」…。
使い方は3つだけです。AIに資料を作らせる前に毎回このファイルを読ませる。出力後に scripts/check_deck.py で違反を機械検出する。最後に references/content-review-prompt.md の指示文で、作り方を知らない別のエージェントにデッキを読ませ、日本語・論理・矛盾の指摘を受けて採用分だけ直す。 AIはセッションごとに記憶がリセットされるので、口頭で注意しても定着しません。ルールをファイルにして毎回読ませるのが定着させる方法です。
良いスライドを決めるのは型ではなく、組んだ後の調整です。表を2枚に割る、右カラムを帰結の形に書き直す、タイトルだけを通して読んでストーリーを繋ぎ直す。型に囚われず直し、そこで受けた指摘を slide-rules.md に1行足す。この繰り返しが品質の源で、型カタログとパーツ集は「たたき台を早く出して、調整に時間を回す」ための道具です。
自社で使うときは、slide-rules.md に自社の規約・指摘を追記して育ててください。
62型のスライド型カタログ
入口は assets/SlideCatalog_16x9.pdf(62ページ)です。P.1〜27 が基本パーツ集、P.28〜62 が追加パーツ集を印刷したもので、型ID・型名・使いどころの一覧は references/archetype-catalog.md にあります。
「62型」は作れる見せ方の上限ではありません。実際のデッキでは、型を組み合わせたり崩したりして規約の範囲で自由に組むので、見せ方のパターンはこれより多くなります。型カタログは「レイアウトの発想帳」として使い、合わなければ捨ててください。
パーツ集の使い方
| ファイル | 中身 | 使用頻度 |
|---|---|---|
templates/freeform_parts_16x9.html(基本パーツ集) |
表紙・全体マップ・目次・章扉・矢羽・前提→帰結・軸のある表・主張パネル・評価表・分布図など27パーツ | 高い。まずここから |
templates/freeform_parts_more_16x9.html(追加パーツ集) |
エグゼクティブサマリー・積み上げ棒・ブリッジ・散布図・比較表・マトリクス・イシューツリー・ロードマップ・ガントなど35パーツ | 低い。基本で足りないとき |
どちらも 16:9・1 section = 1スライドの単体HTMLです。scripts/new_deck.py --parts b01,m05,... のようにパーツ番号を並べると、必要なパーツだけを取り出した1本のHTMLができます(2ファイルの見た目の定義は、衝突しないようにスクリプトが結合します)。あとはプレースホルダー(本文 Text 1、項目名 ラベル 1、見出し タイトル 1、数値 00、年 YYYY年、出典 出典:Source 1)を実物に差し替えます。残っていると check_deck.py が FAIL にします。
各 section のタイトル欄には型名だけが入っていて、見本の主張文は置いていません。見本文があると、その文型をなぞった資料になってしまうからです(slide-rules §2.8)。タイトルは必ず自分のストーリーラインから書きます。
色と書体は両ファイルで同じ既定です(暖色系: 生成りの地・濃茶の文字・茶のアクセント。見出しは明朝、本文はゴシック)。各ファイルの `` 冒頭にある :root の変数で一括管理していて、ネイビー系にする値はコメントで同梱しています。
セットアップ
# 1. Claude Code のスキルフォルダに clone する(これだけで規約・パーツ集・機械チェックが使える)
git clone https://github.com/carnot-tech/consulting-pptx-skill.git ~/.claude/skills/consulting-pptx-skill
# 2.(任意)実レンダリング検査 check_layout.mjs を使う場合。Node.js が必要。playwright と Chromium が入る
cd ~/.claude/skills/consulting-pptx-skill && npm run setup
# 3.(任意)PPTX に変換する・PPTX を check_deck.py で検査する場合(変換には Node.js 22 以上と Chrome も使う)
pip3 install python-pptx
scripts/check_deck.py(規約の機械チェック)とscripts/new_deck.py(たたき台の生成)は Python 標準ライブラリだけで動きます。- PDF 化は Chrome のヘッドレス印刷を使います(コマンドは次節)。
package.jsonは手順2の playwright を入れるためだけのものです。node_modules/は .gitignore 済みです。
更新と自分用のカスタマイズ
規約と機械チェックは使った人の指摘で頻繁に直ります。週に 1 回を目安に最新を取り込んでください。
cd ~/.claude/skills/consulting-pptx-skill && git pull
自分の組織の規約・禁止語・テンプレは local/ に置きます(local/README.md 参照。git 管理外なので git pull で消えません)。スキルは本体の規約を読んだ後に local/slide-rules.local.md を読み、重なる規則はそちらを優先します。本体のファイルを直接書き換えると更新のたびに衝突するので、組織固有の規則は local/ に、どの組織でも効く規則は PR にしてください。
手動で使う場合
python3 scripts/new_deck.py --list # パーツ番号と型名の一覧
python3 scripts/new_deck.py --parts b01,b02,m05,b06,b09,b10 --title "資料名" -o mydeck.html # たたき台を生成
python3 scripts/check_deck.py mydeck.html # 規約の機械チェック(FAIL 0 にする)
python3 scripts/check_deck.py mydeck.html --forbid ~/.config/deck-forbidden-terms.txt # 社外に出す前に顧客名・社内語の残りを検査(リストはリポジトリ外に置く)
node scripts/check_layout.mjs mydeck.html # フッター重なり・はみ出し・空きの多いページの実レンダリング検査
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --headless --disable-gpu \
--no-pdf-header-footer --print-to-pdf=mydeck.pdf mydeck.html
python3 scripts/html_to_pptx.py mydeck.html # PPTX を求められたときだけ: 編集できる PPTX に変換
PowerPoint(.pptx)にする流れ
まず HTML で仕上げ、PPTX にするのはユーザーから明示されたときだけにしています。
- HTML でデッキを組み、機械チェック・レビュー・PDF での目視まで HTML 上で済ませる(修正の往復が速く、機械チェックもかけやすい)
- 「PPTX で欲しい」と言われたら
scripts/html_to_pptx.pyで変換する。Chrome で描画した結果を読み取り、PowerPoint の図形として組み直すので、文字・表・図形はそのまま PowerPoint で編集できる - PPTX を渡した後に修正が来たら、HTML を直して変換し直す(PPTX を手で直すと HTML と中身がずれる)
SVG のチャートや画像は画像として貼られます(中の数値は編集できません)。書体は Yu Gothic / Yu Mincho に置き換わるので、変換後は PowerPoint で開いて折り返しを確認してください。
既にある PowerPoint 資料へページを足すとき
社内の標準デッキや作りかけの提案書に数ページ足す場合、変換した PPTX は書体・文字の大きさ・表の作りが元の資料と揃いません。このときは変換せず、その資料のマスターの上に直接組みます。
python3 scripts/measure_deck.py house.pptx # 資料の書式を測る → house.skin.json(目で見て直す)。.potx も可
python3 examples/house_deck_example.py house.pptx pages.pptx # 作例。資料のマスターの上に 2 ページ組む
python3 scripts/check_deck.py pages.pptx --house house.skin.json
タイトルは資料のプレースホルダーに入り、書体・地色・ページ番号は資料のマスターがそのまま決めます。表は資料と同じ「テキストボックス+罫線」で組むので、貼り付けても書式が変わりません。詳しくは slide-rules.md §8.7。
中身
| パス | 内容 |
|---|---|
SKILL.md |
AIへの指示書(スキルの本体)。考え方と手順だけを書き、詳細は references/ に置く |
templates/freeform_parts_16x9.html |
基本パーツ集(27パーツ・1パーツ=1スライド・16:9) |
templates/freeform_parts_more_16x9.html |
追加パーツ集(35パーツ。チャート・比較表・マトリクス・計画系) |
references/slide-rules.md |
スライド作成ルール正典 |
references/archetype-catalog.md |
62型の型カタログ(型ID・型名・使いどころ・どのパーツ集の何番か) |
references/content-review-prompt.md |
フレッシュアイ・レビューの指示文。機械チェックのあと、作り方を伏せた別エージェントにデッキのファイルを渡して日本語・論理・破綻を拾わせ、採否表にして直す |
references/ai-smell-lexicon.md |
AI臭ワード・言い回しのリストとセルフチェック |
scripts/new_deck.py |
パーツ番号を並べて1本のデッキHTMLを生成(両パーツ集のCSSをスコープして結合・ページ番号の振り直し) |
scripts/check_deck.py |
規約の機械チェック(HTML / PPTX 両対応。テンプレ集の検査は --template)。タイトルの「N段階」と本文の連番の食い違いも FAIL にする |
scripts/html_to_pptx.py |
HTMLデッキを編集できる PPTX に変換(ユーザーが PPTX を求めたときだけ使う)。scripts/html_dump.mjs が Chrome で描画した要素を書き出し、python-pptx で組み立てる。追加の npm パッケージは不要(scripts/lib_cdp.mjs が Chrome を直接操作する) |
scripts/check_layout.mjs |
HTMLデッキの実レンダリング検査(フッターとの重なり・右端/下端のはみ出し・版面の40%超の空き) |
scripts/measure_deck.py |
既存の PowerPoint 資料の書式(レイアウト・タイトルの枠・文字の大きさ・書体の指定の有無・罫線・色)を測り、skin.json に書き出す |
scripts/deck_pptx.py |
測った書式で、その資料のマスターの上に編集可能なページを組む部品(タイトル・見出し・罫線の表・強調の面・矢羽・✓✕△)。作例は examples/house_deck_example.py |
tests/ |
機械チェックの自己テスト(python3 -m unittest discover -s tests)。指摘を機械チェックにしたら、直していない版で FAIL が出ることをここで確かめる |
assets/SlideCatalog_16x9.pdf |
62型のスライド型カタログ(両パーツ集を印刷した62ページ)。型を探すときの入口 |
assets/SuperTemplate_62type.pptx |
62型のPPTX見本帳(全スライド編集可能)。PowerPoint で手動コピーして使うときの見本。パーツ集の正本ではない |
カスタマイズ
- 色・書体は両パーツ集の `` 冒頭
:rootトークンで差し替えます。ブランドに合わせるときは両ファイルを同じ値にします - 生成した資料の最終ページの出典行だけに「consulting-pptx-skill で作成」の注釈を入れます。他のページにツール名が出ていると
check_deck.pyが FAIL にします - PowerPoint(.pptx)が要るときは、HTML で仕上げてから
scripts/html_to_pptx.pyで変換します(上の「PowerPoint(.pptx)にする流れ」)。以前あった JSON から編集可能PPTXを書き出す仕組みは外しました(git タグpipeline-archivedの時点のリポジトリに残っています)
コントリビューション
Issue・Pull Request を歓迎します。出し方(規約と機械チェックをセットで足す、機密を入れない、テストの書き方など)は CONTRIBUTING.md にまとめています。
使っていて「この指摘は当社だけでなく誰にでも効く」と思ったら、それが一番よい PR の種です。スキル自身も、本体の規約の誤検知や新しい指摘に当たったとき「PR で出しませんか」と一度だけ聞くようになっています。local/ に溜まった規則のうち顧客名の入っていないものを、月に 1 回見直して PR にするのがおすすめです。
About
Made by Carnot AI — AIエージェント基盤「Jinba」を開発・提供しています。
- ブラウザだけで使いたい方へ:このスキルと同じ仕組みを、チャットだけで使える形(Jinba App)でも提供しています。Claude Code や Python の準備は要りません。
- 自社専用版を作りたい企業へ:御社の既存資料とレビュー指摘から slide-rules.md とデザインを作り込み、社内のだれもが使える形で展開するご支援をしています。ご相談はこちら
License
コード・文書は MIT License です。MIT License には商標を使う権利は含まれません。「Carnot」「Carnot AI」「Jinba」とロゴの扱いは TRADEMARK.md(事実としての言及・クレジット行・リンクは自由、製品名・ロゴ・公式を装う表現・改変版への商標使用は要許可)に従ってください。