mcpField
N
namer

namer

github.com/wyattowalsh营销与增长538 次安装8 周前更新
代码仓库

关于 namer

用于生成、评估和验证名称的命名技能,会根据项目背景筛选候选项,并提供可用性矩阵、评分和排序。它支持检查、扩展、比较及恢复命名会话,但不负责域名注册或品牌策略。

主要功能

  1. 01按背景分类并选择评分权重
  2. 02生成并筛选多种命名候选
  3. 03检查域名、代码平台与社交账号可用性
  4. 04按多项指标评分和排序
  5. 05保存、恢复与比较命名会话

适用场景

  1. 01为产品或初创公司寻找名称
  2. 02为 CLI 工具或开源项目筛选名称
  3. 03检查候选名称的平台可用性
  4. 04比较现有选项并生成名称变体

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/wyattowalsh/agents --skill namer

安装后在 Claude Code 中输入/namer确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

evals/
availability-failure.json
check-mode.json
compare-mode.json
context-presets.json
evals.json
expand-mode.json
explicit-invocation.json
implicit-trigger.json
memory-integration.json
negative-control.json
thorough-mode.json
references/
naming-strategies.md
output-formats.md
platform-checks.md
scoring-rubric.md
scripts/
availability.py
check.py
generate.py
memory.py
score.py
scripts/asset_toolkit/
__init__.py
_shared.py
common.py
package.py
validate_evals.py
validate_hooks.py
validate_skill.py
templates/
dashboard.html

详细介绍

Namer

从语言、技术和平台维度生成、评估并验证名称。提供按排名排列的选项、可用性矩阵和可执行的后续步骤。

不用于注册域名、制定品牌策略或设计 Logo。不用于审查现有代码中的命名规范。

Dispatch

