Communitygithub.com

evgenspm/launchfilm

런치필름 레시피를 검색하고, 사용자의 필요에 따라 1~3개의 레시피를 선택하여 필름을 제작합니다. 템플릿 사용, 레시피 시작, 특정 스타일 모방 등에 활용합니다.

launchfilm란 무엇인가요?

이 스킬은 에이전트가 사용자를 위해 런치 비디오(런치필름)를 제작할 수 있도록 도와줍니다. 공개된 런치필름을 프레임 단위로 분석하여 텍스트 또는 코드(Remotion)로 기록한 '레시피' 카탈로그에서 적합한 레시피를 검색하고, 점수를 매겨 1~3개를 선택합니다. 사용자의 브랜드, 콘텐츠, 원하는 길이에 맞게 레시피의 타이밍, 스프링, 사운드를 재조정하고, `npx launchfilm new` 명령어로 프로젝트를 스캐폴딩합니다. 레시피에 코드가 있으면 바로 사용 가능하고, 텍스트 레시피라면 빈 시퀀스를 생성하여 이후 제작 과정을 안내합니다. 스킬은 Claude Code, Cursor, Codex 등 다양한 AI 코딩 에이전트에서 사용할 수 있도록 설계되었습니다.

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

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

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

문서

recipes

레시피는 하나의 공개된 런치필름을 연구하고 기록하여, 에이전트가 다른 제품에 맞게 그 제작 기법을 재현할 수 있도록 한 것입니다. 레시피는 <studio>/src/recipes/<id>/ 디렉토리에 위치합니다:

파일항상 있는가?제공하는 것
recipe.md예사용 시기, 비트 시트(시간, 프레임, 화면, 카메라, 모션, 전환, 사운드), 기법 링크, 수정해야 할 사항, 주의점, 누락된 컴포넌트
recipe.json예데이터로 표현된 동일 내용 (스키마 schemas/recipe.schema.json): structure[], techniques, audio, inputs, components, source
Recipe.tsx + index.tsxstatus: "built" 인 경우에만바로 사용 가능한 코드: brand + content로 매개변수화된 컴포넌트, 데모 브랜드와 함께 등록됨

대부분의 레시피는 텍스트 전용(status: "studied")이며, 이것만으로도 제작이 가능합니다: 비트 시트를 바탕으로 스튜디오의 프리셋과 컴포넌트를 사용하여 장면을 작성합니다. 레시피는 원본 영상, 프레임, 또는 카피를 포함하지 않습니다. 소스 링크는 사용자가 참조 영상을 볼 수 있도록 하기 위한 것입니다.

명령어는 launch-video/ (사용자) 또는 studio/ (launchfilm 레포지토리)에서 실행합니다. recipes/와 schemas/는 하네스 루트(사용자 프로젝트의 launch-video/, launchfilm 레포지토리의 루트)에 위치합니다.

1. 필요한 것이 무엇인지 파악하세요 (BRIEF.md / STORYBOARD.md 참조)

검색하기 전에 다음을 기록하세요: 프리셋(들) (화면비), 목표 길이, 모드 (제품 영화 / 런치 영화 / 하이브리드), 테마 (brand.json의 dark/light), VO 유/무, 다뤄야 할 비트 (hook, feature, logo...), 사용자가 실제로 가지고 있는 입력값 (로고, 스크린샷, 화면 녹화, 재구성 가능한 UI, 통계, URL).

2. 검색

recipes/CATALOG.md를 훑어보거나 (레시피당 한 줄, 계열별 그룹화: 형식, 주요 기법, 입력값, 소스, 텍스트/코드), 다음을 검색합니다:

npx launchfilm ref search "statement vertical dark"            # 제목, 요약, 태그, 기법에 대한 자유 텍스트 검색
npx launchfilm ref search "launch aspect:9:16 max:30 theme:dark" # 필터: family: aspect: tech: theme: max: min: status:

또는 recipes/index.json을 직접 필터링합니다 (필드: references/index-format.md):

node -e '
const idx=JSON.parse(require("fs").readFileSync("recipes/index.json","utf8")).recipes;
const want={aspect:"9:16",dur:30,techniques:["statement-sequence","end-card"],theme:"dark"};
for(const r of idx){const t=r.techniques.filter(x=>want.techniques.includes(x)).length;
 if(r.format.aspect===want.aspect||t>0) console.log(r.id,r.format.aspect,r.format.duration_s+"s",r.theme,r.vo?"vo":"-",t,r.code?"code":"text");}'

