Communitygithub.com

브랜드 인테이크 (brand-intake)

런치 필름, 제품 비디오 또는 프로모션을 위한 브랜드 정보 수집: 사용자 리포지토리(Tailwind 설정, CSS 변수, shadcn 토큰, next/font, 로고 SVG), 라이브 웹사이트, 스크린샷에서 제품의 실제 색상, 폰트, 로고, 반경, 테마를 캡처하고 films/<slug>/brand.json에 각 값의 출처와 함께 기록합니다.

브랜드 인테이크 (brand-intake)란 무엇인가요?

이 스킬은 제품 런칭 영상에 브랜드 정체성을 정확히 반영하기 위해 설계되었습니다. 사용자의 리포지토리에서 Tailwind CSS 설정, CSS 변수, shadcn/ui 토큰, Next.js 폰트, 로고 SVG 등 실제 브랜드 토큰을 추출하고, 부족한 부분은 라이브 URL에서 계산된 스타일이나 사용자 제공 스크린샷의 픽셀 샘플링으로 보충합니다. 수집된 모든 값은 films/<slug>/brand.json 파일에 출처와 함께 저장되며, Claude Code, Cursor, Codex 등 주요 AI 에이전트 플랫폼과 호환됩니다. 핵심 원칙은 추측하지 않고 실제 데이터만 사용하는 것으로, 로고나 색상이 없으면 절대 임의로 생성하지 않고 사용자에게 요청합니다. 또한 brand.json은 하위 스킬들이 장면 그래이딩, 카피 작성 등에서 참조할 수 있는 유일한 브랜드 데이터 소스 역할을 합니다.

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

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

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

문서

brand-intake: 실제 토큰을 입력으로, brand.json을 출력으로

영화는 제품처럼 보여야 하므로, 토큰은 제품에서 가져오며 절대 취향에서 가져오지 않습니다. 출처 순서: 첫 번째로 필드 값을 제공하는 출처에서 멈추고, 각 값이 어디서 왔는지 기록합니다.

  1. 사용자 리포지토리 (최상: 정확한 토큰, 실제 폰트 이름, 실제 로고 파일).
  2. 라이브 URL (계산된 스타일, 메타 태그, 헤더 SVG).
  3. 사용자가 제공한 스크린샷 (픽셀 샘플링).
  4. 사용자에게 누락된 항목을 묻습니다. 절대 추측하지 마세요.

출력 (launch-video/ 기준 경로): films/<slug>/brand.json, films/<slug>/BRAND-SOURCES.md, 그리고 로고 파일은 그대로 public/films/<slug>/brand/에 복사됩니다 (씬에서 staticFile()로 로드). 추출 레시피: references/sources.md. 필드 매핑, 폰트 폴백, 대비 계산: references/brand-json.md.

