Communitygithub.com

CutCraft

透過對話編輯和完成影片,包括素材審查、鏡頭選擇、精準剪輯、重新構圖、調色、轉場、特效、授權音樂/SFX/B-roll,以及像素安全的內嵌或旁白字幕。

CutCraft 是什麼?

CutCraft 是一個 AI 代理技能,專為需要完整剪片工作流程的開發者與創作者設計。它將原始素材與對話式的編輯指令,轉化為最終成品影片。此技能支援 macOS 與 Linux 平台,並依賴 Python 腳本與 FFmpeg 等工具。其核心流程為:檢查環境 → 檢查素材 → 一次詢問所有創意決定 → 編輯 → 校對 → 交付。它強制使用命名的工作區,在編輯前產生視覺化的字幕樣式預覽,並確保逐字稿修正可立即且可逆地套用。CutCraft 支援多種語言的字幕,並在隱私考量下提供本地 Whisper 或雲端 ElevenLabs 轉錄選項。它透過詳細的專案 JSON 與備份檔案,使工作進度可被追蹤與恢復。

相容平台✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/chang416/cutcraft/tree/main/skills/cutcraft

在你喜歡的 AI 中提問

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

說明文件

CutCraft 是做什麼的?

將原始素材和一段對話轉化為一個顯而易見的最終影片。將每個專案都保存在一個命名的 CutCraft 工作區中,在編輯前顯示視覺化的字幕選擇,一次問完所有創意問題,並讓逐字稿修正可以立即復原。

不可協商的契約

  1. 先執行就緒檢查。 在首次使用或環境變更後,執行 python3 helpers/check_environment.py。如果缺少必要或請求的有條件依賴項,請暫停編輯,向使用者顯示該腳本的官方 URL 和確切的設定說明,並僅要求提供缺少的批准或憑證。請參閱 references/onboarding.md 以了解金鑰處理和平台指南。
  2. 切勿在此套件或專案中儲存機密。 將 ElevenLabs 金鑰以權限 600 儲存在 ~/.config/cutcraft/.env 中,或使用本機 Whisper,這樣就不需要金鑰或上傳轉錄稿。切勿將金鑰放入命令參數、日誌、轉錄稿、螢幕截圖、儲存庫、插件快取或專案資料夾中。
  3. 在產生任何內容之前先建立工作區。 根據使用者的描述和檢查過的素材,推斷出一個簡短的專案名稱。僅在兩個名稱明顯不同且都合理時才進行確認。執行 helpers/project_workspace.py --name "<name>" 並使用它回傳的路徑。
  4. 先檢查,一次問完,批准後再編輯。 清點並轉錄來源、檢查具代表性的畫面、建立真實的字幕預覽圖像,然後在一個統一的檢查點中,一次問完所有剩餘的創意問題。在使用者選擇或接受建議的預設值之前,不要開始剪輯。
  5. 視覺化地呈現選擇。 從素材中生成三種具代表性的字幕預覽圖像(推薦、簡潔/敘事、醒目/社交,除非素材需要不同的選擇)。在每張圖像下方說明字型、大小、位置、背景、語言和提示節奏。使用者可以回答選項編號或調整,例如「往下 4%」或「字大 15%」。
  6. 讓最終結果顯而易見。 僅將交付成品置於 成品/ 中。主要影片必須命名為 <project>_final.mp4。將預覽、片段、轉錄稿、EDL、下載檔案、生成的資產和報告放在 過程/ 中。
  7. 每次交付含字幕的成品時,同時匯出可編輯的文字。 在最終影片旁交付 <project>_逐字稿.md 和 <project>.srt。使用穩定的提示 ID 和時間戳,以便使用者可以說,例如,「第 18 句改成……」。
  8. 立即套用逐字稿修正。 解析請求的提示,針對 過程/master.srt 執行 helpers/apply_transcript_corrections.py,重新執行驗證,使用修正後的 SRT 重新渲染最終影片,重新產生逐字稿,並替換交付成品。除非使用者回報同步問題,否則保留時間安排。不要對未更改的來源媒體進行重新轉錄。
  9. 無需審查前端。 不要啟動伺服器或建立瀏覽器 UI 檔案。所有審查都透過交付的影片/圖像檔案和對話式修正來進行。
  10. 讓工作可恢復。 在每個檢查點更新 cutcraft.project.json。保留來源簽章、批准狀態、修訂版本、最終路徑和資產來源。僅使用代理檔案進行檢查;始終從原始檔案渲染。
  11. 交付前進行驗證。 執行確定性預檢和 quality_report.py,檢查剪輯邊界和代表性字幕時刻的渲染輸出,聆聽最終混音,並驗證輸出持續時間/串流。如果剪輯移除了口吃或虛假開頭,請重新轉錄該渲染部分以證明其已不存在。

