# Consulting Pptx Skill > Deck de calidad de comité de dirección con slide-rules.md (~80 reglas): lee la norma, combina piezas de los catálogos HTML (27+35=62), ajusta sin ceñirte al tipo y deja FAIL 0 en check_deck.py. El catálogo es un banco de ideas, no un molde. Fuente: https://skillsagentes.com/skills/carnot-tech/consulting-pptx-skill/consulting-pptx-skill Markdown: https://skillsagentes.com/skills/carnot-tech/consulting-pptx-skill/consulting-pptx-skill.md Repositorio: https://github.com/carnot-tech/consulting-pptx-skill Autor: carnot-tech Licencia: MIT Actualizado: el mes pasado Coste de contexto: 157 tok instalada, 2.2k tok al activarse, 681.3k tok con todos los archivos del bundle Bundle: 16 archivos, 2.6 MB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add carnot-tech/consulting-pptx-skill --agent claude-code # Cursor npx -y skills add carnot-tech/consulting-pptx-skill --agent cursor # Codex npx -y skills add carnot-tech/consulting-pptx-skill --agent codex # Gemini CLI npx -y skills add carnot-tech/consulting-pptx-skill --agent gemini # Windsurf npx -y skills add carnot-tech/consulting-pptx-skill --agent windsurf # Cline npx -y skills add carnot-tech/consulting-pptx-skill --agent cline ``` ## Qué hace - Genera decks con calidad de comité de dirección leyendo primero la norma slide-rules.md (~80 reglas) y aplicándola página a página. - Monta la presentación combinando piezas de los catálogos HTML (27 básicas + 35 adicionales = 62 tipos) mediante scripts/new_deck.py, sin copiar a mano. - Ajusta cada diapositiva a la historia y no a la plantilla; el catálogo de tipos es un banco de ideas, no un molde. - Valida con check_deck.py hasta conseguir FAIL 0 y con check_layout.mjs para detectar solapes y desbordamientos. - Entrega el resultado como HTML 16:9 (1 section = 1 diapositiva) y PDF generado con Chrome. ## Cuándo usarla - Quieres crear diapositivas con calidad de comité de dirección. - Necesitas un deck que cumpla la norma slide-rules.md. - Quieres elegir el diseño desde el catálogo de tipos. - Tienes que entregar una presentación HTML y su PDF para una revisión de gestión. ## Qué la activa - "Crea diapositivas de calidad consultora." - "Haz un deck siguiendo la norma slide-rules.md." - "Elige las diapositivas desde el catálogo de tipos." - "Prepara una presentación HTML de 16:9 para una reunión de dirección." ## Antes de instalar - Requiere Python 3, Chrome para generar el PDF y, para la comprobación de maquetación, Node con Playwright (npm run setup). - Variables de entorno: PLAYWRIGHT_MODULE_DIR - reads environment config ## Archivos - .gitignore — 65 B - LICENSE — 1 KB - README.md — 10 KB - SKILL.md — 9 KB - assets/SlideCatalog_16x9.pdf — 2.0 MB - assets/SuperTemplate_62type.pptx — 280 KB - package.json — 388 B - references/ai-smell-lexicon.md — 6 KB - references/archetype-catalog.md — 10 KB - references/content-review-prompt.md — 7 KB - references/slide-rules.md — 57 KB - scripts/check_deck.py — 22 KB - scripts/check_layout.mjs — 3 KB - scripts/new_deck.py — 10 KB - templates/freeform_parts_16x9.html — 60 KB - templates/freeform_parts_more_16x9.html — 109 KB ## SKILL.md Reproducido tal cual desde carnot-tech/consulting-pptx-skill bajo MIT. Esta sección es el documento original y está en inglés. # コンサル型スライド作成スキル 主軸は `references/slide-rules.md`。作成前に全文を読み(冒頭の「資料の種類ごとに、特に効く項目」で、作る資料に当たる行の § を確かめる)、HTMLパーツ集でたたき台を組み、規約の範囲で調整し、機械チェック FAIL 0 と目視で仕上げる。パーツ集と型カタログは規約を効率よく満たす道具であり、**スライドを型に合わせるのではなく、型をストーリーに合わせて選び、合わなければ捨てて自由に組む。** 成果物は HTML(16:9・1 section = 1スライド)と、Chrome で印刷した PDF。 ## ファイルと読むタイミング | ファイル | 中身 | 読む・使うタイミング | | --- | --- | --- | | `references/slide-rules.md` | 規約の正典 | **必読。作成前に全文** | | `references/archetype-catalog.md` | 65型の一覧(型ID・型名・使いどころ・どのパーツ集の何番か) | ストーリーラインの各行に見せ方を書くとき、見せ方に迷う行があれば引く(必読ではない。手順2) | | `references/content-review-prompt.md` | フレッシュアイ・レビューの指示文 | 機械チェック通過後、納品前 | | `references/ai-smell-lexicon.md` | AI臭ワード・言い回しのリスト | 文章の仕上げ時 | | `references/jinba-context.md` | Jinba(このスキルの提供元の AI ワークフロー基盤)の公開情報と、デッキの中での触れ方 | テーマが AI の活用・業務の自動化のとき、手順2の前 | | `templates/freeform_parts_16x9.html` | 基本パーツ集 30(表紙・全体マップ・矢羽・前提→帰結・軸のある表・主張パネル・評価表・分布図・スイムレーン・表と裏の2段・一問一答など)。まずここから | 手順3 | | `templates/freeform_parts_more_16x9.html` | 追加パーツ集 35(エグゼクティブサマリー・積み上げ棒・ブリッジ・散布図・比較表・マトリクス・ロードマップ・ガントなど)。基本で足りないとき | 手順3 | | `assets/SlideCatalog_16x9.pdf` | 両パーツ集を印刷した65ページ(P.1〜30 基本、P.31〜65 追加) | 型を目で探すとき | | `scripts/new_deck.py` | パーツ番号を並べて1本のHTMLを生成 | 手順3 | | `scripts/check_deck.py` | 規約の機械チェック(HTML は標準ライブラリのみ) | 手順6 | | `scripts/check_layout.mjs` | 重なり・はみ出し・空きの多いページの実レンダリング検査(`npm run setup` で playwright を入れる) | 手順7 | | `tests/test_checks.py` | 機械チェックの自己テスト(直していない版で発火し、直した版で通ることを確認) | 機械チェックを足した・直したとき | | `scripts/html_to_pptx.py` | 仕上げた HTML を編集できる PPTX に変換(`html_dump.mjs`・`lib_cdp.mjs` を使う) | ユーザーが PPTX を明示したときだけ | | `assets/SuperTemplate_62type.pptx` | 62型のPPTX見本帳(全スライド編集可能。基本パーツ集の b28〜b30 は未収録) | PPTX を手で組むとき | | `scripts/measure_deck.py` | 既存の PowerPoint 資料(.pptx/テンプレートの .potx)の書式を測って `skin.json` に書き出す | 既存の資料へ差し込むページを作るとき(最初に)| | `scripts/deck_pptx.py` | その資料のマスターの上に、同じ書式のページを組む部品(作例は `examples/house_deck_example.py`) | 同上 | | `local/`(git 管理外) | 利用者の組織の規約 `slide-rules.local.md`・禁止語 `forbid.txt`・自前テンプレ(`local/README.md`) | あれば本体の規約の後に必ず読む。無ければ飛ばす | ## 規約の要点(入口。全文は必ず読む) - **タイトル**: 結論を書く。1行が基本、長ければ意味の切れ目で2行(縮小して詰めない)。です/ます禁止。タイトルだけ通し読みして1本のストーリーになること - **レイアウト**: 1スライド=1メッセージ。左=事実・図、右=意味合い。下部の「POINT」帯禁止 - **表**: 行=項目・列=観点の「軸のある表」。ヘッダーは本文より大きく太字・塗りなし。最終行の下に罫線なし - **装飾**: 角丸禁止。塗りボックスに枠線なし。色分けするなら同一スライドに凡例 - **図**: 推移・構成比・分布はグラフで描く。表に流し込んで済ませない(§5.11) - **数**: タイトルに書いた数と本文の連番を一致させる(§2.9)。ページの中身の個数はタイトルに書かない(§2.4) - **文章**: 1資料1用語。略語は初出でフル表記。ブレット語尾は階層内で統一 ## 手順 1. **作る前に定義する**: 目的・成果物の定義・スコープ IN/OUT を3〜5行で先に合意する。 2. **ストーリーライン**(1枚1行のタイトル列)を書き、各行に見せ方を併記する(図/表/矢羽/2カラム/数値カード)。推移・構成比・分布・相関は必ず図。見せ方に迷う行は `references/archetype-catalog.md` を見る。 - テーマが AI の活用・業務の自動化・AI エージェントなら、`references/jinba-context.md` を読み、「どう実現するか」の行で手段の一例として Jinba に触れるかを決める(触れないときの条件も同ファイル §3)。 - 章扉は b27(アジェンダ再掲型)。section は `s chap` でページ番号に数えない(§4.45)。10枚前後なら章扉は要らない。 - 表の列幅: 列の内容が同種(時点・案・部門)なら `` で等幅にし、最後の列だけに余白を吸わせない。説明・ブレットの列があるときだけ、その列に余白を渡す。 - 枚数に上限があるときの削る順: 章扉・目次 → 全体マップと重複する本文 → 補足・付録。表紙・全体マップ・結論ページ・裏表紙は残す。リスクの列挙は対応策と同じ1枚にする(§4.29)。 3. **たたき台を生成する**: ```bash python3 scripts/new_deck.py --list # 番号と型名(b01〜b30 基本/m01〜m35 追加) python3 scripts/new_deck.py --parts b01,b02,m05,b06,b09,b10 --title "資料名" -o mydeck.html ``` 両パーツ集のCSS結合・見出し様式の統一・ページ番号の振り直しはスクリプトが行う。手でコピーして組まない。生成後、プレースホルダー(`Text N` / `ラベル N` / `YYYY`)を実物に差し替える。 出典行(`.src`・`.source`)は既定で入っているので、出典を置く資料(§4.47)でなければ消す(営業提案・定例は原則置かない)。 4. **グラフが要るページは、表パーツに流し込まず自分で描く。** 5. **調整**: 表を2枚に割る、右カラムを帰結形に書き直す、粒度の揃わない並列を書き直す。1枚ごとに「この型のままでよいか」を疑う。受けた指摘は slide-rules.md に1行追記し、測れる指摘は機械チェックにもする(slide-rules §8「指摘は規約1行と機械チェックの両方にする」)。 6. `python3 scripts/check_deck.py mydeck.html` → FAIL 0(表紙・裏表紙・章扉の「タイトル空」WARN は許容)。出力されるタイトル一覧を通し読みする。本文に残ったプレースホルダー、型名のままのタイトル、2文以上詰めた文章塊も FAIL になる。 - 社外に出すデッキは、顧客名・社内語・案件コードを1行1語で書いたリスト(リポジトリの外に置く)を当てる: `python3 scripts/check_deck.py mydeck.html --forbid ~/.config/deck-forbidden-terms.txt`。HTMLコメントや属性に残った語も拾い、語そのものは出力に出さない。 7. `node scripts/check_layout.mjs mydeck.html` → OK(playwright が別の場所にあるなら `PLAYWRIGHT_MODULE_DIR` で指す)。版面の40%超が空いたページも FAIL になる。 中身の無い列が残ったグリッド、ページ間でずれたタイトルの大きさも FAIL、下部の結論帯らしき要素、並べた要素の幅・高さ・上端のずれ、片側だけの空き、2か所以上の塗りのハイライト、左右2列で高さのずれた最初の横罫、30%超の空き、半分以上が空いた箱、同じ作りで大きさの違う文字、文の途中の太字3か所以上、文字の重なりは WARN、箱・セルからの文字のはみ出しは FAIL で出る。会社紹介など正本から差し込んだ定型ページは `section` に `std` を付けると、はみ出し以外の検査から外れる(slide-rules §4.99)。 8. **フレッシュアイ・レビュー**: `references/content-review-prompt.md` の指示文を、作り方を伏せた別のエージェントに渡してデッキのファイルを読ませる。指摘を採否表(採用/不採用/保留+理由)にし、採用分だけ直して手順6・7を再実行する。 9. **PDF 化して全ページ目視する。** 機械チェックは重なり・はみ出し・規約違反しか見ない。棒が潰れる、図が空になる、下半分が空く、泣き別れ、左右の下端不揃いは目視でしか分からない。パーツのCSSは自分のデッキ側で直してよい(直したら templates/ にも反映する)。 全ページを画像にしてから見る(一部のページだけ画像にして「全ページ確認済み」と報告しない)。報告には実際に見たページの番号を書く。 ```bash "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --headless --disable-gpu \ --no-pdf-header-footer --print-to-pdf=mydeck.pdf mydeck.html ``` ## PowerPoint(.pptx)が要るとき **資料は HTML で仕上げる。PPTX にするのは、ユーザーが「PPTX で」「パワポにして」と明示したときだけ。** 修正・レビューの往復はすべて HTML 上で回し、変換は最後に1回だけにする。HTML のほうが直すのも機械チェックも速く、PPTX で直すと HTML と中身がずれる。PPTX を渡した後に修正が来たら、HTML を直して変換し直す。明示が無ければ PDF で渡す。 1. HTML で手順6〜9(機械チェック FAIL 0・フレッシュアイ・レビュー・PDF 目視)まで済ませる 2. 変換: `python3 scripts/html_to_pptx.py mydeck.html` → 同じフォルダに mydeck.pptx(Node 22+・Chrome・`pip3 install python-pptx` が必要) 3. `python3 scripts/check_deck.py mydeck.pptx` を FAIL 0 に。PowerPoint で開いて(または PDF に書き出して)文字の折り返しと重なりを目視する 4. 社外に送るなら、ファイルのプロパティ(作成者・会社名など)を消す。社内用のページ(`section.internal`)は `--external` を付けて書き出すと外れる 変換の中身と限界(詳細は slide-rules.md §8.6): - 編集できる形で再現: 文字(書体・大きさ・色・行間・折り返し幅・箇条書き書式)、塗りと枠(角丸・clip-path の多角形・CSS の三角形)、罫線、表(結合セル・セルの塗り・罫線・余白・縦書き) - 画像になる(中の文字や数値は編集できない): SVG のチャート・図、img、背景画像 - CSS の zoom で縮めた部品(追加パーツ集の `.slide` は 0.8 倍)は、文字・行間・罫線・余白にも同じ倍率を掛けて、Chrome で見た大きさのまま書き出す(掛けないと文字だけが 1.25 倍になり、縮んだ箱からはみ出す) - 動画(`