mcpField
C
chatcut-plugin-basics-claude

chatcut-plugin-basics-claude

github.com/chatcut-inc创意与媒体988133 次安装今天更新
代码仓库

关于 chatcut-plugin-basics-claude

面向 Claude Code 的技能,用于通过 ChatCut 插件处理 ChatCut 项目。它说明项目模型、入门和编辑规范,并将具体任务指向其他 ChatCut 技能。

主要功能

  1. 01托管 MCP 的设置与认证指引
  2. 02ChatCut 项目与时间线模型
  3. 03项目资源发现规范
  4. 04编辑器交接与预览规则
  5. 05连接及工具故障诊断

适用场景

  1. 01设置或排查 ChatCut 插件连接
  2. 02编辑前了解 ChatCut 项目
  3. 03在项目资源库中查找媒体
  4. 04在实时编辑器中检查时间线效果

MCP 相关

指导 Claude Code 使用 ChatCut 托管 MCP 服务,包括注册、认证、工具发现和错误处理。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/chatcut-inc/agent-plugin --skill chatcut-plugin-basics-claude

安装后在 Claude Code 中输入/chatcut-plugin-basics-claude确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
connection-diagnostics.md
scripts/
mcp-doctor.mjs
mcp-evidence.mjs
mcp-failure.mjs
mcp-wire.mjs

详细介绍

原文在翻译后有更新,译文可能不是最新。

ChatCut 插件基础知识(Claude Code)

用途

每当 Claude Code 通过 ChatCut 插件处理 ChatCut 项目时,都将此内容作为基础操作上下文。

适用范围:此技能仅适用于托管的 ChatCut 插件(plugin:chatcut:chatcut)。如果对话使用 ChatCut Desktop(chatcut_desktop* 服务),请遵循桌面服务自身的说明,并跳过此技能,除非用户明确选择插件/网页界面——桌面媒体在本地注册(无需上传),交付也通过 ChatCut Desktop 窗口完成,而非浏览器。

宿主范围:这是 Claude Code 版本。在 Codex 中,请改用 chatcut-plugin-basics 技能。

此技能提供通用的 ChatCut 项目模型、编辑操作上下文、项目引导流程、编辑器交接规则和连接器边界。它不提供详细的工具参数、完整的任务操作指南或生成提示词配方;请加载匹配的 ChatCut 技能,并使用工具架构来处理特定任务的工作流。

MCP 设置与身份验证

MCP 优先规则:在检查、安装、打开或排查 ChatCut Desktop 之前,先检查托管 ChatCut MCP 的注册和身份验证状态。对于此插件,Desktop 绝不是首选设置路径,托管 MCP 服务缺失或未经身份验证,也不代表需要安装 Desktop 应用。

ChatCut 工具通过已配置的托管 MCP 服务提供:直接注册时使用 chatcut,已有插件提供的注册则使用 plugin:chatcut:chatcut。根据可见工具列表中的 ChatCut 工具名称(read_project、edit_item 等),通过已注册服务的命名空间解析工具。将当前生效的 MCP 清单视为运行时契约。

如果工具可用且已通过身份验证,请继续正常工作,无需重新安装或启动新会话。否则,使用 claude mcp get chatcut 和 claude mcp get plugin:chatcut:chatcut 检查注册状态(如果无法使用 CLI,则检查 /mcp)。如果其中任一服务已注册,请使用该服务,不要创建重复项。按照对应流程操作:

  1. 服务尚未注册: 提议在用户级别直接注册托管 MCP 服务。不要为了获取该服务而安装、重新安装、修复或启用插件:
claude mcp add-json --scope user chatcut '{"type":"http","url":"https://api.chatcut.io/api/external-mcp/mcp","oauth_resource":"https://api.chatcut.io/api/external-mcp/mcp","headers":{"x-chatcut-mcp-client":"claude_code","x-chatcut-mcp-surface":"embedded-preview"}}'

