brand-intake: 실제 토큰을 입력으로, brand.json을 출력으로
영화는 제품처럼 보여야 하므로, 토큰은 제품에서 가져오며 절대 취향에서 가져오지 않습니다. 출처 순서: 첫 번째로 필드 값을 제공하는 출처에서 멈추고, 각 값이 어디서 왔는지 기록합니다.
- 사용자 리포지토리 (최상: 정확한 토큰, 실제 폰트 이름, 실제 로고 파일).
- 라이브 URL (계산된 스타일, 메타 태그, 헤더 SVG).
- 사용자가 제공한 스크린샷 (픽셀 샘플링).
- 사용자에게 누락된 항목을 묻습니다. 절대 추측하지 마세요.
출력 (launch-video/ 기준 경로): films/<slug>/brand.json, films/<slug>/BRAND-SOURCES.md, 그리고 로고 파일은 그대로 public/films/<slug>/brand/에 복사됩니다 (씬에서 staticFile()로 로드).
추출 레시피: references/sources.md. 필드 매핑, 폰트 폴백, 대비 계산: references/brand-json.md.
단계
- 제품 루트를 찾습니다.
launch-video/가 제품 리포지토리 안에 있으면 리포지토리 루트는 한 단계 위입니다. 그렇지 않으면 URL과 스크린샷을 요청합니다. 스택을 확인합니다:package.json의존성 (tailwindcss 버전, next, @fontsource/*, shadcn). - 리포지토리에서 색상을 가져옵니다. 순서대로: Tailwind v4 CSS의
@theme변수, Tailwind v3tailwind.config.{js,ts,cjs,mjs}의theme.extend.colors,globals.css의 shadcn 토큰 (--background,--foreground,--primary,--muted,--card,--accent), 기타:root사용자 정의 속성. HSL/OKLCH/RGB를 6자리 16진수로 변환합니다. 마케팅 사이트가 사용하는 테마(어둡거나 밝음)를 사용하고, 둘을 혼합하지 마세요. - 리포지토리에서 폰트를 가져옵니다.
next/font/google또는next/font/local임포트,@fontsource*의존성,@font-face,body/html/h1의font-family, TailwindfontFamily. 실제 사용된 패밀리 이름과 두께를 기록합니다. - 리포지토리에서 로고를 가져옵니다. 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/로 복사합니다. - 반경과 테마.
--radius또는 TailwindborderRadius; 테마 = bg 상대 휘도 < 0.2이면 어두움(dark). - 라이브 URL에서 빈 곳을 채웁니다 (
references/sources.md§ live URL): theme-color 메타,og:image,link rel=icon, 헤더 인라인 SVG,body, 기본 버튼,h1의 계산된 스타일. - 스크린샷에서 빈 곳을 채웁니다: 명명된 지점(페이지 배경, 본문 텍스트, 기본 버튼, 카드)에서 픽셀을 샘플링합니다. BRAND-SOURCES.md에 픽셀 좌표를 기록합니다.
- 이름, 태그라인, URL:
package.json의name/description, 사이트<title>, 히어로h1,og:description, README 첫 줄에서 가져옵니다. 사용자의 고유한 단어를 사용하며, 여기서 새 태그라인을 작성하지 않습니다(스토리가 카피를 담당). - 배송 또는 로드할 수 없는 폰트를 배송된 OFL 폰트로 역할별로 매핑하고(brand-json.md § fonts) 그렇게 명시합니다.
- 대비 확인 (brand-json.md § contrast): 배경 위의 전경 ≥ 4.5:1 필요 (목표 7:1), 배경 위의 강조색 ≥ 3:1. 숫자를 기록합니다. 강조색 실패 → 그 위의 텍스트에는
fg를 사용하고, 강조색은 도형용으로 유지합니다. 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.jsonBRAND-SOURCES.md를 작성합니다: 각 값마다 한 줄 → 출처 (파일:라인, URL + 선택자, 또는 스크린샷 + x,y).- 사용자에게 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].