Communitygithub.com

marsik641/space-shorts

ステップ2~4のショート動画パイプライン:worktree内で縦型宇宙Short(≤30秒、英語のみ)を制作し、承認後、2台のレンダリングPCの共通キューを経てリリース(MP4 + publish_en.md)し、ブランチをmainにマージします。「バージョンNを作成」「/make-video」「Xに関する動画を開始」「アップロードパッケージ」などの指示で使用します。

space-shorts とは?

このスキルは、Claude CodeやCodexなどのAIエージェントが、宇宙科学チャンネル「The Universe Inside Out」の縦型ショート動画(Short)を制作するための完全なパイプライン(ステップ2~4)を提供します。入力はユーザー選択(ideasファイルから)または直接指定されたオブジェクトです。出力として、MP4マスターファイルと英語公開用Markdown(publish_en.md)を生成し、ブランチをmainにマージしてworktreeをクリーンアップします。 主な機能:事実調査とファクトチェック、ビジュアルブリーフの作成、スクリプト(英語、29~29.5秒、6~8セグメント)とショット設計(各ショット3層以上の深度、カメラ移動、ブルームなど)、ヒーローフレームのレンダリング、批評家によるレビュー(映像・構成・事実の正確性を評価)、ドラフト動画の生成、承認後の最終レンダリング(2台のレンダリングPCのキューを利用)、ビジュアルQA、リリースパッケージの作成、そしてブランチマージまでの全工程をエージェントが自律的に実行します。 品質基準(`docs/quality.md`)では、映画的なクオリティと30秒以内の厳格な時間制限が課せられており、GPUレンダリング時間は最大6時間に抑えます。すべての工程はGitでコミットされ、worktreeベースで管理されるため、複数の動画を並行して安全に開発できます。

対応✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/marsik641/space-shorts/tree/HEAD/.agents/skills/make-video

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

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

ドキュメント

/make-video — ステップ2~4:選択からマージリリースまで

入力:ユーザーがworktree内のideasファイルから選択(「/make-video N」+修正)またはユーザーが名前を付けたオブジェクト。 出力 = DoD(AGENTS.md、「チャットパイプライン」):out/<ep>/release/ 内のマスターファイル <ep>_en_1080x1920p60.mp4 と publish_en.mdの2ファイルをユーザーに受け渡し。ビジュアルQA合格。全てコミット済み。ブランチをmainにマージ(video_wt.py finish)。worktree削除済み。 基準 - docs/quality.md:映画的品質、インフォグラフィックではない。事実は言葉で、見せ場は映像で。最終レンダリングはGPU 6時間以内。 言語は英語のみ。目標29~29.5秒、最大30.0秒(docs/shorts_format.md)。 関連ドキュメント:プロセス - docs/pipeline.md;承認 - docs/approval.md;公開パッケージ - docs/publish.md;ワークフロー - docs/workflows.md;ライブラリ - docs/spacekit.md;タイミング - docs/timings.md;レンダリングキュー - docs/render_queue.md;エージェント、コミット、注意点 - AGENTS.md。コマンドは各worktreeのルートでGit Bashから実行。<ep> = epNNN_<slug>。

ステップ0 — worktree、キュー、コミット

  • ブランチ video/epNNN... は /next-video 後に継続。メインコピーで /next-video なしのチャットは python tools/video_wt.py start → Claudeは EnterWorktree(path指定)/ Codexは workdir。
  • Blender、TTS、音楽、合成はキューのみで実行:ジョブ投入後、チャットはテキスト作業を継続。
  • 各ブロック終了後、モデル情報を付加した type(<ep>): ... 形式でコミット。各ターン終了時はツリーをクリーンに保つ。

