Community코딩 & 개발github.com

Swap Brand

판매할 제품에 고유한 정체성을 부여하고, 코드에서 원본의 흔적을 검사합니다. 두 단계로 구성됩니다: 초기 단계(상표 및 도메인 확인을 위한 이름 후보 제안, 팔레트, 톤앤매너, 로고 브리프)와 출시 전 코드의 텍스트 파일에서 원본의 이름, 도메인, 색상을 식별자 내부까지 검사하는 스윕(sweep)이며, 모두 발견되지 않을 때까지 배포를 차단합니다. 스윕은 제한된 토큰 검사로서 원본이 완전히 제거되었음을 증명하지는 않습니다. 이미지, 글꼴, hsl() 및 명명된 색상은 수동 확인이 필요합니다. '이 제품의 이름을 지어줘', '클론을 리브랜딩해줘', '원본의 잔재를 확인해줘', '브랜드 스윕', '충분히 다른가요' 등에 사용하세요. swap 시리즈의 전체(판매) 트랙입니다. 디자인 토큰을 구축하는 데는 사용하지 말고 swap-design을 사용하세요. 랜딩 페이지나 스토어 리스팅을 작성하는 데는 사용하지 말고 swap-launch를 사용하세요.

Swap Brand란 무엇인가요?

Swap Brand는 제품에 고유한 브랜드 정체성을 부여하고 출시 전 코드에서 원본의 흔적을 기계적으로 검사하는 AI 에이전트 스킬입니다. 이 스킬은 두 가지 주요 단계로 구성됩니다: 첫 번째는 제품의 각도(angle)와 시장 조사 결과를 바탕으로 5개의 이름 후보를 제안하고 상표/도메인/앱스토어/웹 검색 확인 목록을 제공하며, 원본과 구별되는 팔레트, 톤앤매너, 로고 브리프를 작성하는 정체성(identity) 단계입니다. 두 번째는 출시 직전에 코드의 텍스트 파일을 스캔하여 원본의 이름, 도메인, 색상 값(식별자 내부 포함)을 찾아내고 모두 제거될 때까지 배포를 차단하는 스윕(sweep) 단계입니다. 스윕은 Python 스크립트로 실행되며, 이미지나 바이너리 파일 등 읽을 수 없는 파일은 수동 확인이 필요함을 명시합니다. Cursor, Claude Code, Codex 등 AI 에이전트 플랫폼에서 작동하며, swap 시리즈 중 전체 판매 트랙의 핵심 스킬로 swap-market과 swap-recon의 출력을 입력으로 받고, 완료 시 swap-architect, swap-design, swap-launch로 연결됩니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/immy1991/swap-skill/tree/main/swap-brand

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

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

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

문서

Swap Brand은(는) 무엇을 하나요?

목적

제품이 명백히 자기 자신의 것임을 보장합니다: 초기에 새 이름, 디자인, 톤앤매너를 결정하고, 출시 전 코드의 텍스트 파일에서 원본의 이름, 도메인, 색상을 기계적으로 검사합니다. 이는 제한된 검사이지 완전한 증명이 아닙니다: 스크립트가 읽을 수 없거나 검색 대상이 아닌 것은 여전히 사람의 확인이 필요합니다.

전체(판매) 트랙, 5단계(정체성) 및 12단계(스윕). swap/market.md, swap/recon.md를 읽고; swap/brand.md, swap/sweep.json을 씁니다.

컨텍스트 라우팅 테이블

출처위치추출할 내용
시장 조사swap/market.md각도, 대상 고객, 입증된 차별점
정찰swap/recon.md원본의 이름, 도메인, 브랜드 색상 (피해야 할 것)
사용자사용자의 선호도, 기존 브랜드, 소유한 도메인제약 조건과 취향
코드제품 저장소스윕이 검사할 대상

빠른 시작