$ARGUMENTSAction
<thing to name> (with optional flags)命名 — 完整流程:简述 → 生成 → 筛选 → 检查 → 评分 → 排名
check <name> [name2...]检查 — 仅进行可用性审查(跳过生成)
expand <name>扩展 — 生成现有名称的变体/修改形式
compare <name1> vs <name2> [vs...]比较 — 对指定名称进行并排评分
resume [# or keyword]继续 — 加载之前的命名会话
list列表 — 显示已保存的命名会话
preferences偏好设置 — 显示累积的命名档案和记忆统计信息
Empty示例库 — 显示示例及“你要为​​什么命名?”提示
Gallery (Empty Arguments)
#ContextExample
1CLI Tool“我正在用 Rust 构建一个终端文件管理器”
2SaaS Product“用于代码审查的开发者效率工具”
3OSS Library“用于数据验证的 Python 库”
4Startup“AI 驱动的招聘平台”
5Side Project“周末项目——书签管理器”
6Brand“专注于开发者工具的设计工作室”

选择一个数字,描述你要命名的对象,或输入“guide me”。

Guided Intake

如果用户输入“guide me”,提出三个问题:

  1. 你要为​​什么命名?“CLI 工具、SaaS 产品、OSS 库、初创公司、品牌,还是其他?”
  2. 它有什么作用?“用一句话描述。”
  3. 你希望呈现什么风格?“活泼、严肃、技术感、温暖、前卫、极简,或者描述你自己的风格。”

动态上下文分类

根据用户的描述自动检测。调整平台优先级和评分权重。

上下文信号类别主要平台次要平台
"CLI tool", "command", "binary"CLI 工具GitHub、npm/PyPI/Crates、Homebrew、.dev社交平台
"package", "library", "framework", "SDK"开源软件库GitHub、npm/PyPI/Crates、.dev/.io社交平台
"app", "product", "startup", "SaaS"产品.com、X/Twitter、LinkedIn、GitHub开发者注册平台
"company", "brand", "agency", "studio"品牌.com、X/Twitter、Instagram、LinkedIn、YouTube开发者注册平台
"game", "content", "media", "community"创意项目.com、YouTube、TikTok、X/Twitter、Reddit、Discord开发者注册平台
"open source", "OSS", "contrib"开源项目GitHub、npm/PyPI/Crates、.dev、Discord社交平台
含义模糊均衡.com、GitHub、X/Twitter、npm/PyPI其他所有平台

评分预设——每种上下文都采用不同的内在/外在维度权重,以及不同的内在/外在权重占比。完整权重表请参阅 references/scoring-rubric.md § Context Presets。主要区别:

  • CLI 工具:内在/外在权重占比为 30/70——易于输入(30%)和注册平台(35%)在外在因素中占主导
  • 品牌:占比为 50/50——语音特点(30%)和域名(35%)是首要考虑因素
  • 个人项目:占比为 25/75——优先考虑可用性;易于输入(40%)和注册平台(20%)在外在因素中占主导

向用户展示分类结果和预设。用户可以通过 --style 覆盖预设,或手动调整权重。

核心工作流(6 个阶段)

阶段 -1:加载记忆(每个会话运行一次)

!uv run python scripts/memory.py load

如果存在记忆,则将其纳入会话:

  • 原型偏好 → 调整阶段 1 的生成比例(例如,如果用户偏好引人联想的名称,则占 35%)
  • 语音偏好/禁忌 → 将禁忌项加入阶段 1 的硬性筛选条件,并为偏好项增加软性评分
  • 长度偏好 → 调整阶段 1 的长度限制
  • 权重覆盖 → 预先填入阶段 3 的评分权重
  • 上下文默认值 → 在阶段 0 简报中建议上下文(“上次你要给 CLI 工具命名——这次也一样吗?”)
  • 灵感来源 → 在阶段 1 的生成中将其作为风格锚点
  • 过去的选择 → 避免重新生成用户已选过的名称

如果没有记忆,则按常规流程继续。记忆仅起补充作用——即使缺少记忆,也绝不阻塞任何阶段。

阶段 0:简报(按顺序进行,交互式)
  1. 解析命名对象、上下文和限制条件
  2. 自动分类命名上下文 → 选择预设
  3. 向用户展示分类结果和调整后的权重
  4. 接受覆盖设置:--style、--thorough、手动调整权重
  5. 接受灵感来源:“我喜欢像 Vercel、Stripe、Neon 这样的名字”
阶段 1:生成与筛选(内联、单轮)

加载 references/naming-strategies.md,了解命名原型的详情和声音象征指南。

跨 6 种命名原型生成 40-60 个候选项:

原型描述示例
虚构词通过语音构造的新词Kodak、Xerox、Hulu、Roku
隐喻迁移来自其他领域的概念Amazon、Safari、Slack、Rust
复合混成词混成词、词素组合Instagram、Pinterest、YouTube
古典词根拉丁语、希腊语、梵语词源Nike、Astra、Veritas、Lumen
意象片段简短有力、抽象的感觉Figma、Sumo、Neon、Zed
描述性创意词含义明确且富有特色Cloudflare、Datadog、Fastly

硬性筛选条件(二元通过/不通过,须在检查可用性之前执行):

运行 !uv run python scripts/generate.py filter --input candidates.json 进行自动筛选,然后内联应用仅限 AI 的筛选条件:

  1. 英语中的脏话/粗俗用语(脚本:generate.py filter)
  2. 在全球前 10 大语言中的冒犯性含义(仅限 AI:使用 brave_web_search)
  3. 与同类别前 1000 大品牌完全重名(仅限 AI:使用 brave_web_search)
  4. 超出长度限制(产品名 15 个字符、CLI 8 个字符、库名 12 个字符)(脚本:generate.py filter)
  5. 难以发音的辅音簇(脚本:generate.py filter)
  6. 主流编程语言中的保留字(脚本:generate.py filter)
  7. 含连字符/特殊字符(适用于包名)(脚本:generate.py filter)

对内在维度评分(语音、语义、易记性、形态灵活性、视觉质量)。使用 !uv run python scripts/generate.py analyze <name> 进行语音分析,为语音质量评分提供依据。选出前 20-25 个候选项进行可用性检查。

--thorough 模式:通过不同提示词运行多轮生成,提升多样性。

阶段 2:可用性全面检查(并行子代理)

加载 references/platform-checks.md,了解各平台的检查方法。

分派 4 个并行子代理,每个子代理检查其类别中的所有候选项:

子代理 A — 域名检查器:

  • 通过 RDAP 检查 .com/.net:GET https://rdap.verisign.com/com/v1/domain/{name}.com → 404 = 可用
  • 通过 brave_web_search 检查 .dev/.io/.ai/.app
  • 价格:对前 5 个候选项使用 brave_web_search

子代理 B — 开发者注册表检查器(直接 API):

  • GitHub:GET https://api.github.com/users/{name} → 404 = 可用
  • npm:GET https://registry.npmjs.org/{name} → 404 = 可用
  • PyPI:GET https://pypi.org/pypi/{name}/json → 404 = 可用
  • Crates:GET https://crates.io/api/v1/crates/{name} → 404 = 可用

子代理 C — 社交平台与用户名检查器:

  • Reddit:GET https://www.reddit.com/api/username_available.json?user={name}
  • Bluesky:AT Protocol 句柄解析
  • X/Twitter、YouTube、Instagram、LinkedIn:使用 site: 前缀进行 brave_web_search

子代理 D — 冲突与独特性检查器:

  • 搜索冲突结果量:brave_web_search '"{name}" software'
  • 商标(--thorough):brave_web_search "USPTO TESS {name}"

或者通过脚本运行确定性检查: !uv run python scripts/availability.py check-all candidate1 candidate2 ...

扩展规模:

  • ≤10 个候选项:4 个并行子代理
  • 11-25 个候选项:先用快速 .com RDAP 预筛选,再全面检查前 10-15 个
  • --thorough:检查所有社交平台、商标和 Wikipedia
阶段 2.5:变体生成(有条件)

对于内在评分最高但未通过可用性检查的前 5 个候选项:

  • 每个生成 3-5 个变体:前缀(go-、un-)、后缀(-kit、-lab、-ify)、去掉元音(namr)、改拼写(nomer)、限定范围(@scope/name)
  • 对变体运行可用性检查(采用相同的子代理模式,但批次规模较小)
阶段 3:评分与排名(内联)

加载 references/scoring-rubric.md,查看详细标准。

10 个评分维度(0–10 分,按上下文加权):

维度方法
域名可用性.com=10,.dev/.io=7,.ai/.app=5,已停放=3,无=0
注册商可用性目标注册商中可用的比例
社交账号一致性目标社交平台中可用的比例
易记性长度加分 + 音节数 + 意象
语音质量辅音/元音流畅度、重音、声音象征
语义契合度与领域的相关性、情感基调、隐喻丰富度
易输入性字符数、键盘位置、无特殊字符
搜索独特性搜索结果数量的倒数
形态灵活性能否用作动词/名词/复合词?是否支持产品系列?
视觉质量字母平衡、升部/降部、URL 美观度

综合分:(0.4 × intrinsic_avg) + (0.6 × extrinsic_avg) — 用户可以调整权重比例。

运行 !uv run python scripts/score.py score --input candidates.json 进行确定性评分。输入 JSON 必须包含 {"candidates": [{"name": "...", "intrinsic": {...}, "availability": {...}}], "preset": "cli-tool"}。

阶段 4:展示(内联)

加载 references/output-formats.md 查看模板。

三种排名视图:

  1. 最佳名称 — 按内在质量排名(显示可用性,但不纳入评分)
  2. 最佳可用名称 — 按综合分排名(默认推荐)
  3. 最佳变体名称 — 展示内在质量最高且有可用修改形式的名称

每种视图都包含带有可用性矩阵(✅ ❌ ⚠️ ❓)、分数和理由的排名表。

详细卡片:每种视图中的前 3 个名称,包含完整评分明细、优势、风险和后续步骤。

可执行的后续步骤:“以每年 $12 的价格注册 neon.dev”、“在 GitHub 上认领 @neon”、“npm init neon”

交互式优化:“更多类似 #3 的名称”、“更短”、“更有技术感”、“避免使用 X 音”

仪表板:生成所有视图和卡片后,将完整会话整理为 references/output-formats.md § Structured Output Schema 中的 JSON 格式。读取 templates/dashboard.html,将 <script id="data" type="application/json">{}</script> 中的 {} 替换为该 JSON,并将结果写入 ~/.{gemini|copilot|codex|claude}/namer/{session-slug}-dashboard.html。打印打开命令:open ~/.{gemini|copilot|codex|claude}/namer/{slug}-dashboard.html

保存会话

在阶段 1(候选名称)、阶段 2(可用性)和阶段 4(排名)完成后,分别将会话保存至 ~/.{gemini|copilot|codex|claude}/namer/{YYYY-MM-DD}-{context}-{slug}.md,并附上 YAML frontmatter。支持恢复会话。

记忆保存触发条件

在自然的决策节点保存记忆。切勿为保存记忆而拖慢某个阶段——务必在交付主要输出后再保存。

触发条件命令
阶段 0:用户说明风格偏好memory.py save-preference --type vibe --value "..."
阶段 0:用户提及灵感来源名称memory.py save-inspiration --name "..." --context "..."
阶段 0:用户调整权重memory.py save-weights --intrinsic-split F --extrinsic-split F
阶段 1:用户说“避免听起来像 X”memory.py save-rejection --pattern "X" --type phonetic --reason "..."
阶段 4:用户选定一个名称memory.py save-selection --name "..." --archetype "..." --context "..." --score N --query "..."
优化:“更像 #N”memory.py save-preference --type archetype --value "..." --like
优化:“更短”/“更长”memory.py save-preference --type length --value "max=5" 或 "min=8"
任何阶段:用户否定某种风格memory.py save-rejection --pattern "..." --type archetype --reason "..."

当一次会话产生多条记忆时,在同一条消息中批量保存。所有 memory.py 命令前都要加上 !uv run python scripts/。

规范词汇

术语定义
简述命名要求:命名对象、背景、风格和限制条件
候选项可用性检查前生成的名称
原型命名策略:自造词、隐喻、复合词、古典风格、唤起意象、描述性
内在评分基于语言和创意维度的质量评分(不涉及 I/O)
外在评分通过平台检查获得的可用性评分(I/O 密集)
综合评分内在评分与外在评分的加权组合
硬性筛选二元通过/不通过关卡:脏话、长度、易读性
变体对候选项的修改:添加前缀、后缀或改变拼写
命名空间报告跨所有平台的逐候选项可用性矩阵
背景预设针对命名对象自动配置权重和平台
记忆存储于 `~/.{gemini
原型倾向度根据用户选择计算得出的偏好命名原型加权分布
选定项用户选作首选并储存以用于偏好学习的名称
否定项明确不想要的模式(语音、原型或具体名称)

参考文件索引

文件内容阅读时机
references/naming-strategies.md6 种原型、声音象征、语音指南、语素库阶段 1(生成)
references/platform-checks.md各平台:URL、方法、响应解析、速率限制阶段 2(可用性)
references/scoring-rubric.md10 个维度的详细说明、6 个预设、硬性筛选条件、综合评分公式阶段 3(评分)
references/output-formats.md3 种视图的模板、名称卡片、变体表、后续步骤阶段 4(呈现)
templates/dashboard.html独立的 GUI——注入来自 § Structured Output Schema 的结构化 JSON阶段 4(仪表盘渲染)
scripts/memory.py用于持久化命名偏好的 CLI(加载、保存、清理、统计)阶段 -1(加载)、会话结束时(保存)

每次只加载一个参考文件,并遵循“阅读时机”列中的说明。

关键规则

  1. 绝不跳过可用性检查——未经检查的名称毫无推荐价值
  2. 始终透明地展示评分标准——不得使用黑箱排名
  3. 绝不捏造可用性数据——如果检查失败,标记为“❓ 未知”,绝不能标记为“✅ 可用”
  4. 始终先运行硬性筛选,再检查可用性——不要把 API 调用浪费在不合格的名称上
  5. 进入完整可用性检查流程的候选项最多为 25 个——合理规划工具调用
  6. 始终指出商标/冲突风险——法律问题优先于名称质量
  7. 绝不修改用户文件——除 ~/.{gemini|copilot|codex|claude}/namer/ 中的会话日志外,命名器只能读取文件
  8. 始终提供全部三种输出视图——最佳名称、最佳可用项、最佳变体名称
  9. 始终提供可执行的后续步骤——例如“在 Y 注册 X,费用为 $Z”,而不只是“X 可用”
  10. 生成时必须使用多种原型——绝不能只采用一种策略生成候选项
  11. 生成前先进行上下文分类——权重和平台取决于分类结果
  12. 分别展示内在分数和外在分数——用户需要了解两者之间的取舍
  13. 在阶段 0 之前加载用户记忆(阶段 -1)。交付主要输出后再保存记忆——绝不能因写入记忆而阻塞某个阶段

评论

支持 Markdown