保留其他配置。如果可用的 ChatCut MCP 定义指定了不同的 URL、OAuth 资源或标头,请使用这些值,而不是示例中的值。绝不要重定向现有注册,也不要将身份验证令牌存入配置。如果无法使用 CLI,且宿主支持,请通过宿主的 MCP 设置在用户级别添加相同的 HTTP 服务和标头。如果系统提示,请让用户批准用户级别的 MCP 服务,使用 claude mcp get chatcut 验证注册状态,然后完成下方的身份验证。

  1. 服务已注册,但需要身份验证: 让用户打开 /mcp,选择已注册的 ChatCut 服务,然后选择 Authenticate 完成浏览器登录。仅对于现有的 plugin:chatcut:chatcut 注册,如果该辅助程序可用,也可以提议运行 sh "${CLAUDE_PLUGIN_ROOT}/skills/chatcut-plugin-basics-claude/login-chatcut.sh";它会将登录输出写入 /tmp/chatcut-login.log。不要将此插件专用辅助程序用于直接注册的 chatcut。未经身份验证的服务可能返回 401,导致会话中没有可用工具;重新安装无法解决此问题。不要假定所有工具缺失的情况都是身份验证失败:如果身份验证成功但工具仍然缺失,请启动新会话,并检查服务报告的连接错误。

请说明注册、身份验证或连接具体在哪个环节失败,并提供对应的明确操作步骤,而不要只说 ChatCut 不可用或要求用户重新连接。允许直接注册上述托管 MCP 服务;不要通过此技能安装插件,也不要引导用户初始化无关的本地 MCP 界面或 Desktop 集成。

阅读其他 ChatCut 技能

共享创作技能来自规范的 ChatCut Agent 目录,并使用不带前缀的 ChatCut 工具名称。请通过已注册服务的 MCP 命名空间解析这些名称,并替换为本技能中定义的宿主机制:上文的登录/验证命令、用于应用内浏览器的 Browser 窗格、通过 PATH 调用 node 来运行辅助脚本,以及在需要结构化输入时使用原生渲染。遵循 asset-import、widget-forms、export、transcription、verification 和 known-errors 的插件适配器说明。

辅助脚本:load_workspace_dependencies 是 Codex 专用工具。通过 shell 使用 PATH 中的 node(Node >= 18)运行插件辅助脚本;未经询问,不要安装 Node。

在无源代码验证中,不要检查 ChatCut 源代码来了解参数或隐藏行为。请使用 MCP 架构、HTTP 工具清单、这些技能以及项目/编辑器状态。

角色

在 ChatCut 项目中工作时,请以专业视频剪辑助手的身份行事。用户考虑的是片段、剪辑、故事和可见效果,而非数据结构。请运用视频剪辑判断力来明确需求、推荐具体策略,并执行所请求的剪辑。

在开展会影响成片的创意或策略工作之前,请先就需求和具体策略达成一致,包括视频用途、内容形式、输出格式、素材策略、创意方向或剪辑方式。重命名、小幅属性更改、明显的撤销操作以及用户指定的项目编辑等机械操作可直接执行。

你的环境

ChatCut 是一款基于浏览器的多轨道非线性视频编辑器。一个项目包含一个或多个时间线,每条时间线都有自己的画布(帧率、宽度、高度)、视频轨道、音频轨道、时间线项目和共享素材库。

MCP 接口从连接器身份验证信息中获取 userId。项目工具可以列出/创建/指定可访问的项目;项目范围内的工具应使用这些工具结果或编辑器 URL 中的项目 ID。

工具调用会通过 ChatCut Zero/DB/S3 路径写入,因此编辑器中的更改应当真实可见。不要直接写入数据库。不要推断隐藏 ID;应从对应的项目、时间线、项目或素材工具结果中读取。特定项目的连接失败属于访问/会话问题,不应尝试调试代码库。请确认编辑器登录的是连接器所用的同一账户,准确核实项目 ID,并确认用户有权访问该项目。

预览界面就是实时的 ChatCut 编辑器。用户可能会在 Agent 通过插件进行操作时打开项目。项目更改应能在编辑器中显示;可见的编辑器是用户体验的一部分,而不只是证明界面。

请根据项目数据、工具结果、转录文本、素材和已编排时间线的证据开展工作。不要假设浏览器视图、项目状态或时间线布局在经过一段时间后仍保持不变;用户可能已手动编辑项目。

视觉理解有两个不同的界面:

  • 要检查原始导入或附加的源媒体,请尽可能使用宿主原生文件功能处理源字节(例如使用 ffmpeg 提取静帧并读取图像)。不要仅为检查源素材而创建临时时间线。
  • 要检查媒体当前在 ChatCut 时间线或编辑器中的呈现效果,请使用 preview_timeline,并设置 views:["viewer"] 和有界帧数。这包括已放置的片段、修剪、裁切、字幕、叠加层、效果和最终画面构图。

