Communitygithub.com

WesleyQDev/rooster-edit

規劃、編輯並使用 AI 代理生成完整的影片。每當使用者想要創作影片、剪輯素材、製作無人臉或 TTS 解說影片、使用 Three.js 製作 3D 場景動畫、使用 Remotion 或 HyperFrames 製作動態圖像、設計或重複使用視覺風格/設定檔、生成字幕或旁白,或在瀏覽器中預覽影片時間軸時,都應使用此技能。

rooster-edit 是什麼?

RoosterEdit 是一個專為 AI 代理設計的影片工作室。它不直接取代 Remotion、HyperFrames 或 FFmpeg,而是扮演「導演」角色,決定要製作的影片內容、組織素材、撰寫計畫、驅動底層引擎、審查結果,並最終交付成品。此技能極度強調在渲染前必須先取得計畫與預覽的核准,因為渲染是流程中最便宜但也是最昂貴的錯誤。支援的開發平台包括 Claude Code、Cursor、Codex 等具備子代理功能的命令列工具,透過多階段工作流程(環境檢查、方案制定、素材處理、腳本生成、編輯計畫、風格設定、時間軸建置、預覽/品質保證、渲染與交付)來運作。每個階段會自動委派給專注的子代理,以保持主要對話上下文的輕量化與高效率。

相容平台✓Claude Code~Codex CLI~Cursor✓OpenCode
npx skills add https://github.com/WesleyQDev/RoosterEdit/tree/HEAD

在你喜歡的 AI 中提問

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

說明文件

RoosterEdit

RoosterEdit 是一個專為代理設計的影片工作室。它不會取代 Remotion、HyperFrames 或 FFmpeg;它負責決定要製作什麼、組織素材、撰寫計畫、驅動所選引擎、審查結果,並交付成品。

最重要的規則是:除非使用者明確要求不停止,否則請勿在計畫和預覽獲得批准前進行渲染。渲染是流程中最便宜的部分,卻也是最昂貴且最難挽回的錯誤。

執行 CLI

此技能附帶的 CLI 位於技能基礎目錄下的 scripts/rooster.mjs。請從使用者的專案目錄執行,並將腳本路徑解析到技能基礎目錄。在下列範例中,<skill> 代表該基礎目錄:

node "<skill>/scripts/rooster.mjs" doctor --json

請勿為了滿足命令而在使用者的專案中建立 scripts/ 目錄。工作區 (rooster/) 屬於專案;CLI 屬於技能。如果 shell 的工作目錄是技能目錄,CLI 就會在錯誤的位置建立工作區。

在哪裡安裝此技能

當使用者要求您安裝 RoosterEdit 時,請先詢問安裝應該是專案本機(建議)還是全域。請使用當前 harness 實際讀取的技能資料夾,不要假設為 OpenCode。

  • 本機: harness 的專案級技能資料夾加上 rooster-edit(例如 .opencode/skills、.claude/skills 或 .agents/skills)。建議使用此方式,因為版本會與專案綁定,不會影響其他工作。
  • 全域: harness 的全域技能資料夾加上 rooster-edit(例如 ~/.config/opencode/skills 或 ~/.claude/skills)。僅在使用者希望 RoosterEdit 存在於此機器上的每個專案時使用。

如果您無法確定 harness 的資料夾,請檢查其技能發現路徑或詢問使用者。在克隆之前等待回答。這個選擇是關於技能存放的位置,而不是關於影片工作區(./rooster)的位置。

回報

任務結束回覆預設應保持簡短:5-10 行或一個緊湊的表格。僅包含使用者需要採取行動的資訊:

  • 完成了什麼或發現了什麼;
  • 結果的路徑或連結;
  • 缺少或受阻的項目(如果有的話);
  • 一個明確的後續問題。

除非使用者要求,否則請勿重複簡報、貼上日誌、列出每個命令或解釋整個技能。將詳細資訊放在工作區檔案中或連結到參考文件。計畫、品質保證報告或交付套件可以較長,僅因為使用者必須審查其內容。

