Communitygithub.com

businessbaum/vedit

동영상의 기계적 편집 전에 콘텐츠 선택(어떤 주제를 남기고, 순서를 정하고, 훅을 찾는 작업)을 수행하는 스킬입니다. '스토리 구축', '6분으로 줄여', '훅은 어디?' 같은 요청에 사용됩니다.

vedit란 무엇인가요?

이 스킬은 비디오 편집 파이프라인에서 '컷-스토리(cut-story)' 단계를 구현합니다. 자동 전사(transcribe) 이후, 거친 편집(cut-rough) 이전에 실행되며, `project.json`의 `story` 블록을 작성합니다. 주요 목표는 단순한 기계적 편집이 아닌, 비디오의 본질적인 내용을 결정하는 것입니다. 25분 분량의 산만한 영상을 6분 분량의 집중된 영상으로 바꾸는 등 편집의 방향성을 결정하는 중요한 단계입니다. 사용자의 자연어 요청(예: '스토리를 만들어 줘', '어떤 내용을 남길지 결정해 줘', '구조화해 줘')을 인식하여 실행됩니다. 인수로 프로젝트 슬러그와 목표 길이(분)를 받으며, 긴 대본의 경우 `transcript-analyst` 에이전트를 활용하여 컨텍스트 소비를 최적화합니다. 주요 기능은 대본을 읽을 수 있는 형태로 변환하고, 블록 단위로 나누어 40-60%를 기본적으로 삭제하며, 훅을 찾아 앞으로 이동시키고, 참조 무결성을 유지하면서 순서를 재배열하는 것입니다. 최종적으로 각 블록의 결정 사유를 포함한 `story` 블록을 JSON 형태로 저장합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/businessbaum/vedit/tree/HEAD/.agents/skills/cut-story

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

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

문서

cut-story

비디오가 무엇에 관한 것인지 결정합니다. 기계적 편집은 단지 말한 순서대로 내용을 조이는 것에 불과합니다. 이 패스는 어떤 주제 블록을 살릴지, 그 순서는 어떻게 할지, 훅은 어디에 둘지를 결정합니다. 이것이 25분짜리 산만한 이야기를 6분짜리 비디오로 바꾸는 유일한 단계이며, 시청자가 시청할지 여부를 가장 크게 결정하는 단계입니다.

인수: $project는 프로젝트 슬러그, $target은 선택적 목표 길이(분)입니다. 전체 요청 텍스트는 $ARGUMENTS에 있습니다. 슬러그가 제공되지 않으면 세션 훅의 PIPELINE_STATE에 명명된 프로젝트를 사용하고, 선택한 프로젝트를 알립니다.

아래 동사 이름은 빌드 계약을 따릅니다. python engine/ve.py --help와 다를 경우 CLI가 우선합니다. CLI의 이름을 사용하고 불일치 사항을 언급하십시오.

전제 조건

  • projects/$project/project.json이 존재하며 stage가 transcribed 이후여야 합니다.
  • transcript.path가 확인되고 transcript.word_count가 설정되어야 합니다.
  • stage가 아직 intake이면 중단하고 먼저 전사(transcribe) 스킬을 실행하십시오.

이 패스를 두 번 조용히 실행하지 마십시오. story.blocks가 이미 존재하면 현재 결정 사항을 먼저 표시하고 수정할지 또는 교체할지 물어보십시오.

1단계 - 읽을 수 있는 대본 얻기

단어 수준 JSON은 읽을 수 없는 산문입니다. 먼저 평탄화하십시오:

python engine/ve.py transcript flatten $project --numbered

이 명령은 단어를 25단어마다 단어 인덱스 마커가 있는 실행 텍스트로 내보냅니다. 단어 인덱스는 story 블록이 저장하는 앵커입니다. 절대 초(seconds)나 타임코드(timecodes)를 저장하지 마십시오.

2단계 - 대본이 길면 transcript-analyst 에이전트 호출

word_count > 2500(독일어 기준 약 15분 분량)이면 인라인으로 대본을 읽는 대신 transcript-analyst 에이전트를 호출하십시오.

이유: 5,000단어 대본은 세션의 나머지 부분에 필요한 컨텍스트를 소비하며, 분석가는 약 40줄을 반환합니다. 직접 읽으면 편향이 생길 수도 있습니다. 모든 문장을 방금 읽었기 때문에 모든 것이 중요해 보입니다. 새 컨텍스트가 더 과감하게 삭제하는데, 이는 올바른 방향입니다.

