브랜드 레퍼런스 팩은(는) 무엇을 하나요?
팩은 맥락이지, 콘텐츠가 아닙니다. 이미 존재하는 브랜드(대상, 보이스, 시각 언어, 토큰, 그리고 각 주장의 근거가 된 화면과 카피)를 기록하여, 이후 포맷, 스크립트, 디자인 결정이 이 팩을 기반으로 이루어질 수 있도록 합니다. 팩에는 후크, 스크립트, 시리즈가 포함되지 않습니다. 출처가 그러한 것을 제안한다면 출처를 기록하고 결정은 열어둡니다.
위치:
상위(전략) ──→ 이 스킬(관찰된 브랜드) ──→ 하위(포맷, 스크립트, 릴스)
ICP · VOC · 브랜드 보이스 서피스가 보여주는 것 스크립트→릴, 셰이더-랩
이 스킬은 ICP, VOC, 브랜드 보이스를 새로 만들지 않습니다. 상위 산출물을 찾고, 서피스가 그와 일치하는지 확인한 후, 각각을 verified / inferred / missing으로 표시합니다(팩 §0). 차이는 상위로 다시 보냅니다. 여기서 덮지 마세요.
파일:
template.md: 팩의 섹션 구조scripts/: 일반적인 캡처 및 렌더링 도우미apps/<app>/: 각 앱의 폴더 (URL, 흐름 레시피, 특이사항, 프로덕션 규칙, PDF 레이아웃 포함)- 먼저
apps/<app>/README.md를 읽으세요. 새 앱이라면 인테이크 중에 생성하세요.
- 먼저
명령어는 이 스킬 폴더(.claude/skills/brand-reference-pack/) 기준으로 작성되며, 출력 경로는 실제 실행 위치에 상대적입니다. 프로젝트 루트에서 실행하고 scripts/ 앞에 스킬 경로를 접두사로 붙이세요. pack_pdf.py는 스킬 기준으로 자체 설정을 해석합니다.
0. 인테이크 (새 앱 전용, 단일 AskUserQuestion 라운드)
다음을 수집합니다:
- 앱 이름
- 웹사이트 URL
- 소셜 핸들
- 앱스토어 ID 및 국가 (Play 패키지 ID, 해당 시)
- 앱 실행 방법: 시뮬레이터 빌드, TestFlight, 웹 앱, 에뮬레이터
- 코드 저장소 경로 (있는 경우)
- 기존 브랜드, ICP 또는 연구 문서
- 핵심 흐름
- 프로덕션에서 금지된 사항
- 출력 폴더
답변을 apps/<app>/README.md에 작성합니다.
1. 기반 검토 (ICP, VOC, 브랜드 보이스)
각 기반 요소에 대해 상위 산출물(위키, 문서 폴더, 리서치 덱, 브랜드 북)을 찾습니다.
- ICP: 데이터나 리서치에 기반한 정의된 타겟 고객. 신뢰도와 표본 크기를 기록합니다.
- VOC (고객의 목소리): 인터뷰, 리뷰, 고객 지원, 커뮤니티에서 얻은 고객의 실제 말. 브랜드 자체 사이트의 사용 후기는 약한 증거(큐레이팅됨)로만 간주합니다.
- 브랜드 보이스: 문서화된 보이스 가이드 또는 카피 규칙.
각각을 팩의 §0 표에 기록합니다. 2-5단계를 거치며 라이브 서피스가 일치하는지 확인합니다. 불일치는 '열린 결정'으로 보냅니다. 산출물이 없으면 그렇게 명시하고 이를 보완할 상위 작업을 지명합니다. 서피스에서 기반을 발명하지 마세요.
2. 공개 서피스 (가능한 병렬로)
모든 주장은 refs/ 아래 파일이 필요합니다.
웹사이트:
node scripts/site.mjs <url> <brand>/refs/web
이 명령어는 데스크톱 및 모바일용 전체 화면 및 히어로 스크린샷, site-styles.json(글꼴(호스트 ID 뒤의 실제 이름 포함), 색상, 이미지, 링크, 페이지 텍스트)을 저장합니다. 전체 페이지 샷을 약 4부분으로 나누어 읽습니다.
앱스토어:
node scripts/store.mjs <id> <brand>/refs/store [country]
이 명령어는 리스팅(공식 포지셔닝), 스토어 스크린샷, 리뷰를 원시 VOC 자료로 저장합니다.
소셜 미디어 (내장 브라우저에서):
- 선택적 쿠키는 거절합니다.
- 그리드: 각 게시물의 이미지
src와alt를 수집하여 캔버스에 그리고, 캔버스로 페이지를 대체한 후 스크린샷을 찍습니다. - 캡션: 각 게시물 페이지를 동일 출처 fetch →
og:description. - 로그아웃 상태에서는 약 12개의 게시물만 볼 수 있습니다. 그렇게 명시하고, 릴스가 중요하다면 사용자에게 로그인하거나 내보내기를 요청합니다.
- 릴스를 얻었다면 속도, 캡션 스타일, 오디오를 기록합니다.
- 모든 것을
refs/<platform>/에 작성합니다.
기존 문서: Explore 서브에이전트를 사용하여 대상, 약속, 용어, 보이스 규칙, 주장을 파일 인용과 함께 종합합니다.
3. 코드 토큰 (저장소가 있는 경우)
Explore 서브에이전트를 사용하여 앱이 사용하는 프레임워크의 테마를 찾습니다:
- Flutter
ThemeData및 색상 상수 - Tailwind config
- CSS 변수
- iOS 애셋 카탈로그
- Android
colors.xml
글꼴, 라디우스, 모션 컨벤션, 셰이더, 로고 파일, 주목할만한 UI 카피도 포함합니다. Hex 값을 반드시 직접 확인합니다. tokens.json에 색상 역할, 타입 스케일(1080×1920 기준), 형태, 모션, 캔버스를 작성합니다.
앱 내 카피: 페르소나 브레인(7단계)을 위해 모든 사용자 대상 문자열을 UI 코드에서 추출합니다(파일:줄 번호 포함, 정확히 그대로):
python3 scripts/app_copy.py <소스 루트> <페르소나>/raw/app-copy/app-copy-<날짜>.md <UI 디렉토리/파일…>
(Flutter: app/lib + pages widgets constants models enums main.dart; 다른 스택은 --ext=.tsx 등). 로그, 키, ID는 필터링합니다. 브레인에 들어가기 전에 출력에서 비밀 정보가 있는지 훑어보세요.
4. 라이브 앱 워크
가장 풍부한 출처: 제품의 실제 시각적·언어적 문법이 드러나는 곳입니다.
- 동의 먼저: 실행이 프로덕션에 기록하는 내용(계정, 평가 답변, 생성된 보고서, 완료 상태)을 정확히 명시하고 승인을 받으세요. 사용자는 모든 가입 및 로그인을 직접 수행합니다. 절대 자격 증명을 입력하지 말고, 절대 구독하지 말고, 절대 AI 코치에게 메시지를 보내지 마세요.
- 관찰 및 녹화: 시뮬레이터 패널을 연결합니다(
mcp__Claude_Code_iOS_Simulator__control attach).- 백그라운드에서
xcrun simctl io <UDID> recordVideo --codec=h264 --force <파일>을 시작합니다. - 로그인 중에는 중지하고 이후 다시 시작하여 불필요한 부분이 없도록 합니다.
pkill -INT -f recordVideo로 중지합니다.
- 백그라운드에서
- 좌표가 아닌 접근성 레이블로 구동:
UDID=… OUT=<브랜드>/refs/app scripts/ui.sh tree|shot|label|tap|swipe|hold.- 각 새 화면의 스크린샷을 찍고, 해당 화면의 제목을 파일명으로 사용합니다.
- 애니메이션과 CMS 카피가 안정화될 때까지 기다린 후 촬영합니다. 아직 렌더링되지 않은 줄은 "캡처되지 않음"으로 표시합니다.
- 각 단계별 콘택트 시트를 만들고(PIL, 몇 줄), 각 PNG 대신 그 시트를 읽습니다.
- 앱의 레시피(
apps/<app>/README.md)를 따릅니다. 발견한 새로운 특이사항을 추가합니다. - 오디오: 시뮬레이터 녹화에는 오디오가 없습니다. 앱에 음성이나 오디오가 있다면 사용자에게 소스 파일을 요청합니다.
- 이후:
- 캡처 순서대로 스크린샷 번호를 다시 매깁니다.
refs/app-flow-sheet.jpg를 생성합니다.- 녹화본을 압축합니다:
scale=540:-2,fps=30,crf 26.
5. 팩 작성
template.md를 <브랜드>/README.md에 채웁니다.
- 본인이 본 것만 인용합니다.
- 서피스 간 불일치가 있을 경우, 가장 최신의 라이브 서피스를 기본값으로 사용하고 불일치는 '열린 결정'에 기록합니다.
- §0은 1단계에서 가져옵니다.
6. 검증
새로운 서브에이전트에게 귀하의 결론이 아닌 README와 refs/ 폴더를 전달합니다. 인용된 모든 줄, hex 값, 주장을 파일과 대조하고, 출처가 없는 항목을 나열하도록 요청하세요. 각 항목을 수정하거나 표시한 후 반환합니다.
7. 출력
- PDF:
apps/<app>/pdf.json을 작성합니다(GetAhead 것 복사: 커버, 글꼴, 악센트, 팔레트 그룹(토큰.json 참조), 샘플 줄, 스크린샷 페이지). 그런 후 실행:
결과를python3 scripts/pack_pdf.py apps/<app>/pdf.jsonpdftoppm -r 40콘택트 시트로 확인합니다. - 문서: 프로젝트에 위키나 문서가 있다면 해당 규칙(페이지, 색인, 로그, 대체되는 페이지에 모순 플래그)에 따라 팩을 제출합니다.
- 페르소나 브레인: 프로젝트에 페르소나 브레인(예:
persona/, 스크립트 생성을 위한 브랜드-인간 브레인)이 있다면 앱 워크의 캡처를raw/app-run-<날짜>/에, 앱 내 카피를raw/app-copy/에 복사하고(사용자 동의와 함께:raw/는 그들의 것임), 브레인의 자체 수집 워크플로(CLAUDE.md)를 실행합니다: 소스 페이지, 개념 페이지, 브랜드 앱 라인을 포함한 카드 재구축. 팩은 브랜드의 모습을 기록하고 브레인은 브랜드의 말하는 방식을 기록합니다 — 스크립트는 브레인을 참조합니다. - 전송: PDF와 README를 SendUserFile로 전송합니다.
- 보고서:
- 프로덕션에 기록된 내용
- 캡처되지 않은 내용
- 기반 상태
- 열린 결정