安裝和工作區設置是分開的步驟。安裝並執行 doctor 後,請勿開始入門指南或撰寫說明文件。用幾行總結環境,並詢問使用者是否要立即設定工作區。在收到肯定答覆之前,請勿建立 rooster/ 或頻道。

進度更新

在狀態更新和每個批准關卡使用緊湊的步驟標記。為專案保留一個 8 步驟追蹤器:

  1. 環境與工作區
  2. 簡報與接收
  3. 素材與逐字稿
  4. 編輯計畫
  5. 分鏡與時間軸
  6. 引擎建置
  7. 預覽與品質保證
  8. 渲染與交付

範例:

  • 步驟 3/8 — 逐字稿完成。42 個片段,總時長 10:12。
  • 步驟 4/8 — 計畫已準備好在 edit/plan.html。可以繼續進行時間軸嗎?
  • 步驟 6/8 — 建置完成。可以開啟預覽並執行品質保證嗎?
  • 步驟 8/8 — 預覽已批准。可以渲染最終版本嗎?

跳過不適用的步驟並說明原因。請勿在每則訊息中列印完整的檢查清單;顯示當前步驟、變更的內容以及下一個關卡。請勿將時間軸與最終渲染合併為一個批准:預覽和品質保證位於它們之間。

基於子代理的執行

主要代理是指揮者,而非工作者。它與使用者對話、擁有簡報和決策權、運行批准關卡,並檢視最終畫面。繁重的工作則交由階段子代理處理:逐字稿分析、研究、腳本草稿、計畫草稿、風格與分鏡、建置與修正、品質保證掃描、渲染與包裝。每個子代理都有自己的上下文,當階段結束時會被丟棄,因此原始素材永遠不會累積在主執行緒中。

每當 harness 有子代理工具時,預設應委派任務。當階段只是一個簡單的命令、當階段本身是對話(如接收、批准),或者當階段是最終的視覺判斷時,則保持內聯。

階段子代理主要代理接收
簡報producer一段簡報 + 開放問題
研究researcher5 個發現 + 來源 + 授權標記
逐字稿transcript-analyst時長、主題、10-20 個節拍、標記
腳本scriptwriter鉤子 + 節拍摘要
計畫editor計畫摘要 + 風險
風格/分鏡art-director代幣 + 場景數量 + 素材需求
時間軸editor時長計算 + 標記
音訊audio-director語音/音樂/混音決策
建置engineer狀態 + 成品路徑 + 阻礙
品質保證qa裁決 + 主要問題 + 畫面路徑
渲染engineer最終路徑 + 探測統計

使用簡短提示來生成:角色檔案路徑、專案路徑、一個任務句子、輸入路徑、限制條件。傳遞路徑,切勿傳遞簡報、逐字稿、日誌或計畫內容。如果輸入本身就是對話,請先將答案寫入 work/intake.md。請求 references/subagents.md 中所述的交接項目,不要其他東西。對於需要寫入檔案或執行命令的階段,請使用 harness 的通用或工作代理;對於研究階段,使用唯讀或研究類型即可。這是一種能力,而非工具名稱:如果 harness 無法啟動一個具有檔案和命令存取權限的全新代理,或者啟動失敗兩次,請內聯執行該階段並保持檔案邊界。

交接是唯一進入主要上下文的內容:

status: ok | needs-decision | blocked
artifacts: paths that exist
summary: <= 5 lines
decisions: what the main agent must confirm
blockers: what stops the stage
next: next stage or exact question

主要代理可以閱讀簡報、腳本、風格、review.md 和交接內容,並可以查看 plan.html 和 3-5 個畫面。它不得閱讀原始逐字稿、完整計畫 JSON、生成的程式碼、建置/渲染日誌,或包含數十個畫面的連絡表。如果缺少某個細節,請向同一個子代理發送後續請求,而不是直接開啟原始檔案。

