Communitygithub.com

0xsline/openchatcut

用於驗證代理在 OpenChatCut 專案和編輯器中所做的修改是否已正確反映。

openchatcut 是什麼?

此技能專門用於驗證 AI 代理在 OpenChatCut 專案中執行編輯操作後,其結果是否正確反映在專案結構與編輯器中。它定義了一個三層驗證等級(L0、L1、L2),從靜態檢查(如 TypeScript 編譯、測試)到實際代理操作,再到打包的桌面應用程式驗證,確保行為變更經過嚴格測試。支援透過 `read_project` 工具讀取專案結構,以及使用 `view_timeline_frames` 和 `view_asset_frames` 進行視覺化驗證,以確認時間軸、素材、特效等是否如預期般呈現。 此技能更進一步要求代理在每次 L1 驗證後,完整檢查對話記錄,包含任何工具錯誤、重試、未完成的任務,以及最終回覆是否正確描述成功狀態。它明確指出,不能單靠命令列的 JSON 回應作為編輯結果的證明,必須使用編輯器 URL 或視覺化證據。對於任何驗證失敗的情況,它要求分類問題根源,例如工具描述不足、技能缺少步驟或授權未完成等,以便進行修正。這確保了 OpenChatCut 編輯器與代理之間的狀態完全同步,對於需要精確控制編輯結果的開發者與測試流程至關重要。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/0xsline/openchatcut/tree/HEAD/src/agent/skills/verification

在你喜歡的 AI 中提問

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

說明文件

驗證

使用能證明請求結果的最低驗證等級:

等級所需證據
L0靜態檢查,例如專注的驗證腳本、npx tsc --noEmit、測試和建置。
L1針對位於 localhost:5199 的編輯器進行實際代理操作,然後提供結構化和渲染後的證據。
L2打包的桌面應用程式完成使用者情境,包括在自動化不足時進行人工視覺審查。

執行時期行為變更需要 L0 + L1。當打包的應用程式是測試中的行為時,發行版和僅限桌面端的變更也需要 L2。

偏好使用兩種訊號:

  1. 針對結構使用 read_project:資產、軌道、片段、幀放置、時間軸長度。
  2. 針對精確幀的渲染證據,使用視覺化擷取路徑。

使用 view_timeline_frames 作為合成時間軸的證明。這驗證了編輯後的 OpenChatCut 時間軸:裁剪、圖層、字幕、特效、標記、佔位符、裁切、轉場和佈局。

對於原始來源素材的幀檢查,根據位元組所在位置選擇最便宜的路徑:

  • 此建置中的代理沒有本地檔案系統存取權限;所有來源位元組都位於專案媒體儲存庫 (/media/uploads/) 中。使用 view_asset_frames 搭配專案資產 ID——伺服器會自動採用 ffmpeg 聯絡表單快速路徑,因此這已經是最便宜的來源幀路線。
  • view_timeline_frames 渲染合成的時間軸(編輯器真實性檢查);view_asset_frames 則取樣原始來源幀。根據你要驗證的內容來選擇。
  • 此建置中沒有單獨的 get_contact_sheet 工具——聯絡表單就是 view_asset_frames / view_timeline_frames 已經回傳的內容。

僅將本地/遠端來源幀工件用於來源理解、時間點選取和粗略裁剪決策,不可將其視為編輯後的輸出或時間軸證明。

對於僅在本地或上傳中的媒體,合成時間軸的證明可能會受阻,直到資產有位元組可供渲染器使用。只要資產的位元組存在於磁碟上 (/media/uploads/),view_asset_frames 的來源幀檢查仍然有效。

如果兩種視覺證明路徑都受阻,請要求使用者直接檢查 OpenChatCut 編輯器,並明確記錄阻礙因素。

有用的檢查:

  • 匯入後:read_project({ "view": "assets", "assetId": "<前綴>" })
  • 移動/裁剪後:read_project({ "view": "timeline" })
  • 在任何時間軸媒體上套用視覺疊加或運動圖形後:view_timeline_frames({ "frames": [30, 45, 75] }),然後檢視回傳的幀。
  • 對於使用者請求的來源選取或視覺時間點選取:使用 view_asset_frames 取樣靜止圖片並檢查它們。僅用此來選擇來源檔案、時間點和粗略裁剪。將可見的編輯內容構建為 OpenChatCut 時間軸片段。不要將原始來源檢查視為時間軸驗證或允許在其他地方產生編輯後的影片。
  • 對於來源幀檢查:在 read_project({"view":"assets"}) 確認資產 ID/類型後,呼叫 view_asset_frames({"assetId":"...","sourceTimesMs":[...]})。優先使用此方法,而非要求使用者重新附加檔案。
  • 對於僅限本地端的視覺驗證:在依賴連接器的視覺證明之前,先上傳/註冊雲端可讀取的媒體。
  • 對於無來源驗證:確認工具清單暴露了你使用的參數,然後在追蹤日誌中記錄可見的證明。

