Communitygithub.com

yem-hjk6th/explainer-kit

数理・コンピュータビジョン・MLのコンセプトを短く検証済みの解説動画(計算によるアニメーション+キャプション、オプションで翻訳版、ナレーション原稿とTTS音声)にします。ユーザーが解説動画、論文のアニメーション、ストーリーボード、またはレビュー/修正を依頼したときに使用します。

explainer-kit とは?

このスキルは、数理・コンピュータビジョン・機械学習の概念を短く検証済みの解説動画に自動生成するためのAIエージェント用スキルです。ユーザーが「解説動画を作って」「論文のメカニズムをアニメーションで示して」などと依頼した際に、このスキルが起動します。リポジトリには`animkit`ライブラリ(Pythonベースのアニメーションツールキット)が含まれており、動画のレンダリングを担当します。スキルの核となるのは、`references/STYLE.md`にまとめられた実際のレビューから得られた厳格なルールと、表示されるすべての数値を検証する習慣です。パイプラインは「精読」→「ストーリーボード」→「ショット作成」→「アセンブル」→「レビュー」→「オプション(翻訳/ナレーション)」の6段階で構成され、各段階にチェックポイントがあります。特に、表示する数値はすべて計算で求め、ソース(論文の節・式、公式コードの行、自前のスクリプト)を`CLAIMS_to_verify.md`に記録し、独立した検証を必須とします。対応プラットフォームはClaude Code, Cursor, CodexなどのAIエージェントです。ユーザーはトピック、ソース資料、対象視聴者、長さ、翻訳の有無などを指定するだけで、エージェントが自動的にパイプラインを実行し、最終的な動画ファイルとレビューページを生成します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/yem-hjk6th/explainer-kit/tree/HEAD/.claude/skills/explainer-video

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

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

ドキュメント

解説動画作成

あなたは、特定の視聴者に理解され、かつ正しい解説動画を作成します。結果を左右するのは2つの要素です。 references/STYLE.mdのルール(実際のレビュアーフィードバックに基づく)と、表示するすべての数値を計算して確認する習慣です。レンダリングは簡単な部分です。

リポジトリマップ: ライブラリ animkit/(APIリファレンス animkit/README.md)、ツール群 tools/、サンプル examples/、完成した2つのエピソード episodes_example/(ストーリーボードとショットのフォーマットをコピーすること。CLAIMS形式は references/VERIFY.md にあります)、あなたの作業は episodes/<ID>_<topic>/ に配置します。

0. 開始前に

  1. 環境は動作していますか? python -I -B -X utf8 tools/selftest.py が all OK と表示される必要があります。config/animkit.json がない場合は、python -X utf8 tools/setup_config.py を実行します(設定はチェックアウトごとに必要です。新しいクローンやgit worktreeでは再実行が必要です。または ANIMKIT_CONFIG を設定してください)。問題がある場合は SETUP.md を参照。
  2. デフォルトで決められないことだけをユーザーに質問します(1回のメッセージで簡潔に):
    • トピックとソース資料(講義ノート、論文、Webページ)。すべての主張にソースが必要です。
    • 対象視聴者とその既知の知識(深さを決めます。references/STORYBOARD.md §Audience を参照)。
    • 長さ。翻訳版/ナレーション/音声合成が必要か?
    • 実際のモデル(GPU、ダウンロード)を実行してよいか? デフォルト:いいえ。既知の正解データで合成シーンを使用。
    • 回答がない場合のデフォルト:1080×1440、30fps、キャプションのみ、音声なし、1回のレビューラウンドを計画。
  3. episodes/<ID>_<topic>/ を作成し、STATUS.md(ステージ/次のステップ/待機中/ date からの時間)を配置します。

1. パイプライン(詳細とコマンド:references/PIPELINE.md)

ステージあなたが生成するもの次のステージへのゲート
A. 精読ソースダイジェスト;オプションで参考動画の分析(references/REFERENCES.md)メカニズムを「入力 → 数式 → 形状 → 小さな数値例 → なぜそうなるか」として説明できる
B. ストーリーボードstoryboard.md、CLAIMS_to_verify.md、episode.json(+ ライブラリに不足があれば elements_needed.md)長いエピソードの場合、ユーザーが概要をOKすること;独立検証ラウンド1が完了し、修正が適用されていること(references/VERIFY.md)
C. ショットshots/sNN_*.py、各々に @shot.check を含む--check-only がパスすること;コンタクトシートを確認;フルレンダリング;check.json の警告を修正
D. アセンブルrender/<ID>.mp4(tools/concat.py)、review/round1/review.html(tools/review_page.py)各ショットのシートを確認済み;画面上の数値 = CLAIMS
E. レビューラウンドreview/roundN/feedback.md(ユーザーのメモ)、review/roundN+1/changes.md、再レンダリング各フィードバック項目に回答;新しい主張を検証(1項目あたり最大2ラウンド)
F. オプション翻訳版(references/I18N.md)、ナレーション(references/NARRATION.md)、音声合成(references/TTS.md)それぞれに独自のチェックあり

ショットは動画の言語で直接記述します(例では英語)。キャプション、タイトル、ラベルはスクリプト内のプレーンな文字列です。--lang は2番目の翻訳版のみに使用します。

