Communitygithub.com

zroeschen/Video-Production-Factory

말하는 사람 녹화에서 더듬음, 반복된 단어, 잘못 시작한 문장, 재녹음(리테이크) 등 말하기 실수를 찾아 제거하는 비디오 편집 파이프라인의 두 번째 에이전트입니다. 침묵 구간을 자른 후 실수 삭제, 더듬음·반복·필러 재시작 제거, 백필 정리, 또는 최고 테이크 유지 요청 시 사용합니다. 모든 컷에 대해 맥락과 이유를 제시해 승인을 받은 후에만 ffmpeg로 렌더링하는 검토 게이트 방식으로 작동하며, 단어 수준의 트랜스크립트가 필요합니다.

Video-Production-Factory란 무엇인가요?

이 스킬은 비디오 에디팅 파이프라인의 두 번째 단계(Agent 2)로, 침묵 구간이 이미 제거된 타임라인 위에서 말하기 실수를 정밀하게 제거합니다. stutter(즉시 반복 단어), retake(유사 구간 중복), false_start(버려진 구절 재시작)를 기계적으로 탐지한 후, 검토 게이트를 통해 사람이 최종 결정을 내리도록 설계되었습니다. 탐지기는 의도적인 강조나 수사적 중복을 실제 실수와 구분하지 못하므로, 각 후보에 대해 removes/context를 제시하고 승인된 컷만 ffmpeg로 렌더링합니다. Claude Code, Cursor, Codex 등 모든 플랫폼에서 사용 가능하며, 입력으로는 Agent 1의 silence-transcript.json이 필요하고 출력으로 정리된 비디오와 재타이밍된 mistakes-transcript.json을 생성하여 Agent 3(모션 그래픽)에 전달합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zroeschen/Video-Production-Factory/tree/HEAD/.agents/skills/cut-mistakes

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

실수 및 반복 제거 (파이프라인 에이전트 2)

cut-silences 이후에 실행되는 자동 편집의 두 번째 단계입니다. 사람 편집자가 두 번째 패스에서 제거하는 것들(stutter("the the", "I- I-"), 즉시 반복된 단어, false starts(버려진 구절 재시작), retakes(재녹음된 라인—깨끗한 테이크 유지, 망친 테이크 제거))을 삭제합니다.

무엇을 실수로 간주할지는 공식이 아닌 판단에 달려 있습니다—의도적인 강조("never, never")와 수사적 중복("the first piece is, is this…")은 기계적으로 stutter와 동일하게 보입니다. 따라서 이 에이전트는 기본적으로 검토 게이트(gate) 방식입니다: 전체 맥락과 함께 후보를 제시하고, 에이전트(및 사용자)가 결정하며, 승인된 컷만 렌더링됩니다.

사용 시점

  • "실수 잘라내기", "더듬음/반복 제거", "말실수 정리", "최고 테이크 유지", "잘못된 시작 제거"
  • 마스터 편집 워크플로의 두 번째 단계로서, cut-silences의 출력물에 대해 실행합니다.

세 부분으로 구성된 흐름

1. 후보 찾기 (기계적)

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 — 읽기 쉬운 제안서

후보 유형: stutter(즉시 단어 반복), retake(Jaccard 유사도를 통한 중복/근접 중복 구간), false_start(재시작되는 짧은 버려진 구절).

2. 검토 (게이트 — 필수)

각 후보를 맥락 안에서 읽고 keep-or-cut을 결정합니다. 기계적 탐지기는 의도적인 강조/수사와 실제 실수를 구분할 수 없으므로, recommend를 맹신하지 말고 removes + context를 읽으십시오. 일반적인 오탐지: 의도적 강조("it's never, never hands-off"), 연결동사-의문문("the piece is, is this…"), 목록 나열.

후보를 사용자에게 항목별 권장 사항과 함께 제시하고 승인을 수집합니다. 승인된 컷을 파일에 기록합니다:

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

(start/end는 입력 트랜스크립트/비디오 타임라인의 초 단위입니다. 후보의 범위를 넓힐 수 있습니다—예를 들어 retake의 경우, 망친 테이크의 시작부터 깨끗한 재시작까지 자릅니다.)

3. 승인된 컷 적용

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, 재타이밍된 <stem>.mistakes-transcript.json(모션 그래픽 에이전트 + validate-beat-sync.mjs에 제공), 결정 로그를 기록하며, --apply를 사용하면 컷된 비디오(ffmpeg trim+concat, A/V 동기화)를 생성합니다. --apply를 빼면 드라이 런(dry run)이 됩니다.

결과 검토

공유 검토 도구를 사용하여 컷을 눈으로 확인하고 경계를 점검합니다:

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

참고 사항

  • 매우 깔끔한 전달에서는 실제 컷이 거의 없거나 전혀 없을 수 있습니다—이는 정상적인 결과입니다; 할당량을 채우기 위해 자연스러운 말을 자르지 마십시오.
  • 두 단어 사이의 컷은 하드 조인(hard join)입니다. stutter/false start에는 일반적으로 깨끗하지만, 더 타이트한 오디오가 필요하면 나중에 20-30ms 페이드를 추가할 수 있습니다.
  • mistakes-transcript.json + 정리된 비디오를 **Agent 3(모션 그래픽 / 계층형 카드)**에 전달합니다.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

관련 스킬