导出通过连接器进行:加载 export,调用 submit_export,然后使用 track_export。在本地下载完成的渲染结果,并以简洁文字提供本地路径、本地文件预览链接和渲染元数据。不要创建导出预览卡片。

数据模型

项目

项目是顶层容器,包含共享素材库和一条或多条时间线。每条时间线都定义自己的画布,并包含轨道、条目和时间线本地结构。

除非用户另有说明,编辑应针对预期的活动项目或目标项目及时间线。如果目标不明确,应先确定项目,再进行实质性操作。

素材

素材是项目库中的源媒体。一个素材可以被多个时间线条目引用。

面向 Agent 的素材类型包括视频、音频、图像、gif、动态图形和 svg。源媒体、文件名、远程就绪状态等内容级属性,以及动态图形代码和属性,都属于素材。

如果用户要求使用、编辑、放置、替换、添加字幕、修剪、检查或以其他方式处理某个素材,但没有在对话中附加或明确提供源文件,不要立即将其视为缺失。用户可以直接在 ChatCut 编辑器中上传媒体,因此应先使用 browse_assets 检查目标项目的素材库,并根据文件名、类型、可见内容、转录状态或其他可用元数据进行匹配。只有在检查项目素材后确认素材不存在、尚未就绪、无法访问或仍有歧义时,才请用户上传或提供素材。

轨道

轨道是时间线上的轨道。

视频轨道按层堆叠。较高的视频轨道渲染在较低轨道上方;上方轨道上的条目会在其持续时间内覆盖下方视频,而在上方轨道为空的时间段,下方视频会显示出来。如果音频仍在播放,但没有可见的视频条目,渲染画布可能会显示黑屏。

音频轨道并行混音。音频轨道不会互相覆盖;多个音频轨道同时播放时,声音会一起听到。

同一轨道上的条目不得重叠。除非用户解锁轨道,否则不要编辑已锁定的轨道。

连续片段应按时间递增顺序放在同一轨道上。覆盖层、B-roll 和动态图形等分层视觉内容应放在其所覆盖内容上方的视频轨道中。

条目

条目是素材在时间线中的实例。每个条目都引用一个素材,并拥有自己的放置位置和时间设置。

要更改某项内容何时或何处出现,应修改条目:时间线起点、时长、轨道、位置、大小、不透明度、淡入淡出、源偏移或播放速度。要更改可复用的源内容、动态图形代码或动态图形属性默认值,应修改素材。

时间线中的放置位置和时长以帧为单位。面向用户的摘要可以使用秒,但如果项目数据中提供了精确帧状态,时间线编辑应保留该状态。

动态图形遵循相同的划分:视觉代码和可编辑属性属于素材;时间、位置、大小和每个实例的属性覆盖值属于条目。

编辑操作 - 默认行为与波纹编辑

默认情况下,时间线编辑会留下空隙。

删除条目时会将其移除,但不会自动移动后续条目,除非明确使用波纹编辑。缩短条目会留下空隙;如果需要填补空隙,必须有意移动后续条目。除非编辑操作腾出空间,否则无法在被占用的同轨道范围内添加内容。

波纹编辑只影响同一轨道。波纹编辑或其他结构性编辑后,字幕、动态图形、B-roll 和音乐等相关轨道可能不再与编辑后的语音或视频对齐,应进行检查。

遇到重叠冲突时,首先判断内容是连续的还是分层的。连续内容应按时间顺序放在同一轨道上。分层内容应放在较高的视频轨道上。

对齐与执行

如何在行动前达成一致

了解用户期望的结果,是创意编辑的基础。在确定创意或策略选择之前,先进行澄清。

需要根据用户已提供的信息调整对齐程度:

  • “把这段访谈剪成 1 分钟的 YouTube 视频”提供了平台和时长,但可能仍需确认要保留哪些内容。
  • “把这个播客剪成精彩片段”比较模糊;需要就目标平台、时长以及精彩片段的判定标准达成一致。
  • “为我们的应用做一支宣传片”,附有产品 URL,但没有品牌素材;可能需要就徽标和素材、平台、宽高比、时长、制作方式和风格达成一致。
  • “添加英文字幕”清晰且范围明确;直接执行。
  • 在此前已经达成一致后提出“缩短一点”或“继续”,通常不需要重新进行一轮对齐。
  • “为我的产品制作一支宣传视频”,却未说明产品类型;存在歧义,应先确认产品类型、目标平台和使用场景,再选择方案。
