Communitygithub.com

shakedal1/lecture-deck-remake

退屈で分かりにくい講義、ラボ、チュートリアルのスライド(PDFまたはPPTX)を、明確で魅力的なSlidesアーティファクトに再構築します。アナロジー、実践例、クイズ、図解、元の画像、アニメーション、目立つコマンドを盛り込み、英語、ヘブライ語、またはその両方で作成します。

lecture-deck-remake とは?

このスキルは、既存の講義スライドが「退屈」「分かりにくい」「ついていけない」と感じた時に、それを効果的な教材へと生まれ変わらせるためのものです。元のスライド(PDF/PPTX)を分析し、1つの具体的な実行例と日常のアナロジーを中心に構成された、学習効果の高いスライドデッキを新たに作成します。4~6枚ごとにクイズを挿入し、概念の理解を促します。また、すべてのスライドに段階的なアニメーション(ビルド)を必須とし、コマンドやコードを視覚的に際立たせる専用のチップデザインを採用します。元のスライド内の有用な画像は保持・活用し、図解が必要な部分はSVGやdiv要素で描画します。最終的には、チートシートと用語集を備えた約20~26枚のスライドデッキとして出力され、Claude Codeやその他のAIエージェントプラットフォーム上で利用できます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/shakedal1/lecture-deck-remake/tree/HEAD

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

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

ドキュメント

講義スライドのリメイク

退屈な講義スライドを、学生が実際に学べるものに変えます。出力は Slidesアーティファクトタイプ(言語ごとに1つ)で作成されたスライドデッキです。スライドのフォーマット、ファイル、公開に関するすべては、そのタイプの指示に従います。このスキルは、その上に、教育デザイン、アニメーションとコマンドのルール、そしてヘブライ語RTL(右横書き)のテクニックを追加します。

最初のスライドを書く前に references/patterns.md を読んでください。以下に挙げるすべてのパターンの、コピー可能なマークアップが記載されています。

1. まずソース全体を読む

  • PDF: Read を使用し、最大20ページずつチャンクに分けてすべてのページを確認します。PPTX: pptxスキルを使用してテキストと画像を抽出します。
  • 読みながら、以下のものをリストアップします:トピックの順序、すべてのコマンドまたはコードスニペット、すべての定義、デッキ内に既にあるすべてのクイズや質問、そして、1つのコールアウトだけが変更された同じスクリーンショットが繰り返されているスライド。これらの繰り返しスライドは、最初に統合すべきものです。
  • また、保存する価値のあるすべての画像をリストアップします:写真、実物やモデル、ツールのスクリーンショット、そして手描きでは表現できないものを示す図。各画像のページと、Read プレビューでのおおよその位置をメモします。後でそれを切り抜く(クロップする)ためです(§6)。
  • ソースからのすべての事実(名前、日付、メール、採点、リンク、コマンドフラグ)を保持します。ソースまたは例自体の論理から導き出せない数値、引用、ツールの動作を決して作り出してはいけません。

2. 教育計画を立て、それから構築する

計画を一行でユーザーに伝え、開始します。承認を待つ必要はありません。

  • 1つの実行例。 ソース自身の例を選び、それに具体的で物理的なイメージを与えます(例:3ビットone-hot FSM → 「3つのランプを使った光のチェイサー」)。すべてのスライドでそれを再利用します:プロパティはそれに関する平易な質問になり、結果はその用語で説明されます。
  • 概念ごとに1つのアナロジーを、日常生活から選び、スライド上で正式な定義の隣にイタリック体で書きます(例:シミュレーションvs形式手法 = 1000個の鍵を試すvs錠前師が機構を証明する;リセット = 「ニューゲーム」;クロック = メトロノーム;境界 = 通りにある最寄りのコーヒーショップ;デバッグの「なぜ」 = 過去に戻る探偵)。
  • 4~6枚ごとにクイズを挿入します:実行前の予測、手書きトレース、「Xを変えたらどうなるか」、○×問題。答えは、クリックで表示される固定ボックスに収めます。スピーカーノートにも答えを記載してください。
  • ソースの画像を保持し、残りは描画します。 ユーザーは元のデッキの関連画像を望んでいます。図解を優先してそれらを落とさないでください。リストアップした各画像について:
    • もしあなたの描画と同じものを示している場合(解像度のストリップ、ツールの実際のウィンドウ、ビフォー/アフターの比較)、描画の代わりにその画像を使用します。
    • もし描画では表現できないものを追加している場合(実際の写真、実際の3Dモデル、実際のデータセット)、同じスライド上で実行例の描画の隣に配置し、両者を結びつける1行のキャプションを付けます。
    • もしそれが純粋に装飾的であるか、別の画像を繰り返しているだけなら、それを除外し、レポートでその旨を明記します。 ソースが言葉でしか説明していないもの(状態遷移図、波形、タイムライン、数直線、実行例の段階的な構築)は、SVG/div(patterns.md参照)として描画します。
  • 1スライド1アイデア、約20~26スライド。リズムとして、カバー、各セクションのオープナー、まとめには暗い背景のステートメントスライドを、明るい背景のコンテンツスライドを、クイズスライドには暖色系の背景を使用します。
  • チートシートで締めくくります:すべてのコマンドを順番に、2~3語の注釈と共に、そして主要な用語の用語集を添えます。

3. アニメーションは必須、オプションではない