정체성 단계: 1) 정찰 결과에서 피해야 할 사항을 나열합니다; 2) 각도와 연결된 5개의 이름 후보를 제안합니다; 3) 각 후보에 대해 실행해야 할 확인 사항을 제시합니다; 4) 팔레트, 톤앤매너, 로고 브리프를 설정합니다; 5) swap/brand.md를 작성합니다. 스윕 단계: 프로젝트 루트에서 python3 -I <skill-folder>/scripts/sweep.py <repo> --avoid "<원본 이름>" --domain <원본 도메인> --color "<원본 색상>" --exclude swap --json swap/sweep.json을 실행하고 (는 이 스킬의 폴더입니다), 모든 적중 항목을 수정한 후 CLEAN이 나올 때까지 다시 실행합니다.

워크플로우

  1. 먼저 피해야 할 목록. 정찰 결과에서: 원본의 이름 및 모든 제품 이름, 해당 도메인, 브랜드 색상, 독특한 태그라인. 이들을 brand.md의 ## Avoid 아래에 작성합니다; 스윕은 이 파일을 읽지 않으므로 각 항목을 --avoid, --domain, --color 플래그로 명시적으로 전달하세요.
  2. 이름 후보 (5개). 각각: 이름, 그 뒤에 숨은 아이디어, 그리고 고객이 원본과 혼동하지 않을 이유. 원본의 이름을 포함하거나, 축약하거나, 비슷한 발음의 이름은 안 됩니다. 원본 이름에 기반한 "X for Y"식 이름도 안 됩니다.
  3. 사용자가 커밋 전에 실행할 확인 사항 (Claude는 가용성을 확인할 수 없음): 사용자 시장의 상표 검색(국가 등록부 및 국제 등록부), 도메인 및 소셜 핸들 확인, 앱스토어 이름 검색, 이름과 카테고리를 함께 사용한 일반 웹 검색. 각각의 날짜와 결과를 기록합니다. 충돌이 발견되면 해당 후보는 제거됩니다.
  4. 정체성. 원본과 명확히 다른 팔레트(다른 색상 계열, 원본의 색조 변형이 아닌), 오픈 소스 또는 라이선스 폰트 중에서 선택한 타입 페어링, 각각 '할 일'과 '하지 말아야 할 일'이 포함된 5가지 규칙의 톤앤매너, 사용자나 디자이너가 실행할 로고 브리프. 원본의 모양이나 컨셉을 모방하는 로고를 설명하지 마십시오.
  5. 스윕 (출시 전, 그리고 마지막 코드 변경 후 다시). 피해야 할 목록과 함께 실행합니다. 식별자 내부(OriginalAppEmbed, original_app), 도메인, 16진수 및 rgb 색상 값, 파일 또는 폴더 이름에서 이름을 찾습니다. 숨기지 않고 교체하여 수정합니다. 무해한 긴 단어에 대해서만 --allow를 사용하고 각 사용처를 brand.md에 나열합니다. 스윕은 일치하는 텍스트, 파일 및 줄 번호만 출력하며 줄의 나머지 부분은 출력하지 않습니다.
  6. 코드 외부. 스윕은 텍스트 파일만 읽습니다. 이미지, 글꼴, 아카이브, 2MB 초과 파일 및 읽을 수 없는 파일은 스캔되지 않은 것으로 나열되며, 이러한 파일이 존재하는 한 실행은 CLEAN이 아닙니다. 각각을 수동으로 확인(스크린샷, 샘플 데이터, 메타데이터, 이메일 템플릿, 대체 텍스트)한 후 --accept-skipped를 사용하여 다시 실행합니다. 이 플래그는 사용자가 확인했음을 sweep.json에 기록합니다. --accept-skipped는 적중 항목을 절대 숨기지 않습니다.

반-합리화

Claude가 생각할 수 있는 것그것이 잘못된 이유
"클린룸 빌드이므로 리브랜딩이 필요 없습니다"클린룸은 코드에 대한 것입니다. 고객을 혼동시키는 이름이나 디자인은 별개의 문제입니다.
"원본과 비슷하면 사람들이 우리를 더 쉽게 찾을 수 있습니다"혼동을 일으킬 만한 유사성은 상표권 위험입니다. 의도적으로 구별되게 하십시오.
"스윕이 주석만 찾았으니 무시해도 됩니다"원본을 언급하는 주석은 번들에 포함되어 배송됩니다. 제거하십시오.
"이름이 사용 가능한지 확인했습니다"사용자가 등록부 검색을 해야만 알 수 있습니다. 누가 언제 실행했는지 기록하십시오.
"이미지와 스크린샷은 건너뜁니다"스윕은 이를 읽을 수 없습니다. 직접 확인하고 확인했음을 명시하십시오.