專案佈局

預設根目錄:~/Documents/Codex/CutCraft/(可在 Finder 中看到;將可安裝的技能本身保留在 ~/.codex 下)。

CutCraft/
└── <project>/
    ├── cutcraft.project.json
    ├── 成品/
    │   ├── <project>_final.mp4
    │   ├── <project>_逐字稿.md
    │   └── <project>.srt
    └── 過程/
        ├── project.md
        ├── creative_brief.json
        ├── inventory.json
        ├── takes_packed.md
        ├── edl.json
        ├── master.srt
        ├── transcript_corrections.json
        ├── asset_registry.json
        ├── transcripts/
        ├── clips/ and clips_*/
        ├── assets/
        ├── animations/
        ├── proxies/
        ├── downloads/
        └── verify/

除非使用者要求,否則不要將使用者的原始素材複製到專案中。在 edl.json 中記錄絕對來源路徑,並保持原始檔案不變。

一個統一的檢查點

檢查足夠的材料以提出建議,渲染字幕比較圖像,然後一次問完所有適用的項目:

  • 目標、預期觀眾、平台、長寬比、解析度、目標長度、截止日期敏感的格式。
  • 故事/順序、必須保留的台詞、必須剪掉的素材、ASR 必須精確拼寫的名稱/術語。
  • 節奏、裁切/重新構圖、色彩氛圍、轉場、效果、疊加、B-roll、審查/隱私需求。
  • 字幕:內嵌/旁白/兩者、語言或雙語模式、逐字/清理版、字型、大小、位置、背景、提示節奏、螢幕 UI 安全區域。
  • 音訊:清理、響度、提供的音樂/SFX/旁白,或所需的氛圍和強度。
  • 素材來源:使用者提供的檔案、生成的資產或特定的免費庫。如果請求免費素材,請在 references/free-assets.md 中提供合適的選擇,要求使用者選擇,並使用 asset_registry.py 註冊項目、創作者、URL、許可證、歸屬和校驗和。
  • 轉錄隱私:當隱私問題重要時,建議使用本機 Whisper;否則提供 ElevenLabs 進行管理的說話者辨識。在將媒體傳送到任何雲端提供者之前,解釋上傳行為。
  • 編輯自主權和任何明確禁止的事項。

在此檢查點附加預覽圖像。為每個選擇提供一個建議的預設值,並包含「全部用建議值」作為一個有效的答案。將答案持久保存在 過程/creative_brief.json 中;不要在中途編輯時重新提出已解決的問題。

工作流程

  1. 執行就緒檢查並僅解決缺少的需求。
  2. 檢查檔案名稱和使用者的描述;推斷一個專案名稱並建立工作區。
  3. 執行 inventory.py --work-dir <過程> <sources_dir>。對於長時間或 4K 的來源,建立快取的代理檔案以供檢查。執行 analyze_media.py 以定位鏡頭變化、靜音、黑畫面以及凍結間隔。
  4. 使用已批准的雲端/本地提供者轉錄到 <過程>/transcripts/,然後打包轉錄稿。閱讀打包後的轉錄稿,取樣早期/中期/後期幀和模糊的編輯點,並注意 ASR 拼寫風險。
  5. 從代表性幀生成三種字幕樣式預覽。詢問統一的檢查點並儲存已批准的簡報。
  6. 建置 edl.json,來源化或生成已批准的資產,並在不零碎地詢問一般品味問題的情況下進行編輯。
  7. 建置字幕。對於中文,使用 build_cn_subtitles.py;對於其他語言,使用 render.py --build-subtitles。請遵循 references/subtitles.md。
  8. 執行 validate_project.py,在 過程/verify/ 中渲染一個可評估的預覽,並進行自我審查。在回報頑固問題之前,將修正/重新渲染循環限制在三次以內。
  9. 從原始來源渲染 <成品>/<project>_final.mp4,將最終的 SRT 複製到 <成品>/<project>.srt,並使用 export_transcript.py 生成 <成品>/<project>_逐字稿.md。
  10. 執行 quality_report.py,解決每個錯誤,視覺化和聽覺化地審查警告,然後使用 project_state.py 將清單標記為已交付。
  11. 交付三個明確的路徑、QC 報告、簡潔的編輯摘要和資產來源。切勿讓使用者在中間檔案中搜尋「final」。