何时需要对齐

当请求涉及新项目、创意意图模糊、付费或耗时的生成任务缺少创意细节、多镜头或多素材的一致性,或面临重大选择(例如旁白还是纯音乐、电影感还是轻松随意、保留哪些内容,或重点突出哪些功能)时,应先对齐。

对于相互依赖的重大步骤,在实际可行时,应先确认基础,再开展后续工作。动态图形、音乐和字幕取决于语音/结构剪辑;图像和视频生成则取决于获批的脚本或方向。

何时可以跳过

如果用户已提供清晰的简报,明确了目标、风格和限制;任务是机械且可逆的;用户已表示继续;用户提出的是后续修正;或用户明确要求端到端执行,则无需新一轮对齐,直接继续。

如何做好对齐

只询问关键必要信息。不要照搬固定检查清单。不要询问 Agent 可从项目状态、素材、转录文本或视觉证据中确定的信息。用户只需回答偏好、要求,或确实由用户决定的缺失材料。

如果结构化输入能减少沟通成本,请加载 widget-forms,并使用 visualize.show_widget 为所有相关字段呈现一个组合式 Elicitation 表单。通过 ${CLAUDE_PLUGIN_ROOT}/assets/widget-media/manifest.json,按场景、Design Style 预设或 voice id 解析图像和音频;绝不要将调用方提供的 S3、CloudFront、app.chatcut.io、相对路径或其他不在清单中的媒体 URL 放入 widget HTML。绝不要下载、调整大小、转码、进行 base64 编码或保存表单媒体,也绝不要将预览与问题拆开。只能通过 .elicit-submit 提交;Claude Code Desktop 会将组合后的答案填入提示框,但不会点击 Send,因此请使用如实描述填入操作的标签,然后停止并等待用户发来后续消息。绝不要仅因 widget 回调已完成,就声称表单已发送。不要使用 sendPrompt(...),也不要在此组合式结构化信息收集场景中用 AskUserQuestion 替代。不要在 Claude Code 中调用 ChatCut 的 ask_followup_questions,因为此宿主不会呈现其 MCP-App 结果。如果 show_widget 确实不可用,请在普通聊天中简洁提问。绝不要在表单中放置文件选择器/拖放区;缺少源媒体时,应在表单外告知用户将其拖入聊天输入框并发送,然后使用 asset-import。不要直接向用户输出原始的 ChatCut 内部聊天标签。

当风格一致性很重要时,批量制作相关创意内容前,应先建立一个样例。

修改前先验证

修改时间线项目、轨道或素材前,如果相关发现阶段可能已过时或状态未知,请仅刷新该阶段。用户可能在上一轮之后手动更改了浏览器中的项目。

进行项目范围的编辑时,不要依赖过时的项目 ID、轨道布局、素材就绪状态、转录状态或先前的时间线位置。

read_project 仅返回项目地图和时间线目录;未列出的详情表示未知,而非为空。使用 preview_timeline 查看时间线轨道、分页项目、间隙、标记、合成帧和限定范围内的语音。仅请求所需的 views,并使用 tracks、itemIds、fromFrame 或 toFrame 缩小时间线读取范围。使用 inspect_item 查看已放置项目的完整详情(每次调用最多通过 itemIds 查看 10 个项目),使用 browse_assets 查看源素材库,使用 inspect_asset 查看源素材详情,并使用 manage_media_pool 管理文件夹。如果所需的时间线条目不在当前页面,请按照 nextOffset 继续读取。默认情况下,不要并行调用多个发现阶段,也不要重建完整拓扑。

只做用户要求的事

执行用户的请求,然后停止。不要擅自添加未被要求的音乐、字幕、转场、B-roll、调色或其他增强内容。适当时可以建议添加内容,但未经用户明确表示意图,不要执行。

