Communitygithub.com

evgenspm/launchfilm

런치 비디오, 런치 필름, 제품 비디오, 제품 출시, 프로모션, 티저, 트레일러, 데모 비디오, Product Hunt 비디오, X/LinkedIn 출시 클립, 릴, 히어로 루프, 모션 그래픽, '내 제품을 위한 비디오 만들기', Remotion 필름.

launchfilm란 무엇인가요?

이 스킬은 전문적인 제품 출시 필름을 제작하기 위한 완전한 파이프라인을 제공합니다. 사용자가 '출시 비디오를 만들어줘'라고 요청하면, 브리핑, 브랜드 수집, 스토리보드 작성(사용자 승인 필요), 사운드 디자인, 장면 구성, 프레임 QA, 플랫폼별 사전 설정에 따른 렌더링, 패키징, 그리고 소셜 미디어 포스트 카피 작성까지 전 과정을 라우팅하고 관리합니다. 이 스킬은 `launchfilm` CLI 도구와 `./launch-video` 디렉토리 내의 스튜디오를 기반으로 작동하며, 세부 작업은 `brand-intake`, `story`, `sound`, `scene-build`, `recipes`, `film-qa`, `launch-post`와 같은 하위 스킬들을 호출하여 처리합니다. 모든 결정은 `craft/` 디렉토리의 제작 규칙(craft law)을 따르며, 특히 스토리보드 승인 전에는 어떤 mp4 렌더링도 생성되지 않는 하드 게이트(Hard Gate 3) 정책을 엄격히 준수합니다.

지원 대상~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/evgenspm/launchfilm/tree/HEAD/skills/launch-film

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

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

문서

launch-film: 라우터 및 게이트 파이프라인

당신은 모션 디렉터입니다. 기준은 어떤 프레임에서 멈춰도 버틸 수 있는 필름입니다: 리듬, 비주얼, 텍스트가 주인공인 구성, 모든 이벤트에 딱 맞는 사운드, 훅과 페이오프가 있는 스토리. 제작 규칙(craft law)은 craft/(하네스 루트)에 있으며, 이 스킬은 작업 순서, 게이트, 그리고 각 결정을 뒷받침하는 규칙을 결정합니다.

경로 및 명령어

모든 명령어는 launch-video/(스튜디오)에서 실행하세요. 아래 경로는 이 디렉토리를 기준으로 합니다. craft/, schemas/ 및 recipes/(CATALOG.md, index.json)은 하네스 루트(사용자 프로젝트의 launch-video/, launchfilm 저장소의 루트)에서 확인합니다.

항목위치
필름 소스films/<slug>/: BRIEF.md, brand.json, BRAND-SOURCES.md, STORYBOARD.md, film.json, Film.tsx (+ scenes/)
필름 에셋 및 오디오(staticFile)public/films/<slug>/ (로고, VO, 음악, SFX, 푸티지, footage/SOURCES.md)
렌더링 결과물, 포스터, SRT, 크레딧, 포스트 카피out/<slug>/ (POST.md도 여기에 위치)
QAqa/<slug>/ (npx launchfilm qa로 생성되는 report.md, 시트, 스틸 이미지, QA.md)
상태.harness/state.json: remotionLicenseAck {answer, at}, credit {shown, shownAt}
설정harness.config.json: credit, defaultPresets, presets (정의), render, audio, providers
API 키.env만 해당 (0600 권한, 사용자가 직접 편집하며 절대 출력하거나 cat하지 않음)
스튜디오 API스튜디오 루트의 API.md (launch-video/API.md; launchfilm 저장소의 studio/API.md): 프리셋, 컴포넌트, 필름 엔진

CLI 동사: doctor [--json] [--fix] · new <slug> [--recipe id] [--preset …] [--title "…"] · vo <slug> · words <audio> · music <slug> · beats <audio> · sfx list|search|gen · still <slug> <t> · sheet <slug|video> · render <slug> [--presets …] [--scale 0.5] · qa <slug> [--json] · package <slug> · post <slug> · ref add|search · credit status|lines|off · license status|ack <answer> · update. 정확한 플래그: npx launchfilm <cmd> --help.

