AgentSkillsCN

presentation-slide-generator

生成 HTML 演示文稿幻灯片的技能。支持神奈川主题、GSAP 动画效果,以及 23 种幻灯片类型。内置悬停特效与工具提示等交互功能,搭配免费 CDN 图标(推荐使用 FontAwesome 6 Free),并可一键部署至 Google Apps Script,生成单一文件的 HTML 输出。 锚点: • Presentation Zen(Garr Reynolds)/ 适用场景:幻灯片结构 / 目的:遵循“一幻灯片一信息”的原则 • GSAP 3.x / 适用场景:动画效果 / 目的:为不同幻灯片类型定制 enter/leave 动画 • 神奈川配色方案 / 适用场景:主题设计 / 目的:打造统一且协调的色彩调色板 • FontAwesome 6 Free / 适用场景:图标库 / 目的:免费 CDN 提供 2000 多种图标,并支持品牌 Logo 的嵌入 触发条件: 当用户请求生成 HTML 演示文稿幻灯片、制作幻灯片合集,或以神奈川主题打造动画演示文稿时,可使用此技能。 演示文稿、幻灯片、Presentation、HTML 幻灯片、神奈川、发布材料、presentation、slides

SKILL.md
--- frontmatter
name: presentation-slide-generator
description: |
  HTMLプレゼンテーションスライドを生成するスキル。Kanagawaテーマ、GSAPアニメーション、23種類のスライドタイプ対応。ホバーエフェクト・ツールチップによるインタラクティブ機能、無料CDNアイコン(FontAwesome 6 Free推奨)、GASデプロイ可能な1ファイルHTML出力。

  Anchors:
  • Presentation Zen (Garr Reynolds) / 適用: スライド構成 / 目的: 1スライド1メッセージの原則
  • GSAP 3.x / 適用: アニメーション / 目的: スライドタイプ別enter/leaveアニメーション
  • Kanagawa Color Scheme / 適用: テーマ / 目的: 一貫したカラーパレット
  • FontAwesome 6 Free / 適用: アイコン / 目的: 無料CDN、2000+アイコン、ブランドロゴ対応

  Trigger:
  Use when user requests creating HTML presentation slides, generating slide decks, or building animated presentations with Kanagawa theme.
  プレゼン, スライド, プレゼンテーション, HTMLスライド, Kanagawa, 発表資料, presentation, slides
allowed-tools:
  - Read
  - Write
  - Edit
  - Bash

Presentation Slide Generator

概要

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

設計原則

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

デフォルト設定

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

モード一覧

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

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

createモードワークフロー

code
Phase 1: ヒアリング(LLM Task)
┌─────────────────────────────────────────────────────────┐
│ hearing-facilitator                                     │
│ 📖 Read: agents/hearing-facilitator.md (必要時)         │
│                                                         │
│ Output: ヒアリング結果                                   │
└─────────────────────────────────────────────────────────┘
                            ↓
Phase 2: 構成設計(LLM Task + Script Validation)
┌─────────────────────────────────────────────────────────┐
│ structure-designer → [validate-structure.js]           │
│ 📖 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.js]                                     │
│                                                         │
│ Input: index.html                                       │
│ Output: スクリーンショット + 問題レポート               │
│                                                         │
│ 問題発見時 → LLMが修正 → 再検証                         │
└─────────────────────────────────────────────────────────┘
                            ↓
Phase 3.6: 印刷品質検証(Script Task - 100%精度)
┌─────────────────────────────────────────────────────────┐
│ [validate-print.js]                                     │
│                                                         │
│ Input: index.html                                       │
│ Output: 12項目検証レポート(P01-P12)                   │
│                                                         │
│ 検証項目: Chrome拡張非表示・data-total動的化・           │
│ print-color-adjust・pt単位フォント・mm寸法・             │
│ ページネーション色・isolation・グラデーション等           │
│                                                         │
│ 問題発見時 → LLMが修正 → 再検証                         │
└─────────────────────────────────────────────────────────┘
                            ↓
Phase 3.7: UI/UXレビュー(LLM Task)
┌─────────────────────────────────────────────────────────┐
│ uiux-reviewer                                           │
│ 📖 Read: agents/uiux-reviewer.md                        │
│ 📖 Read: references/print-layout.md (印刷レビュー時)    │
│                                                         │
│ レビュー対象:                                            │
│ ① HTML画面表示のUI/UX(テキスト量・カードバランス)     │
│ ② A4印刷のUI/UX(溢れ・切れ・外部UI混入)              │
│                                                         │
│ Output: レビュー結果 + 改善提案(優先度付き)           │
│ 問題発見時 → LLMが修正 → 再レビュー                     │
└─────────────────────────────────────────────────────────┘
                            ↓
Phase 4: 完了(Script Task)
┌─────────────────────────────────────────────────────────┐
│ [log_usage.js] → フィードバック記録                    │
└─────────────────────────────────────────────────────────┘

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

modifyモードワークフロー

code
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: 視覚検証 + UI/UXレビュー + 完了
(createモードのPhase 3.5 → 3.7 → 4と同様)

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-compareBefore/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-heroCTA見出しbadge→title→cta

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


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

読み込みタイミング

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

agents/ (LLM Task仕様)

Agent読み込み条件責務
hearing-facilitator.mdPhase 1開始時ヒアリング・情報収集
structure-designer.mdPhase 2開始時構成設計・スライドタイプ判定
html-generator.mdPhase 3開始時HTML生成・アニメーション実装
slide-modifier.mdmodifyモード時既存スライド修正
uiux-reviewer.mdPhase 3.7(HTML生成後)画面表示+A4印刷のUI/UXレビュー

