Communitygithub.com

chuonglife/レッスンスライドデザイナースキル

1つのレッスン(学習指導案、授業スクリプト、シラバスの一部、ノートなど)を、クリーンで活気のあるパワーポイントデッキ(.pptx、16:9、アイコン、ネイティブチャート、スピーカーノート付き)と、動画編集者やテキスト読み上げパイプラインがナレーション付きスライドショー動画を制作するためのビデオスクリプトファイルに変換します。インストラクショナルデザインのルール(1スライド1アイデア、全スライドにビジュアル、6x6テキスト、24pt以上、暗い背景、3色、タイトルからクロージングまでのレッスン構成)に従い、すべてのルールをスクリプトでチェックしてから成果物を引き渡します。

レッスンスライドデザイナースキル とは?

このスキルは、学習指導案、授業スクリプト、シラバスの一部、講義ノートなどのレッスンコンテンツを、学習用のスライドデッキとナレーション付き動画のためのビデオスクリプトに変換するために設計されています。出力は、スライドデータの単一ソースとなる`slides.json`、16:9のPowerPointファイル(.pptx)、各スライドのナレーションがスピーカーノートに含まれています)、ビデオ制作向けのスクリプト(`*.video-script.md`)、プレビュー画像、オプションのプレビュー動画で構成されます。全工程でインストラクショナルデザインのルールを厳密に適用・チェックします(1スライド1アイデア、全スライドにビジュアル、6x6テキストルール、24pt以上のフォントサイズ、暗い背景と3色テーマ、タイトル→クロージングの構成など)。スキルはClaude CodeやCodexなどのAIエージェント向けに設計されており、Pythonスクリプト(`python-pptx`、`Pillow`、`lxml`、`cairosvg`など)を使用して、ユーザーが提供したレッスンコンテンツからスライドデッキとビデオスクリプトを生成します。ワークフローは、ソースの読み取りと確認、スライド計画の作成、`slides.json`の記述、スライドのビルドとチェック、最終的なレポートの生成という4つのステップで構成されています。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/chuonglife/lesson-slide-designer-skill/tree/HEAD

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

レッスンスライドデザイナー

1つのレッスンの内容を、学習に役立つスライドデッキと、ナレーション版のためのビデオスクリプトに変換します。1度に1レッスン、レッスンごとに1フォルダ。

出力先は、ユーザーが別の場所を指定しない限り、slides/<course>/<lesson>/ です。

ファイル説明
slides.json唯一のソース:すべてのスライドをデータとして保持し、16種類のスライドタイプを使用(references/slide-types.md参照)。これを編集してから再ビルドします。
<file_name>.pptx16:9のデッキ、Arial、3色テーマ。各スライドのナレーションはスピーカーノートに含まれています。
<file_name>.video-script.md動画工程のためのファイル:スライドごとに1ブロック。画面テキスト、制作ノート、テキスト読み上げ用のナレーション、秒数、および概要テーブルが含まれます。
_preview/slide-NN.png, _preview/contact-sheet.pngすべてのスライドの1920x1080画像とコンタクトシート。視覚的な確認用、および動画のフレームとして使用します。
<file_name>.preview.mp4(オプション)スクリプトのタイミングに合わせた無音のスライドショー、またはスライドごとに音声がある場合はナレーション付き。

スクリプトが使用するツール:Python 3.9以上、python-pptx、Pillow、lxml(アイコン用にcairosvg、またはsharp-cli、rsvg-convert、Inkscape)。プレビュー表示用にLibreOfficeとPoppler(pdftoppm)。オプションのプレビュー動画用にffmpeg。アイコンはassets/icons/にあるLucideセット(ISCライセンス)です。

ワークフロー

