一键导入
naming-buddy
命名困难症救星。给一段逻辑/用途描述 + 语言 → 建议好的变量/函数/类/文件/常量/布尔名,中英对照解释。触发词:'/naming-buddy'、'帮我起个名字'、'这个变量叫什么好'、'给这个函数命名'、'命名建议'。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
命名困难症救星。给一段逻辑/用途描述 + 语言 → 建议好的变量/函数/类/文件/常量/布尔名,中英对照解释。触发词:'/naming-buddy'、'帮我起个名字'、'这个变量叫什么好'、'给这个函数命名'、'命名建议'。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
把 Claude Code 汉化 —— 让 Claude 默认用中文回复,并给每个工具调用加中文 tooltip 提示。当用户想"汉化 Claude Code""让 Claude 说中文""装中文命令提示""localize Claude Code to Chinese"时使用。
列出可清理的本地分支(已合并 / 陈旧),供用户确认后再删。当用户说"清理分支 / 哪些分支可以删 / 列出过期分支 / 整理 git 分支 / 哪些分支可以清掉"时触发。
把一个函数/代码片段/diff 写成一首俳句或打油诗,抓住代码的「神韵」。当用户说「给这段代码写首诗」、「code-haiku」、「把这个函数写成俳句」、「这个 diff 怎么用诗表达」时触发。
把一个文件的修改史讲成故事——谁、何时、为何改了它。当用户说「讲讲这个文件的故事 / git-blame-story / 这个文件经历了什么 / 追溯文件历史 / 帮我看看这个文件的来龙去脉」时触发。
扫描 Dockerfile 的体积/安全/缓存/最佳实践问题并给出中文修法。当用户说"帮我检查 Dockerfile / Dockerfile 有没有问题 / 审查 Dockerfile / dockerfile-doctor"时触发。
按表结构 / struct / TS interface / JSON shape 生成假数据与测试种子数据,支持 JSON / SQL INSERT / CSV / NDJSON 输出格式。触发词:/mock-data-gen、帮我生成测试数据、帮我造数据、生成假数据、生成种子数据。
| name | naming-buddy |
| description | 命名困难症救星。给一段逻辑/用途描述 + 语言 → 建议好的变量/函数/类/文件/常量/布尔名,中英对照解释。触发词:'/naming-buddy'、'帮我起个名字'、'这个变量叫什么好'、'给这个函数命名'、'命名建议'。 |
给一段逻辑/用途描述 + 目标语言,得到 3-5 个候选名、推荐理由、以及原名/坏味道诊断。
告别 data、temp、flag、info、manager——让名字直接说清意图。
用户说:
/naming-buddy帮我起个名字这个变量叫什么好给这个函数命名命名建议这个名字好不好xxx 这个名字有没有问题帮我看看这几个命名类名怎么起、文件名叫什么、常量名叫什么在给出任何候选名之前,必须先明确:
若用户没有提供语言或职责描述,先追问,不要凭空猜测。追问示例:
按推荐度从高到低排列,格式:
候选名(按推荐度排):
1. <名字> — <一句中文理由:为什么推荐,有什么优势>
2. <名字> — <一句中文理由>
3. <名字> — <一句中文理由>
[4. <名字> — (适用特定场景时)]
[5. <名字> — (适用特定场景时)]
给候选名的原则:
若用户给出了原名,或候选时需要对比,主动指出以下坏味道:
| 坏味道类型 | 典型例子 | 问题所在 |
|---|---|---|
| 过于泛化 | data、info、result、value、item、obj | 什么都能叫这个,看不出业务含义 |
| 动作名词太泛 | manager、handler、processor、util、helper、service(滥用) | 掩盖真实职责 |
| 临时占位 | temp、tmp、foo、bar、xxx、test2 | 临时名字进了正式代码 |
| 布尔无前缀 | verified、active、loaded | 不加 is/has/can 容易误用为名词 |
| 匈牙利命名 | strName、boolFlag、intCount | 类型信息放名字里,现代 IDE 已无必要 |
| 过度缩写 | usrCntr、getMsgCnt、calcRcvdPkts | 三个月后连自己都看不懂 |
| 拼音混入 | yongHu、zhanghao | 项目统一英文时不要用拼音 |
| 序号命名 | user1、data2、list3 | 区分靠数字而不是语义 |
| 类型即名字 | userList、nameString、countInt | 名字里带类型后缀,通常多余 |
| 反义不对称 | getUser + removeUser 但本应对称 addUser + removeUser | 动词不一致破坏 API 可读性 |
若用户对 case 约定不熟悉,或给出的名字 case 不对,给一句提示:
惯例提示:<语言> 中 <命名类型> 用 <case 形式>。
示例:Go 中导出函数用 PascalCase(如 GetUser),内部函数用 camelCase(如 getUser)。
## 命名建议
**命名类型:**<变量/函数/类/…>
**语言:**<目标语言>(惯例:<camelCase / snake_case / PascalCase / …>)
**职责:**<一句话复述理解,确认没有歧义>
**候选名(按推荐度排):**
1. `<名字>` — <理由>
2. `<名字>` — <理由>
3. `<名字>` — <理由>
[4. `<名字>` — <理由,适用场景>]
[5. `<名字>` — <理由,适用场景>]
**坏味道诊断:**
[若原名存在问题]
- 原名 `<xxx>` 的问题:<具体说明为什么不好>
[若无明显问题]
- 原名无明显坏味道。
**惯例提示:**<若用户的 case 不符合语言惯例时给出;若无问题则省略>
| 语言 | 变量 | 函数/方法 | 类/类型 | 常量 | 文件名 |
|---|---|---|---|---|---|
| Go | camelCase | camelCase(内) / PascalCase(导出) | PascalCase | 全大写 MAX_SIZE 或包级 camelCase | snake_case.go |
| Python | snake_case | snake_case | PascalCase | UPPER_SNAKE_CASE | snake_case.py |
| TypeScript / JS | camelCase | camelCase | PascalCase | UPPER_SNAKE_CASE | kebab-case.ts / PascalCase.tsx |
| Java | camelCase | camelCase | PascalCase | UPPER_SNAKE_CASE | PascalCase.java |
| Kotlin | camelCase | camelCase | PascalCase | UPPER_SNAKE_CASE | PascalCase.kt |
| Rust | snake_case | snake_case | PascalCase | UPPER_SNAKE_CASE | snake_case.rs |
| Swift | camelCase | camelCase | PascalCase | lowerCamelCase | PascalCase.swift |
| Dart / Flutter | camelCase | camelCase | PascalCase | lowerCamelCase | snake_case.dart |
| C# | camelCase(私有) / PascalCase(公有) | PascalCase | PascalCase | PascalCase / UPPER_SNAKE_CASE | PascalCase.cs |
| Ruby | snake_case | snake_case | PascalCase | UPPER_SNAKE_CASE | snake_case.rb |
| CSS / HTML | kebab-case | — | — | — | kebab-case.css |
| Shell / Bash | snake_case | snake_case | — | UPPER_SNAKE_CASE | snake-case.sh |
布尔命名专项:
| 语言 | 推荐前缀 | 示例 |
|---|---|---|
| Go | is / has / can / should | isActive、hasPermission |
| Python | is_ / has_ / can_ | is_verified、has_children |
| TypeScript/JS | is / has / can / should | isLoading、canSubmit |
| Java/Kotlin | is / has / can | isEnabled、hasError |
| Swift/Dart | is / has / can | isSelected、canEdit |
过于泛化的词(见到要警惕):
data info result value item obj object entity record
temp tmp buf flag state status content payload
manager handler processor util utils helper service(滥用)
布尔命名常见错误:
verified → 应为 isVerifiedactive → 应为 isActiveloaded → 应为 isLoadederror → 用于布尔时应为 hasError函数/方法命名动词推荐:
| 动作 | 推荐动词 | 避免 |
|---|---|---|
| 取数据 | get、fetch、load、find、query | retrieve(太正式)、obtain |
| 检查/判断 | is、has、can、check、validate | verify(常与"核验"混) |
| 创建 | create、build、make、new、init | generate(通常指生成内容,非对象) |
| 转换 | to、from、convert、transform、map、parse | change |
| 更新 | update、set、apply、patch、modify | edit(通常是 UI 层用词) |
| 删除 | delete、remove、clear、purge | destroy(过于强烈,慎用) |
| 发送 | send、publish、dispatch、emit、push | do(完全不说明意图) |
usrCntr、msgCnt)→ 展开getUserByIdFromDatabase → findUser)user 就不要用 account;用 create 就不要对称写 add。use)做语言级规则覆盖——框架惯例优先。