단계

  1. 제품 루트를 찾습니다. launch-video/가 제품 리포지토리 안에 있으면 리포지토리 루트는 한 단계 위입니다. 그렇지 않으면 URL과 스크린샷을 요청합니다. 스택을 확인합니다: package.json 의존성 (tailwindcss 버전, next, @fontsource/*, shadcn).
  2. 리포지토리에서 색상을 가져옵니다. 순서대로: Tailwind v4 CSS의 @theme 변수, Tailwind v3 tailwind.config.{js,ts,cjs,mjs}의 theme.extend.colors, globals.css의 shadcn 토큰 (--background, --foreground, --primary, --muted, --card, --accent), 기타 :root 사용자 정의 속성. HSL/OKLCH/RGB를 6자리 16진수로 변환합니다. 마케팅 사이트가 사용하는 테마(어둡거나 밝음)를 사용하고, 둘을 혼합하지 마세요.
  3. 리포지토리에서 폰트를 가져옵니다. next/font/google 또는 next/font/local 임포트, @fontsource* 의존성, @font-face, body/html/h1의 font-family, Tailwind fontFamily. 실제 사용된 패밀리 이름과 두께를 기록합니다.
  4. 리포지토리에서 로고를 가져옵니다. SVG 먼저 찾습니다: public/logo*.svg, public/*mark*.svg, app/icon.svg, public/favicon.svg, src/assets/*logo*, src/components/*Logo* (인라인 JSX SVG: <svg> 추출), 그 다음 ≥ 512 px PNG (apple-touch-icon.png는 180 px: 마크용 최후의 수단, 워드마크는 절대 안 됨). 수정하지 않고 public/films/<slug>/brand/로 복사합니다.
  5. 반경과 테마. --radius 또는 Tailwind borderRadius; 테마 = bg 상대 휘도 < 0.2이면 어두움(dark).
  6. 라이브 URL에서 빈 곳을 채웁니다 (references/sources.md § live URL): theme-color 메타, og:image, link rel=icon, 헤더 인라인 SVG, body, 기본 버튼, h1의 계산된 스타일.
  7. 스크린샷에서 빈 곳을 채웁니다: 명명된 지점(페이지 배경, 본문 텍스트, 기본 버튼, 카드)에서 픽셀을 샘플링합니다. BRAND-SOURCES.md에 픽셀 좌표를 기록합니다.
  8. 이름, 태그라인, URL: package.json의 name/description, 사이트 <title>, 히어로 h1, og:description, README 첫 줄에서 가져옵니다. 사용자의 고유한 단어를 사용하며, 여기서 새 태그라인을 작성하지 않습니다(스토리가 카피를 담당).
  9. 배송 또는 로드할 수 없는 폰트를 배송된 OFL 폰트로 역할별로 매핑하고(brand-json.md § fonts) 그렇게 명시합니다.
  10. 대비 확인 (brand-json.md § contrast): 배경 위의 전경 ≥ 4.5:1 필요 (목표 7:1), 배경 위의 강조색 ≥ 3:1. 숫자를 기록합니다. 강조색 실패 → 그 위의 텍스트에는 fg를 사용하고, 강조색은 도형용으로 유지합니다.
  11. brand.json을 작성한 후, schemas/brand.schema.json이 있으면 검증합니다: npx -y -p ajv-cli@5 -p ajv-formats ajv validate --spec=draft2020 -c ajv-formats -s schemas/brand.schema.json -d films/<slug>/brand.json
  12. BRAND-SOURCES.md를 작성합니다: 각 값마다 한 줄 → 출처 (파일:라인, URL + 선택자, 또는 스크린샷 + x,y).
  13. 사용자에게 6줄 요약(이름, 테마, 6개 견본(16진수), 폰트, 로고 파일, 매핑되거나 질문된 항목)을 보여줍니다.

하드 스톱 (파이프라인을 계속하지 마세요)

상황수행절대 하지 않기
리포지토리, 사이트 또는 스크린샷에 로고 파일 없음"로고를 SVG(최상) 또는 투명도를 가진 512 px 이상 PNG로 보내주세요."라고 요청로고를 그리거나, 추적하거나, 생성하거나, 근사하지 않기
로고가 작은 파비콘만 있음더 큰 파일 요청32 px 파비콘을 히어로 마크로 업스케일하지 않기
캡처된 색상 없음 (리포지토리 접근 불가, 사이트 차단, 스크린샷 없음)URL 또는 2~3개의 스크린샷, 또는 16진수 코드 요청"멋진" 색상이나 기본 팔레트 선택하지 않기
충돌하는 팔레트 (앱 vs 마케팅)영화가 어떤 것을 사용해야 하는지 질문; 기본값은 마케팅 사이트 사용혼합하지 않기
로고가 없어 사용자가 텍스트 워드마크를 원함명시적 "예"가 있는 경우에만 허용: 디스플레이 폰트의 제품 이름, 전경색로고로 제시하지 않기

규칙

  • 로고 파일을 바이트 단위로 그대로 복사합니다. 사용자가 요청하지 않는 한 로고를 색상 변경, 자르기 또는 "정리"하지 마세요.
  • 사용자의 허가 없이 다른 회사의 로고나 사용자의 고객 로고를 절대 사용하지 마세요.
  • 라이선스가 리포지토리로의 재배포를 금지하는 출처(Satoshi 또는 General Sans와 같은 Fontshare FFL 서체, Apple SF Pro)에서 폰트를 가져오지 마세요: 매핑합니다 (brand-json.md § fonts).
  • brand.json은 공개 제품 이름과 URL 외에 비밀이나 개인 데이터를 보유하지 않습니다.
  • 인테이크를 다시 실행하면 출처가 변경된 필드만 덮어씁니다. 사용자가 직접 편집한 필드는 유지합니다(먼저 diff).
  • 하위 스킬은 brand.json만 읽습니다. 씬에 브랜드 16진수 값을 하드코딩하지 마세요 [craft/06#grade-discipline].

Individual skills in this repo

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

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

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.

관련 스킬