Agent Skills
› ChatCut-Inc/agent-plugin
› known-errors
known-errors
GitHub处理ChatCut插件工具调用失败或异常返回。涵盖edit_item数据格式修正、时间线重叠重试、路径限制规避、媒体导入转换失败处理及动态图形规范,提供具体错误修复方案。
Trigger Scenarios
ChatCut插件工具调用失败
工具返回意外数据结构
视频编辑操作报错
Install
npx skills add ChatCut-Inc/agent-plugin --skill known-errors -g -y
SKILL.md
Frontmatter
{
"name": "known-errors",
"description": "Use when a ChatCut plugin tool call fails or returns an unexpected shape."
}
Known Errors
edit_item update raw shape:
- Wrong:
{ "id": "abc", "fromFrame": 30 } - Right:
{ "json": "{\"updates\":[{\"id\":\"abc\",\"fromFrame\":30}]}" } - Use this same
updatesshape for common moves, trims, and track changes.
edit_item add raw shape:
- The new item goes inside the
addsarray of thejsontransaction:{ "json": "{\"adds\":[{...}]}" }. - Use
edit_itemfor simple video placement, for example{ "json": "{\"adds\":[{\"type\":\"video\",\"assetId\":\"...\",\"fromFrame\":0}]}" }.
Timeline overlap:
- Error text:
Overlap: updated item at ... would overlap existing item at ... on this track. - Do not force the write or delete the conflicting item silently.
- Retry the
edit_itemtransaction with an explicit availabletrackId, for example an update containing"trackId":"V2", or ask the user which layer should win.
Workspace path restrictions:
push_asseton the external MCP only accepts public http(s) URLs asfilePath. It rejects local paths, workspace paths, and chat attachment paths.- For motion-graphic assets, pass the JSX source via
create_motion_graphic_from_code({ code:"...", name, width, height, durationInFrames }).push_assetno longer accepts an inlinecodeargument. - Copying local media into the workspace is not the fix for video/audio/image/GIF imports; use
asset-importandimport_mediainstead. - Use
import_media action=create_session, then run the ChatCut media import helper once with the returned token for client-held files.
Browser video conversion failure:
- Error text often includes
Unable to convert video without dropping audio/video tracksorunknown_source_codec. - Rerun the ChatCut media import helper; it owns frontend-aligned conversion and will surface a user-actionable error if conversion is impossible.
- Do not ask the user to re-import the same file through the editor UI as a workaround — the conversion path is the same, the error will repeat. Fix the source (re-encode locally with
ffmpeg) or pick a different file. - After the replacement asset is uploaded/transcribed, delete the failed original asset if it is unused. The clean final media pool should look like a successful import, not a failed import plus a replacement.
Motion Graphic requirements:
push_asset(type:"motion-graphic")requireswidth,height, anddurationordurationInFrames.- MG code must pass the ChatCut validator.
- Root
AbsoluteFillis not valid for generated MG code; use a scaling rootdiv. - Avoid declaring a top-level local named
scaleinside MG code. The validator/runtime may already reserve that identifier; use a specific name such asuiScale.
Local dev Zero caveat:
- When backend runs on a non-default port, use a matching Zero view-syncer configuration.
- In this POC, backend
3010, editor5177, and view-syncer4850are intentionally isolated from the older3000/5173/4848stack.
Timeline screenshot renderer caveat:
- If
render_cloud_screenshotreturns a RemotionAccessDeniederror for arendererbucket-.../sites/.../index.htmlURL, the project write path can still be healthy. - For local-only projects, connector visual proof is unavailable until the media is uploaded/registered with cloud-readable URLs.
- Do not report visual proof success unless the tool returns image content or a browser screenshot visibly confirms the target frame.
Version History
- f85076d Current 2026-07-19 09:56