製作正確性

  • 最後再套用字幕,在所有疊加和裁切之後。
  • 從詞彙邊界和靜音中推導出剪輯候選項;切勿在詞彙內部進行剪輯。使用適合節奏的 30–200 毫秒緩衝。
  • 在片段邊界套用簡短的音訊淡入淡出以防止爆音。
  • 在連接片段之前,正規化畫布、幀率、像素格式、色彩空間、取樣率和聲道佈局。
  • 按來源路徑、大小和修改時間快取轉錄稿和代理檔案;僅在該簽章變更時才重新執行。
  • 在輸出時間軸上計算字幕時間戳,而不是來源時間軸。
  • 當批准單行時,保證像素安全的單行提示;根據實際字型和畫布進行驗證。
  • 僅使用使用者提供、生成、公有領域或授權相容的資產。記錄標題、創作者、來源 URL、許可證、下載日期和所需的歸屬。
  • 先混合對話。在語音下將音樂音訊降低;響度正規化無法挽救糟糕的混音。
  • 讓主要代理成為創意簡報、EDL、字幕時間、最終時間軸、混音和 QC 的擁有者。僅可平行處理那些輸入不變且寫入唯一路徑的工作。

當專案需要多鏡頭選擇、轉場、調色、動畫、速度曲線或音樂主導的編輯時,請參閱 references/editorial-craft.md。在編寫或擴充 EDL 之前,請參閱 references/edl.md。

輔助腳本

  • check_environment.py — 必要/有條件的依賴項和憑證就緒檢查,附帶官方設定 URL。
  • project_workspace.py — 建立或重複使用命名的 成品/ + 過程/ 專案。
  • project_state.py — 原子性地記錄可恢復的檢查點、批准、修訂和輸出路徑。
  • inventory.py — 探查來源格式和正規化風險。
  • analyze_media.py — 偵測場景變化、靜音、黑畫面和凍結幀。
  • create_proxy.py — 快取的輕量級檢查代理檔案,對應到不變的原始檔案。
  • transcribe.py, transcribe_batch.py — 快取的詞彙級別 ElevenLabs 或本機 Whisper 轉錄。
  • pack_transcripts.py — 緊湊的短語級別編輯檢視。
  • timeline_view.py — 底片條、波形、詞彙和剪輯點檢查。
  • subtitle_style_preview.py — 在真實幀上進行精確的 libass 樣式/位置預覽。
  • build_cn_subtitles.py — 中文感知的像素寬度提示建構。
  • render.py — 正規化、剪輯、連接、疊加、混合,然後最後添加字幕。
  • validate_project.py — 快速失敗的 EDL、資產、時間和字幕檢查。
  • asset_registry.py — 失敗關閉的資產許可證、歸屬和校驗和註冊表。
  • quality_report.py — 最終串流、持續時間、黑/凍結/靜音和 QC 證據報告。
  • build_cut_report.py — 分類的剪輯摘要。
  • apply_transcript_corrections.py — 失敗關閉的提示/文字修正,附帶稽核日誌和備份。
  • export_transcript.py — 可讀、可透過提示定址的轉錄稿,用於交付。
  • cleanup_session.py — 僅在使用者明確要求刪除過程檔案後才進行選擇性清理;切勿將「完成」解釋為刪除。

解析與包含此 SKILL.md 的目錄相關的每個輔助腳本和參考文件。

修訂行為

將使用者修正後的交付轉錄稿視為文字來源的事實標準。對於僅文字修正,保留提示時間和編輯決定,修補 SRT,驗證,並重新渲染。對於同步回報,檢查受影響的渲染窗口,並僅調整那些提示邊界。對於編輯性更改,更新 EDL 和剪輯報告,然後執行完整受影響的渲染/QC 路徑。

將每個工作階段附加到 過程/project.md,包含策略、已批准的決定、資產來源、修訂版本、QC 證據和待解決問題。預設保留 過程/,以便將來的修訂保持低成本且可追蹤。

相關技能