ユーザーはより多くのアニメーションを求めています。すべてのデッキは以下を満たす必要があります:

  • すべてのセクションに data-transition を設定します:ほとんどのセクションでは fade、新しいセクションに入る時は push、同じ図を2つの状態で表示するスライド間では magic を使用します。
  • すべてのコンテンツスライドに少なくとも1つのビルドシーケンスを設けます:主要な要素は position:absolute の子要素とし、data-build-in="<効果> <順序>" を付けることで、プレゼンモードで1つずつ表示されるようにします。ビルドは固定された子要素でのみ機能するため、段階的に表示するスライドは、明示的な left/top/width でレイアウトします。
  • 教えるためのビルドを使用します。フローを1ステップずつ表示する(rise 1, rise 2, ...)、状態遷移図を矢印ごとに描画する(矢印グループごとに1つの固定SVG)、波形を1サイクルずつ進める、定義の後にアナロジーを表示する、クイズの答えを最後に表示する、など。
  • マジックムーブを使用して変化をアニメーション化します:連続する2つのスライド上の、一致する固定要素に同じ id を設定します(ランプが点灯する、ハイライトが次のサイクルに移動する、境界区間が狭まるなど)。
  • 効果を目的に応じて使い分けます:リストやステップには rise、結果やチェックには pop、方向から到着するものには left/right、注釈には fade、大きな披露には scale。1スライドあたり約6ビルドを超えないようにします。

4. コマンドはスライドから飛び出るように

ユーザーはより目立つコマンドを求めています。すべてのコマンド、フラグ、Tclまたはシェルの行には、patterns.mdのコマンドチップを使用し、デッキ内の他の要素はそのスタイルを真似してはいけません:

  • 自身のブロック(<p>)を持ち、文中にインラインで配置してはいけません。spanは色しか適用できないため、spanに font-family を設定しても無視されます。
  • 等幅フォント(JetBrains Mono)で32~40px、太字。暗いチップ背景、コマンド専用の明るいアクセントカラー、左端の太いアクセントバー、そしてプロンプト記号(Tclには %、シェルには $)。
  • 各チップの隣に、その機能を説明する短いラベル(「コンパイル」、「すべてを証明」など)を配置します。
  • ステップスライドでは、コマンドチップはタイトルの次に大きく、最初にビルドインされます。
  • コードリスト(ファイル全体)には、別の落ち着いたコードカードスタイルを使用し、コマンドがそれらからも際立つようにします。

5. 言語

ユーザーが2つの言語を希望する場合、同じスライドIDとコンテンツで、そのタイプから2つの別々のデッキを作成します。まずソース言語(または英語)でデッキを構築し、次にもう一方の言語で構築します。ヘブライ語では、patterns.mdのRTLテクニックが必要です:すべてのヘブライ語テキストブロックを &#8295;…&#8297; で囲み、ヘブライ語内のインラインコードを &#8294;…&#8297; で囲み、text-align:right と row-reverse の行を使用し、テーブルの列順序を逆にし、シーケンス内では ← を使用し、<br> で区切られた各行を個別に分離します。コード、コマンドチップ、波形、GUIワイヤーフレームは左から右のままにします。Rubikフォントはヘブライ語とラテン文字の両方をカバーします。

6. 構築と公開

Slidesタイプ自身のファイルと呼び出しに関する指示に従い、使用経験から得られた以下のルールを適用します:

  • project/deck.json(完全な order, sections, faces)とカバースライドを作成し、公開し、その後ラウンドごとに約4枚のスライドを作成・公開します。
  • edits を含む公開は、同時に files を含むことができません。Editツールで編集し、その後ファイルを公開します。
  • 公開がネットワークエラーで失敗した場合、同じファイルを再送信します。それは安全です。
  • PDFからのソース画像の切り抜き(クロッピング)(それらの画像を使用するスライドを書く前に行います):
    • そのPDFをスクラッチパッド内の新しいフォルダにコピーし、クロップ結果は別の assets フォルダに書き込みます。
    • ページサイズを取得します:python -I -c "import pypdf,sys;print(pypdf.PdfReader(sys.argv[1]).pages[0].mediabox)" <pdf>。PyMuPDFとPillowはここではインストールされていません。pdftoppm(MiKTeX)は利用可能です。「Windows 10が必要です」という警告は無視してください。
    • ページから直接クロップします:pdftoppm -f N -l N -r 250 -x X -y Y -W W -H H -png -singlefile <pdf> <assets>/<name>。座標は Read プレビューから取得します:スケール = (250 / 72) × ページ幅(pt) / プレビュー幅(px)。720ptのページが1000px幅でプレビューされた場合、×2.5になります。
    • すべてのクロップを一度 Read して端を修正してからアップロードします:隣の画像の一部が混入していることがよくあります。
    • パネルのストリップ(例:1つの画像が7つの解像度で表示されている場合)は、各パネルごとに1つのクロップに分割し、パネルを1つずつビルドインできるようにします。
    • すべてのクロップを1回の呼び出しでアップロードします:Artifact publish に url, asset: true, file_paths(最大25個)を指定します。返された各 /_blob/<id> を <img src> にそのまま使用し、object-fit:contain と、クロップのアスペクト比に合った幅/高さを指定します。
    • PPTXの場合は、pptxスキルが抽出した画像を取得し、同様にアップロードします。
  • 高さを予算化します:マージン内で824px。タイトルブロックは約130px、テーブルの行は1行あたりフォントサイズの約2.1倍、固定ボックスはy座標952より上で終わるようにします。テキストは縮小する前に短くし、テキストは24px以上に保ちます。
  • ユーザーから要求がない限り、レンダリングやスクリーンショットで確認しないでください。

7. レポート

各デッキのリンク、オリジナルと比較した変更点(実行例、アナロジー、イラスト、保持したソース画像とその場所、除外した画像、クイズ、アニメーション、コマンドのスタイル、統合した繰り返しスライド)、そして確認しなかった点を伝えます。デッキは共有されるまで非公開であることをユーザーに思い出させてください。

関連スキル