cut-mistakes
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCut Mistakes & Repeats (Pipeline Agent 2)
剪切错误与重复内容(Pipeline Agent 2)
Second step of the automated edit, run after cut-silences. It removes the things a human editor cuts on a second pass: stutters ("the the", "I- I-"), immediately repeated words, false starts (an abandoned phrase that restarts), and retakes (a line re-recorded — keep the clean take, drop the botched one).
Deciding what counts as a mistake is judgment, not a formula — emphatic repetition ("never, never") and rhetorical doubling ("the first piece is, is this…") look identical to a stutter mechanically. So this agent is review-gated by default: it surfaces candidates with full context; the agent (and the user) decide; only approved cuts are rendered.
自动化剪辑的第二步,在 cut-silences 之后运行。它会移除人工剪辑师在第二轮剪辑中通常会删除的内容:结巴(“the the”“I- I-”)、紧邻的重复词、说错后重说(中途放弃某个短语并重新开始),以及重录内容(同一句台词被重新录制——保留干净版本,删掉录坏的版本)。
判断什么算作错误,需要的是 判断而非套用公式——强调性重复(“never, never”)和修辞性复沓(“the first piece is, is this…”)在机械规则看来与结巴完全一样。因此,此 Agent 默认采用 review-gated:它会呈现候选片段及其完整上下文;由 Agent(和用户)决定;仅渲染获批的剪辑。
When to use
何时使用
- "cut the mistakes", "remove stutters / repeats", "clean up the flubs", "keep the best take", "cut false starts"
- As the second stage of the master edit workflow, on cut-silences' output.
- “剪掉错误”“移除结巴/重复”“清理口误”“保留最佳一条”“剪掉说错后重说的内容”
- 作为主剪辑工作流的第二阶段,处理 cut-silences 的输出。
The three-part flow
三段式流程
1. Find candidates (mechanical)
1. 查找候选片段(机械规则)
bash
node .agents/skills/cut-mistakes/scripts/find-cut-candidates.mjs \
<silence-transcript.json> --out-dir video-projects/<slug>/assetsInput is normally Agent 1's , so cuts land on the already-silenced timeline. Writes:
<stem>.silence-transcript.json- — structured candidates (type, confidence, proposed
<stem>.cut-candidates.jsonrange,cut/removestext, context, recommendation)keeps - — readable proposal
<stem>.cut-candidates.md
Candidate types: (immediate word repeat), (duplicate/near-duplicate segment via Jaccard similarity), (short abandoned phrase that restarts).
stutterretakefalse_startbash
node .agents/skills/cut-mistakes/scripts/find-cut-candidates.mjs \
<silence-transcript.json> --out-dir video-projects/<slug>/assets输入通常是 Agent 1 生成的 ,这样剪辑点就会落在已完成静音处理的时间线上。生成:
<stem>.silence-transcript.json- ——结构化候选片段(类型、置信度、建议的
<stem>.cut-candidates.json范围、要cut/removes的文本、上下文、建议)keeps - ——便于阅读的剪辑提案
<stem>.cut-candidates.md
候选类型:(紧邻的词重复)、(通过 Jaccard similarity 识别的重复/近似重复片段)、(中途放弃并重新开始的简短片段)。
stutterretakefalse_start2. Review (the gate — REQUIRED)
2. 审核(必需的门控步骤)
Read each candidate in context and decide keep-or-cut. The mechanical detector cannot tell intentional emphasis/rhetoric from a real flub, so do not trust blindly — read + . Common false positives: emphatic repetition ("it's never, never hands-off"), copula-then-question ("the piece is, is this…"), listing.
recommendremovescontextPresent the candidates to the user with a recommendation per item; collect approvals. Write the approved cuts to a file:
json
{ "cuts": [ { "start": 100.93, "end": 101.06, "reason": "I- false start" }, ... ] }(/ in seconds on the input transcript/video timeline. You can widen a candidate's range — e.g. for a retake, cut from the botched take's start to the clean restart.)
startend结合上下文逐个阅读候选片段,并决定保留还是剪掉。机械检测器无法区分有意强调/修辞与真正的口误,因此不要盲目信任 ——应阅读 + 。常见误报包括:强调性重复(“it's never, never hands-off”)、系动词后接疑问句(“the piece is, is this…”)、列举表达。
recommendremovescontext向用户呈现候选片段,并为每一项提供建议;收集批准结果。将获批的剪辑写入文件:
json
{ "cuts": [ { "start": 100.93, "end": 101.06, "reason": "I- false start" }, ... ] }(/ 以秒为单位,基于输入 transcript/video 的时间线。可以扩大候选片段的范围——例如,对于重录内容,可以从录坏版本的起点剪切到干净重录的起点。)
startend3. Apply approved cuts
3. 应用获批的剪辑
bash
node .agents/skills/cut-mistakes/scripts/apply-cuts.mjs \
<silence-transcript.json> --cuts approved-cuts.json \
--video video-projects/<slug>/assets/edited-silenced.mp4 \
--output video-projects/<slug>/assets/edited-clean.mp4 --applyWrites the EDL, a re-timed (feeds the motion-graphics agent + ), a decisions log, and — with — the cut video (ffmpeg trim+concat, A/V in sync). Drop for a dry run.
<stem>.mistakes-transcript.jsonvalidate-beat-sync.mjs--apply--applybash
node .agents/skills/cut-mistakes/scripts/apply-cuts.mjs \
<silence-transcript.json> --cuts approved-cuts.json \
--video video-projects/<slug>/assets/edited-silenced.mp4 \
--output video-projects/<slug>/assets/edited-clean.mp4 --apply生成 EDL、重新计时的 (供 motion-graphics Agent 和 使用)、决策日志;使用 时,还会生成剪辑后的视频(通过 ffmpeg 执行 trim+concat,音视频保持同步)。移除 即可进行试运行(dry run)。
<stem>.mistakes-transcript.jsonvalidate-beat-sync.mjs--apply--applyReviewing the result
检查结果
Use the shared review tool to eyeball the cuts and spot-check boundaries:
bash
node scripts/build-edl-review.mjs <stem>.mistakes-edl.json \
--original video-projects/<slug>/assets/edited-silenced.mp4 \
--edited video-projects/<slug>/assets/edited-clean.mp4 \
--output video-projects/<slug>/assets/mistakes-review.html
npx serve . -p 8080 -n使用共享审核工具目视检查剪辑效果并抽查边界:
bash
node scripts/build-edl-review.mjs <stem>.mistakes-edl.json \
--original video-projects/<slug>/assets/edited-silenced.mp4 \
--edited video-projects/<slug>/assets/edited-clean.mp4 \
--output video-projects/<slug>/assets/mistakes-review.html
npx serve . -p 8080 -nNotes
注意事项
- A very clean delivery may yield few or zero real cuts — that's a valid outcome; don't cut natural speech to hit a quota.
- Cuts between two spoken words are hard joins. They're usually clean for stutters/false starts; for tighter audio a 20-30ms fade can be added later.
- Hand the + the clean video to Agent 3 (motion graphics / tiered cards).
mistakes-transcript.json
- 如果表达非常干净,可能只会得到很少甚至零个实际剪辑点——这是有效结果;不要为了达到数量指标而剪掉自然表达。
- 在词语之间直接剪切会形成较生硬的衔接。对于结巴或说错后重说,通常不会有问题;若要让音频更紧凑,之后可以添加 20-30ms 的淡化(fade)。
- 将 和剪辑后的视频交给 Agent 3(motion graphics / tiered cards)。
mistakes-transcript.json