マイクロパス(≤ 60秒、1~3ショット)。同じステージですが、より軽量です。episodes/<ID>_<topic>/ 内の最小ファイルリスト:

  1. storyboard.md:1つのテーブル、キャプションごとに1行(時間範囲、キャプション、画面の変化、計算値か説明用か)。スケルトン:templates/storyboard_skeleton.md。
  2. CLAIMS_to_verify.md:画面上の数値/事実ごとに1行(主張、ソース、確認方法、測定値/計算値/推測値/論文)。
  3. shots/s01_<name>.py を templates/shot_template.py から作成し、表示されるすべての計算数値を文字列としてアサートする @shot.check を含めます。
  4. 検証:新しいサブエージェントに templates/verifier_prompt.md を使用し、すべてのCLAIMS行をスコープとします。修正を適用します(古い文言は取り消し線)。
  5. レンダリング:--check-only → --sheet-only(sheet.jpg を確認)→ フルレンダリング。
  6. episode.json と tools/concat.py はショットが2つ以上の場合のみ使用。tools/review_page.py <EP> --round 1 でレビューページを作成(1ラウンド)。主張テーブル、@shot.check、コンタクトシートの確認を省略しないでください。

2. 決してオプションではないルール

  • 計算可能なビジュアルはすべて計算(投影、アテンション重み、リシェイプ、逆投影、フィッティング線)し、@shot.check でアサートします。表示される文字列も含めます:ck.eq("depth on screen", f"{z:.3f}", "1.976")。完全精度からフォーマット。印刷された値を再丸めしないこと。説明用ビジュアルには shot.tag("Illustration") を使用。次元削減された図面はその旨を明記。
  • すべての数値にはソースがある(論文の§/表/式、公式コードのファイル+行、または独自スクリプト)CLAIMS_to_verify.md に記述し、測定値/計算値/推測値/論文のいずれかでラベル付け。比較では指標、単位、値の大小どちらが良いかを明記。パーセンテージは分母を明記。
  • すべての記号は出現時にその都度定義。視聴者が知らないと思われる用語にはポップアップサイドウィンドウ(animkit.Popup)で簡潔に説明し、閉じます。
  • 1つのキャプション = 1つの視覚的変化、≤ 12単語、フレーム幅を超えないこと(レンダラーが警告;42pxでは1行あたり約8語、最大2行)、2~3秒、静的でないこと。
  • 図を先に、次に数式。数式の項を1つずつ照明し、各項を図の対応部分に色付けまたはリンク。
  • 独自のテストは(論文の実験ではなく)私たちのものとラベル付け、初回と以降同じタグで。
  • 独立検証:主張を書いた者が検証しない。修正は新しい主張。最大2ラウンド、その後は文言通りに適用しスポットチェック。古い文言は取り消し線で示す(~~old~~ → new)、決して黙って削除しない。
  • 翻訳やナレーションで事実を捏造しない:検証済みのキャプション/CLAIMSが言うことだけを言う。
  • 完全なチェックリスト:references/STYLE.md(§A 内容、§B リズム、§C ビジュアル文法、§D 納品前、§E ルール化されたレビューフィードバック)。ストーリーボード作成前と各レビューラウンド前に読むこと。

3. 作業スタイル

  • 必要なAPIセクションを animkit/README.md で読む(長いので、要素をgrepしてからその部分を読む)。episodes_example/ の最も近いショットからパターンをコピーし、レイアウトを新規発明しない。templates/shot_template.py は最小限の完全なショットテンプレート。
  • ショットの反復には --still t1 t2(PNGフレーム)と --sheet-only(12フレームコンタクトシート)を使用。フルレンダリングは最後に行う。シートは毎回自分で確認(重なり、テキストのはみ出し、ボックス=グリフ欠落、図に重なるキャプション)。スチルは後のレンダリングで更新されないので、編集のたびに --still を再実行。
  • 3Dシーン:animkit/README.md §3D scenes(PinholeCam、OrbitCamのaz/el規則:az=90, el=0は側面図)。2D図(ピンホール側面図など):§2D side view(等スケールのPlot2D)。
  • Pythonは python -I -B -X utf8 として実行。別のセッションがレンダリング中にライブラリファイルを編集しない(references/PITFALLS.md)。
  • STATUS.md を短く最新に保つ。努力を effort_log.csv に記録(item,size,start,end,render_s,iterations,note)。
  • 長いエピソードや多数のショット:references/DISPATCH.md に従ってセッション/サブエージェントに分割(メインセッションのコンテキスト予算約300k、1回限りのサブエージェントは≤150k、切り替え前にハンドオフファイルを作成)。

4. 納品

ユーザーに伝えること:動画パス、レビューページパス(review/roundN/review.html、ブラウザで開く。ショットごとのコメントボックスと「すべてコピー」ボタンあり)、計算されたものと説明用のもの、検証されたものと誰が検証したか、未解決の質問。フィードバックが戻ってきたら、そのまま review/roundN/feedback.md として保存(ショットIDごとに1行、例:E03-02: ...)、各項目に回答し、一般的な好みはエピソードのローカルルール(episodes/ 内の STYLE_local.md)に追記し、次のエピソードで反映されるようにする。

リファレンスインデックス

ファイル読むタイミング
references/PIPELINE.md開始時;ステージコマンド、ファイル形式、ゲート
references/STYLE.mdストーリーボード作成時;各レビューラウンド前
references/STORYBOARD.mdステージB:視聴者の深さ、ストーリーボード+CLAIMS形式、ストーリーパターン
references/REFERENCES.md参考動画/ソース論文の研究時
references/VERIFY.md + templates/verifier_prompt.mdCLAIMS後、モデル実行後、ナレーション/翻訳後
references/REVIEW.mdステージD~E:レビューページ、フィードバックファイル、ラウンド
references/I18N.md英語エピソードの翻訳版(--lang)
references/NARRATION.mdビジュアルセグメントごとの音声スクリプト
references/TTS.mdローカルTTS音声、タイミング、ミキシング
references/DISPATCH.mdマルチセッション/サブエージェント作業、コスト、共有マシンのエチケット
references/PITFALLS.md何かが壊れたとき;ライブラリを変更する前
templates/セッションとサブエージェント用プロンプト、スケルトンファイル、ショットテンプレート

関連スキル