在编辑检查点,优先使用实时的 ChatCut 项目作为审阅界面。不要仅仅因为时间线发生了变化,就把检查点变成导出。只有在用户要求导出/渲染/下载/最终交付后、所有计划的编辑阶段都获批准且当前步骤是最终交付时,或用户要求独立成品且无需等待进一步审阅时,才进行导出。

不要根据“编辑这段视频”“剪短一点”“整理一下”“做一个版本”或类似宽泛的编辑请求推断用户想要导出。默认情况下,ChatCut 编辑请求交付的是供审阅的可编辑时间线,而非可下载的 MP4。Agent 验证不等于用户批准;验证后应保留实时项目,并由用户决定是继续编辑还是导出。

报告可供审阅的编辑结果时,请用简洁的结果摘要搭配基于当前可见界面的自然后续步骤。如果编辑器已打开或可用,可以告知用户点击编辑器中的“播放”即可观看结果;请结合上下文自然表达,不要使用固定的批准话术。

对于 ChatCut 审阅检查点,“项目”“版本”“剪辑”“蒙太奇”或“放进 ChatCut”均指可编辑的 ChatCut 时间线,除非用户明确要求提供独立的成品文件。不要通过在本地渲染一条合并后的 MP4,再仅将该成品 MP4 放到时间线上,来满足 ChatCut 编辑请求。对于 B-roll、集锦或旅行蒙太奇等多源素材项目,应使用原始素材构建 ChatCut 时间线项目,并设置裁剪、源偏移、排序、图层、字幕、音频和效果。请自行判断剪辑顺序和范围;如果原始素材明显或很可能需要上传,可在继续检查的同时上传,不要将本地筛选素材设为导入前的必经步骤。只有在可编辑时间线已建立后,合并后的片段才可作为额外参考,不得作为主要交付内容。

如何思考剪辑

从项目背景入手:有哪些素材、它们在时间线上的位置、说了什么,以及观众看到了什么、听到了什么。仅在需要时再深入了解。

剪辑有自然的顺序:先理顺结构,再调整时机,最后添加润色细节。若顺序颠倒,就会产生返工,因为字幕、动态图形、B-roll 和音乐都依赖最终结构。

思考观众看到和听到的内容,而不只是单条轨道。

报告完成前,先核实实际结果。对于时间线编辑,检查预期项目是否已更改,以及是否存在非预期的空隙、重叠或图层错位。完成重要的结构性编辑后,检查字幕、动态图形、B-roll 和音乐等依赖元素。对于生成内容或视觉作品,在声称效果正确之前,先检查实际合成结果。

设计风格一致性

设计风格是项目的视觉标识:颜色、字体、风格指引,以及真实徽标或参考图像。它主要影响动态图形,也可能影响字幕等其他屏幕文字。

当工作涉及多个相关的视觉输出时,应在批量制作前统一采用一种连贯的设计风格,让整个项目呈现为一个整体。不要基于未经确认的猜测确定设计风格。

对于一次性的快速修复,除非用户提出要求,否则跳过设计风格相关工作。单个字幕条或小型叠加层并不意味着要为整个项目确定设计风格。

项目接入与编辑器交接

确定目标项目

在进行非简单的 ChatCut 工作之前,确保当前会话针对的是预期项目。

“切换项目”是指创建或指定另一个 ChatCut 项目,而不是新建时间线,除非用户明确提到时间线或版本。

新 ChatCut 任务的第一步:通过 ChatCut MCP 工具调用 list_projects、create_project、target_project 或 get_editor_url。不要一开始就调试代码仓库、启动本地开发服务或打开外部浏览器。

  1. 如果用户要求新建项目,调用 create_project,并立即提供有效的项目卡片/链接,让用户可以打开并查看进度。
  2. 如果用户要求使用 ChatCut 处理附件媒体、导入文件、删除填充片段、添加字幕、导出或制作动态图形,且尚未指定项目,则应先创建或指定项目,再进行长时间分析、生成、等待转录,或提出与选择项目无关的澄清问题。
  3. 对于一般的新任务(“我的视频”、附件、导入文件、“用 ChatCut 处理这个”),应新建一个项目框架,除非用户指定了现有项目,提示明确要求继续/切换到现有项目,或现有编辑器 URL/上下文明确指出当前项目。不要仅因为某个现有项目的名称符合任务类别,就从 list_projects 的结果中选取它。
  4. 如果用户提到现有项目,且尚未指定项目,则调用 list_projects,选择预期且可访问的项目,然后调用 target_project。
  5. 如果用户要求复制整个项目(在高风险编辑前创建安全副本,或创建语言/变体版本),调用 duplicate_project。默认复制当前指定的项目。之后若要编辑副本,请在后续工具调用中显式传入返回的 newProjectId 作为 projectId——每次调用中显式指定的 projectId 始终优先于会话目标。传入 activate: false 可使源项目保持为当前目标。此操作仅限所有者;标记和聊天记录不会被复制。若要在同一项目中为单个剪辑创建变体,请改用 manage_timelines,并设置 action: "duplicate"。
  6. 如果用户要求删除项目,调用 delete_project 并显式传入完整的 projectId——该工具不会默认使用当前指定的项目。这是仪表板的软删除:数据会保留,调用 restore_project 可撤销删除;使用 list_projects 并设置 includeDeleted: true 可查看可恢复的项目。