在討論秒數時,請從 read_project 驗證幀率(fps),或使用內部解析 fps 的適配器工具。

在報告時間軸片段位置時,僅使用最新的 read_project 結構來獲取軌道別名、片段 ID、開始時間、持續時間和資產 ID。不要將計畫中的/預設的軌道或工具呼叫意圖報告為已驗證的放置位置。

當使用者詢問編輯器是否反映了結果時,不要僅將命令列 JSON 回應視為充分證據。在可行時,請使用編輯器 URL 或視覺證明。

實際代理對話記錄檢查

在每次 L1 代理操作後,在報告成功前,請檢查完整的聊天記錄:

  1. 讀取最終的助理回覆以及操作產生的每個工具列。
  2. 展開失敗或警告的列,並記錄確切的錯誤。
  3. 檢查是否有中止的輪次、重複的重試、過時的提案、不完整的任務,以及最終回覆錯誤地描述為成功的工具結果。
  4. 將最新的 read_project 結果與可見的時間軸進行比較。
  5. 對於視覺編輯,檢查回傳的時間軸幀,而不是信任助理的摘要。

一個時間軸看起來正確,但存在未報告的工具錯誤的操作,並不是一次乾淨的通過。請修正原因或明確報告剩餘的錯誤。

如果驗證失敗,請在更改工具之前對差距進行分類:

  • 工具描述或架構不足
  • 技能說明缺少某個步驟
  • read_project 未暴露足夠的狀態
  • 編輯器授權未完成
  • 媒體/轉錄管線失敗
  • 雲端渲染/編輯器觀察被阻擋

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

0xsline/openchatcut

Connect an MCP-capable coding agent to OpenChatCut and edit local video projects. Use when the user asks to install, connect, or set up OpenChatCut; inspect or edit an OpenChatCut project; work with its timeline, transcript, captions, media, generation, motion graphics, audio, color, or export tools; or recover from an OpenChatCut MCP error.

0xsline/openchatcut

Use when acquiring or importing media into a OpenChatCut project asset library for video editing or creation, including local/attached videos, user-provided paths, public media URLs, web video/audio/image assets, upload fallback decisions, and deciding between import_media, download_media, or manual user action.

0xsline/openchatcut

Use when a OpenChatCut video editing or creation workflow needs export, render, download, share, final delivery, subtitle-file export, render choice, local-only asset handling, or export fallback explanation.

0xsline/openchatcut

AI image generation via Fal.ai, gpt-image-2, nano-banana, MiniMax image-01, and xAI Grok Imagine. Use when the user wants to generate or create an image / picture / still.

0xsline/openchatcut

Use when a OpenChatCut tool call fails or returns an unexpected shape.

0xsline/openchatcut

Music generation via Mureka, MiniMax, Atlas Cloud, and Sonilo. Use for instrumentals, songs, soundtracks, track/stem generation, covers, or video-conditioned scoring of the finished cut through `submit_music`.

0xsline/openchatcut

OpenChatCut product knowledge — UI layout, editor features, and how generation providers are configured. Use when the user asks about the product interface, how to use a feature, where to find something, or needs GUI guidance for something the agent cannot do directly. Also use as fallback when a task fails and the user needs to complete it manually in the UI. NOT for live project-state queries ("where are my folders?", "what's on my timeline?", "where is clip X?") — those are answered by `read_project`, not by this skill.

0xsline/openchatcut

AI shader generator for WebGL video effects, transitions, masks, and color grading (LUT / 调色 / 电影感 / film look). Use when the user wants a video effect (滤镜 / 特效), a transition (转场 / crossfade / wipe / cube / 3d), a mask (蒙版 / 遮罩 / reveal), a zoom / push-in (推近 / 推镜头), or a color grade — try the built-in effects (zoom, builtin LUTs) before generating a new shader.

0xsline/openchatcut

AI video generation via Fal.ai, Seedance 2.0, Kling, MiniMax Hailuo, xAI Grok Imagine, and OFox. Use when the user wants to generate a video clip — text-to-video, image-to-video, first/last-frame transitions, reference-guided generation, multi-shot, or generatively editing / extending an existing clip.

0xsline/openchatcut

Text-to-Speech (TTS), voiceover, narration placement/sync, and custom sound effects (SFX) generator. Use when the user wants generated speech from text, wants to add/replace/align narration or voiceover for an existing video/timeline, wants to keep existing voiceover synced after visual retiming edits, needs voice audition/selection, or explicitly wants a newly generated/custom sound effect that is not available in the Sound Effects library.

0xsline/openchatcut

Use when the agent should ask the user for structured input with an in-chat form, including single-select, multi-select, text fields, style pickers, or voice audition choices.

相關技能