Communitygithub.com

marsik641/space-shorts

實作宇宙短片的步驟 2–4:從選題、製作垂直太空 Shorts(≤ 30 秒,僅 EN)到最終合併釋出。使用「做第 N 版」、「/make-video」、「製作關於 X 的短片」、「準備上傳套件」等指令觸發。

space-shorts 是什麼?

這個 AI 助手技能專為製作 The Universe Inside Out 頻道的垂直太空 Shorts(≤ 30 秒,僅英文)而設計,涵蓋從選題到發佈的完整管線。技能會引導使用者從 ideas 檔案中挑選題目,然後自動執行事實研究、視覺簡報、腳本生成、分鏡(shots)、英雄幀(hero frames)以及粗剪影片——所有這些都需要在獲得使用者批准後才能進入最終渲染階段。最終輸出包括一個 MP4 主檔案和一份 publish_en.md 檔案,並透過兩個專用渲染電腦的共享佇列來排程渲染作業,以確保品質和效率。渲染完成後,技能會將所有變更提交至 Git,將功能分支合併回 main,並清理工作目錄。該技能支援 Claude Code、Cursor 和 Codex 等 AI 代理平台,並提供整合的排隊系統、視覺品質檢查和嚴格的錯誤處理機制。

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

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

/make-video — 步驟 2–4:從選題到合併釋出

輸入:使用者從此 worktree 的 ideas 檔案中選擇一個題目(「/make-video N」加上修改)或使用者指定的物件。 輸出 = DoD(AGENTS.md,「聊天管線」):out/<ep>/release/ 中的主檔案 <ep>_en_1080x1920p60.mp4 和 publish_en.md,兩個檔案都傳送給使用者;視覺 QA 通過;所有內容已提交;分支已合併到 main(video_wt.py finish);worktree 已移除。 品質標準 — docs/quality.md:電影級,而非資訊圖表;事實藏在文字中,視覺震撼在畫面中;最終渲染時長 ≤ 6 小時 GPU。僅限英文,目標 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。指令需在 Git Bash 中從 worktree 根目錄執行;<ep> 的格式為 epNNN_<slug>。

步驟 0 — worktree、佇列、提交

  • 分支 video/epNNN… 在 /next-video 之後繼續使用。若聊天在主分支中且未使用 /next-video,則執行 python tools/video_wt.py start → Claude 使用 path 的 EnterWorktree / Codex 使用 workdir。
  • Blender、TTS、音樂、合成 — 僅能透過佇列執行:任務提交後,聊天繼續進行文字工作。
  • 每個區塊後都需提交 type(<ep>): … 並包含模型尾部。每個步驟結束時需保持工作樹乾淨。

第一部分 — 核准前

  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 檔案末尾追加:已選:N, <日期>, 修改:…, 集數:<ep>。 提交 feat(<ep>): 從第 N 版建立集數。
  2. 事實:研究員 + 事實查核員(docs/workflows.md)→ facts.md(每個數字需附參考連結,視覺參考)。提交。
  3. 視覺簡報 visual_brief.md(「導演」角色):參考圖、第一幀、money shot、調色盤、光線、鏡頭運動、每個分鏡的事件、慣例、預算。「電影/哇」評論者根據簡報進行審查 → 修改。提交。
  4. 腳本 script_9x16.json(EN):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(60 fps)。執行 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 輪),構圖、 節奏/鉤子、事實(僅 4 個阻擋項 docs/quality.md);可選:獨特性、音效。修改後重複步驟 6–7。 報告以檔案形式存放在集數資料夾中,每輪提交 fix(<ep>): 依評論修改,第 K 輪。
  9. 粗剪影片完整版本(docs/approval.md,1a):分鏡中使用 draft 函數,並透過 submit task 使用集數層級的 preview_movie.py。若無法生成,則不附粗剪影片送出審核,訊息中註明「粗剪影片:無」。
  10. 核准:依 docs/approval.md 範本送出訊息 + 檔案(英雄幀、粗剪影片)。提交當前狀態。 暫停並等待回覆。 修改則返回相應步驟。

第二部分 — 「OK」之後:直至 DoD(無需提問,除非 docs/approval.md 中有停止點)

  1. 歷史記錄中的核准。 準備好已確認的 cue 列表和依 docs/publish.md 的 publish_en.md(慣例以列表形式呈現)。提交 chore(<ep>): 已核准渲染(使用者的修改寫在提交訊息正文中)。
  2. 最終渲染。 執行 python tools/render_queue.py submit final episodes/<ep>/episode.json --approved '使用者核准:日期,聊天上下文'。此旗標僅記錄已取得的同意,不取代它。 向使用者提供任務 ID、渲染電腦和 ETA。Worker 會自行選擇電腦,以每批 120 幀渲染,並執行 framecheck、TTS、音樂、混音、build_edit、合成、機器 QA 和釋出。聊天可以關閉。
  3. 狀態與故障。 status --json(進度顯示 cursor/steps;任務結束前的幀存在於 snapshot 快照中,而非 out/<ep>/)。failed 表示快照中有步驟記錄;暫時性環境故障使用 retry JOB;程式碼/腳本修改使用 cancel JOB,在 worktree 中修改,必要時重新核准,再提交新任務。Framecheck FAIL — 分析後使用 RERENDER,刪除快照中的壞幀(以及遠端檔案),retry JOB --rerender-shots vN。pause/resume 可在批次之間使用。不要殺死上層 bash 行程。
  4. 視覺 QA。 needs_review 表示機器檢查和套件已準備就緒。PNG out/<ep>/9x16/qa_en/ 和主檔案: 品質不低於英雄幀(無噪點、模糊、過曝、閃爍),安全區域、字幕、同步、迴圈均正常。 通過則執行 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>): 記錄與教訓(包含集數程式碼、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;不要移除應用程式的 worktree(start --here)。至此才可回報「完成」。

Individual skills in this repo

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

相關技能