返回 Skill 列表
extension
分类: 开发与工程无需 API Key

presentation-slide-generator

生成HTML演示文稿幻灯片的技能。支持Kanagawa主题、GSAP动画、23种幻灯片类型。具有由悬停效果和工具提示带来的交互功能、免费CDN图标(推荐使用FontAwesome 6 Free)、可GAS部署的单文件HTML输出。 锚点:• Presentation Zen (Garr Reynolds) / 应用: 幻灯片结构 / 目标: 每张幻灯片一个信息的原则 • GSAP 3.x / 应用: 动画 / 目标: 根据不同的幻灯片类型实现进入/离开动画 • Kanagawa配色方案 / 应用: 主题 / 目标: 统一的调色板 • FontAwesome 6 Free / 应用: 图标 / 目标: 免费CDN,超过2000个图标,支持品牌标志 触发条件:当用户请求创建HTML演示文稿幻灯片、生成幻灯片集或使用Kanagawa主题构建动画演示时使用。演示, 幻灯片, 演示文稿, HTML幻灯片, Kanagawa, 发布材料, presentation, slides

person作者: jakexiaohubgithub

Presentation Slide Generator

概要

ユーザーの情報を元に、Kanagawaテーマで統一されたHTMLプレゼン資料を生成するスキル。 Script Firstの原則で決定論的処理を自動化し、Progressive Disclosureで必要なリソースのみを読み込む。

設計原則

| 原則 | 説明 | |------|------| | Script First | 決定論的処理はすべてスクリプトで実行(100%精度) | | LLM for Judgment | LLMは判断・創造が必要な部分のみ担当 | | Progressive Disclosure | 必要な時に必要なリソースのみ読み込み | | Schema Driven | 入出力はJSONスキーマで検証 | | 16:9 Aspect Ratio | すべてのスライドは16:9アスペクト比を厳守 | | A4印刷優先設計 | 印刷時はpt単位フォント・mm単位寸法で確実にA4内に収める |

デフォルト設定

| 項目 | デフォルト値 | 説明 | |------|-------------|------| | テーマ | Kanagawa Light(ライトモード) | 読みやすさと印刷時のインク節約を考慮 | | アジェンダインジケーター | 有効(左上固定表示) | セクション追跡・クリックジャンプ機能付き | | 印刷フォーマット | A4横向き16:9(281mm×158mm) | 100%スケールで最適印刷 | | アスペクト比 | 16:9 | 画面・印刷の両方で一貫した表示 |

モード一覧

| モード | 用途 | 発動条件 | |--------|------|----------| | create | 新規スライド作成 | プレゼン作成要求 | | modify | 既存スライド修正 | structure.md存在 + 修正要求 | | verify | 視覚検証 | HTML生成後 | | pdf | PDF出力 | PDF/印刷要求 |


Part 1: スライド作成ワークフロー

createモードワークフロー

Phase 1: ヒアリング(LLM Task)
┌─────────────────────────────────────────────────────────┐
│ hearing-facilitator                                     │
│ 📖 Read: agents/hearing-facilitator.md (必要時)         │
│                                                         │
│ Output: ヒアリング結果                                   │
└─────────────────────────────────────────────────────────┘
                            ↓
Phase 2: 構成設計(LLM Task + Script Validation)
┌─────────────────────────────────────────────────────────┐
│ structure-designer → [validate-structure.mjs]           │
│ 📖 Read: agents/structure-designer.md                   │
│ 📖 Read: references/strategy.md (構成戦略)              │
│ 📖 Read: references/icons.md (アイコン選定時)           │
│                                                         │
│ Output: structure.md → ユーザー承認                     │
└─────────────────────────────────────────────────────────┘
                            ↓
