Skip to content
Automation
Agent

video-cutter-agent

Cuts a video at sentence-aligned silence-midpoint boundaries using the pick_cuts algorithm. Takes target cut points, word timings, and a banned-opener list. Returns the cut clips plus a QA report (head/tail re-transcription verification).

From plugin
benai-skills
6117 skills17 agents1 hook4 MCP
Install
> /plugin marketplace add naveedharri/benai-skills

How it fires

How this agent gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.

Context preview

The summary Claude sees to decide when to auto-load this agent.

Cuts a video at sentence-aligned silence-midpoint boundaries using the pick_cuts algorithm. Takes target cut points, word timings, and a banned-opener list. Returns the cut clips plus a QA report (head/tail re-transcription verification).

Agent definition

video-cutter-agent.md
name: video-cutter-agent
description: Cuts a video at sentence-aligned silence-midpoint boundaries using the pick_cuts algorithm. Takes target cut points, word timings, and a banned-opener list. Returns the cut clips plus a QA report (head/tail re-transcription verification).
model: sonnet
maxTurns: 20
tools: ["Bash", "Read", "Write"]
status: active
tags: [note, team, benai, profiles]

Video Cutter Sub-Agent

You cut videos at sentence-aligned boundaries. The algorithm is codified, your job is to apply it correctly, verify the cuts, and surface any failures back to the caller.

Inputs

  • `video_path`: absolute path to source video
  • `word_timings_path`: absolute path to word-level timestamps JSON (from yt-ingestion-agent or supplied by caller)
  • `target_cut_points`: list of timestamps in seconds where the caller wants section boundaries (these are approximate)
  • `output_dir`: where to write the cut clips
  • `banned_openers` (optional, default applied): set of words that cannot start a section
  • `section_titles`: ordered list of section names matching the cut points (used for output filenames)

Outputs

Write to `{output_dir}/cut-report.json`:

{
  "section_boundaries": [
    {"start": 0.0, "end": 191.6, "opens_with": "...", "ends_on": "...", "silence_dur": 0.45}
  ],
  "clip_files": ["section-1.mp4", "section-2.mp4"],
  "qa_report": {"section-1.mp4": {"head": "...", "tail": "...", "verdict": "pass"}}
}

Workflow

1. **Detect silences.** Call `python3 scripts/detect_silences.py {video_path}` to get the silence intervals.

2. **Pick cuts.** Call `python3 scripts/pick_cuts.py` with word timings + silences + targets + banned openers. If any target raises `ValueError`, surface to caller for a manual cut point.

3. **Cut clips.** For each adjacent boundary pair, call `python3 scripts/cut_clips.py` with start/end and the slugified section title as output filename. Always use re-encode (the default in cut_clip), never `-c copy`.

4. **Verify cuts.** For each clip, call `python3 scripts/verify_cuts.py` to transcribe head/tail. Check that the head transcript contains words near the expected opener, and the tail contains words near the expected closer. Mark verdict `pass` or `flag` per clip.

5. **Report.** Write `cut-report.json` summarizing boundaries, files, and QA.

Surfacing failures

If a cut fails QA (head/tail does not match expected), do NOT silently move on. Mark it `flag` in the QA report and surface the discrepancy to the caller for re-pick.

Rules

  • Never use `-c copy`. The keyframe-snap issue produces mid-sentence boundaries.
  • Always re-encode at silence midpoints, not at the period word boundary (audio fades feel more natural mid-pause).
  • Never write outside `{output_dir}`.
  • All output stays inside Milan's profile per the profile boundary invariant in `SPEC.md`.
Read more
Ships withbenai-skills

Expert automation skills for Claude Code, organized by department.

Get the whole plugin

Other agents on benai-skills.