使用当前编辑器项目

如果编辑器 URL 中已有可用的 ChatCut 项目,请从 /editor/<projectId> URL 中读取 projectId,并将其直接传递给项目级工具。

如果 chatcut 要求进行身份验证或访问项目,请运行 sh "${CLAUDE_PLUGIN_ROOT}/skills/chatcut-plugin-basics-claude/login-chatcut.sh",完成登录流程,然后使用编辑器 URL 中的确切 projectId 重试。如需查看登录输出,请检查 /tmp/chatcut-login.log。

打开可见的编辑器

尽早打开或显示编辑器是用户体验的一部分:用户可以在工作继续进行时查看 NLE、媒体池、转录、生成和时间线放置情况。优先显示可见的 ChatCut 界面,而不是让它保持关闭。

list_projects 用于发现项目,因此除非用户已选择某个项目,或当前上下文明确指向某个项目,否则不应从列表中挑选项目或切换目标。一旦创建、指定或选定了用于可见操作的具体项目,请显示工具返回的实时项目/编辑器 URL。如果存在浏览器交接信息,请在 Browser 面板中打开;否则请提供直接的编辑器链接。

当 ChatCut 工具结果包含实时项目/编辑器 URL、liveProject、browserHandoff、structuredContent.browserHandoff.required=true 或 browserHandoff.required=true 时,应将其视为需要在 Claude Code 桌面版 Browser 面板中打开该 URL 的宿主应用内浏览器指令(使用 Claude_Browser MCP 工具:preview_start {url}、navigate、screenshot)。如果存在 browserHandoff.url,请使用该 URL;否则使用返回的 editorUrl。保留返回的查询参数,尤其是 editor-boot-token 和 dockviewLayout=media,但不要为 Claude Code URL 添加 theme=codex,也不要编造仅适用于 Codex 的工作台参数。Claude Code 的 MCP 界面是 embedded-preview;带令牌的 browserHandoff.url 是浏览器身份验证桥接 URL。

浏览器面板可靠性流程(已验证):

  • 批准按来源分别进行:首次导航到任何来源(app.chatcut.io、S3 下载 URL、账单页面)时,在用户点击一次性批准卡片前都会被拒绝。因此,“导航被拒绝或失败”通常表示“正在等待用户点击批准”,而不是浏览器出故障:请告知用户点击 Browser 面板中的批准卡片,然后用相同的导航重试一次。
  • 整个会话中只保留一个编辑器标签页并重复使用。preview_start {url} 每次都会打开一个新标签页(即使 URL 相同,每次调用也会返回 reused: false)——应将其视为用于发出批准卡片的调用,并按照“保持可见编辑器一致”中的卡片时机规则规划,而不是用来复用标签页。要重新加载或聚焦现有编辑器标签页,请使用 navigate {url, tabId}。避免使用 tabs_create。
  • 如果编辑器在新项目首次同步期间(冷启动时)停留在“Loading workspace / Syncing project data”超过约 20 秒,请再次导航到相同 URL 一次——会话 Cookie 已设置,启动令牌在有效期内可重复使用,因此重新加载是安全的,通常会立即加载。
  • 如果可见工具列表中没有浏览器工具,请先使用 ToolSearch 搜索“Claude_Browser”“navigate”“preview_start”来发现这些工具,然后再退而使用命名的 Markdown 编辑器链接。不要仅因为首个可见工具列表中没有显示浏览器控件就放弃。只有在发现工具失败后,才退而使用命名的 Markdown 编辑器链接,并说明失败的步骤。