Phase 3: HTML生成(LLM Task + Script Validation)
┌─────────────────────────────────────────────────────────┐
│ html-generator                                          │
│ 📖 Read: agents/html-generator.md                       │
│ 📖 Read: references/slide-components.md (スライドタイプ)│
│ 📖 Read: references/theme-style.md (テーマ)             │
│ 📖 Read: assets/slide-template.html (テンプレート)      │
│                                                         │
│ Output: index.html + deploy-guide.md                    │
└─────────────────────────────────────────────────────────┘
                            ↓
Phase 3.5: 視覚検証(Script Task - 100%精度)
┌─────────────────────────────────────────────────────────┐
│ [verify-slides.mjs]                                     │
│                                                         │
│ Input: index.html                                       │
│ Output: スクリーンショット + 問題レポート               │
│                                                         │
│ 問題発見時 → LLMが修正 → 再検証                         │
└─────────────────────────────────────────────────────────┘
                            ↓
Phase 4: 完了(Script Task)
┌─────────────────────────────────────────────────────────┐
│ [log_usage.mjs] → フィードバック記録                    │
└─────────────────────────────────────────────────────────┘

凡例: [script] = Script Task (100%精度), 無印 = LLM Task

modifyモードワークフロー

Phase 1: 修正分析(LLM Task)
┌─────────────────────────────────────────────────────────┐
│ slide-modifier                                          │
│ 📖 Read: agents/slide-modifier.md                       │
│ 📖 Read: 既存structure.md                               │
│                                                         │
│ Output: 修正案 → ユーザー承認                           │
└─────────────────────────────────────────────────────────┘
                            ↓
Phase 2: 修正適用(LLM Task)
┌─────────────────────────────────────────────────────────┐
│ html-generator(再生成)                                │
│                                                         │
│ Output: 更新されたindex.html + structure.md             │
└─────────────────────────────────────────────────────────┘
                            ↓
Phase 3: 視覚検証 + 完了
(createモードと同様)

Part 2: スライドタイプ(23種)

基本タイプ(15種)

| タイプ | クラス名 | 用途 | アニメーション | |--------|---------|------|---------------| | タイトル | slide-title | 表紙 | scale + rotation | | アジェンダ | slide-agenda | 目次 | stagger x軸移動 | | セクション | slide-section | 見出し | scale + y軸移動 | | メッセージ | slide-message | 主張 | y軸移動 + fade | | リスト | slide-list | 箇条書き | stagger x軸移動 | | 比較 | slide-compare | Before/After | 左右から同時出現 | | フロー | slide-flow | プロセス | stagger scale | | タイムライン | slide-timeline | 時系列 | stagger y軸 | | テーブル | slide-table | データ表 | 行ごとstagger | | 統計 | slide-stats | 数値強調 | scale + グラデ | | チャート | slide-chart | グラフ | scaleY | | 図解 | slide-diagram | 図形 | stagger scale | | 引用 | slide-quote | 引用文 | y軸移動 + fade | | 画像 | slide-image | 画像+テキスト | x軸移動 | | フルイメージ | slide-full-image | 全画面背景 | fade |

拡張タイプ(8種)

| タイプ | クラス名 | 用途 | アニメーション | |--------|---------|------|---------------| | ピラミッド | slide-pyramid | 階層構造 | scaleX展開 | | サークル | slide-circle | 中心+周辺 | 中心→周辺scale | | グリッド | slide-grid | カード一覧 | stagger scale | | ハイライト | slide-highlight | 重要値強調 | scale + グラデ | | アイコングリッド | slide-icon-grid | アイコン一覧 | stagger rotation | | プロセス(縦) | slide-process | 縦ステップ | stagger x移動 | | 引用(拡張) | slide-quote-extended | 引用+著者 | mark rotation | | ヒーロー | slide-hero | CTA見出し | badge→title→cta |

詳細仕様: 📖 references/slide-components.md(HTML生成時に読み込み)


Part 3: Progressive Disclosure リソースマップ

読み込みタイミング

リソースは必要な時のみ読み込む。全てを一度に読み込まない。

agents/ (LLM Task仕様)

