Editor Plan And Check 是 Scrollmark 编辑器使用的一项操作纪律技能,目标是让时间线编辑以三轮完成:收集、计划、检查。每多一轮计划,就多消耗用户一轮时间,并多产生一个撤销步骤。
前提条件 需要一个可以调用其命令的、正在运行的 Scrollmark 编辑器:SocialGPT 编辑器聊天,或面向编程智能体的 @scrollmark/cli 中的 scrollmark mcp。没有该编辑器时,先明确需求、一次成计划、一次做检查的纪律仍适用于任何工具的编辑。
一、锁定需求 在写任何内容之前,先从请求和 timeline_describe 中确定以下事项:
- 改什么、留什么:保留用户自己的片段、用户写的文字和已做的编辑,除非用户要求更改。
- 平台:用户指定的优先,其次编辑器安全区,最后通用。画布尺寸固定,无法更改宽高比。
- 长度:以用户给出的数字为准;没有给出时保留最强的完整镜头,不擅自剪到没人要求的长度。
- 外观:字幕套件来自 editor-captions 技能;除非用户要求新外观,否则沿用现有外观。 未说明的项使用合理默认值,并在回复中说明所选的默认值。只有在不得到答案就无法完成编辑时才提问。
二、一轮收集 把计划所需的调用一次性发出:timeline_describe(仅在按词剪切或计时时需要 transcript 的 words)、重剪时的 footage_proposeKeepRanges、找素材的 media_searchCatalog(不用于配乐,音乐操作会自行搜索)、指导写入的技能以及需要的工具组。每项只搜索一次并从结果中选取。不读取不会用到的内容,在计划形成前不写任何东西(包括导入)。
三、写前选定所有值
- 字幕:在同一计划中先 captions.applyRhythm,再 captions.applyPreset(含 kitId、size、placement 和 platform),遵循 editor-captions 的要求,不把尺寸设置留到第二个计划。
- 叠加层:开始时间取自 describe 的 words,给出时长,位置放在安全区内。
- 顺序:先剪切(keepRanges 或 timeline.applySourceRanges),再字幕(随剪切走),最后叠加层和音频。
四、一次应用计划 将所有改动放入一个 timeline_applyPlan。用 "as": "$name" 为操作创建的对象命名,并在后续操作中引用该名称。有目标平台时作为计划的 platform 传入,让 lint 按该平台安全区检查。
五、只检查一次 检查是只读的;修复放在一个后续计划里。
- 先阅读结果(不调用工具)。lint:文字是否在安全区外或被裁切,每条发现会指明相关片段。added / changed / removed:是否符合意图。重剪删光了所有片段、或字幕从未出现,都是错误。
- 只在必要时查看画面。放置字幕、标题或叠加层后,结果会带有放置或更改处的帧及重叠元素,查看这些帧。仅当结果没有帧且放置了文字,或需要看帧未覆盖的时刻,才调用 preview_inspectFrames(1–3 个时间线秒)。
- 检查项:文字叠文字或叠脸;字幕在剪切部分缺失或与语音不符;标题停留太短(约 1.5 秒以下);音乐比语音响(闪避到 volumePercent 15–25);首尾有空帧或黑帧;长度不符合需求。
- lint 覆盖结果 platform 所指的安全区。仅当结果没有 platform(旧版编辑器)且存在目标平台时运行 qc_run。
六、修一次然后作答 基于结果的 stateToken 写一个后续计划,使用结果中的句柄(包括 t2 等轨道句柄)。只有在需要处理结果未列出的片段时才再次 describe。针对安全区发现,可用 qc_applyFix 的 allSafe: true。 如果计划因编辑之外的原因失败(素材下载、提供方错误),则没有应用任何内容。移除该项及使用它的操作后重发一次计划,并告知用户省略了什么及原因。不要因一次下载缺失就放弃整个编辑。 最多只做一次修复,修复后不再检查帧:其结果的 lint 即为检查。若仍有问题,告知用户而不是循环。 最后说明改了什么以及所选默认值。仅在删除内容、做了大改动或用户不满时提及撤销。