关于 name-checker
name-checker 是用于评估产品和品牌名称的研究技能,面向命名与发布决策。它组织社交平台、软件包注册表、域名和商标检查,并综合风险与建议。
主要功能
- 01并行检查社交平台账号
- 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)中是否存在冲突。
子 Agent 架构
此技能使用并行子 Agent,处理来自独立来源的 13 次以上连续网页抓取。模式:B(并行工作者)+ D(研究与综合)。
Agent
| Agent | 角色 | 输出 |
|---|---|---|
| social-checker | 并行搜索 6 个平台(Twitter、Instagram、GitHub、LinkedIn、TikTok、Discord) | JSON:各平台的可用状态 |
| registry-checker | 检查 npm、PyPI、Homebrew、apt 的可用性及所有者信息 | JSON:各注册表的状态和所有者详情 |
| domain-checker | 检查 .com、.io、.app、.co 及地区顶级域名的可用性 | JSON:各顶级域名的注册状态 |
| trademark-checker | 搜索 WIPO、EUIPO、INPI 商标数据库 | JSON:各数据库的冲突分析 |
| synthesizer | 应用风险矩阵并生成最终建议 | Markdown + JSON:风险等级、结论、备选项 |
并行化策略
- 提前退出逻辑:如果 social-checker 发现主要平台上已有人占用完全相同的账号名,则跳过步骤 2-4,直接进入 synthesizer 并给出“放弃”结论
- 独立工作者:注册表、域名和商标检查器并行运行,互不依赖
- 顺序流程:社交媒体 →(如果无问题)→ 并行 {注册表、域名、商标} → 综合器
加速效果:相比顺序执行,速度约提升 4 倍(将 13 次以上网页抓取并行化为 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、无法拉取,或发生变基/暂存冲突,请停止并在继续之前询问用户。
输入
要分析的名称通过 $ARGUMENTS 提供。如果为空,请询问用户要检查的名称。
也可以检查项目中是否存在 prd.md,以了解产品背景。
分析流程
如果完全相同的社交媒体账号名已被占用,则跳过步骤 2-4,直接进入步骤 6(建议),并给出“放弃”结论。
步骤 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 和至少两个其他顶级域名的可用性
- 已针对 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 秒后重试一次;如果仍受阻,将该注册表标记为“未检查”,并在报告中注明——不得悄然跳过。
- 商标数据库不可用:逐个注明数据库故障;仅当三个商标来源均无法访问时才降低风险级别(并提醒用户)。
- 名称包含特殊字符或空格:在所有检查之前将其规范化为 slug 格式(例如,
my tool→my-tool);同时报告原始形式和规范化形式。 - 名称很短(1–3 个字符):预先标记较高的商标冲突风险;缩写几乎总会在社交媒体和商标数据库中被注册。
- 名称已被知名品牌使用(有仿冒风险):即使所有技术检查均通过,也将风险级别提升为高。
最终操作
- 继续:确认可以安全使用,并建议按以下顺序注册:
- 优先注册软件包——立即在 npm/PyPI/Homebrew 上抢注名称,即使先发布一个占位软件包也可以。这些平台遵循先到先得原则,也最容易遭遇命名空间抢注。
- 域名——注册主要域名。
- 社交账号——在主要平台上注册账号名。
- 修改:推荐最佳变体并说明理由
- 放弃:从备选方案中推荐最佳选择