パートA — 承認前

  1. エピソード python tools/video_wt.py claim <slug>(slugは [a-z0-9_]、16文字以内、カタログ名から)。 episodes/_template/ を episodes/<ep>/ にコピー。episode.json の id はフォルダ名、languages: ["en"] を設定 (frames_dir/audio_dir パスは設定しない)。ideasファイルの末尾に追記:Selected: N, <日付>, edits: ..., episode: <ep>。 コミット feat(<ep>): episode from variant N。
  2. 事実調査:リサーチャー+ファクトチェッカー(docs/workflows.md)→ facts.md(各数値にリンク付き、ビジュアルリファレンスも)。コミット。
  3. ビジュアルブリーフ visual_brief.md(役割:ディレクター):リファレンス、ファーストフレーム、マネーショット、パレット、照明、カメラと各ショットのイベント、コンベンション、予算。批評家「シネマ/ワウ」がブリーフをレビュー→修正。コミット。
  4. スクリプト script_9x16.json(英語):6~8セグメント、アンカー at(秒単位)、29~29.5秒(最大30.0秒厳守)、約55~70語。 最初のフレーズは事実に基づくフック。最後のフレーズは冒頭に戻るループ。en_cap は数字、| は手動改行 (docs/pipeline.md、「字幕とキャプション」参照)。チャンネルボイスは Kokoro af_heart ×0.98。コミット。
  5. シーンとショット system.py(実パラメータを画面に反映、コンベンションはdocstringに記述)。不足機能は spacekit/ モジュールとして追加(別途コミット feat(spacekit): ...、回帰テストは tools/imgdiff.py)。shots_9x16.py をブリーフに基づいて作成: 6~10ショット、各2~5秒、各ショットに3層以上の深度、キー+コントラスト、ハロー/ブルーム、カメラ移動、モーションブラー、背景は空ではない(docs/quality.md)。 episode.json(編集、enオーバーレイ、セーフゾーン内の字幕)、music_cues.json(独自の調性/モード/テンポ)。 カットはイベントでつなぐ。最後のフレーム=最初のフレーム。 編集フレーム数合計 ≤ 1799(60fps時)。python tools/check_episode.py episodes/<ep>/episode.json を実行。コミット。
  6. タイミングプレビュー:python tools/render_queue.py submit preview episodes/<ep>/episode.json --with-tts、 ステータス確認は status --json。out/<ep>/9x16/sheet_prev.png を確認。Traceback/OVERRUNなし、FLASH/EVENTあり。 cueリストは python tools/cues.py episodes/<ep>/episode.json --logs out/<ep>/9x16/logs で生成。
  7. ヒーローフレーム:ショットごとに submit preview ... --hero --shots vN --frames F,F+1,F+2(Fは各ショットのベストフレーム。 100%解像度、--samplesなし=ショットコードのサンプルをそのまま使用、最終レンダリングと同様)→ out/<ep>/9x16/hero/、sheet_hero.png。 批評家とオーナーにはフレームFを提示。hero_vN.log から秒/フレームとETAを確認(docs/timings.md)。サンプルと重いエフェクトは shots_9x16.py で調整(コミット後、ヒーローフレームを再レンダリング)し、最終レンダリングが 4~6時間 になるようにする(1時間にならないように)。
  8. 批評(docs/workflows.md):「シネマ/ワウ」(各ショット1~10点評価、8点未満は修正、最大3ラウンド)、構図、 リズム/フック、事実の正確性(docs/quality.md の4つのブロッカーのみ)。オプション:独自性、音声。修正後はステップ6~7を繰り返す。 レポートはエピソードフォルダ内のファイルとして保存。各ラウンドごとにコミット fix(<ep>): fixes from critique, round K。
  9. ドラフト動画全体(docs/approval.md、1a):ショットに draft 機能を追加し、エピソード全体の preview_movie.py を submit task で実行。生成できない場合はドラフトなしで承認に進み、メッセージに「draft video: not available」と記載。
  10. 承認:docs/approval.md のテンプレートに従ったメッセージ+ファイル(ヒーローフレーム、ドラフト動画)。状態をコミット。 停止して応答を待機。 修正指示があれば該当ステップに戻る。

パートB — 「OK」後:DoDまで(docs/approval.md記載の停止以外は質問なし)

  1. 承認の記録 合意済みのcueリストと publish_en.md を docs/publish.md に従って準備(コンベンションはリスト形式)。コミット chore(<ep>): approved for render(ユーザーの修正内容はコミットメッセージ本文に)。
  2. 最終レンダリング python tools/render_queue.py submit final episodes/<ep>/episode.json --approved 'user approval: date, chat context'。 --approvedフラグはすでに得られた同意を記録するものであり、同意に代わるものではない。 ユーザーにはジョブID、レンダリングPC、ETAを通知。Workerが自動的にPCを選択し、120フレームずつレンダリング、フレームチェック、TTS、音楽、ミックス、編集ビルド、合成、機械QA、リリースを実行する。チャットはここで閉じてもよい。
  3. ステータスと障害 status --json(進捗は cursor/steps で確認。未完了のジョブのフレームはスナップショット snapshot に保存され、out/<ep>/ にはない)。failed が返った場合、スナップショット内に該当ステップのログがある。環境の一時的な障害は retry JOB。コード/スクリプトの修正が必要な場合は cancel JOB、worktreeで修正、必要に応じて再承認、新規ジョブ投入。フレームチェックFAILの場合はRERENDERを分析、スナップショット内(およびリモート)の不良フレームを削除、retry JOB --rerender-shots vN を実行。pause/resume はバッチ間で使用可能。ルートbashを終了しない。
  4. ビジュアルQA needs_review ステータスは機械チェックとパッケージ準備完了を示す。out/<ep>/9x16/qa_en/ 内のPNGとマスターファイルを確認:ヒーローフレームより劣っていないか(ノイズ、ぼけ、露出オーバー、フリッカー)、セーフゾーン、字幕、リップシンク、ループ。問題なければ python tools/render_queue.py accept JOB。不具合があれば修正後、新規ジョブ投入。
  5. 受け渡し out/<ep>/release/ 内の両ファイルをユーザーに送信(Claudeの場合はSendUserFile)。レンダリング中にソースが変更された場合、コミット前にスナップショットのpublishファイルと編集JSONを照合する。
  6. 記録 episodes/INDEX.md(ショット、技法、ボイス、調性、フック)を更新。README.md のエピソード表を更新、docs/channel.md のテーマに✅を付与、docs/timings.md に秒/フレームの計測値を追加、学んだ教訓は該当ドキュメントに追記。コミット docs(<ep>): accounting and lessons(エピソードコード、edit_9x16_en.json、publish_en.md を含む。out/ は含まない)。
  7. マージ python tools/video_wt.py finish を実行。クリーン状態→release→accept→git merge main→check_episodeとテスト→ff main→out/<ep>/ をメインコピーに移動。競合はworktree内で解決、コミット、再実行。その後worktreeを終了(Claudeは ExitWorktree keep)。メインコピーから python tools/video_wt.py remove epNNN を実行。start --here で作成したworktreeは削除しない。これで「完了」。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

関連スキル