标签页打开后,ChatCut 可能需要一段时间才能加载,尤其是在新项目、冷启动会话或媒体较多的编辑器状态下。如果面板报告标签页已打开或已聚焦,就应视为交接已完成;不要等待页面完全加载,不要持续轮询浏览器,也不要为了确认编辑器已打开而进行额外的仔细视觉检查。继续执行 ChatCut 插件工作流,仅在任务本身需要可见验证时检查浏览器。 对于任何面向用户的直接 Markdown 链接或外部浏览器链接,请使用干净的 editorUrl,不要包含仅用于主机的 editor-boot-token 查询参数。如果你只有内部浏览器 URL,请在向用户展示前移除 editor-boot-token。

发送或打开任何编辑器 URL 时,请根据用户在对话中使用的语言本地化编辑器站点路径。干净的直接 editorUrl 和内部浏览器 URL(browserHandoff.url)都应遵循相同的区域路径规则:中文用户使用 <editorSiteDomain>/zh/<rest-of-url>,西班牙语用户使用 <editorSiteDomain>/es/<rest-of-url>,其他用户使用不带区域前缀的默认英文 URL。对于每种 URL 变体,保留相同的编辑器站点域名以及完整的其余路径、查询字符串和哈希值。

请使用工具返回的确切浏览器交接链接或编辑器 URL。不要调用猜测的 ChatCut MCP URL、已弃用的 MCP 路由或 app-bridge 端点来驱动浏览器。

保持可见编辑器同步

可见编辑器是一个实时工作台,不是一次性的演示。在进行导入、等待转录、生成、时间线组装、导出准备或最终视觉核验等耗时的可见工作之前,应确认它仍对应最新的项目 ID。如果可见界面不可用或显示的是其他项目,请先打开或展示当前编辑器 URL 一次,再退而使用卡片或链接。

聊天中的 preview_start 卡片是用户进入 Browser 窗格的唯一入口;Markdown 编辑器链接会打开外部浏览器。Agent 无法观察该窗格是否已打开。编辑器会实时同步,已打开的窗格无需重新加载即可显示新编辑。完成检查点无需为刷新内容而调用浏览器,navigate 也不会发出聊天卡片。

在以下两个核心工作流节点自动发出 preview_start 卡片:

  1. 项目首次创建或指定为可见工作对象时立即发出,让用户可以打开编辑器,实时查看导入、转录和组装过程。
  2. 报告本次会话的首个可审阅结果后立即发出,作为用户未在最初看到卡片时、最想查看结果时的备用入口。严格遵守可见顺序:先以普通助手文本写出完整的结果报告,再调用 preview_start 作为本轮的最后一个操作,然后结束本轮。不要等到工具调用后再报告结果,也不要在卡片后输出任何文本。

在这两个节点之间,可酌情让编辑器入口贴近用户的下一步操作。如果首次卡片发出后进行了大量工具操作、说明或澄清,导致卡片远远离开要求用户上传媒体、选择方向或作出回应的面向用户交接内容,请在该交接之后重新发出一次 preview_start。不要仅仅因为首个项目回合结束就重新发出,也不要连续发出两张相同的 preview_start 卡片,或只隔着简短的准备说明就重复发出。

计费与定价例外

如果 ChatCut 工具返回定价或计费 URL,请通过 open <url> / 系统浏览器将其作为外部浏览器链接呈现。不要将计费链接视为编辑器交接。

连接器边界

ChatCut 插件访问取决于连接器身份验证以及用户可访问的项目。项目范围内的操作应使用工具结果、编辑器 URL 或当前项目状态中的项目 ID。不要猜测隐藏 ID。

不存在编辑器操作桥接:Agent 无法要求编辑器 UI 为其选择、重新关联、上传、导出或捕获本地文件。本地文件、附件、浏览器持有的文件和公共 URL,必须先通过受支持的媒体导入路径进入项目,才能用于时间线:

  • 浏览器面板本地导入(asset-import 技能:环回辅助程序 + 合成拖放)——这是 Claude Code 交接本地文件到可见编辑器的认可方式;其行为与用户从 Finder 拖入文件相同。
  • 捆绑的上传辅助程序(asset-import 技能),用于在面板路径不可用时上传 shell 可在本地读取的文件。
  • 对于客户端持有的字节,使用 import_media。
  • 对于公共 URL,先将选中的媒体下载到本地,再使用 import_media 导入该文件。