ステップ0. ソースを読み込み、概要を確定する

  1. レッスンソースのすべて(目的、対象者、配信方法、分数付きの学習指導案、スクリプト、回答付きの質問、スライドの概要、配布資料)を読みます。ユーザーがタイトルだけを指定した場合は、コンテンツを尋ねるか、先にコンテンツを書きます(関連スキルlesson-content-writerがこれを正確に行います)。
  2. references/slide-standards.md(ルールとデッキ構成)とreferences/slide-types.md(16のタイプとそのテキスト制限)を読みます。
  3. 以下を確定します:配信方法(セルフペース動画の場合は、各動画が独自のオープン、ボディ、クローズ、および一時停止スライドを持つクラスターとして構成。ライブクラスの場合は、部屋に向けて質問したり、練習を指示するスライドとして構成)。言語(language、任意の言語が動作。enとviは追加のチェックあり)。テーマ(デフォルトはnavy。コースごとに1テーマ、レッスンごとに再利用)。インストラクターが学習者に呼びかける方法(スクリプトから取得)。フッター用のインストラクター名と連絡先。

ステップ1. デッキを計画する

ソースのスライド概要、またはレッスンの順序から、次の表を作成します:# | タイプ | スライドの1つのアイデア | ビジュアルまたはアイコン | 質問または一時停止 | 動画番号。制約:

  • 完全な構造:title ->(レッスンにquestion(挑戦的な導入)がある場合)-> objectives -> agenda -> 各パートに対してsection(またはcurrent付きのagenda)-> 2~5のコンテンツスライド -> 少なくとも1つのquestion -> summary -> closing。
  • 1スライド1アイデア。 デッキごとに少なくとも4つのスライドタイプ。同じタイプが3つ連続しない。ナレーション10~12分ごとに少なくとも1回の一時停止または質問。
  • 感情の弧を計画し、1/3と2/3の地点にリズムブレイカーを配置。タイトルはステートメントとして書き、ラベルにしない(references/rhythm-and-titles.md参照)。出典がある数字はbig-numbersまたはchartに配置し、箇条書きにはしない。
  • 事実、用語、数字、例はレッスンソースからのみ取得する。決して作り出さない。例は学習者自身の作業から取る。
  • 動画コース:学習指導案に従い、ソースのすべてのセクション、例、一時停止の質問、練習問題をスライドまたはナレーションでカバーし、計画された分数でvideosを宣言して、スクリプトが薄い動画について警告できるようにする。ソース内のスライド概要は下限であり、上限ではない。100分のレッスンには通常35~60枚のスライドが必要。17スライドのテンプレートは技術的なデモであり、完全なレッスンではない。

ステップ2. slides.jsonを記述する

templates/slides.example.jsonをコピーし、計画に従って記入します。各スライドについて:

  • 画面テキストは、24ptで収まるキーワードと短い行(制限はslide-types.mdの各タイプを参照)。長すぎる場合はスライドを分割する。テキストを縮小してはならない。
  • narration:レッスンスクリプトから、聴覚用に書き直す(references/narration-and-video-script.md参照)。1呼吸1行。各行の末尾は., ,, ?, !で終わる。数字は話し言葉で書く。スライドを逐語読みしない。質問スライドでは「動画を一時停止してください」と言う。
  • notes:制作指示(1つずつ表示、ポイント、丸で囲む、クリップを挿入、「60秒間無音」など)。
  • 意味に基づいてアイコンを選び(slide-types.md、セクション4)、コース全体で繰り返し使用する概念には1つのアイコンを維持する。実際の画像(スクリーンショット、製品写真)はslides.jsonの隣に配置し、出典をIMAGE-SOURCES.mdに記録する。ウェブからの画像ダウンロードは事前に確認し、ライセンスを確認する。
  • 人間らしく書き、パンフレットのようには書かない(references/plain-human-voice.md参照)。

ステップ3. ビルドしてチェックする

python scripts/build_slides.py slides/<course>/<lesson>/slides.json

スクリプトはハード違反で停止します:6行を超える、24ptで収まらないテキスト、2語をまとめても修正できない孤立語、不足しているアイコンや画像、未知のタイプ、禁止されているダッシュやAIフレーズ、ナレーションと矛盾するタイマーラベル、ナレーションで読まれない項目。slides.jsonを修正し、エラーが0になるまで再ビルドします。すべての警告も読み(長い行、ナレーション内の数字、同じタイプが3連続、リズムブレイカーなし、薄い動画)、修正するか、その理由をメモします。

python scripts/render_slides.py slides/<course>/<lesson>/<file_name>.pptx