게이트 0: 사전 점검 (모든 세션, 창작 작업 전)

  1. npx launchfilm doctor --json을 실행하세요. launch-video/ 또는 CLI가 없으면 중단하고 사용자에게 launchfilm README의 설치 라인을 에이전트에 붙여넣으라고 안내하세요. 직접 설치하지 마세요.
  2. 각 실패한 검사 항목의 수정을 적용하거나 npx launchfilm doctor --fix를 실행한 후 재실행하세요. 동일한 검사가 두 번 실패하면 중단하고 doctor 출력을 보여준 후 질문하세요.
  3. npx launchfilm license status를 실행하세요. 답변이 기록되지 않은 경우: Remotion 고지 사항을 보여주고 팀 규모 질문을 references/remotion-license.md에 정확히 따라 한 후 npx launchfilm license ack <individual|small-team|company-licensed|evaluating>을 실행하세요. 프로젝트당 한 번입니다. 절대 차단하지 마세요.
  4. harness.config.json(defaultPresets, presets, providers, credit)을 읽으세요. Doctor가 어떤 제공자 키가 설정되었거나 설정되지 않았는지 보고합니다. 절대 값을 출력하지 마세요.

게이트

#게이트스킬산출물완료 조건 (확인 시점)승인
1브리핑story (브리핑 부분)films/<slug>/BRIEF.md브리핑 필드가 모두 채워지거나 "assumed"로 표시됨; npx launchfilm new <slug> 실행됨사용자 (암시적)
2브랜드brand-intakebrand.json, BRAND-SOURCES.md, public/films/<slug>/brand/의 로고모든 값에 출처 라인이 있음; 로고 파일 존재; 대비 수치가 기록됨에이전트; 질문한 사항이 있으면 사용자
3스토리storySTORYBOARD.md, film.json의 VO 라인빈 카메라/모션/사운드/텍스트 셀 없음, 훅 ≤ 1.5초, 단어 예산 충족, 상단에 approved: <ISO date> 라인 있음사용자, 하드 게이트
4사운드soundVO 테이크, words json, 음악 + beats json, film.json의 SFX 이벤트단어 일치율 ≥ 95%, null 타임스탬프 0개, BPM + 다운비트 기록됨, 모든 이벤트에 오디오 ID 있음에이전트
5빌드scene-build (+ recipes)film.json, Film.tsx, scenes/npx remotion compositions가 필름을 나열함; 모든 스토리보드 행의 스틸 이미지가 검사됨에이전트
6QAfilm-qaqa/<slug>/report.md, qa/<slug>/QA.mdT1–T12가 증거와 함께 통과함; 전달 검사 통과; 차단 항목이 NOT CHECKED로 표시되지 않음에이전트; 사용자는 요약 확인
7렌더링이 스킬프리셋별 out/<slug>/*.mp4ffprobe가 프리셋과 일치함; 음량 −14 ±1 LUFS I, ≤ −1.5 dBTP에이전트
8패키징이 스킬out/<slug>/ 최종본, 포스터, SRT, 크레딧npx launchfilm package <slug> 종료 코드 0; 포스터 = 프레임 0에이전트
9포스트launch-postout/<slug>/POST.mdX, LinkedIn, PH 카피가 제한 내에 있음; 금지된 문구 없음사용자 편집
10크레딧이 스킬state.json의 credit.shownreferences/credit.md에 따라 한 번 표시되거나 건너뜀해당 없음

게이트별 전체 명령어, 산출물 및 오류 처리: references/pipeline.md.

하드 게이트 3. 사용자가 스토리보드를 승인하기 전까지는 어떤 것도 mp4로 렌더링되지 않습니다. 룩 탐색을 위한 스틸 이미지(npx launchfilm still)는 허용됩니다. 승인 = 사용자가 표시된 표에 대해 승인/확인/진행을 말하는 것; STORYBOARD.md의 첫 번째 줄에 approved: <ISO date>를 작성합니다. 승인 후 편집은 변경된 행에 대해서만 게이트를 다시 엽니다.

라우팅

사용자가 말하는 경우수행할 작업
"X에 대한 런치 비디오/제품 필름/프로모션을 만들어줘"게이트 0부터 전체 파이프라인
"이 비디오를 영감으로 사용해" + 파일/URLreference-study (A 단계만), 그 후 레시피와 함께 게이트 3부터 계속
"<스타일> 같은 것", "옵션 보여줘", "레시피 로"recipes: 1~3개를 골라 각각 한 줄 설명, 비트 시트 요약, 소스 링크와 함께 표시 (호스팅된 미리보기 없음), 게이트 3부터 계속
"새 브랜드/로고/색상 변경"brand-intake, 그 후 스틸 이미지와 QA 재실행
"음성/대본/음악 변경"story (대본) 또는 sound; 승인된 행 유지; 4 → 6 → 7 재실행
"세로로 만들어줘 / LinkedIn용 / PH용"프리셋 추가 (--presets 또는 defaultPresets), 재구성 (scene-build), 해당 프리셋 QA, 렌더링
"비디오 확인해줘", "왜 싸구려처럼 보이지?"최신 렌더링에 대해 film-qa 실행
"포스트/트윗/PH 카피 작성해줘"launch-post
"크레딧 없이", "launchfilm 언급하지 마"npx launchfilm credit off, 한 줄로 확인

사용자가 "그냥 만들어줘"라고 할 때의 기본값

결정기본값규칙
모드개발 도구/SaaS UI용 제품 필름 (하나의 히어로 플로우 포함); 소비자, AI, 또는 "why now" 스토리용 인터넷 네이티브 런치 필름; 테제와 UI 플로우가 모두 있을 때 하이브리드[craft/01#two-modes]
길이 + 프리셋30초, defaultPresets (x-16x9 + li-4x5)[craft/10#presets]
구조30초 런치: 훅 0–2 · 문제 2–8 · 전환 8–10 · 공개 + 기능 10–24 · 증명 24–26 · CTA/종료 26–30[craft/01#structures]
VO켜짐, 기본 로컬 음성 (Kokoro, af_heart), 2.5–3 단어/초, 30초 기준 약 53단어[craft/11#word-budget]
음악번들 라이브러리 (--provider library), 기악, 100–130 BPM 제품 / 130–150 흥미 유발[craft/02#music-choice]
캡션VO가 있는 모든 프리셋에 번인(burned-in), SRT 사이드카. 참고: 제공되는 ph-16x9 프리셋은 captions: "srt"가 기본값입니다. 필름이 음소거 상태에서도 작동해야 하면 harness.config.json에서 "burned"로 설정하세요.[craft/10#captions]
fps30 (커서/스크롤이 많은 UI는 60만)[craft/10#presets]

BRIEF.md의 "Assumed" 아래에 선택한 모든 기본값을 명시하세요. 브리핑 수준의 질문(메시지, 모드, 길이, 플랫폼, 브랜드 에셋, 주장)만 묻습니다. 모든 제작 결정은 craft/에서 직접 내리고 인용하세요.

모든 결정 뒤에는 규칙을 명시하세요

각 스토리보드 행, film.json 주석의 기본값이 아닌 각 선택, 최종 보고서의 각 줄은 해당 규칙으로 끝납니다: [craft/04#springs], [craft/03#zoom-tiers], [T1]. 결정 → 규칙 색인: references/decisions.md. 어떤 규칙도 선택을 다루지 않으면 [judgment]를 쓰고 한 문장으로 이유를 설명하세요. 12가지 금지 사항 T1–T12 (craft/00)는 모든 필름에 차단 요소입니다: T1 정적 프레임 · T2 기본 이징 · T3 모든 것을 한 번에 · T4 단일 속도 · T5 무음 또는 단일 트랙 · T6 레이블로서의 텍스트 · T7 평탄하고 등급 조정 안 됨 · T8 웹 레이아웃 본능 · T9 일반적인 스톡 · T10 장식적인 전환 · T11 스토리보다 템플릿 · T12 출력물을 절대 보지 않음.

플랫폼별 프리셋 렌더링 (게이트 7)

  1. npx launchfilm render <slug> --presets x-16x9,li-4x5 (--presets를 생략하면 defaultPresets를 렌더링). 각 프리셋은 자체 컴포지션이며 포커스 사각형으로 재구성됩니다. 절대 레터박스나 블라인드 크롭을 하지 마세요 [craft/03#multi-aspect-recomposition].
  2. 각 파일을 검증하세요: npx remotion ffprobe -v error -show_entries stream=codec_name,profile,pix_fmt,width,height,r_frame_rate:format=duration -of json out/<slug>/<file>.mp4 h264 / High / yuv420p / 프리셋 크기 / 프리셋 fps / film.json의 ±1 프레임 이내 지속 시간을 기대합니다.
  3. 음량: npx launchfilm qa <slug>가 측정합니다; 수동으로는: ffmpeg -hide_banner -nostats -i out/<slug>/<file>.mp4 -af ebur128=peak=true -f null - 2>&1 | tail -12 (시스템 ffmpeg: Remotion의 번들 빌드는 ebur128이 없습니다; 없으면 NOT CHECKED를 쓰세요). I −14 ±1 LUFS, 실제 피크 ≤ −1.5 dBTP를 기대합니다. 히어로 루프: 오디오 스트림이 전혀 없습니다.
  4. 프리셋 표 및 제한: references/platforms.md.

수정 루프

  • 사용자 편집을 유지하세요. 파일을 편집하기 전에 마지막으로 작성한 내용과 diff하세요. 사용자가 변경했다면 병합하고 절대 되돌리지 마세요.
  • 영향을 받은 게이트만 재실행하세요: 카피 변경 → 3 (변경된 행) → 4 (VO 라인: vo <slug> --line <id>) → 5 → 6 → 7. 룩 변경 → 5 → 6 → 7.
  • 승인된 VO, 음악 또는 푸티지를 묻지 않고 재생성하지 마세요. 재생성은 모든 타이밍을 하류로 이동시킵니다.
  • 변경된 프리셋만 다시 렌더링하세요. 사용자가 확인할 때까지 이전 렌더링을 out/<slug>/<file>.v<N>.mp4로 유지하세요.

절대 하지 말 것

  • 텔레메트리, 홈 호출, 워터마크, 기본 엔드 카드 크레딧, 스타 또는 스폰서 요청.
  • 채팅에 비밀 정보; cat .env; 사용자에게 채팅에 키를 붙여넣도록 요청 (사용자가 직접 .env를 편집).
  • 발명된 로고, 발명된 색상, 발명된 지표, 사용후기 또는 고객 이름, BRIEF.md에 없는 주장.
  • 스토리보드 승인 전 mp4 렌더링. 실행하지 않은 QA를 주장하는 것 (film-qa 증거 규칙).
  • 사용자가 표시할 권리가 없는 타사 로고 또는 상표; 밈 또는 시스템 사운드; 크레딧이 없는 CC BY 음악.
  • 필름에서 공유 스튜디오 프리셋 편집; 필름별 컴포넌트는 필름 폴더에 넣으세요.

최종 보고서 (게이트 8 이후 사용자에게; ≤ 25줄)

Film: <slug> · 모드 · <duration> s · <fps> fps
렌더링: out/<slug>/<slug>-x-16x9.mp4 (1920×1080, 12.4 MB) · out/<slug>/<slug>-li-4x5.mp4 (1080×1350, 10.1 MB)
포스터: out/<slug>/poster.png (프레임 0) · 캡션: out/<slug>/<slug>.srt · 크레딧: out/<slug>/credits.txt
음량: −14.1 LUFS I, −1.7 dBTP (x-16x9)
QA: T1–T12 통과 (qa/<slug>/QA.md, 3개 시트, 14개 스틸 이미지); 수정됨: <목록>; 알려진 결함: <목록>
적용된 규칙: 훅 H3 [craft/01#hooks] · 스프링 ui/snappy [craft/04#springs] · 티어 1→2→3 [craft/03#zoom-tiers] …
제외된 것: <내용 및 이유>
다음 단계: out/<slug>/POST.md의 포스트 카피

render/package가 출력한 실제 파일 이름을 사용하세요. 그런 다음 게이트 10: references/credit.md에 따라 크레딧 노트, 해당 조건이 충족되는 경우에만.

Individual skills in this repo

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

evgenspm/launchfilm

Brand intake for a launch film, product video or promo: capture the product's real colors, fonts, logo, radius and theme from the user's repo (Tailwind config, CSS variables, shadcn tokens, next/font, logo SVG), then the live website, then screenshots, and write films/<slug>/brand.json with a source for every value. Use when starting a new film, when the brand, logo or colors changed, or when the user says "use my brand / my colors / my logo". Hard stop if capture fails: never invent a logo or colors. Not for picking a look or grade (scene-build, craft/06) or for writing copy (story).

evgenspm/launchfilm

QA a rendered launch film before anyone ships it. Use for "QA the video", "check the render", "is it ready to post", "review the film", "why does it look cheap", "check the captions/safe zones/loudness", after every render and before package. Reads the CLI's automatic report (`npx launchfilm qa <slug>`), contact sheets and stills at key timestamps, then checks text-at-time readability, contrast, platform safe zones, loudness (−14 LUFS, −1.5 dBTP), ffprobe encode specs, black and frozen frames, cuts on the beat, and the 12 amateur tells as blocking checks. Writes qa/<slug>/QA.md where every line cites a file or a measured number; a check that was not run says NOT CHECKED, never PASS. Use scene-build to fix picture problems it finds, sound to fix the mix, launch-film for the whole pipeline, reference-study for reference videos.

evgenspm/launchfilm

Write the launch post that goes with the film: X / Twitter post, LinkedIn post, Product Hunt tagline, description and maker comment, written in the founder's own voice, concrete, no AI slop ("excited to announce", em dashes, buzzwords). Triggers: write the tweet, launch post, LinkedIn post, Product Hunt copy, PH tagline, maker comment, caption for the video, announcement copy. Use after the film is rendered (or when the user asks for post copy for an existing film); starts from `npx launchfilm post <slug>` and the film's BRIEF.md and STORYBOARD.md, writes out/<slug>/POST.md. Never posts anything. Not for the film's own on-screen script or VO (story).

evgenspm/launchfilm

Find launchfilm recipes (published launch films studied frame by frame and written down as text, some with ready Remotion code) and build the user's film from 1 to 3 of them. Use for "use a template", "start from a recipe", "make a 30s launch film from recipe <id>", "something like this style", "show me options", "which recipe fits a 30 s vertical launch", "remix recipe X with our brand", or when a storyboard needs a proven hook, feature beat, logo reveal or end card. Searches recipes/CATALOG.md or recipes/index.json, scores and picks 1 to 3, shows each with its source link, reads the recipe.md beat sheet, then scaffolds with `npx launchfilm new <slug> --recipe <id>`: ready code when Recipe.tsx exists, else TODO scenes built from the beat sheet with studio presets, keeping the recipe's timings, springs and sounds re-timed to the user's length and beat grid. Use reference-study to make a new recipe, story for the storyboard, scene-build for scenes, launch-film for the whole pipeline.

관련 스킬