출력 형식

정확히. swap/brand.md의 제목 순서: ## Avoid, ## Name candidates (각각 아이디어와 실행된 확인 사항, 날짜 및 결과 포함), ## Chosen name, ## Palette and type, ## Voice, ## Logo brief, ## Sweep log (각 실행: 명령어, 적중 수, 수정 사항). swap/sweep.json은 스크립트 출력을 수정하지 않은 그대로입니다.

참고 출력 (예시, 축약):

## Chosen name
Skyline. 상표 검색 (영국, EU, 미국): 아직 실행되지 않음. 도메인 및 스토어 이름 검색: 아직 실행되지 않음.

## Sweep log
Run 1: 적중 7개 (이름 x4, 도메인 x1, 색상 x1, 경로 x1). 모두 교체.
Run 2: CLEAN, 4개 파일 스캔, 0개 미스캔.

규칙

  • 원본의 이름, 팔레트, 로고, 단어. 어떤 형태로든 원본의 로고, 상표, 카피 또는 자산을 사용하지 마십시오.
  • 이름이 사용 가능하거나 등록 가능하다고 주장하지 마십시오; 이는 사용자의 확인과 변호사의 판단이 필요한 사항입니다.
  • sweep.json을 수동으로 편집하지 마십시오.

스킬 간 라우팅

정체성 선택됨 -> swap-architect -> swap-design (여기서 팔레트를 가져옴). 스윕 CLEAN -> swap-launch. 제품에 벤더 소유 자산이 있어 스윕이 통과되지 않는 경우 -> 자산을 제거하십시오; 허용 목록에 추가하지 마십시오.

종료 체크리스트

증거와 함께 증명 블록을 제시하고, 그렇지 않으면 "확인할 수 없음"이라고 표시합니다.

정체성 단계 (코드가 있기 전):

  • ## Avoid에 원본의 이름, 도메인 및 하나 이상의 브랜드 색상이 나열되어 있음
  • 모든 이름 후보에 대해 네 가지 확인 사항이 날짜와 함께 기록되어 있거나 "아직 실행되지 않음"이라고 명시되어 있음
  • 팔레트, 톤앤매너 및 로고 브리프가 작성되었고 원본과 다름

스윕 단계 (출시 전, 마지막 코드 변경 후 다시):

  • swap/sweep.json의 "passed" 값이 true이며, 마지막 코드 변경 이후 실행되었음
  • 스윕 명령어에 --exclude swap이 사용되었거나 (노트가 없는 트리를 스캔한 경우); 스캔되지 않은 모든 파일을 수동으로 확인했고 skipped_accepted가 true이거나 목록이 비어 있음
  • 모든 --allow 사용이 스윕 로그에 나열되어 있음
  • 스크린샷, 카피 및 메타데이터를 수동으로 확인했고 스윕이 이를 읽을 수 없다고 사용자에게 알렸음

자기 개선

각 실행 후, 한 번 묻습니다: "이 스킬에 대해 기록할 피드백이 있습니까?" 침묵 또는 '아니오'는 변경 사항이 없음을 의미합니다. '예'인 경우: 패턴을 초안으로 작성하고, 보여주고, '예'라는 응답이 있을 때만 references/learnings.md에 추가합니다; "스킬 업데이트"는 정확한 편집 내용을 보여주고, 확인하고, 작성하고, metadata.version을 올리고 한 줄을 기록합니다. 캡처된 세션과 동일한 세션에서 기록된 패턴을 이 파일로 승격시키지 마십시오. 첫 번째 실행 후, 사용된 번들 파일과 처음부터 빌드되어 다시 필요할 모든 것을 명명하고, 저장을 제안합니다 (동일한 방식으로 게이트됨).

관련 스킬