
presentation-slide-generator
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
|
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アスペクト比を厳守 |
モード一覧
| モード | 用途 | 発動条件 |
|---|---|---|
| create | 新規スライド作成 | プレゼン作成要求 |
| modify | 既存スライド修正 | structure.md存在 + 修正要求 |
| verify | 視覚検証 | HTML生成後 |
| 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.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 | 初版作成 |
You Might Also Like
Related Skills

cache-components
Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.
vercel
component-refactoring
Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component --json` shows complexity > 50 or lineCount > 300, when the user asks for code splitting, hook extraction, or complexity reduction, or when `pnpm analyze-component` warns to refactor before testing; avoid for simple/well-structured components, third-party wrappers, or when the user explicitly wants testing without refactoring.
langgenius
web-artifacts-builder
Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.
anthropics
frontend-design
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.
anthropics
react-modernization
Upgrade React applications to latest versions, migrate from class components to hooks, and adopt concurrent features. Use when modernizing React codebases, migrating to React Hooks, or upgrading to latest React versions.
wshobson
tailwind-design-system
Build scalable design systems with Tailwind CSS v4, design tokens, component libraries, and responsive patterns. Use when creating component libraries, implementing design systems, or standardizing UI patterns.
wshobson