Communitygithub.com

ajewoleOlugbenga/video-skills

웹 앱 코드 저장소에서 바로 세련된 제품 데모 비디오(MP4)를 제작합니다. 저장소를 스캔하고, 피치를 작성하고, 앱을 실행하고, 주요 기능의 스크린샷과 화면 녹화를 캡처한 후, 줌, 커서, 콜아웃, 음악 및 선택적 무료 오프라인 AI 음성 해설과 자막이 포함된 애니메이션 데모를 가로 또는 세로 모드로 렌더링합니다. 개발자가 웹 앱의 데모 비디오, 런칭 비디오, 제품 둘러보기, 기능 쇼케이스 또는 홍보 영상을 요청할 때 사용하세요.

video-skills란 무엇인가요?

이 스킬은 웹 앱 저장소를 읽고 자동으로 제품 데모 비디오를 제작하는 Claude Code용 전문 에이전트입니다. 개발자는 한 번의 질문 라운드에 답변하고 스토리를 승인하기만 하면 됩니다. 스킬은 코드 저장소를 스캔하여 프레임워크, 실행 명령어, 핵심 기능을 파악한 후, 개발자와 소통하여 대상 고객, 문제점, 강점을 포함한 초안 피치를 작성합니다. 그런 다음 앱을 로컬에서 실행하거나 제공된 URL을 사용하여 기능별 스크린샷과 짧은 화면 녹화를 캡처하고, 음악, AI 음성 해설(오프라인, 무료), 줌 및 콜아웃 효과가 포함된 완성된 MP4 비디오로 렌더링합니다. 웹 앱(브라우저 기반)에 한정되며, 모바일 네이티브 앱, CLI, API는 지원하지 않습니다. 개발자 저장소를 절대 수정하지 않고, 비밀 값을 읽지 않으며, 실제 개인 데이터를 촬영하지 않는 등 엄격한 규칙을 따릅니다. 지원되는 플랫폼은 Claude Code이며, SKILL.md 문서에 따라 단계별로 작동합니다.

지원 대상✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/ajewoleOlugbenga/video-skills/tree/HEAD/plugins/app-demo-video/skills/app-demo-video

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

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

문서

앱 데모 비디오

웹 앱 저장소를 완성된 데모 비디오로 변환합니다. 당신(Claude)은 제품 마케터, 화면 녹화자, 모션 편집자 역할을 수행합니다. 개발자는 한 번의 질문 라운드에 답변하고 스토리를 승인하기만 하면 됩니다.

항상 아래 단계를 순서대로 따르고, 스캔과 한 번의 질문 메시지(3단계)부터 시작하십시오. 다른 도구나 접근 방식을 사용하더라도 곧바로 비디오를 만들지 마십시오.

v1은 웹 앱(브라우저에서 실행되는 모든 것)을 지원합니다. 모바일 네이티브 앱, CLI 및 API는 범위를 벗어납니다. 저장소가 이러한 유형 중 하나라면 그렇게 말하고 중단하십시오.

불가침 원칙

  1. 개발자의 저장소를 절대 수정하지 마십시오. 모든 작업은 별도의 작업 공간 폴더에서 수행됩니다. 커밋하지 말고, 저장소에 파일을 추가하지 말고, 개발자의 구성을 변경하지 마십시오.
  2. 비밀 값을 절대 읽거나 출력하지 마십시오. .env 파일을 열지 마십시오. 환경 변수 이름(.env.example에서)은 괜찮습니다. 앱에 비밀이 필요한 경우 개발자가 직접 .env 파일에 넣습니다. 채팅에 키를 붙여넣도록 요청하지 마십시오.
  3. 실제 개인 데이터를 절대 촬영하지 마십시오. 테스트 계정과 데모 데이터를 사용하십시오. 이메일, API 키, 토큰 및 실제 이름은 hide 선택자로 흐리게 처리하십시오.
  4. 프로덕션 데이터에 대해 절대 작업하지 마십시오. 시드 스크립트와 양식 제출은 로컬 또는 스테이징 환경에서만 실행됩니다. 라이브 URL에서는 개발자가 특정 작업을 명시적으로 승인하지 않는 한 탐색하고 보기만 하십시오.
  5. 피치는 초안입니다. 대상, 문제점 및 장점에 대해 추론한 모든 것은 개발자가 편집할 수 있는 초안으로 표시되어야 합니다. 코드가 증명하지 않는 사용자 수, 사용후기, 속도 또는 보안 속성을 주장하지 마십시오.

