내레이션 데모 동영상
사용자가 시연을 계획하고 주도합니다. loom 명령어(이 플러그인이 활성화되어 있는 동안 PATH에 있음)는 내레이션, 녹화, 렌더링 및 검증을 처리합니다. 모든 디렉토리에서 일반 loom …으로 실행하세요. 동영상은 loom status에 표시되는 녹화 폴더(기본값 ~/Videos/loom/<slug>/)에 저장됩니다. 아래에서 <rec>은 해당 폴더를 의미합니다.
요청: $ARGUMENTS
요청이 기존 녹화의 슬러그(loom status에 나열됨)인 경우, 완료되지 않은 첫 번째 단계부터 재개합니다. 승인되지 않은 계획은 여전히 승인이 필요합니다.
양보할 수 없는 규칙
- 승인되지 않은 계획을 절대 녹화하지 마십시오.
"approved": false로 계획을 작성하고 사용자에게 보여준 후, 사용자가 승인하거나(또는 검토 없이 진행하라고 명시적으로 말한 경우에만)"approved": true로 설정하십시오. - 파괴적이거나 되돌릴 수 없는 작업(삭제, 구매, 배포, 전송, 결제, 프로덕션 설정 변경)은
"destructive": true로 표시되어야 하며,--allow-destructive을 전달하기 전에 이 동영상에 대해 사용자의 명시적 동의가 필요합니다. - plan.json 또는 내레이션에 비밀 정보를 포함하지 마십시오. 입력된 비밀번호/토큰은
"secret_env": "VAR"를 사용합니다. 화면에 표시되는 키, 이메일, 토큰, 계좌 번호는"redact"(CSS 선택자, 동영상 전체에서 흐림 처리)에 넣으십시오.~/.config/loom/*.env의 내용을 절대 출력하지 마십시오. - 조작된 장면을 사용하지 마십시오. 모든 장면은 녹화기가 실제로 수행해야 합니다. 장면이 실패하면 계획을 수정하고 다시 녹화하십시오. 결과를 위조하지 말고,
loom verify에 실패한 동영상을 완료된 것으로 제시하지 마십시오. - 웹캠 없음, 자신의 목소리만 사용. 내레이션은 사용자 자신의 Fish Audio 음성 모델을 사용합니다. 다른 사람의 목소리를 허가 없이 사용하거나 제안하지 마십시오.
워크플로우
0. 음성 설정 (최초 실행)
loom status를 실행하십시오. VOICE NOT CONFIGURED라고 표시되면, 다른 모든 작업보다 먼저 음성을 설정하십시오. /loom:setup 스킬(${CLAUDE_PLUGIN_ROOT}/skills/setup/SKILL.md)을 따르십시오. 사용자에게 자신의 Fish Audio 음성 모델 ID를 요청하십시오. 절대 임의로 만들거나 재사용하지 마십시오. 사용자가 지금 설정하고 싶지 않으면 로봇식 미리보기 음성으로 --provider espeak를 사용하여 계속할 수 있으며, 그것이 사용자의 음성이 아님을 명확히 말하십시오.
A. 이해
다음을 파악하십시오: 어떤 앱/URL, 시청자가 달성해야 할 결과, 대상 청중, 로그인이 필요한지 여부. 이 중 하나가 명확하지 않으면 간결한 질문을 하나 하십시오. 그렇지 않으면 합리적인 가정을 하고 이를 명시하십시오.
B. 실제 앱 검사
loom inspect <url> --out <rec>/<slug>/inspect
스크린샷(<rec>/<slug>/inspect/page.png)을 읽고 출력된 선택자를 사용하십시오. 데모에서 방문할 모든 페이지를 검사하여(흐름을 따라) 선택자가 추측이 아닌 실제인지 확인하십시오. #id, [data-testid=…], role=button[name="…"], text=… 순으로 선호하십시오. 로컬 파일은 file:///… URL로 작동합니다.
C. 계획 작성
${CLAUDE_PLUGIN_ROOT}/skills/video/reference/plan-schema.md에 따라 <rec>/<slug>/plan.json을 만드십시오. 지침:
- 4–10개의 장면.
title장면으로 시작하고, 짧은 요약 장면으로 끝내십시오. - 내레이션: 1인칭, 대화체, 동료가 Loom을 녹화하는 것처럼. 장면당 1–3문장(약 6–20초). 시청자가 보는 것을 발생하는 대로 설명하십시오. 선택자나 URL을 한 글자씩 읽지 마십시오.
- 작업은 해당 장면의 내레이션이 재생되는 동안 실행됩니다. 충분히 짧게 유지하십시오(음성 초당 약 2.6단어). 긴 흐름은 더 많은 장면으로 나누십시오.
- 상태가 변경되는 모든 장면에
expect를 추가하여 실패를 잡으십시오. loom validate <slug>를 통과할 때까지 반복하십시오.
계획을 사용자에게 표(장면 · 화면에서 일어나는 일 · 내레이션)와 함께 파괴적인 작업, 필요한 비밀 정보, 예상 길이와 함께 제시하십시오. 승인을 기다리십시오. 승인 시 "approved": true로 설정하십시오.
D. 내레이션
loom voice <slug>: 복제된 음성으로 장면당 하나의 WAV 파일(캐시됨, 변경된 장면만 재생성). 길이가 적절해 보이는지 확인하십시오.
E. 녹화
loom record <slug>(규칙 2에 따라 --allow-destructive는 필요한 경우에만 추가). 실패하면 오류와 <rec>/<slug>/raw/failure-<scene>.png를 읽고, 계획의 선택자/대기를 수정한 후 다시 실행하십시오. 필요한 경우 페이지를 다시 검사하십시오.
F. 제작
loom render <slug>(사용자가 자막을 영상에 포함시키려면 --captions burn, 기본값은 내장 자막 트랙 + subtitles/captions.srt).
G. 검증 (항상)
loom verify <slug>를 실행한 후, Read 도구로 <rec>/<slug>/scenes/*.jpg의 모든 썸네일을 확인하십시오: 예상 화면 상태가 보이는지, 민감한 정보가 블러 처리되지 않은 채 남아 있는지, 오류 페이지나 쿠키 배너가 콘텐츠를 가리고 있는지 등. 경고가 작업이 내레이션보다 오래 걸렸다고 표시하면 해당 장면을 분할하는 것을 고려하십시오. 통과할 때까지 필요한 단계를 수정하고 다시 수행하십시오.
H. 보고
<rec>/<slug>/final_video.mp4의 경로, 길이, 장면 목록 및 주의 사항(예: 미리보기 음성 사용)을 알려주십시오. VS Code의 내장 미리보기는 MP4를 소리 없이 재생한다는 점을 언급하십시오. 일반 동영상 플레이어를 사용하십시오. 계획이 승인된 후 D~G 단계의 단축키: loom run <slug>.
문제 해결
loom: command not found→ 플러그인의bin/이 PATH에 없음.${CLAUDE_PLUGIN_ROOT}/bin/loom을 대신 실행하십시오.loom needs uv→ 사용자에게 uv를 설치하라고 알리십시오(명령어가 출력됨).- 요소를 찾을 수 없음 → 해당 페이지에서
loom inspect를 다시 실행하고wait_for를 추가하십시오. - 쿠키/동의 배너 → 첫 번째 장면에 동의 버튼에 대한
click을 추가하십시오. - 로그인 →
secret_env와 함께type을 사용하고, 사용자에게 변수를 내보내도록 요청하십시오. - Fish Audio 401 → 잘못된 API 키. 402 → 해당 모델에 대한 API 크레딧이 없음. 크레딧을 추가하거나 플러그인의 모델 설정을
s2.1-pro-free로 전환하도록 제안하십시오. - 데스크톱(비브라우저) 데모 →
--recorder obs(OBS가 WebSocket이 활성화되고 화면 캡처 장면이 있는 상태로 실행 중이어야 함). 이 경로는 실험적입니다.