| Agent | 読み込み条件 | 責務 | |-------|-------------|------| | hearing-facilitator.md | Phase 1開始時 | ヒアリング・情報収集 | | structure-designer.md | Phase 2開始時 | 構成設計・スライドタイプ判定 | | html-generator.md | Phase 3開始時 | HTML生成・アニメーション実装 | | slide-modifier.md | modifyモード時 | 既存スライド修正 |

schemas/ (入出力スキーマ)

| Schema | 読み込み条件 | 用途 | |--------|-------------|------| | structure-definition.json | 構成設計時 | structure.md検証 | | slide-definition.json | HTML生成時 | スライド定義検証 | | validation-result.json | 検証完了時 | 検証結果検証 |

references/ (詳細知識)

| Reference | 読み込み条件 | 内容 | |-----------|-------------|------| | strategy.md | 構成設計時 | BSEC構成・ボリューム設計 | | writing-rules.md | 構成設計時 | タイトル・メッセージ作成 | | layout-visual.md | HTML生成時 | レイアウト・余白 | | diagram-chart.md | 図解スライド時 | 14種図解・グラフ | | slide-components.md | HTML生成時 | 23種スライドタイプ詳細 | | theme-style.md | HTML生成時 | Kanagawaテーマ・CSS変数 | | icons.md | アイコン選定時 | 18カテゴリ・マッピング | | print-layout.md | PDF出力時 | 印刷用CSS | | llm-script-separation.md | 設計時参照 | 責務分離ガイド |

assets/ (テンプレート)

| Asset | 読み込み条件 | 用途 | |-------|-------------|------| | slide-template.html | HTML生成時 | 完全HTMLテンプレート | | structure-template.md | 構成設計時 | structure.mdテンプレート | | gas-deploy-guide.md | 完了時出力 | GASデプロイ手順 | | print-styles.css | PDF出力時 | 印刷用CSS |

scripts/ (決定論的処理 - 100%精度)

| Script | 用途 | 実行タイミング | |--------|------|---------------| | validate-structure.mjs | 構成案検証(23種対応) | Phase 2完了時 | | verify-slides.mjs | 視覚検証(16:9対応) | Phase 3.5 | | log_usage.mjs | フィードバック記録 | 完了時 |


Part 4: 必須制約

16:9アスペクト比(最重要)

すべてのスライドは16:9アスペクト比を厳守すること。

必須HTML構造

<div class="slider" id="slider">
  <div class="slide-area">  <!-- 16:9強制コンテナ -->
    <div class="slider__container">
      <!-- スライドHTML -->
    </div>
  </div>
</div>

必須CSS変数

:root {
  --slide-aspect-ratio: 16 / 9;
  --slide-max-width: min(100vw, calc(100vh * (16 / 9)));
  --slide-max-height: min(100vh, calc(100vw * (9 / 16)));
}

検証コマンド

node scripts/verify-slides.mjs ./index.html --check-ratio

index.html ⇔ structure.md 同期ルール

重要: 両ファイルは常に整合性を維持すること。

【HTML修正時】
index.html 修正 → structure.md 該当セクション更新 → 修正履歴追記

【構成変更時】
structure.md 修正 → ユーザー承認 → index.html 再生成

Part 5: 実行コマンドリファレンス

構成案検証

# JSON形式で検証
node scripts/validate-structure.mjs structure.json

# パイプで検証
echo '{"title":"Test","slides":[...]}' | node scripts/validate-structure.mjs

視覚検証

# スクリーンショット撮影(16:9ビューポート: 1920x1080)
node scripts/verify-slides.mjs ./index.html ./screenshots

# 16:9アスペクト比のみ検証
node scripts/verify-slides.mjs ./index.html --check-ratio

# 検証後に自動削除
node scripts/verify-slides.mjs ./index.html --auto-cleanup

# スクリーンショット削除のみ
node scripts/verify-slides.mjs ./index.html --cleanup