에이전트에게 제공할 내용: 평탄화된 대본 경로, 목표 길이, output.platform의 플랫폼, 사용자가 $ARGUMENTS에 제공한 방향. 에이전트는 결정과 근거가 포함된 후보 블록을 반환합니다. 최종 결정은 여전히 여러분의 몫입니다. 에이전트의 삭제를 검토하고, 사용자가 명시적으로 유지하도록 요청한 항목은 무시하십시오.

2500단어 미만이면 직접 대본을 읽으십시오.

3단계 - 비디오를 한 문장으로 요약

블록 결정을 내리기 전에, 시청자가 마지막에 믿게 될 핵심 주장(처음에는 믿지 않았던 것)을 독일어 한 문장으로 작성하십시오. 사용자에게 보여주십시오.

그 문장을 쓸 수 없다면, 자료에 아직 비디오가 포함되어 있지 않은 것입니다. 솔직하게 말하고 중단하십시오. 형태 없는 것을 조립하는 대신 추가 녹화를 권장하십시오. 이것은 실제 결과이며, 솔직하게 전달하는 것이 깔끔한 6분짜리 무언가보다 더 유용합니다.

모든 이후 결정은 그 문장에 답해야 합니다.

4단계 - 대본을 블록으로 나누기

블록은 이동할 수 있는 의미 단위입니다: 30초에서 3분, 한 가지 요점. 블록은 대본을 연속적인 단어 범위로 나누며, 겹치거나 간격이 없도록 타일링합니다.

블록을 일시 정지(pause)에서 자르지 마십시오. 주제가 바뀌는 지점에서 자르십시오. 독일어 화자의 신호는 신뢰할 수 있습니다: also, jetzt zum Thema, das andere ist, kurz noch, um nochmal zurückzukommen, was viele nicht wissen.

5단계 - 결정, 삭제에 편향

기본 기대치: 녹음된 단어의 40-60%를 삭제합니다. 70% 이상이 유지되면 아무런 결정도 내려지지 않은 것입니다. 돌아가서 삭제 테스트를 더 엄격하게 적용하십시오.

순서대로 적용하는 삭제 테스트:

  1. 신념 테스트. 블록을 제거하십시오. 시청자가 마지막에 믿게 될 내용이 달라집니까? 그렇지 않으면 삭제하십시오. 이것이 주요 테스트이며, 나머지는 이에 대한 지름길입니다.
  2. 두 번째 예제 테스트. 동일한 요점에 대한 두 가지 예: 더 구체적인 예를 유지하고 다른 하나는 삭제하십시오. 화자는 가르치기 위해가 아니라 생각하기 위해 자신을 반복합니다.
  3. 고아 테스트. 삭제된 페이오프를 위한 설정은 이제 노이즈입니다. 삭제하고, 다른 삭제 후에 다시 확인하십시오. 고아는 연쇄적으로 나타납니다.
  4. 워밍업 테스트. 거의 모든 녹음의 처음 60-90초는 목을 풀기 위한 것입니다. 기본적으로 삭제하고 사용자에게 알리십시오. 이 단일 규칙은 모든 필러 단어 제거를 합친 것보다 더 많은 비디오를 개선합니다.
  5. 요약 테스트. 방금 말한 내용을 말로 요약하는 것(

Individual skills in this repo

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

businessbaum/vedit

This skill should be used when the user asks for subtitles or on-screen text of what is being said - "brenn die Untertitel ein", "mach Untertitel", "Untertitel drauf", "leg Untertitel drüber", "brenn die Subs ein", "mach die Captions", "Wort für Wort Untertitel", "Karaoke-Untertitel", "korrigier den Untertitel-Text", "burn in the captions", "add subtitles", "burn the subs", "word-by-word captions", "fix a caption typo". Covers ASS generation, the pixel-width grouping rule for German, the font table, and burn-in through libass.

businessbaum/vedit

This skill should be used when the user asks for mechanical tightening of material that is already selected - "mach den Rohschnitt", "bau den Rohschnitt", "schneid die Ähms raus", "nimm die Füllwörter raus", "entferne die Pausen", "kürz die Pausen", "schneid die Versprecher raus", "mach den Radioschnitt", "straff das", "build the rough cut", "cut the fillers", "remove the ums", "tighten the pauses", "trim the dead air", "cut the retakes", "radio edit". Turns kept story blocks into enabled segments in project.json. Does not decide what the video is about - that is cut-story.

businessbaum/vedit

This skill should be used when the user asks for the finished video file - "exportier das", "render das fertig", "mach das final", "renderte das Video", "mach den Endexport", "bau das Video zusammen", "mach es fertig für YouTube", "gib mir die MP4", "export the final", "render the final cut", "make the master", "export for TikTok", "give me the mp4". Covers segment rendering with the cache, guarded concat, the one-pass audio, loudness normalisation and the single mux.

관련 스킬