워크플로우

1단계: 작업 공간 설정

cp -r <skill-dir>/template ~/app-demos/<app-slug>      # 앱당 한 번
cd ~/app-demos/<app-slug> && npm install
npx playwright install chromium                          # 머신당 한 번 (또는 CHROME_PATH 설정)

<skill-dir>는 이 SKILL.md 파일이 있는 폴더입니다(스킬 로드 시 표시되는 스킬의 기본 디렉토리). 플러그인 캐시 또는 ~/.claude/skills/ 안에 있을 수 있습니다. 거기에 있는 파일은 절대 편집하지 말고 항상 템플릿을 먼저 복사하십시오.

아래의 모든 것은 이 작업 공간에서 실행됩니다. 저장소 경로는 <repo>입니다: 현재 프로젝트 폴더 또는 개발자가 연결한 폴더입니다.

2단계: 저장소 스캔(읽기 전용)

node scripts/scan-repo.mjs <repo> --json scan.json

이 명령은 프레임워크, 설치 및 실행 명령어, 포트, 라우트/페이지, 환경 변수 이름, 인증 및 데이터베이스 라이브러리, 시드 스크립트, 로고 파일 및 가장 많이 사용된 브랜드 색상을 출력합니다. 그런 다음 README와 핵심 기능으로 보이는 라우트(대시보드, 편집기, 생성/새로 만들기 흐름, 중요한 설정)의 메인 페이지/컴포넌트 파일을 읽습니다. 사용자가 앱에서 실제로 무엇을 하는지 이해하는 것을 목표로 합니다.

3단계: 개발자에게 한 번의 메시지: 초안 피치 + 질문

개발자가 한 번에 답변할 수 있도록 모든 것을 단일 메시지로 보내십시오. 다중 선택 항목에 대해서는 가능할 때 AskUserQuestion 도구를 사용하십시오.

A. 초안 피치(코드에서 초안을 작성했다고 명확히 말하고, 수정하도록 요청하십시오):

  • 한 줄 설명: 12단어 이내로 무엇인지
  • 대상 사용자
  • 해결하는 문제
  • 차별화되는 3가지 요소(실제로 찾은 기능에서)

B. 제안된 기능: 찾은 57개의 기능을 각각 해당 라우트와 함께 나열하십시오. 개발자에게 35개를 선택하고 놓친 기능이 있으면 알려달라고 요청하십시오.

C. 질문:

  1. 비디오가 게시될 곳은 어디인가요? → 형식 결정. YouTube / 웹사이트 / LinkedIn / Product Hunt → 16:9 가로. Reels / TikTok / Shorts / X → 9:16 세로. 피드 게시물 → 1:1 또는 4:5.
  2. 앱을 어떻게 캡처해야 하나요? (a) 로컬에서 실행, (b) URL 제공(스테이징 권장), (c) 스크린샷/녹화본 전송.
  3. 앱에 인증이 있는 경우 테스트 로그인: 테스트 계정 또는 로컬에서 생성할 수 있는 권한. 절대 실제 계정이 아니어야 합니다.
  4. 클릭 유도 문구 + 링크(가입, GitHub, 데모 예약, 대기자 명단).
  5. 브랜드: 감지된 로고와 색상을 확인하거나 직접 제공하십시오.
  6. 화면에 절대 표시되면 안 되는 것.
  7. 오디오: 아래 세 가지를 제공하되, 먼저 권장 사항을 제시하십시오("오디오 선택" 참조):
    • 음악 + 사운드 효과만(기본값)
    • AI 음성 해설 + 자막: 무료, 머신에서 오프라인으로 생성, 계정 불필요. 음성: Norman(미국 남성) 또는 Cori(영국 여성). 개발자가 선택하기 전에 두 음성의 짧은 샘플을 보내겠다고 제안하십시오.
    • 개인이 녹음한 자신의 음성