這裡沒有任何依賴關係。當一個階段內聯執行時,成品和關卡是相同的;你失去的是上下文隔離,而不是工作流程。

批准關卡永遠不會移轉給子代理。子代理提出建議;使用者和主要代理做決定。

安裝後的首次執行

如果工作區尚不存在,請在建立任何專案之前進行簡短的入門引導。

首先詢問:「要現在設定工作區嗎?」用一句話解釋這會建立 rooster/ 和第一個頻道。如果答案是否定的,則停止並不要建立任何東西。

如果答案是肯定的:

  1. 預設使用 ./rooster。除非使用者想要自訂路徑,否則不要問「工作區要放在哪裡」。
  2. 問一個問題:「這個頻道要製作什麼?一句話就好。」使用答案和對話內容來推斷頻道名稱、語言、格式、來源、設定檔、素材、引擎、自主性和語音。不要詢問所有十二個頻道欄位,也不要詢問時長。
  3. 在一行緊湊的摘要中顯示推斷的預設值,並詢問「這樣可以嗎,還是要調整什麼?」只在某個欄位確實不明確時才追問,例如平台或來源是否為真實素材。
  4. 確認後,執行 init,然後執行 channel new <id> ... 並帶入答案。顯示一個簡短摘要並停止。

時長不是頻道的預設值:它屬於每個專案,並在建立影片時選擇。完整的十二欄位設定是選擇性的進階路徑。如果使用者要求自訂所有內容,請以最多三個為一組進行詢問,切勿一次全部詢問。

頻道是品牌、觀眾或操作(例如「EN Tech」或「PT Criador」)的穩定群組。它擁有創意預設值:語言、格式、設定檔、素材政策、引擎、自主性和語音。每個專案都屬於一個頻道,並可以覆寫任何這些預設值。時長是每個專案的,不是頻道的預設值。

除非使用者明確要求,否則不要在同一个輪次中開始製作影片。請閱讀 references/onboarding.md 以了解確切的問題、預設值和命令。在下載或生成任何素材之前,請閱讀 references/assets.md。

快速路徑:6 步驟影片工作流程

當使用者想要從原始素材到完成影片的最簡單路線時,請遵循與參考工作流程相同的六個步驟,並根據 RoosterEdit 工作區進行調整:

  1. 準備機器 — FFmpeg、Node.js LTS、Python 3、HyperFrames 和 Whisper(或 HyperFrames 的 Parakeet/whisper.cpp)。安裝任何東西前先詢問。
  2. 建立或解析專案 — rooster new ...;原始媒體放在 assets/source/。
  3. 撰寫風格指南 — art-director 撰寫 style.md 並解析設定檔。在規劃之前,執行 styleproof <slug> 並批准三個範例畫面。
  4. 轉錄與規劃 — transcript-analyst 撰寫 edit/transcript.json、edit/digest.md 和 edit/analysis.json;editor 根據分析和 style.md 撰寫 edit/plan.json。顯示帶有逐字稿上下文的 plan.html,並等待批准。
  5. 建立視覺元素 — 當頻道風格需要時,engineer 會建立標題卡、圖形、列表、縮放、B-roll、下三分之一、音樂和音效。僅有剪輯的草稿不是完成的影片,除非使用者明確要求純剪輯。
  6. 組合、審查、匯出 — engineer 執行 build 從已批准的計畫生成 HyperFrames 或 Remotion 專案;在完整建置前先使用 --sample 3。qa 檢查 preview/index.html 和畫面,然後 engineer 渲染到 renders/;當使用者想要 DaVinci 或 Premiere 時,export 會寫出 EDL/FCPXML 交接檔。

請閱讀 references/video-pipeline.md 以了解確切的命令以及從參考影片資料夾到我們資料夾的對應關係。此技能的其餘部分是更廣泛的工作室模式;快速路徑是單一影片作業的預設值。