_preview/contact-sheet.pngを見て、次に各slide-NN.pngをフルサイズで、slide-standards.mdのセクション5のチェックリストを使って確認します:テキストのクリッピングや重なり、大きな空白領域、位置ずれ、3分の1のサイズで読めるか、スライドごとに1つの焦点。修正、再ビルド、確認を完全パスするまで繰り返します。最新のレンダリングを見ずに完了と報告してはなりません。

オプションで、ペーシングを確認したり、ドラフト動画を引き渡す場合:

python scripts/preview_video.py slides/<course>/<lesson>/slides.json [--audio <folder with S01.mp3 ...>]

動画プラットフォーム向けの長いレッスン(トピックごとに1動画、10~12分):すべてのスライドにvideo番号を付けて1つのレッスンレベルのslides.jsonを保持し、分割します:

python scripts/split_videos.py slides/<course>/<lesson>/slides.json --build --render

各動画は独自のフォルダとデッキ(タイトルスライド「Video k/N」付き)、独自の目的、ボディ、次の動画につなげるクロージングを取得します。レッスンレベルのファイルを編集し、生成されたファイルは編集しません。

ステップ4. 報告する

ユーザーに次の情報を提供します:デッキ、ビデオスクリプト、コンタクトシートのパス。簡単な概要テーブル(# - タイプ - アイデア - 秒数)。スライド数と推定時間。テーマ。前提条件(呼称、数字とその出典)。残した警告とその理由。コンタクトシートを表示します。

複数のレッスンを連続して行う場合

同じコースフォルダ内の以前のレッスンのテーマ、フッター、呼称、アイコンごとの概念セットを再利用します。titleとclosingスライドはコース全体でレイアウトを同一にし、各クロージングが次のレッスンにつながるようにします。

原則

  • 標準は動かない(slide-standards.md)。その中のコンテンツに創造性が注がれる。スクリプトがゲートキーパーであり、通過するためにチェックを無効にしてはならない。
  • スライドは目のため、ナレーションは耳のため。 2つのチャンネルは互いに補完し合い、決して重複しない。
  • 学習者は何かをする。 すべてのパートに質問または一時停止があり、デッキは1つの具体的なアクションで終了する。
  • タイトルはデフォルトで大文字("title_case": "upper")。JSONは記述されたまま保持されるため、ナレーションや字幕に影響はない。大文字は幅を取るため、タイトルは短く保つ。
  • 24ptはすべてのものの下限。ラベル、キャプション、出典、フッターも含む。長すぎる場合は、縮小ではなく書き直し。
  • 孤立語なし。 タイトル、カード、ステップ、箇条書きの最終行に1語だけがあると、見た目が崩れる。スクリプトは収まる場合に最後の2語をまとめ、収まらない場合は停止する。
  • 実行してから引き渡す。 ビルド、レンダリング、確認、測定。決して推測しない。
  • スライドタイプを追加するには、scripts/build_slides.pyにs_<type>メソッドを追加し、KINDSに登録し、slide-types.mdにドキュメント化し、使用する前にテストデッキをビルドする。

リファレンスファイル

  • references/slide-standards.md - デジタル学習スライドとは何か、10のデザインルールとスクリプトがそれぞれをチェックする方法、デッキ構成、マルチメディア学習の原則、配信前チェックリスト。
  • references/slide-types.md - slides.jsonの形式、テキスト制限付きの16のスライドタイプ、テーマ、動画計画、アイコンリスト。
  • references/narration-and-video-script.md - テキスト読み上げまたは人間の声のためのナレーションルール、制作ノート、画面上のすべての項目の読み上げ、動画制作への引き継ぎ。
  • references/rhythm-and-titles.md - レッスンの感情の弧、1/3と2/3のリズムブレイカー、ステートメントタイトル、オープナー、比較、数字、クロージングのための文型。
  • references/plain-human-voice.md - AIの声を取り除く方法:禁止ダッシュとフレーズ、文のリズム、具体的な詳細、意見。
  • templates/slides.example.json - すべての主要タイプを使用する17スライドのデモレッスン。既にビルドおよびチェック済み。

関連スキル