フィードバック記録

node scripts/log_usage.mjs --result success --phase "Phase 3" --agent "html-generator"

Part 6: 出力ディレクトリ構成

デフォルト構成

05_Project/
└── スライド/
    └── slide-YYYY-MM-DD-{タイトル}/
        ├── index.html      # プレゼンテーション本体
        ├── structure.md    # 構造化データ(改善・修正用)
        └── deploy-guide.md # GASデプロイ手順

Electronアプリ連携

Electronデスクトップアプリ(AIWorkflowOrchestrator)からこのスキルを呼び出す場合、出力ディレクトリはアプリの設定画面から構成可能:

| 設定項目 | 説明 | |----------|------| | outputDirectory | スライド出力先ディレクトリ(OS標準ダイアログで選択) | | autoCreateDirectory | ディレクトリ自動作成フラグ |

取得方法(Electronアプリ内):

// Renderer Process
const settings = await window.slideSettingsAPI.getAll();
const outputDir = settings.data.outputDirectory;

関連ドキュメント:

  • 技術仕様: docs/technical/slide-settings.md
  • APIリファレンス: docs/api/slide-settings-api.md
  • セキュリティ仕様: .claude/skills/aiworkflow-requirements/references/security-api-electron.md(slideSettingsAPIセクション)

ベストプラクティス

すべきこと

| 推奨事項 | 理由 | |----------|------| | 1スライド1メッセージ | 明確な伝達 | | 構造化データを先に出力 | 手戻り最小化 | | ユーザー承認後にHTML生成 | 期待値合わせ | | Script検証を必ず実行 | 100%精度 | | index.htmlとstructure.md同期 | 整合性維持 |

避けるべきこと

| 禁止事項 | 問題点 | |----------|--------| | 全リソースを一度に読み込む | コンテキスト浪費 | | 承認なしでHTML生成 | 手戻り発生 | | 同期せずにファイル編集 | 整合性崩壊 | | 定義外のスライドタイプ使用 | アニメーション不具合 |


変更履歴

| Version | Date | Changes | |---------|------|---------| | 3.4.1 | 2026-01-23 | GSAP競合対策: 各スライドタイプ別にvisibility: visibleを明示設定、全子要素の可視化ルール追加(表紙・メッセージスライドが印刷されない問題を修正) | | 3.4.0 | 2026-01-23 | A4印刷優先設計: 設計原則に追加、print-layout.md v3.0.0全面改訂(pt単位フォント・mm単位寸法・スライドタイプ別サイズ指定・サイクル図絶対配置)、print-styles.css全面改訂 | | 3.3.0 | 2026-01-23 | デフォルト設定セクション追加: ライトモード・アジェンダインジケーター・A4横16:9印刷をデフォルトとして明記、スキーマ追加: structure-definition.json, slide-definition.json, validation-result.json | | 3.2.0 | 2026-01-23 | 16:9 on A4印刷対応: 100%スケール印刷用に寸法最適化(281mm×158mm)、アジェンダインジケーター: 左上固定・クリックジャンプ機能をデフォルト追加 | | 3.1.0 | 2026-01-14 | Electronアプリ連携(出力ディレクトリ設定機能)のドキュメント追加 | | 3.0.0 | 2026-01-13 | skill-creator最新仕様対応: Progressive Disclosure形式にリファクタリング、リソースマップ追加、Schema Driven対応、設計原則明記 | | 2.5.0 | 2026-01-07 | 整合性維持ルール強化 | | 2.4.0 | 2026-01-07 | 16:9アスペクト比の厳格化 | | 2.3.0 | 2026-01-04 | 印刷CSS刷新、LLM/Script責務分離 | | 2.2.0 | 2026-01-03 | validate-structure.mjs 23種対応 | | 2.0.0 | 2026-01-03 | ホバーエフェクト・拡張スライドタイプ追加 | | 1.0.0 | 2026-01-02 | 初版作成 |