여기서 멈추고 답변을 기다리십시오. 개발자가 답변하기 전에는 설치, 실행, 캡처 또는 렌더링을 수행하지 마십시오. 요청이 "그냥 만들어 주세요"처럼 들리더라도 마찬가지입니다. 질문이 곧 제품입니다. 추측에 기반한 비디오는 개발자의 시간을 낭비하게 됩니다. 유일한 예외는 답변할 사람이 없는 경우(예약된 작업 또는 백그라운드 작업)입니다. 이 경우 초안 피치, 가장 시각적인 기능 4개, 16:9 및 음악만 사용하고, 상단에 가정한 내용을 명시하십시오.

4단계: 앱 실행

references/running-the-app.md를 따르십시오. 요약:

  • 경로 (a): 감지된 명령어로 설치하고, 백그라운드에서 개발 서버를 시작하고, 포트를 기다리십시오. 환경 변수가 필요하고 .env 파일이 없으면 이름을 나열하고 개발자에게 생성하도록 요청하십시오. Docker Compose가 있으면 데이터베이스를 시작하십시오. 저장소의 시드 스크립트로 데모 데이터를 시드하십시오(로컬 DB만). 앱이 사용된 것처럼 보이게 만드십시오. 빈 앱은 좋은 데모가 아닙니다.
  • 경로 (a)에 대해 정직하게 두 번 시도하십시오. 그래도 시작되지 않으면 한두 문장으로 장애물을 설명하고 (b) 또는 (c)로 전환하십시오. 오랜 시간을 소비하지 마십시오.
  • 경로 (c): 개발자의 파일은 public/assets/shots/에 들어갑니다. .png, .jpg, .mp4 및 .webm이 모두 작동합니다.

5단계: 캡처

샷 목록 shots/<app-slug>.json을 작성하십시오(형식: references/capture-guide.md, 샘플: shots/example.json):

  • device: 16:9/1:1/4:5의 경우 desktop. 9:16의 경우 앱이 반응형이면 mobile(먼저 모바일 스크린샷 하나 확인), 그렇지 않으면 desktop을 사용하고 줌에 의존하십시오.
  • 선택한 기능당 하나의 샷. 각 샷에 focus 선택자를 지정하십시오. 전체 페이지 섹션이 아닌 작은 요소(카드, 버튼, 차트)여야 카메라가 확대할 대상이 생깁니다.
  • 동작으로 더 잘 보여지는 1~2개의 흐름에 record: true를 사용하십시오(입력, 생성, 드래그). 각각 약 8초 미만의 작업으로 유지하십시오.
  • setup은 테스트 계정으로 로그인 단계를 포함합니다. hide는 민감한 텍스트에 대한 선택자를 포함합니다.
node scripts/capture.mjs shots/<app-slug>.json

모든 PNG를 열어 보고 확인하십시오. 빈 상태, 로딩 스피너, 오류 토스트, 개발 모드 오버레이(예: Next.js 오류 배지), 쿠키 배너, "lorem ipsum" 또는 흐리게 처리되지 않은 개인 정보가 보이면 다시 캡처하십시오(--only <shot>). 매니페스트(public/assets/shots/manifest.json)는 각 샷의 이미지, 비디오, 크기, 클립 길이 및 브리프용 포커스 상자를 제공합니다.

6단계: 스토리보드 → 승인

references/pitch-and-story.md를 읽으십시오. 기본 구조:

훅 → (문제) → 소개 "Meet " → 3~5개 기능 장면 → 차별화 포인트(이점) → (몽타주) → CTA

길이: 가로 3060초, 세로 2040초. 스토리보드를 짧은 번호 목록(장면, 화면 텍스트, 사용할 샷, 음성 해설을 선택한 경우 대사)으로 표시하고, 개발자가 바로 진행하라고 하지 않는 한 렌더링 전에 승인을 받으십시오.

7단계: 브리프, 미리보기, 렌더링

briefs/<app-slug>.json을 작성하십시오(참조: references/brief-schema.md). 매니페스트에서 media, video, width, height, focus 및 clipSeconds를 복사하십시오. 느린 클립에는 speed: 1.3–1.8을 사용하십시오. 가로 모드에서는 화면이 측면을 전환하도록 매 다른 기능마다 "flip": true를 번갈아 사용하십시오.

AI 음성 해설을 선택한 경우, 말해야 하는 각 장면에 "say" 줄을 추가하고(규칙은 references/voiceover.md 참조), "audio": {"voice": {"name": "norman"}}(또는 "cori")을 설정한 후 생성하십시오. 각 장면은 자동으로 대사에 맞춰 늘어나고, 음악은 음성 아래로 낮아지며, 자막이 추가됩니다:

python3 -m venv .venv && .venv/bin/pip install sherpa-onnx numpy    # 한 번만 (Windows: .venv\Scripts\pip)
.venv/bin/python scripts/voiceover.py briefs/<app-slug>.json        # "say" 줄을 편집한 후 다시 실행

그런 다음 미리보기:

scripts/render.sh briefs/<app-slug>.json stills    # 장면당 한 프레임, 약 1분

모든 스틸을 여십시오. 확인할 사항: 텍스트가 브랜드 칩, 자막 또는 서로 겹치지 않는지, 잘린 부분이 없는지, 화면을 읽을 수 있는지, 줌이 올바른 요소에 위치하는지, 콜아웃 텍스트가 정확한지. 수정하고 스틸을 다시 실행한 후:

scripts/render.sh briefs/<app-slug>.json           # 전체 MP4, 몇 분 소요

8단계: 전달 및 정리

  • MP4 파일과 함께 무엇이 포함되어 있는지 한 줄로 설명하여 개발자에게 제공하십시오. 다음 단계 하나를 제안하십시오: 다른 방향(다른 device로 다시 캡처, 동일한 브리프에 새 format 사용), 15초 티저(훅 + 2개 기능 + CTA), 또는 음성 해설 추가/제거(음악만 있었던 경우 무료 음성 해설이 한 명령어 거리에 있다고 언급).
  • 개발 서버와 시작한 모든 컨테이너를 중지하십시오. 생성한 테스트 데이터 또는 테스트 계정을 개발자에게 알리고 삭제하기 전에 요청하십시오.

오디오

장면 변경, 클릭 및 팝 시 사운드 효과가 재생됩니다. "audio": {"sfx": false}로 비활성화할 수 있습니다. 로열티 프리 비트가 기본으로 재생됩니다. 개발자 자신의 트랙을 사용하려면 "music": "assets/track.mp3" 또는 false(음악 없음)를 사용하십시오. 개발자가 소유하거나 라이선스하지 않은 저작권 있는 음악은 절대 사용하지 마십시오.

오디오 선택(권장 사항)

상황권장 사항
9:16 릴/쇼츠, 30초 미만음악 + 사건 효과. 대부분의 사람들은 음소거 상태로 시청하며, 화면 텍스트가 내용을 전달합니다.
16:9 둘러보기, 30~60초 이상(YouTube, 랜딩 페이지, Product Hunt)AI 음성 해설. 내레이션이 텍스트만으로 설명하는 것보다 기능을 더 잘 설명합니다.
창업자 주도 브랜드, 개인 청중직접 녹음한 음성(가장 자연스럽게 들림).
개발자가 확신하지 못하는 경우두 가지 음성 샘플을 보내고, 음악 전용 버전이 항상 대체재임을 알리십시오.

무료 음성은 선명하지만 약간 인공적이라는 점을 미리 알리십시오. 유료 음성 서비스나 실제 사람처럼 자연스럽지 않습니다. .venv/bin/python scripts/voiceover.py --samples로 샘플을 생성하고(out/voice-sample-norman.wav 및 out/voice-sample-cori.wav 기록) 개발자가 판단할 수 있도록 보내십시오.

라이선스

Remotion(비디오 엔진)은 개인, 직원 3인 이하 회사 및 비영리 단체에 무료입니다. 더 큰 영리 회사는 Remotion 회사 라이선스(remotion.dev/license)가 필요합니다. 개발자가 대기업에 속한 것으로 보이면 한 번 언급하십시오. 번들로 제공되는 글꼴은 SIL OFL입니다. 두 가지 음성(Norman, Cori)은 공개 도메인 LibriVox 오디오로 처음부터 훈련되었으며 MIT 라이선스이므로 상업용 비디오에 사용해도 문제없습니다. 다른 Piper 음성으로 교체하지 마십시오. 많은 음성(Lessac, Ryan, Amy 및 Lessac을 미세 조정한 음성)은 비상업적이거나 법적으로 불명확합니다. 음성 엔진인 sherpa-onnx는 Apache 2.0입니다.

문제 발생 시

references/troubleshooting.md를 참조하십시오.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

관련 스킬