schemas/ (入出力スキーマ)

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

references/ (詳細知識)

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

assets/ (テンプレート)

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

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

Script用途実行タイミング
validate-structure.js構成案検証(23種対応)Phase 2完了時
verify-slides.js視覚検証(16:9対応)Phase 3.5
validate-print.js印刷品質検証(12項目・P01-P12)Phase 3.6
build-single-html.jsHTML/CSS/JavaScript結合(GASデプロイ用)Phase 3完了時/デプロイ時
log_usage.jsフィードバック記録完了時

Part 4: 必須制約

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

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

必須HTML構造

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

必須CSS変数

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)));
}

検証コマンド

bash
node scripts/verify-slides.js ./index.html --check-ratio

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

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

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

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

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

構成案検証

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

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

視覚検証

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

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

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

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

フィードバック記録

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

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

デフォルト構成

分離構成(推奨)

code
05_Project/
└── スライド/
    └── slide-YYYY-MM-DD-{タイトル}/
        ├── index.html        # HTML(CSS/JavaScriptは外部参照)
        ├── styles.css        # CSS分離ファイル
        ├── scripts.js        # JavaScript分離ファイル
        ├── index-single.html # 結合版(GASデプロイ用、build-single-html.jsで生成)
        ├── structure.md      # 構造化データ(改善・修正用)
        └── deploy-guide.md   # GASデプロイ手順

1ファイル構成(従来)

code
05_Project/
└── スライド/
    └── slide-YYYY-MM-DD-{タイトル}/
        ├── index.html      # HTML/CSS/JavaScript全てインライン
        ├── structure.md    # 構造化データ(改善・修正用)
        └── deploy-guide.md # GASデプロイ手順

: GASでは外部ファイル参照(<link href="styles.css">等)が動作しません。 分離構成の場合は build-single-html.js で結合するか、GASテンプレート方式でデプロイします。 詳細は assets/gas-deploy-guide.md を参照。

Electronアプリ連携

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

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

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

typescript
// 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生成手戻り発生
同期せずにファイル編集整合性崩壊
定義外のスライドタイプ使用アニメーション不具合

変更履歴

VersionDateChanges
3.7.02026-02-05印刷品質自動検証スクリプト追加: validate-print.js(12項目P01-P12の決定論的検証)を新規作成。Phase 3.6追加: 視覚検証(Phase 3.5)とUI/UXレビュー(Phase 3.7)の間に印刷品質検証フェーズを挿入。LLM/Script責務分離強化: 印刷品質の判断をLLMの主観から決定論的スクリプト検証に移行。.mjs→.js統一: 全スクリプトを.js拡張子に統一(package.json "type": "module" 追加)
3.6.02026-02-05UI/UXレビューエージェント追加: Phase 3.7にuiux-reviewer(画面表示+A4印刷の2軸レビュー)を追加。動的ページ数対応: スライドカウンターをattr(data-total)で動的化(ハードコード禁止)。質問バッジ: .question-badgeコンポーネント追加(アイコン+「質問」テキスト)。Chrome拡張非表示: body>*:not(.slider)で外部UI要素を印刷から除外。質問トーン改善: 「有効か?」→「方針共有+追加アドバイス依頼」形式に統一。print-styles.css強化: question-badge/single-col/alert/solution/summary-list/isolation追加
3.5.02026-02-05印刷右端切れ修正: スライド寸法281mm×158mm→277mm×156mmに変更(ボーダー+プリンタ余白で右端切れ防止)、分離構成対応: HTML/CSS/JavaScript分離出力、build-single-html.js追加、GASデプロイ2方式: 方法A(1ファイル結合)・方法B(GASテンプレート)をgas-deploy-guide.mdに追加
3.4.12026-01-23GSAP競合対策: 各スライドタイプ別にvisibility: visibleを明示設定、全子要素の可視化ルール追加(表紙・メッセージスライドが印刷されない問題を修正)
3.4.02026-01-23A4印刷優先設計: 設計原則に追加、print-layout.md v3.0.0全面改訂(pt単位フォント・mm単位寸法・スライドタイプ別サイズ指定・サイクル図絶対配置)、print-styles.css全面改訂
3.3.02026-01-23デフォルト設定セクション追加: ライトモード・アジェンダインジケーター・A4横16:9印刷をデフォルトとして明記、スキーマ追加: structure-definition.json, slide-definition.json, validation-result.json
3.2.02026-01-2316:9 on A4印刷対応: 100%スケール印刷用に寸法最適化(281mm×158mm)、アジェンダインジケーター: 左上固定・クリックジャンプ機能をデフォルト追加
3.1.02026-01-14Electronアプリ連携(出力ディレクトリ設定機能)のドキュメント追加
3.0.02026-01-13skill-creator最新仕様対応: Progressive Disclosure形式にリファクタリング、リソースマップ追加、Schema Driven対応、設計原則明記
2.5.02026-01-07整合性維持ルール強化
2.4.02026-01-0716:9アスペクト比の厳格化
2.3.02026-01-04印刷CSS刷新、LLM/Script責務分離
2.2.02026-01-03validate-structure.js 23種対応
2.0.02026-01-03ホバーエフェクト・拡張スライドタイプ追加
1.0.02026-01-02初版作成