name-checker について
name-checkerは、製品やブランドの命名・公開判断に使う調査スキルです。SNS、パッケージレジストリ、ドメイン、商標データベースを調べ、リスクと推奨案をまとめます。
主な機能
- 01SNSアカウント名を並行確認
- 02パッケージレジストリの空き状況確認
- 03複数のドメイン拡張子を確認
- 04商標データベースを検索
- 05リスク評価と命名案を集約
活用シーン
- 01製品名候補の衝突を評価
- 02公開前に対象レジストリの名称を確認
- 03商標やドメインの結果から名称を見直す
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ luongnv89/ skills --skill name-checkerインストール後、Claude Code で/name-checkerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdagents/domain-checker.mdregistry-checker.mdsocial-checker.mdsynthesizer.mdtrademark-checker.md詳細
名前チェッカー
商標、ドメイン、ソーシャルメディア、パッケージレジストリ(npm、PyPI、Homebrew、apt)で、製品名やブランド名の競合を確認します。
サブエージェントのアーキテクチャ
このスキルでは、独立した情報源を対象とする13件以上のWebフェッチを並行して処理するために、サブエージェントを並列で使用します。パターン:B(並列ワーカー)+D(調査+統合)。
エージェント
| エージェント | 役割 | 出力 |
|---|---|---|
| social-checker | 6つのプラットフォーム(Twitter、Instagram、GitHub、LinkedIn、TikTok、Discord)を並行して検索します | JSON:プラットフォームごとの利用可能状況 |
| registry-checker | npm、PyPI、Homebrew、aptの利用可能状況と所有者情報を確認します | JSON:レジストリごとの状況と所有者の詳細 |
| domain-checker | .com、.io、.app、.co、地域別TLDの利用可能状況を確認します | JSON:TLDごとの登録状況 |
| trademark-checker | WIPO、EUIPO、INPIの商標データベースを検索します | JSON:データベースごとの競合分析 |
| synthesizer | リスクマトリックスを適用し、最終的な推奨を作成します | Markdown+JSON:リスクレベル、判定、代替案 |
並列化戦略
- 早期終了ロジック:social-checkerが主要プラットフォームで完全一致するハンドルが取得済みだと判断した場合、ステップ2~4を省略し、「Abandon」の判定でsynthesizerに進みます
- 独立したワーカー:レジストリ、ドメイン、商標の各チェッカーは、依存関係なしで並列に実行します
- 逐次処理フロー:ソーシャルメディア →(問題がなければ)→ 並列処理 {レジストリ、ドメイン、商標} → synthesizer
高速化:逐次処理と比べて約4倍高速です(13件以上のWebフェッチを2~3回に分けて並列化します)。
環境の確認
実行前に、次の項目を確認します。
- WebSearchツールとWebFetchツールが利用可能であること
- 外部サービスへのクエリにインターネット接続が利用できること
- ソーシャルプラットフォームとレジストリのレート制限
編集前のリポジトリ同期(必須)
既存のリポジトリでファイルを作成、更新、削除する前に、現在のブランチをリモートと同期します。
branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin
git pull --rebase origin "$branch"
作業ツリーがクリーンでない場合は、まず変更をスタッシュし、同期してから復元します。
git stash push -u -m "pre-sync"
branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin && git pull --rebase origin "$branch"
git stash pop
origin がない、pullを実行できない、またはrebaseやstashで競合が発生した場合は、作業を中断し、続行する前にユーザーに確認します。
入力
分析する名前は $ARGUMENTS で指定します。空の場合は、ユーザーに名前を尋ねます。
必要に応じて、製品のコンテキストを把握するため、プロジェクト内の prd.md を確認します。
分析プロトコル
ソーシャルメディアで完全一致するハンドルが取得済みの場合、ステップ2~4を省略し、ステップ6(推奨)に直接進んで「Abandon」と判定します。
ステップ1:ソーシャルメディアの確認(最優先)
WebSearchを使って、次のハンドルを確認します。
- X/Twitter:
"@[NAME]" site:twitter.com OR site:x.com - Instagram:
"@[NAME]" site:instagram.com - Facebook:
"[NAME]" site:facebook.com - LinkedIn:
"[NAME]" site:linkedin.com/company - YouTube:
"[NAME]" site:youtube.com - TikTok:
"@[NAME]" site:tiktok.com
完全一致するハンドルが取得済みの場合: NEGATIVE: Exact social handle taken (@platform) を返して終了します。別の名前を提案します。
ステップ 2:パッケージレジストリの確認(ステップ 1 で問題がなかった場合)
パッケージレジストリの名前空間は早い者勝ちです。重複したプロジェクト名を使用できる GitHub とは異なり、レジストリでは一意の名前が必須です。誰かが PyPI または npm で「your-name」を取得すると、その名前で公開できなくなります。そのため、レジストリの確認は急を要します。公開予定のレジストリですでに名前が使われている場合は、別の名前にするか、名前にバリエーション(例:接頭辞/接尾辞)を加える必要があります。
WebFetch を使って、以下のレジストリを直接確認してください。
| レジストリ | 確認 URL | 使用中と判断する条件 |
|---|---|---|
| npm | https://registry.npmjs.org/[NAME] | パッケージデータを含む JSON が返る(404 ではない) |
| PyPI | https://pypi.org/pypi/[NAME]/json | パッケージデータを含む JSON が返る(404 ではない) |
| Homebrew | https://formulae.brew.sh/api/formula/[NAME].json | JSON が返る(404 ではない) |
| apt | 検索:"[NAME]" site:packages.debian.org OR site:packages.ubuntu.com | パッケージの掲載が見つかる |
各レジストリについて、以下を報告してください。
- 利用可能:404/見つからない — 取得しても問題ありません
- 使用中:パッケージが存在する — 所有者、説明、最終公開日を記載してください(最近取得されたものの空のパッケージは、名前空間の占有を示している可能性があります)
- 類似名あり:完全一致はしないものの、近いバリエーションが存在する(例:
name-js、py-name) — 記載する価値があります
ユーザーが公開を予定しているレジストリですでに名前が使われている場合は、目立つように指摘し、バリエーションを提案してください(例:name-cli、name-py、name-lib、npm の場合は @org/name のように組織スコープを付ける)。
ステップ 3:ドメインの確認(ステップ 1 で問題がなかった場合)
WebSearch を使って、以下を確認してください。
.com(最優先).io、.app、.co- 地域別:
.eu、.fr
検索:site:[NAME].com および "[NAME].com" domain availability
ステータス:
- 利用可能:有効なサイトがない
- パーキング中:ドメインは存在するが、売却中/パーキング中
- 使用中:利用されている(同じ業界の場合は指摘してください)
ステップ 4:商標の確認(ステップ 1 で問題がなかった場合)
WebSearch を使って、商標データベースを確認してください。
| データベース | 検索クエリ |
|---|---|
| WIPO | "[NAME]" site:branddb.wipo.int |
| EUIPO | "[NAME]" site:euipo.europa.eu |
| INPI (France) | "[NAME]" site:inpi.fr |
ニース分類の第 9 類、第 35 類、第 42 類(ソフトウェア/テクノロジー)を重点的に確認してください。商標が有効か、失効しているかを記載してください。
ステップ 5:リスク評価
| リスクレベル | 基準 |
|---|---|
| 低 | ソーシャルメディアのハンドル名が利用可能、.com が利用可能/パーキング中、商標の競合がなく、パッケージレジストリで名前が利用可能 |
| 中程度 | 一部のハンドル名が使用中(完全一致ではない)、.com は使用中だが代替ドメインが利用可能、類似する商標がある、またはユーザーが使用を予定していないレジストリで名前が使用中 |
| 高 | 複数のハンドル名が使用中、同じ業界で .com が利用中、第 9 類/第 35 類/第 42 類に有効な商標がある、または対象のパッケージレジストリで名前が使用中 |
ステップ 6:推奨事項
- 進める:リスクが低い — 名前は利用可能です
- 変更する:リスクが中程度 — 競合に対処するバリエーションを 1~2 個提案してください
- 断念する:リスクが高い — まったく異なる代替案を提案してください
出力形式
SOCIAL: Clear | NEGATIVE: [reason]
REGISTRY: npm (status) | PyPI (status) | Homebrew (status) | apt (status)
DOMAIN: .com (status) | .io (status) | .app (status)
TM: WIPO (status) | EUIPO (status) | INPI (status)
RISK: [Low/Moderate/High] - [reason]
RECOMMEND: [Proceed/Modify/Abandon] (+ variants if needed)
PRD への反映
prd.md が見つかった場合は、以下を追加してください。
名前の適合性評価:
- 製品ビジョンとの整合性
- 覚えやすさ、発音、スペル
- 対象ユーザーとの適合性
代替案:
| 名前 | 理由 | 簡易リスク評価 |
|---|---|---|
| Name1 | 適している理由 | 利用可能性 |
| Name2 | 適している理由 | 利用可能性 |
| Name3 | 適している理由 | 利用可能性 |
ステップ完了レポート
各主要ステップの完了後、以下の形式でステータスレポートを出力してください。
◆ [Step Name] ([step N of M] — [context])
··································································
[Check 1]: √ pass
[Check 2]: √ pass (note if relevant)
[Check 3]: × fail — [reason]
[Check 4]: √ pass
[Criteria]: √ N/M met
____________________________
Result: PASS | FAIL | PARTIAL
各ステップで実際に確認する内容に合わせて、チェック名を調整してください。合格には √、不合格には × を使い、簡単な補足には — を使ってください。「Criteria」の行には、満たした受け入れ基準の数をまとめます。「Result」の行には、総合判定を記載します。
ソーシャルメディアの確認(ステップ 1/5)
◆ Social Media Check (step 1 of 5 — handle availability)
··································································
Twitter available: √ pass
GitHub available: √ pass
Reddit available: × fail — r/[name] subreddit exists
[Criteria]: √ 2/3 met
____________________________
Result: PARTIAL
パッケージレジストリの確認(ステップ 2/5)
◆ Package Registry (step 2 of 5 — namespace availability)
··································································
npm clear: √ pass
PyPI clear: × fail — package exists (owner: example)
Homebrew clear: √ pass
[Criteria]: √ 2/3 met
____________________________
Result: PARTIAL
ドメインの確認(ステップ 3/5)
◆ Domain Check (step 3 of 5 — domain availability)
··································································
.com available: × fail — active site in same industry
.dev available: √ pass
.io available: √ pass
[Criteria]: √ 2/3 met
____________________________
Result: PARTIAL
商標の確認(ステップ 4/5)
◆ Trademark Check (step 4 of 5 — trademark conflicts)
··································································
WIPO clear: √ pass — no conflicts in classes 9/35/42
EUIPO clear: √ pass
INPI clear: × fail — similar mark in class 42
[Criteria]: √ 2/3 met
____________________________
Result: PARTIAL
リスク評価(ステップ 5/5)
◆ Risk Assessment (step 5 of 5 — final verdict)
··································································
Trademark risk level: √ pass — Low, no conflicts in classes 9/35/42
Overall risk score: √ pass — Moderate
Recommendation generated: √ pass — Modify: use variant
[Criteria]: √ 3/3 met
____________________________
Result: PASS
受け入れ基準
- 6 つすべてのプラットフォームでソーシャルメディアの確認を完了し、利用可能/取得済みのステータスを明確に示す
- npm、PyPI、Homebrew、apt のパッケージレジストリのステータスを確認する
- .com と少なくとも 2 つの代替 TLD のドメインの利用可能状況を確認する
- WIPO、EUIPO、INPI を対象に商標検索を完了する
- 根拠を添えてリスクレベル(低/中程度/高)を割り当てる
- 必要に応じて、代替案を具体的に提示したうえで最終的な推奨(進める/変更する/断念する)を伝える
期待される出力
SOCIAL: Clear (Twitter, Instagram, GitHub, LinkedIn, TikTok, Discord all available)
REGISTRY: npm (available) | PyPI (TAKEN — owner: example-org, last publish: 2022-03) | Homebrew (available) | apt (available)
DOMAIN: .com (active — unrelated industry) | .io (available) | .app (available)
TM: WIPO (clear) | EUIPO (clear) | INPI (similar mark in class 42 — "Acme Tools SAS", filed 2021)
RISK: Moderate — PyPI name taken on a target registry; .com parked; minor trademark similarity in France
RECOMMEND: Modify — use "acme-cli" (npm/PyPI clear, .com available, no TM conflicts)
エッジケース
- 主要プラットフォームで完全一致するソーシャルハンドルが取得済みの場合:残りの確認はすべてスキップし、代替名を提案して、直ちに「断念」の推奨を返します。
- レジストリ API によるレート制限:5 秒後に 1 回再試行します。それでもブロックされる場合は、レジストリを「未確認」としてレポートに記載します。黙ってスキップしないでください。
- 商標データベースが利用できない場合:データベースごとに停止を記載します。3 つすべての商標情報源にアクセスできない場合に限り、リスクを引き下げます(ユーザーに警告してください)。
- 名前に特殊文字またはスペースが含まれる場合:すべての確認の前にスラッグ形式に正規化します(例:
my tool→my-tool)。元の形式と正規化後の形式の両方を報告します。 - 非常に短い名前(1〜3 文字):商標との衝突リスクが高いことを最初に警告します。略称はソーシャルメディアや商標データベースでほぼ必ず取得済みです。
- 有名ブランドがすでに使用している名前(タイプスクワッティングのリスク):技術的な確認がすべて通っていても、リスクを「高」に引き上げます。
最終アクション
- 進める:安全に使用できることを確認し、次の登録順を提案します。
- まずパッケージレジストリ — プレースホルダーパッケージであっても、npm/PyPI/Homebrew で名前をすぐに確保します。これらは先着順で、名前空間のスクワッティングに最も脆弱です。
- ドメイン — 主要ドメインを登録します。
- ソーシャルハンドル — 主要なプラットフォームでハンドルを確保します。
- 変更する:最適な候補とその理由を推奨します。
- 断念する:提案した候補の中から最適な代替案を推奨します。