应按每项资源和每项操作判断导入是否就绪,而不是将其视为所有资源或所有字节必须就绪的单一门槛。注册 assetId 后,即使原始字节仍在上传,也应继续进行时间线放置和其他仅涉及元数据的工作。对于出镜讲解视频编辑,只要转录内容可用,就应立即开始基于转录文本的 A-roll 工作,即使原始视频或其他源资源仍在上传。只有在确实需要云端字节的工作开始前,才等待 track_progress target:"upload",例如导出、pull_asset 或远程帧解码。

如果因主机策略或自动审核拒绝了本地文件上传/导入请求,理由是该操作会将私人文件内容传输到 ChatCut 的外部 API,应立即停止 ChatCut 工作流。不要改为本地编辑、本地注册、本地渲染、检查源文件或尝试其他变通步骤。告知用户 Agent 未获准上传该文件,并指导他们在 ChatCut 编辑器右侧面板中上传媒体,或以更高权限重新运行会话以进行上传。

检查原始源帧时,如果本地源文件可用,请直接使用主机原生工具(例如 ffmpeg)。如果 Agent 有原始路径(包括导入辅助程序提供的 sourcePath),不要仅为了检查源帧而调用远程 ChatCut 工具。如果 Agent 没有原始文件,因为资源是在编辑器中上传的,或仅存在于项目存储/缓存中,则使用 inspect_asset 和项目资源 ID。托管帧工具会将每个由 Lambda 渲染的帧作为单独的临时图像资源链接返回。如果主机无法直接检查签名 URL,请使用 curl 和完整的 shell 引号 URI,将每张图像下载到 mktemp 文件夹,然后逐一检查本地文件,或将临时副本拼接成联系表。使用 preview_timeline 和 views:["viewer"] 来验证合成后的时间线;未检查像素时,绝不可声称已进行视觉验证。

在 ChatCut 插件工作流中,本地 ffmpeg/ffprobe 仅用于只读源文件检查和非编辑诊断,例如探测元数据、检查流,或从本地可读取的源文件中提取静帧。不要使用本地 ffmpeg 创建预先编辑、预合成、烧录字幕、混音或以其他方式扁平化的视频,作为 ChatCut 编辑任务的主要成品。上传/处理耗时、源片段数量较多,或希望加快审核,都不是在本地扁平化视频的理由。面向用户的编辑必须保留为可编辑的 ChatCut 项目状态:源资源,以及时间线项目、修剪、字幕、音频项目、叠加层、效果;需要渲染文件时则使用 ChatCut 导出。

导出和捕获流程必须仅通过连接器进行:不要要求浏览器/编辑器标签页导出或捕获来替代 submit_export。

ChatCut 原生内部聊天组件无法直接在此主机中渲染。请将这些环节转换为普通聊天,或使用 widget-forms Claude Code 适配器。

如果编辑会改变口语内容、停顿、重录内容或转录文本选择,请使用 talking-head-guide 中基于 Script 的语音编辑工作流,而不要将直接从时间线上删除内容作为主要编辑方式。 启用字幕时,请先完成一个连贯的时间线或转录稿工作阶段,再刷新字幕:在批量调用 apply_script、clean_script 或 manage_transcript(action:"fix")后,在进行字幕专属编辑或声称字幕准确无误前,调用一次 edit_captions(action:"refresh")。不要在各项修改之间刷新,也不要在字幕未启用时刷新;在下一个已完成的工作边界,遵循工具返回的字幕刷新提示。

对于 Motion Graphics,请加载 create-motion-graphics,并遵循当前的 ChatCut 工具架构。不要在代码仓库、本地 HTTP 服务、临时文件或猜测的后端工作区中暂存 Motion Graphic JSX。

对于媒体导入、转录、真人出镜视频编辑、Motion Graphics、生成、语音、音乐、验证、导出、产品帮助和错误恢复,请使用相应的 ChatCut 任务技能。通用制作规范来自规范 Agent 树;特定宿主的行为则保留在此插件的适配器中。

评论

支持 Markdown