slide-writer
アイデア、アウトライン、ドキュメント、草稿を、構造が明確で設計の優れたエンタープライズグレードのHTML プレゼンテーションに変換できます。
description の原文を見る
把想法、大纲、文档或草稿变成结构清晰、设计精良的企业级 HTML 演示文稿。
SKILL.md 本文
---
name: slide-writer
display_name: Slide-Writer
description: 思想、アウトライン、文書またはドラフトを、構造が明確で設計が優れたエンタープライズグレードのHTML プレゼンテーションに変換します。
version: 1.0.0
author: Feei
homepage: https://github.com/FeeiCN/slide-writer
repository: https://github.com/FeeiCN/slide-writer
license: MIT
tags:
- presentation
- slides
- ppt
- keynote
- html
- storytelling
- enterprise
entry: SKILL.md
language: zh-CN
compatible_with:
- claude-code
- codex
---
# Slide-Writer
任意の入力(思想、アウトライン、ドラフト文書、会議議事録)をエンタープライズグレードのHTMLプレゼンテーションに変換し、自動的に所属する企業のブランドテーマを適用します。
## コアプリンシパル
1. **ブランド一貫性** — リクエストから企業を自動認識し、対応するブランドカラーテーマを適用します。14社のインターネット企業テーマが組み込まれています。
2. **コンテンツ第一主義** — 各フレーズを自動で改善:冗長性を排除し、簡潔にし、表現をより強力にします。
3. **オーバーフロー禁止** — 各スライドは100vh以内に完全に表示される必要があります。コンテンツが多い場合は複数ページに分割し、スクロールバーは絶対に表示しません。
4. **単一ファイル納品** — 単一の`.html`ファイルを出力します。CSS/JavaScriptはすべてインライン化され、依存関係なしで、ブラウザで直接開くことができます。
---
## フェーズ0:準備
### 自動更新(第一ステップ、必須実行)
```bash
git pull --ff-only
成功 → 静かに続行;失敗(ネットワークなし/競合あり)→ 静かに無視し、現在のバージョンを継続使用。
モード識別
- モードA:新規制作 — テーマ/アウトライン/ドラフトから作成します。フェーズ1に進みます。
- A1:コンテンツ圧縮 — ユーザーがスピーチ原稿、アウトライン、またはドラフトを提供(入力文字数 ≥ 200字)。目標は精密な抽出と簡潔化です。スピーチ原稿からPPTへの変換ルールと密度上限を適用します。
- A2:テーマクリエイション — ユーザーはテーマ/タイトルのみを提供(入力文字数 < 200字)。目標は主動的に豊かなコンテンツを生成し、各サブトピックを十分に展開します。スピーチ原稿圧縮ルールは適用されません。カード説明の上限は120字に拡大され、ページ数のデフォルトは10~15ページです。
- モードB:改稿の強化 — 既存のHTMLで内容を変更または拡張します:
- 既存のHTMLを完全に読み込み、すべての
<section>のid、class、タイトルを認識し、現在のスライド一覧を出力します。 - 範囲判定:修正 ≤ 3張 → 正確な改稿;修正 > 30%または新規追加 > 元データ → モードAで再生成することをお勧めします。
- 既存のテーマを認識(ユーザーが変更を要求していない場合は保持)します。
- ユーザーの説明(序番、タイトルキーワード)に従ってターゲット
<section>を特定し、確認後に操作します。 - 指名された
<section>のみを変更し、新しいページを挿入する場合は最も適切な位置に挿入します。 - 指名されていないスライドは元のまま保持し、「ついでに最適化」はしません。
- 改稿完了後、目次の議題項数とコンテンツページ数が一致しているか、章立てのロジックが連続しているかを確認します。不一致の場合は列挙し、ユーザーに同期更新を確認します。
- モードAと同じ品質チェックを実行します。
- 既存のHTMLを完全に読み込み、すべての
テーマ検出
themes/_index.mdを読み込み、ユーザーのリクエストから企業キーワードを抽出します。優先度は高から低へ:
- ユーザーが明示的に指定した企業名、製品名
- 署名内の部門/チーム名
- コンテンツに表示されている企業名
- 認識できた → テーマIDと
themes/[id].mdパスを記録します。 - 認識できなかった → デフォルトでアントグループ+アリペイのデュアルロゴテーマを使用します。
- 複数ブランドの競合 →
themes/_index.mdの優先度順に実行します。
フェーズ1:コンテンツ収集
以下の情報を一度に収集します(実行環境がAskUserQuestionをサポートしている場合はそれを使用して補足の質問をします。そうでない場合は1つのメッセージで補足の質問をします):
| フィールド | 説明 |
|---|---|
| 企業 | 所属企業またはブランド名(テーマカラー照合に使用) |
| テーマ | スピーチ/レポートのコアテーマ |
| オーディエンス | マネジメント層/チーム内部/部門横断/外部顧客 |
| ページ数 | 5~8ページ/10~15ページ/20ページ以上 |
| コンテンツ | アウトライン、ドラフト、またはキーポイントを貼り付けます。テーマのみの場合は説明をしてください。 |
| 署名 | スピーカーの名前+役職/ポジション/Title(表紙に使用) |
| 日付 | スピーチの日付(デフォルトは今日) |
欠落フィールドの推論ルール:
- 企業 → コンテンツ、署名、部門名から推論します。認識できない場合はデフォルトでアントグループを使用します。
- オーディエンス → 「レポート/review/決定/管理層」を含む → マネジメント層;「共有/事後評価/チーム」を含む → チーム内部;「提案/顧客/協力」を含む → 外部顧客;判定できない → 内部レポート。
- ページ数 → モードと文字数から推論します:
- モードA2(テーマクリエイション):デフォルト10~15ページ。テーマが豊かな含意を持つ場合(複数のサブトピック、歴史・文化、データを含む)は15~20ページまで可能;
- モードA1(コンテンツ圧縮):<500字 → 4~6ページ;500~1500字 → 8~12ページ;1500~3000字 → 12~18ページ;>3000字 → 18ページ以上;
- 推論結果がコンテンツと明らかに異なる場合は、フェーズ2に進む前に明確に確認します。
- 日付 → デフォルトは今日です。
- 署名 → コンテンツまたは現在のユーザー情報から推論します。推論できない場合はデフォルトで「スピーカー」を使用します。
フェーズ1完了後に通知:収集完了:[企業]·[オーディエンス]·[ページ数]ページ·[署名]
フェーズ2:構造計画
必須で含むページ
| ページタイプ | スライドクラス | 除外条件 |
|---|---|---|
| カバーページ | slide-cover | 除外なし |
| 目次ページ | slide-white | 総ページ数 ≤ 6の場合は省略 |
| チャプター遷移ページ | slide-section | このセクションのコンテンツページ < 3の場合は省略;チャプターページの総数がコンテンツページの1/3を超えない場合 |
| エンディングページ | slide-qa | 除外なし |
小規模PPT(≤6ページ):カバー+コンテンツページ+エンディング。目次とチャプターページは強制挿入しません。
スピーチ原稿からPPTへの変換ルール(モードA1のみ実行。モードA2はスキップします)
- PPTは補助資料です。原文をそのまま表示するのではありません — 段落ごとの直接転記を禁止します。単一ページの文字量は講演稿の密度よりも明らかに少なくする必要があります。
- ページごとに判定 — 結論文を1つ抽出してタイトルにし、2~4個のサポートポイントを保持します。複数の議論ポイントは複数ページに分割します。
- 金句を残し、お膳立てを削除 — 数字、判定、類比は保持します。寒い挨拶、繰り返し、口語的な遷移、1文の引用は削除します。
- 3秒で読める — 次のいずれかを満たせばOKです:① 単一ページの総文字数 ≤ 80字;② bullet ≤ 4個で各 ≤ 15字;③ 数字 ≤ 3個で説明 ≤ 30字;④ ビジュアルブロックがページの ≥ 40%を占める。
- 一人称視点 — タイトルは「私たち/今日お話ししたい」を優先し、「著者は考えている」「今回のスピーチは~を中心に」は使いません。
PPTに移すのに適さないコンテンツ:開場の挨拶、繰り返し表現、口語的な接続詞、長いストーリーの詳細、抒情的な文、口頭で補足できる背景説明。
テーマクリエイションのプリンシパル(モードA2のみ実行)
- コンテンツの深さ優先 — 各サブトピックを十分に展開し、背景、詳細、意義を提供します。スライドだけでユーザーが完全な情報を得られるようにし、スピーカーの補足を不要にします。
- 完全性 — テーマに明確な数量的要素がある場合(例:「十景」「三原則」「五段階」)、すべてを列挙する必要があります。ページレイアウトの都合で削減してはいけません。単一ページを超える場合は複数ページに分割し、タイトルに「(上)」「(下)」と注記します。
- 原文の引用 — 文化/歴史テーマは原詩、歴史資料、名言を引用します。概説的な説明で代替しません。
- カード説明の上限を拡大 — 情報カードの説明 ≤ 120字、ステップカードの説明 ≤ 80字、単一ページの総文字数 ≤ 300字。超過する場合は複数ページに分割し、コンテンツを圧縮しません。
- タイトルは結論です。トピックではありません — 紹介内容でも、タイトルは判定を示す必要があります(「蘇堤は自然への人的介入の最も美しい典範」「蘇堤の紹介」ではなく)。
ビジュアライゼーション原則
- まず構造を作り、その後テキストを置く — 数字、カード、コントラスト、フローでコンテンツを表現することを優先します。
- メインビジュアルリズムが明確 — 複数のビジュアルブロック間に明確な階層と分類が必要です。コンテンツが画面をはみ出す場合はページを分割し、フォントサイズを縮小して無理矢理詰めません。
- 段落をコンポーネントに変更 — 長い段落を優先してコンポーネントに書き直します。
stat-block、step-card、quote-box、agenda-itemを再利用できます。コンテンツのニーズに応じて新しいページスケルトンと情報コンポーネントを設計することもできます。 - キーワードはスキャン可能に — 数字と判定文は一目で見えるようにします。長い文は補足としてのみ使用します。
- 横方向を多く、縦方向を少なく — 並列カード、コントラスト、マトリックスを優先します。連続的な縦方向のテキストは少なくします。
- 3~4ページごとにリズムを変更 — チャプターページ、金句ページ、大字判定ページ、またはライトコンテンツページを挿入します。
- 先にコンテンツ形式を判定し、その後レイアウトを選択 — 「コンテンツタイプ → コンポーネント選択」表を参照します。
- タイトル領域は固定 — すべてのコンテンツページのタイトル領域の位置は一貫しており、本文の密度によって移動しません。
- SVGを優先 — 数量比較、トレンド、割合、フロー図はインラインSVGを優先します。単なる数字+文という説明で可視化データを表現することは禁止します。
- ビジュアル効果の階層化 — 重要なカードにはグラデーション背景+上部カラーバー+pillラベルを重ねます。放射状グラデーション光圈は装飾として使用します。すべてのカードに追加しません。
- コンポーネントライブラリは出発点であり、境界ではありません —
components.mdが提供するのは高頻度で再利用可能なリファレンスです。完全な上限ではありません。テーマが地図、時間帯、関係図、年表、分割ショット、注釈付き図、ポスター風の大字、ファイルカード、オブジェクト標注、時間スライス、都市断面などの表現に適している場合は、コンテンツのために新しいコンポーネントを優先的に発明するべきです。
コンテンツタイプ → コンポーネント選択
各ページのHTMLを書く前に、先にコンテンツ形式を判定し、その後レイアウトを選択します。優先度:ページスケルトン > グループ化されたコンポーネント > 通常のbullet。下表は推奨の出発点であり、完全なチェックリストではありません。既存のコンポーネントが適切でない場合は、無理矢理適用するのではなく新しいスケルトンを自定義します。
| コンテンツ形式 | 推奨コンポーネント/スケルトン | 避けるべき |
|---|---|---|
| 全体概要/チャプター予告 | agenda-item、分類目次ページ | 通常のbulletを平たく並べた目次 |
| 開場の判定/問題定義 | オープニングフックページ、highlight-box+info-card | ページ全体の長い正文 |
| 単一のコア結論 | highlight-box、stat-block、大きな数字 | 密集したリストまたは複数のテーマが混在 |
| コア結論+データサポート | insight-panel | 判定と数字が2つの独立したカードに分散 |
| 並列要点/三原則 | three-col、info-card、stat-block | 3つの同等の観点を縦方向の長い段落として記述 |
| 二者間の対比 | two-col、左右の画像とテキスト混合 | 単一列の順序付け方法 |
| 段階的な推進 | step-card、step-flow-grid | 「最初、次に、最後」を説明する通常のbullet |
| 月次/四半期ロードマップ | roadmap-col | 時間軸感を無視した通常のstep-card |
| ワークフロー/開発フロー | flow-item(4列×N行) | 8つのステップを平たく並べたリスト |
| 能力成熟度/等級体系 | level-row | 各等級を説明する通常のbullet |
| 組織サポート/能力体系 | support-board、support-card、role-card | 体系を説明する複数の段落 |
| 責任リスト/スタッフ配置 | support-mini-card+@担当者 | 名前を列挙する通常のbullet |
| 複数ロールの流転/部門横断協業 | demand-flow-board | ロールを説明する静的リスト |
| データ/割合/トレンド | stat-block、プログレスバー、SVGチャート、テーブル | 数字の文だけで図形サポートなし |
| ランキング/優先度 | bar-rank | 純粋な数字リスト |
| ビジネスライン/製品集合 | tag-cloud | 等高で等大のタグを平たく並べる |
| 製品スクリーンショット | browser-mockup | 画像を素のまま配置(上下文脈なし) |
| 原文の引用 | quote-box、insight | 複数の長い引用を積み重ねる |
| エンディング総括 | 分類総括ページ、agenda-item、highlight-box | エンディングで大量の新しい情報を展開 |
コンポーネント制約:
- 先にスケルトンを選択し、その後スケルトン内のコンポーネントを選択します。強い構造のページ(
support-board、demand-flow-board)は通常のカードページに戻しません。 - カードが1行を満たさない場合、コンテナを縮小して中央に配置:1個→40%、2個→60%、3個→80%、4個以上→100%。コンテナの
style="max-width:X%;margin:0 auto;"を使用します。 - コンテンツが少ない場合、
slide-bodyに明示的にjustify-content:centerを追加して、コンテンツが上半分の画面に付着しないようにします。 components.mdはリファレンスライブラリであり、ホワイトリストではありません。カスタムHTML、CSSクラス、新しい情報コンポーネントを許可します。ただし、現在のテンプレートのCSS変数、フォントサイズ体系、ホワイトスペースシステム、インタラクション制約を遵守する必要があります。- カスタムコンポーネントは「既存のコンポーネントでは表現が不十分」という問題を優先的に解決すべきです。単にビジュアルスキンを変更するだけではありません。新しいコンポーネントは明確な情報タスクを持つ必要があります(例:時間範囲の表現、地理的関係、因果関係、空間階層、証拠注釈、バージョン差、構造断面)。
- 新しいコンポーネントは意味のある命名を優先します(例:
timeline-band、map-note-card、artifact-callout、split-metric-stage、city-axis-board)。意味のないbox-1やlayout-aは避けます。 - 新しいコンポーネントはページ全体のスケルトンでもかまいません。カード拼贴に退化する必要はありません。注釈線、時間軸帯、階層化背景、ローカル拡大フレーム、番号付きアンカーポイント、ファイルラベル、スタンプ式ビジュアル、新聞欄、キュレーション壁、編年表、示意地図などの表示方法を使用できます。
- 述語型カードページは5列禁止:タイトル+説明+bulletを含む説明型ページは最大4列です。5列は極短のラベルカードまたはアイコンのみカードに使用します。
- 「上がいっぱい下が空っぽ」禁止:ページ下部の留白が上部より明らかに大きい場合、レイアウトが不完全と見なされます。
新規コンポーネント設計ルール
components.mdを超える場合は、次のルールに従って設計します:
- 先に情報タスクを定義 — このページが時間、空間、関係、証拠、対照、層次、または物語のどれを表現するかを先に明確にしてから、コンポーネント形式を決定します。
- 1ページに1つの主な創意のみ — 補助コンポーネントを含むことはできますが、主なビジュアル言語は単一である必要があります。「新しさ」のために情報取得速度を犠牲にしながら、時間軸+地図+大きなテーブル+複数層のカードを同時に1ページに表示することは避けます。
- スキャン可能性が炫技より優先 — 新しいコンポーネントは、読者が3秒以内に主な結論を理解できる必要があります。「新しい」ためにスピードを犠牲にすることはできません。
- 構造が装飾より優先 — 先に情報ブロック、読む順序、アンカーポイント、配置関係を確定し、その後グラデーション、シャドー、テクスチャ、スタンプ、境界線などの装飾を追加します。
- テーマに合わせてコンポーネントをカスタマイズすることが許可されます — 歴史モノは編年軸、出土品注釈カード、古今対照図を使用できます。戦略的な場合は戦争エリア図、優先度チェスボードが可能。製品モノは分割ショット、インターフェース拡大鏡、ファネル劇場が可能。教育モノは黒板式推演、問題解析図が可能です。
- 既存のデザイン言語を再利用 — 新しいコンポーネントを作成しても、既存の色変数、丸角、シャドー、フォントサイズ階層、revealアニメーションを継続使用します。完全に分離された別のシステムにはしません。
- 抽象化できるなら抽象化 — 新しいコンポーネントが2ページ以上で繰り返される場合は、2回目から安定したclass命名として抽出する必要があります。毎回散在したインラインスタイルにはしません。
コンテンツ密度ルール
| コンテンツタイプ | モードA2(テーマクリエイション) | モードA1(コンテンツ圧縮) |
|---|---|---|
| テキスト要点 | 10~15個のbullet、各 ≤ 40字 | 6~8個、各 ≤ 25字 |
| 情報カード(横方向) | 5~6列、説明 ≤ 120字 | 4~5列、説明 ≤ 50字 |
| 情報カード(縦方向) | 単列 ≤ 10枚、説明 ≤ 120字/枚 | 単列 ≤ 6枚、説明 ≤ 35字/枚 |
| データ統計 | 6~9個のstat-block、1~2文の解釈付き | 6個、1文の解釈付き |
| 対比/フロー | 4~6個のstep-card、説明 ≤ 80字 | 4個、説明 ≤ 35字 |
| テーブル | 最大12行×6列 | 最大8行×5列 |
| 原文の引用 | 1~3段、各 ≤ 150字 | 1段、≤80字 |
| カード説明の正文 | 3~5文、≤120字 | 2~3文、≤50字 |
| 単一ページの総文字数 | ≤300字 | ≤150字 |
制限を超える → 自動的に複数ページに分割し、ページ間を連続した過渡タイトルでつなぎます。
レイアウトの多様性
計画完了後、フェーズ3に進む前に次の自己チェックを実行する必要があります:
- 各タイプのレイアウト ページ数を統計(多列カード、フロー、bullet、純ビジュアル)
- 局部連続制約を確認:
three-col/info-card≥ 4連続 → 中間にトランジションページまたは大字判定ページを挿入step-card≥ 3連続 → 4ページ目で他のスケルトンに変更styled-list≥ 4連続 → 少なくとも1ページをカードまたはチャートに変更
- 全体的な制約を確認:
- 複数列カードページがコンテンツページの > 55%を占める → 超過部分を置き換え
- 総ページ数 > 10で純ビジュアルページなし → 少なくとも1ページを挿入(中段への配置を推奨)
- 調整がある場合は、計画一覧で調整位置に
[調整]とマークします。
テキスト改善(自動実行)
- **冗長性
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- FeeiCN
- リポジトリ
- FeeiCN/slide-writer
- ライセンス
- MIT
- 最終更新
- 2026/4/15
Source: https://github.com/FeeiCN/slide-writer / ライセンス: MIT