AugmentClaude

Cut Mistakes

Remove stutters, repeated words, and false starts from video recordings.

Installation

  1. Make sure Claude is on your device and in your terminal.

    Skills load from ~/.claude/skills/ when Claude Code starts up — so you need it on your machine first. If you don't have it yet, install it once with the command below, then run claude in any terminal to verify.

    One-time setup
    npm i -g @anthropic-ai/claude-code

    Already have it? Skip ahead.

  2. Paste into Claude Code or into your terminal.

    This copies the whole skill folder into ~/.claude/skills/cut-mistakes-nateherkai/ — the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.

    Faster alternative (instruction-only skills)

    Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates — they won't be downloaded and the skill will fail when it tries to load them.

    Quick install (SKILL.md only)
    Sign up to copy
  3. Restart Claude Code.

    Quit and reopen Claude Code (or any other agent that loads from ~/.claude/skills/). New skills are picked up on startup.

  4. Just ask Claude.

    Skills auto-activate when your request matches the skill's description — no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the “What this skill does” section above.

Prefer to read the source first? Open on GitHub.

When Claude uses it

Agent 2 of the video editing pipeline. Finds and removes spoken mistakes — stutters, repeated words, false starts, and retakes (re-recorded lines) — from a talking-head recording. Use after cut-silences, when asked to cut mistakes, remove stutters / repeats / filler restarts, clean up flubs, or keep the best take. Works review-gated: it proposes every cut with context and a reason for approval, then renders only the approved cuts via ffmpeg. Requires a word-level transcript.

What this skill does

Cut Mistakes & Repeats (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.

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.

The three-part flow

1. Find candidates (mechanical)

node .agents/skills/cut-mistakes/scripts/find-cut-candidates.mjs \
  <silence-transcript.json> --out-dir video-projects/<slug>/assets

Input is normally Agent 1's <stem>.silence-transcript.json, so cuts land on the already-silenced timeline. Writes:

  • <stem>.cut-candidates.json — structured candidates (type, confidence, proposed cut range, removes/keeps text, context, recommendation)
  • <stem>.cut-candidates.md — readable proposal

Candidate types: stutter (immediate word repeat), retake (duplicate/near-duplicate segment via Jaccard similarity), false_start (short abandoned phrase that restarts).

2. Review (the gate — REQUIRED)

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 recommend blindly — read removes + context. Common false positives: emphatic repetition ("it's never, never hands-off"), copula-then-question ("the piece is, is this…"), listing.

Present the candidates to the user with a recommendation per item; collect approvals. Write the approved cuts to a file:

{ "cuts": [ { "start": 100.93, "end": 101.06, "reason": "I- false start" }, ... ] }

(start/end 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.)

3. Apply approved cuts

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

Writes the EDL, a re-timed <stem>.mistakes-transcript.json (feeds the motion-graphics agent + validate-beat-sync.mjs), a decisions log, and — with --apply — the cut video (ffmpeg trim+concat, A/V in sync). Drop --apply for a dry run.

Reviewing the result

Use the shared review tool to eyeball the cuts and spot-check boundaries:

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

Notes

  • 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 mistakes-transcript.json + the clean video to Agent 3 (motion graphics / tiered cards).

Related skills