agent-demo-film은(는) 무엇을 하나요?
데모 비디오는 화면에 보이는 내용이 실제이고, 발표자가 말하는 내용과 정확히 일치할 때만 보낼 가치가 있습니다. 이 스킬은 발표자가 한 가지, 즉 한 번에 카메라를 보며 대본을 읽는 것만 하면 됩니다. 에이전트가 나머지(조사, 영상, 대본, 이후 편집 및 제작)를 모두 처리합니다.
1 준비 ─> 2 캡처 ─> 3 대본 ─(승인)─> 4 녹화 (발표자) ─> 5 편집 ─> 6 큐 계획 ─(승인)─> 7 제작 ─> 8 검증 ─> MP4
각 프로젝트는 서로 다른 영상과 스토리가 필요합니다. 프로젝트 자체에서 이를 파악하세요. examples/ 디렉토리에는 두 가지 실제 실행 사례가 있습니다: 내레이션이 포함된 제품 워크스루와 에이전트 스킬의 유/무 비교 영상입니다. 요청과 더 가까운 사례를 먼저 읽고 계획을 세우세요.
원칙
- 실제 영상만 사용합니다. 모든 앱 화면, 에이전트 응답, 화면의 숫자와 로그는 캡처 또는 파일에서 가져오며, 스크립트로 복사하고 절대 다시 입력하지 않습니다. 원하는 문장이 캡처에 없다면 영화에서 보여줄 수 없습니다.
- 화면은 음성을 따릅니다. 각 시각적 요소는 해당 요소를 지칭하는 단어가 나오는 순간에 배치됩니다. 제작의 모든 시간은 편집본의 단어 ID를 기준으로 하므로, 재편집 시 음성에 맞춰 시각적 요소가 함께 이동합니다.
- 말과 출처 이상을 주장하지 않습니다. 사실 목록(각 사실이 나온 파일 포함)과 "주장하지 않는" 목록을 유지합니다. 모든 연구 인용은 원본 논문과 대조합니다(Crossref:
https://api.crossref.org/works/<doi>). - 가상 입력. 사용자, 채팅, 데이터는 가상으로 생성합니다. 실제 이름이나 대화록은 사용하지 않습니다. 영상에서 비밀 정보와 전화번호를 마스킹하고, 키는 절대 출력하지 않습니다. 로그인 단계는 기록되지 않은 컨텍스트에서 환경 변수 파일을 읽어 처리합니다.
- 모든 테이크를 보관합니다. 스크립트는 캡처나 편집 소스를 덮어쓰지 않습니다. 원본 녹화본은 발표자가 저장한 위치에 그대로 유지되며, 삭제는 발표자가 결정합니다.
- 발표자는 두 번 승인합니다: 녹화 전 개요와 대본, 그리고 제작 전 큐 계획입니다. 대본에 대한 여러 차례의 문구 수정 요청이 예상됩니다. 이것이 해당 단계의 핵심입니다.
모델 라우팅
대부분의 작업은 서브 에이전트에서 실행하여 메인 세션에서 결정을 유지합니다. 발표자가 특정 단계에 사용할 모델을 지정하면 해당 모델을 사용합니다.
| 작업 | 모델 |
|---|---|
| 대량 읽기 및 텍스트 조사: 레포지토리 사실 시트, 주제 조사, 테이크를 편집 목록으로 분할, AI 틱 검토 | Sonnet |
| 비디오 또는 프레임을 읽는 모든 작업: 크롭 프레이밍, 렌더링 후 프레임 확인, 영상 내 비밀 정보 검사, 섹션별 큐 스웜(섹션당 하나의 에이전트) | Haiku |
| 파이프라인에 없는 새 도구 제작(예: 커스텀 레코더) | Opus |
| 개요, 대본, 큐 계획 및 발표자가 승인해야 하는 모든 호출 | 메인 세션 |
Haiku와 Sonnet은 오디오를 들을 수 없습니다. 단어 타이밍은 자막 생성(5단계)에서만 얻습니다.
1. 준비
references/prep.md를 읽습니다. 병렬로: Sonnet 에이전트가 레포지토리에서 사실 시트를 작성하고(기능, 실제 숫자와 출처 파일, 화면에 표시하지 말아야 할 알려진 특이사항), Sonnet 에이전트들이 스토리의 기반이 되는 내용을 조사합니다. 그런 다음 개요를 작성합니다: 대상 시간(초)별 섹션, 각 섹션의 화면 내용, 필요한 영상, 사실 목록 및 주장하지 않는 목록.
2. 캡처
references/capture.md를 읽습니다. 프로젝트에 맞는 캡처 방법을 선택합니다: 웹앱은 Playwright, 에이전트 동작은 scripts/run_take.sh를 통한 claude -p, CLI는 터미널 레코더, 라이브 페이지는 스크롤. 각 테이크는 마크(전송, 응답, 스크롤 정지)를 타임스탬프와 함께 기록하여 제작 시 영상을 음성에 맞출 수 있도록 합니다. Haiku 에이전트가 각 테이크의 프레임을 확인합니다.
3. 대본
references/script.md를 읽습니다. 발표자의 대사만 작성하며, 개요와 일치하는 ## N. title 섹션으로 구성하고, 약 분당 150단어 속도로 한 번에 읽을 수 있도록 작성합니다. 발표자의 목소리로 평범하게 말하는 문장: 마케팅용 과장이나 AI 틱은 없습니다. 대본을 녹화 가이드와 함께 보여주고 승인을 기다립니다.
4. 녹화
발표자는 웹캠과 마이크를 함께 사용하여 하나의 파일로 녹화합니다(OBS, 카메라 앱 또는 휴대폰). 실수나 다시 시작한 대사는 괜찮습니다. 편집 과정에서 마지막 완성 버전을 사용하기 때문입니다. 여러 파일로 나누어 녹화해도 됩니다(섹션별로 하나씩, 또는 나중에 추가로 녹음한 대사).
5. 편집
references/cut.md를 읽습니다.
- 각 테이크를 로컬에서 자막 생성:
npx hyperframes transcribe <take> --engine parakeet. - 단어에 번호를 매기고 실제 무음 구간을 제거:
python scripts/words.py transcript.json <take> vo --media <take>. - 구문 목록과 대본을 Sonnet 에이전트에 전달(
assets/SPLIT-BRIEF.md). 에이전트가edl.json을 작성합니다: 섹션별로 유지할 단어 범위, 제거할 필러와 잘못 시작한 부분, 사실로 뒷받침되지 않는 문장. - 반복된 문장이나 문제 제기된 주장이 있으면 발표자에게 편집 전에 문의합니다.
- 웹캠 프레이밍: Haiku 에이전트가 모든 테이크의 샘플 프레임에서 머리와 어깨를 유지하는 하나의 크롭을 선택하거나, 배경을 흐리게 처리합니다(
scripts/blur_bg.py). - 편집 실행:
python scripts/cut.py edl.json은vo.wav,cam.mp4,timeline.json및 섹션별 단어 파일을 생성합니다. 오디오와 비디오가 동일한 프레임 그리드에서 트리밍되므로 립싱크가 유지됩니다.
6. 큐 계획
섹션별로 하나의 Haiku 에이전트(assets/CUE-BRIEF.md)가 섹션의 시간별 단어를 자막, 큐(각 시각적 요소가 어느 단어에 배치되는지, 출처 포함) 및 플래시로 변환합니다. 그런 다음:
python scripts/cues.py cut이 모든 섹션 파일을 편집본과 비교하여 확인하고film.json으로 병합합니다. 오류가 있으면 해당 섹션을 작성한 에이전트로 보냅니다.- 발표자용 큐 계획을 작성합니다(
examples/samatva-support/CUE-plan.md에서 형식을 확인 가능): 섹션 레이아웃, 줄별 시각적 요소, 오디오 편집 내용, 발표자만 결정할 수 있는 사항. 승인을 기다립니다.
자막 규칙: 올바른 단어를 표시합니다. 자막 생성기의 오인은 자동으로 수정합니다. 실제 실수는 *(올바른단어) 형식으로 대체하여 표시합니다. 놓치기 쉬운 이름, 숫자, 용어는 자막 위에 크게 플래시로 표시합니다.
7. 제작
references/hyperframes.md를 읽습니다. assets/build_film.py를 영화 폴더로 복사합니다. 현재 상태로는 film.json에서 애니매틱을 제작합니다: 각 큐의 텍스트가 해당 단어에 표시되고, 섹션별 웹캠 인세트, 자막 및 플래시가 포함됩니다. 타이밍이 의심스러우면 먼저 애니매틱을 렌더링합니다. 그런 다음 각 섹션의 본문을 실제 시각적 요소로 교체합니다: 큐 시간에 맞게 편집된 영상, 각 부분이 언급될 때 구성되는 다이어그램, 출처 카드.
8. 검증
references/verify.md를 읽습니다. 순서대로:
npx hyperframes check --json명령어로 오류가 0이 될 때까지 실행합니다.- 각 큐 시간마다 스냅샷을 찍고(빌더가
cues.json을 작성함), Haiku 에이전트가 해당 프레임을 큐 계획과 비교하고 비밀 정보 누출 여부를 확인합니다. - 화면의 텍스트를 출처와 스크립트로 비교합니다.
- 1080p 마스터와 720p 리뷰 사본을 렌더링합니다.
그런 다음 리뷰 사본을 보냅니다. 발표자가 특정 순간("1:23에 내가 말한 것은 ...")을 지적하면, 추가 녹화 또는 큐 변경으로 수정하고 변경된 프레임만 다시 검증합니다.
파일
scripts/words.py: 자막을 번호가 매겨진 단어와 구문 목록으로 변환하고 실제 무음 구간을 제거합니다.scripts/cut.py: 편집 목록을vo.wav,cam.mp4및timeline.json으로 변환하며, 프레임 그리드에서 동기화됩니다.scripts/cues.py: 큐 에이전트의 섹션 파일을 확인하고film.json으로 병합합니다.scripts/blur_bg.py: 웹캠용 로컬 배경 흐림 처리(RobustVideoMatting, CPU).scripts/run_take.sh,scripts/grade.py: 에이전트 동작의 실제claude -p테이크와 채점.assets/build_film.py: 제작 시작점(애니매틱, 웹캠, 자막, 플래시).assets/edl.example.json,assets/SPLIT-BRIEF.md,assets/CUE-BRIEF.md: 편집 목록 형식과 두 에이전트 브리프.references/: 준비, 캡처, 대본, 편집, hyperframes, 검증.examples/samatva-support/: 3개의 테이크로 제작된 2분 19초 분량의 내레이션 제품 워크스루.examples/samatva-vent/: 실제claude -p테이크로 제작된 짧은 무음 유/무 비교 영상.