인덱스가 없나요? src/recipes/*/recipe.json을 글로브하여 읽으세요.

3. 점수 매기기 및 1~3개 선택

기준점수
format.aspect가 주요 프리셋의 화면비와 일치+3 (재구성은 가능하지만 작업 비용 발생)
format.duration_s가 목표의 ±30% 이내 (또는 필요한 비트를 커버하는 레시피)+2
스토리보드의 필요와 겹치는 각 기법+1 (최대 +4)
필요한 모든 inputs 필드를 사용자가 가지고 있음+2; 만들 수 없는 누락된 입력이 하나라도 있음
theme이 brand.json theme과 일치+1
vo가 계획과 일치+1
code: true (Recipe.tsx 준비됨) 및 사용자가 서두르는 경우+1; status: "reviewed"
render_cost가 높은데 사용자가 노트북을 사용하거나 서두르는 경우-1

텍스트 대 코드는 속도 보너스일 뿐, 품질 필터가 아닙니다: 브리프에 맞는 텍스트 레시피가 맞지 않는 코드 레시피보다 낫습니다. 전체 영화에는 최고 점수 1개, 다른 비트에는 최대 3개를 선택하세요 (A의 후크, B의 기능, C의 엔드 카드).

4. 선택 항목 보여주기

각 선택 항목에 대해 사용자에게 다음을 보여줍니다:

  • 제목 (id), text 또는 code 여부;
  • 브리프에 왜 맞는지 한 줄 설명 (화면비, 길이, 커버하는 비트, 가지고 있는 입력값);
  • 비트 시트를 3~6개의 짧은 행으로 요약 (0–3.1 s hook: name blurs in word by word...), recipe.md에서 요약;
  • 소스 링크 (source.url)로 원본을 직접 시청할 수 있도록 합니다. 호스팅된 미리보기는 없습니다.

참석 세션에서는 사용자가 선택하도록 합니다. 사용자가 "직접 결정하세요"라고 말한 경우, 최고 점수를 가져가고 한 줄로 알립니다.

5. 레시피 읽기

선택한 recipe.md 전체를 읽습니다: 비트 시트, 프레임 단위 모션 및 명명된 스프링, 전환, 각 이벤트의 사운드, "수정해야 할 사항", "주의점", "누락된 컴포넌트". recipe.json의 structure[], audio, inputs, components를 읽습니다. 이 숫자들이 재사용할 제작 기법이며, 화면과 카피는 사용자의 것이 됩니다.

6. 스캐폴딩

npx launchfilm new <slug> --recipe <id> --preset x-16x9 [--title "Product"] [--dry-run]
  • 코드가 있는 레시피: films/<slug>/Film.tsx는 하나의 recipe 장면을 가지며, 기본값으로 레시피의 컴포넌트를 렌더링합니다. content props (recipe.json params)를 변경하고 브랜드를 전달합니다.
  • 텍스트 레시피: film.json은 비트 시트의 행당 하나의 샷을 가지며 (레시피의 시간, 전환 및 SFX), Film.tsx는 각 샷에 대해 하나의 TodoScene을 가지며, 그 행의 화면, 카메라, 모션 및 사운드가 주석으로 포함됩니다. CLI는 TODO 목록을 출력합니다. TodoScene은 레이블이 지정된 플레이스홀더를 렌더링하며, 하나라도 남아 있으면 npx launchfilm qa가 실패합니다 (B1).
  • 둘 다 recipe.md를 films/<slug>/RECIPE.md로 복사하고, STORYBOARD.md를 레시피의 행으로 미리 채웁니다.
  • 레시피 결합: 가장 많은 런타임을 차지하는 레시피로 스캐폴딩한 다음, 다른 레시피의 행을 샷으로 추가합니다 (코드가 있는 경우 Recipe 컴포넌트를 장면으로, 그렇지 않으면 TodoScene으로).

7. 제작 (자세한 내용: references/remix.md)

  1. 먼저 뼈대를 사용자의 길이와 비트 그리드에 맞게 재조정합니다 (remix.md §3): 비트 순서와 비율을 유지하고, 모든 경계를 다운비트 또는 VO 구문에 스냅합니다. film.json 샷과 STORYBOARD 행을 업데이트합니다. 사용자는 장면이 제작되기 전에 스토리보드를 승인합니다 (게이트 3).
  2. 브랜드: useBrand()를 통해 brand.json을 모든 장면에 적용합니다 (코드 레시피의 경우 brand prop). 레시피 폴더는 절대 편집하지 마세요.
  3. 콘텐츠: 사용자의 제품 이름, 라인, 통계 및 UI. 절대 소스 영화의 카피나 데모 브랜드의 텍스트를 사용하지 마세요.
  4. 텍스트 레시피 장면: 각 TodoScene을 src/presets와 src/components로 제작된 장면으로 교체합니다 (먼저 API.md를 읽으세요. scene-build 스킬이 규칙을 소유합니다). 레시피.json이 나열하는 컴포넌트를 사용하고, 행의 명명된 스프링, 프레임 수, 스테거 및 전환 ID를 정확히 유지하세요. 모션 지속 시간은 필름 길이에 따라 조정되지 않습니다. 레시피가 "누락된 컴포넌트" 아래에 나열하는 컴포넌트는 films/<slug>/scenes/에 사양에 따라 제작됩니다.
  5. 사운드: audio.sfx의 모든 이벤트와 각 행의 sfx는 새 프레임에서 해당 사운드를 유지합니다 (접착 규칙, craft/02).
  6. 렌더링 전에 모든 샷의 스틸을 확인하고 (scene-build 단계 4), film-qa를 실행합니다.

규칙

  • 레시피는 시작점일 뿐, 최종 결과물이 아닙니다: 필름은 사용자의 이야기를 담고 있습니다 (STORYBOARD가 먼저 승인됨).
  • 소스의 어떤 것도 필름에 들어가지 않습니다: 소스 카피, 소스 브랜드, 소스 푸티지 없음. 소스 링크는 사용자가 시청하기 위한 것이며, recipe.json과 메시지에 남아 있고, 절대 필름에는 포함되지 않습니다.
  • 누락된 컴포넌트는 레시피 폴더나 공유 프리셋이 아닌 films/<slug>/scenes/ 안에 제작합니다.
  • STORYBOARD.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

Launch video, launch film, product video, product launch, promo, teaser, trailer, demo video, Product Hunt video, X / LinkedIn launch clip, reel, hero loop, motion graphics, "make a video for my product", Remotion film. Router and gated pipeline for making a pro product-launch film with the launchfilm studio in ./launch-video: brief, brand intake, story and storyboard (user approves), sound, scene build, frame QA, render per platform preset, package, post copy, one-time credit note. Use this first for any request to make, remake or revise a launch or product film; it calls the sibling skills (brand-intake, story, sound, scene-build, recipes, film-qa, launch-post). Do not use it to study a reference video (use reference-study), to browse recipes only (use recipes), or for generic Remotion questions unrelated to a launch film.

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).

관련 스킬