運作原則

  • 先直接溝通,再生成內容。 一個清晰的簡報、腳本和鏡頭清單比任何提示調整都更能節省時間。花費工作的第一部分來理解影片。
  • 檢查,不要假設。 讀取檔案、探查媒體、查看畫面、檢查工具。切勿因為程式碼看起來正確就宣稱渲染或素材存在。
  • 保持編輯的可編輯性。 偏好命名場景、變數和可讀的元件,而不是一次性腳本。使用者應該能夠更改顏色、台詞或剪輯,而無需重寫整個專案。
  • 用眼睛審查。 使用瀏覽器預覽、螢幕截圖或渲染的靜止畫面來判斷構圖、節奏和字幕。僅靠程式碼審查是不夠的。
  • 尊重來源。 記錄每個素材的來源及其授權。一個漂亮的影片配上未經授權的音樂是一種風險。
  • 優雅降級。 harness 可能沒有子代理、瀏覽器、Node、FFmpeg 或 TTS。提供可用的最佳路徑,並說明缺少了什麼。
  • 委派繁重的階段。 主要代理擔任指揮;階段子代理處理繁重的工作並回傳簡短的交接內容。逐字稿、建置日誌、生成的程式碼和品質保證掃描應避免通過主要上下文。請閱讀 references/subagents.md。
  • 簡短回報。 每個任務以結果、路徑和一個後續問題結束。除非使用者要求,否則不要敘述整個過程或傾印命令。
  • 完成創意層。 僅有剪輯不是影片。除非使用者明確要求純剪輯,否則請規劃疊加、B-roll、音樂、音效或字幕。
  • 不確定時就詢問。 如果一個選擇會改變剪輯、外觀、音訊或成本,請在當前的 步驟 X/8 詢問。不要默默地猜測。
  • 保護上下文。 影片工作非常消耗代幣。將引擎日誌導向檔案、僅讀取尾部、使用 digest 而非完整逐字稿,並檢查幾個關鍵畫面而非每個畫面。請閱讀 references/token-discipline.md。

步驟 0 - 尋找工作區

首先在當前專案中尋找 rooster/ 目錄,如果設定了 ROOSTER_WORKSPACE 則使用它。預設值為 ./rooster;僅在使用者想要自訂路徑時才詢問。

如果兩者都不存在,且使用者已要求製作影片,則隱含建立工作區;執行:

node "<skill>/scripts/rooster.mjs" init

如果使用者剛剛安裝了此技能或只是在探索,請不要默默建立它:遵循「安裝後的首次執行」並先詢問。

工作區是頻道、專案、設定檔和素材庫存放的地方。請將其放在技能目錄之外;技能是可重複使用的,工作區屬於使用者的影片專案。

如果工作區存在但沒有頻道,請在建立專案前先建立一個頻道。每個專案都屬於一個頻道;default 頻道涵蓋一次性影片。

如果使用者只是在提問或探索一個想法,請直接回答,不要建立工作區。一個問題並不等於要求建置。

步驟 1 — 檢查能力

執行:

node "<skill>/scripts/rooster.mjs" doctor --json

這會回報 Node、npm、Python、FFmpeg、FFprobe、Git、GPU、檢測到的引擎、TTS 提供者、yt-dlp、Whisper 和 HyperFrames CLI。harness 本身知道子代理和瀏覽器是否可用;將該知識與 CLI 輸出結合。有關成本,請閱讀 docs/COSTS.md;未經明確許可,切勿呼叫付費提供者。

當缺少某些東西時,請閱讀 references/harness.md。簡而言之:

  • 無 Node:僅能直接使用 FFmpeg 進行剪輯和音訊,但無法執行 HyperFrames 或 Remotion。
  • 無 FFmpeg:仍然可以規劃、編寫腳本和分鏡,但無法在本機探查或渲染。
  • 無瀏覽器:渲染靜止畫面或畫面並將其作為圖片檢查。
  • 無 TTS:可以使用使用者的語音、僅字幕,或本機……

…

[為翻譯而截斷]

相關技能