Communityコーディング&開発github.com

スワップ・ブランド

販売する製品に独自のアイデンティティを与え、コード内に元の製品の痕跡がないかスキャンします。名前の候補提案(商標・ドメイン確認、パレット、ボイス、ロゴ概要)と、ローンチ前に行うコード内のテキストファイル(識別子を含む)から元の名前、ドメイン、色を検索し、デプロイをブロックするスイープの2フェーズで構成されます。

スワップ・ブランド とは?

Swap Brand は、製品に完全に独自のブランド・アイデンティティを構築するためのAIエージェントスキルです。`swap-market` および `swap-recon` からの情報を基に、元の製品と混同されない新しい名前、視覚スタイル、トーン・オブ・ボイスを早期に決定する「Identity」フェーズと、ローンチ前にコードベース内のテキストファイル(識別子、ファイル名を含む)から元の製品の名前・ドメイン・色が残っていないかを機械的にスキャンする「Sweep」フェーズで構成されます。主にClaude Codeなどの開発エージェント向けに設計されており、ユーザーは「この製品に名前をつけて」「クローンをリブランドして」「元の残骸がないかチェックして」などの自然言語指示で利用できます。スイープはトークン数に制限のあるスキャンであり、画像やフォント、hsl() や名前付き色は手動確認が必要です。`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(Identity)およびステップ12(Sweep)。swap/market.md、swap/recon.md を読み込み、swap/brand.md、swap/sweep.json を書き出します。

コンテキストルーティングテーブル

ソース場所抽出する内容
マーケットswap/market.mdアングル、ターゲットオーディエンス、裏付けのあるギャップ
Reconswap/recon.md元の製品の名前、ドメイン、ブランドカラー(避けるべきもの)
ユーザーユーザーの好み、既存ブランド、所有ドメイン制約と好み
コード製品リポジトリスイープがスキャンするもの

クイックスタート

Identity フェーズ: 1) Recon から避けるべきものをリストアップ; 2) アングルに紐づく5つの名前候補を提案; 3) 各候補に対して実行すべきチェックを提示; 4) パレット、ボイス、ロゴ概要を設定; 5) swap/brand.md に書き出す。 Sweep フェーズ: プロジェクトルートから以下のコマンドを実行: python3 -I <skill-folder>/scripts/sweep.py <repo> --avoid "<元の名前>" --domain <元のドメイン> --color "<元の色>" --exclude swap --json swap/sweep.json(<skill-folder> はこのスキルのフォルダ)、すべてのヒットを修正し、CLEAN になるまで再実行する。

ワークフロー

  1. 最初に回避リストを作成。 Recon から: 元の製品名、製品名、ドメイン、ブランドカラー、特徴的なタグライン。これらを brand.md の ## Avoid セクションに書き込む。スイープはこのファイルを読み込まないため、各項目を --avoid、--domain、--color フラグで明示的に渡す。
  2. 名前候補(5つ)。 各候補: 名前、その背後にあるアイデア、なぜ顧客が元の製品と混同しないか。元の製品の名前を含む、省略形、類似音の名前は不可。元の製品名を使った「X for Y」型の名前も不可。
  3. ユーザーがコミット前に実行するチェック(Claudeは可用性を確認できません): ユーザーの市場における商標検索(国内登録および国際登録)、ドメインおよびソーシャルハンドルの確認、アプリストア名の検索、名前とカテゴリを含む一般的なウェブ検索。各チェックの日付と結果を記録する。競合が見つかった場合、その候補は削除する。
  4. アイデンティティ。 元の製品とは明らかに異なるパレット(異なる色相ファミリー、色調を変えただけではない)、オープンソースまたはライセンスフォントからのタイプペアリング、Do/Don'tを各5つ含むボイスルール、ユーザーまたはデザイナーが実行するロゴ概要。元の製品の形状やコンセプトを模倣するロゴを説明してはならない。
  5. スイープ(ローンチ前、および最後のコード変更後)。 回避リストを使用して実行する。識別子内の名前(OriginalAppEmbed、original_app)、ドメイン、hex/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 hits(名前 x4、ドメイン x1、色 x1、パス x1)。すべて置き換え。
Run 2: CLEAN、4ファイルスキャン、0ファイル未スキャン。

ルール

  • 元の名前、パレット、ロゴ、言葉。元のロゴ、商標、コピー、アセットをいかなる形式でも使用してはならない。
  • 名前が利用可能または登録可能であると主張してはならない。それはユーザーの確認と弁護士の判断事項である。
  • sweep.json を手動で編集してはならない。

スキル間ルーティング

Identity 決定 → swap-architect、次に swap-design(ここからパレットを受け取る)。スイープ CLEAN → swap-launch。製品にベンダー所有のアセットが含まれているためにスイープが通らない場合 → そのアセットを削除する。許可リストに追加してはならない。

出口チェックリスト

証拠を示してブロックを証明。それができない場合は「確認できませんでした」と記載。

Identity フェーズ(コードが存在する前):

  • ## Avoid に元の名前、ドメイン、少なくとも1つのブランドカラーが記載されている
  • 各名前候補に対して4つのチェックが日付付きで記録されているか、「未実行」と記載されている
  • パレット、ボイス、ロゴ概要が記載されており、元のものと異なる

Sweep フェーズ(ローンチ前、および最後のコード変更後):

  • swap/sweep.json で "passed": true である。最後のコード変更後に実行した結果であること
  • スイープコマンドに --exclude swap が使用されている(またはメモがないツリーをスキャンした)。未スキャンファイルはすべて手動確認され、skipped_accepted が true であるか、リストが空である
  • すべての --allow 使用がスイープログにリストされている
  • スクリーンショット、コピー、メタデータを手動確認し、スイープが読み取れないことをユーザーに伝えた

自己改善

各実行後、一度だけ質問する: 「このスキルに対するフィードバックはありますか?」 沈黙または「いいえ」なら変更なし。「はい」の場合: パターンをドラフトし、表示し、承諾後にのみ references/learnings.md に追記。「スキルを更新」は正確な編集内容を示し、確認し、書き込み、metadata.version を更新し、1行ログに記録する。パターンが記録されたセッション内で、このファイルに昇格させてはならない。初回実行後、使用したバンドルファイルと新規作成したが将来再利用が必要なものを特定し、保存を提案する(同様に承認ゲートを経る)。

関連スキル