Communitygithub.com

thatdudealso/consistent-naming

Agent 技能:通过调查本地仓库结构,为文件/项目提供一致的命名方案。

consistent-naming 是什么?

该技能旨在解决开发过程中命名不一致的问题,通过分析目标目录树中的现有命名模式,确保新文件、项目、组件等名称与已有风格无缝融合。它支持多种平台(如 Claude Code、Cursor 等),并内建了一套严格的规则与工作流:首先根据范围(如同级目录、包、Git 根目录等)确定命名上下文,然后运行内置的 `scripts/survey-names.sh` 脚本进行调查,并参考 `references/rules.md` 等规则文件匹配大小写、分隔符和词汇。技能会输出一个主选名称和至多两个备选,并附上基于实际调查结果的合理理由。它禁止随意使用动物/食物代号、混合命名风格或添加“2”、“final”等冗余后缀,从而帮助开发者或 AI Agent 自动生成符合团队规范、可维护性强的命名。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add thatdudealso/consistent-naming

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

一致命名

杜绝随意命名。每个新名称(含文件名)必须看起来已经属于目标目录树。

硬性规则

在提议或编写任何新名称之前:

  1. 确定命名范围(references/scope.md):兄弟目录 → 包 → git 根目录 → 磁盘上的兄弟项目 → 项目默认设置。
  2. 在该范围上运行 scripts/survey-names.sh(新项目需加 --siblings)。
  3. 阅读references/rules.md以了解名称类型。
  4. 提议 一个主要名称 外加至多 两个备选名称,每个都需用调查中的具体示例证明合理性。
  5. 若模式冲突,优先采用局部邻域,然后用一个句子解释原因。

不要使用忽略邻居的可爱、梗或一次性名称。不要未经调查 repo B 就直接复用 repo A 的风格。

工作流程

  1. 分类名称类型(references/kinds.md):项目、包、目录、文件、系统/配置文件、组件、测试、环境变量、分支、技能、CLI、API/路由。

  2. 调查所属路径(不是随机的 workspace 根目录):

    scripts/survey-names.sh [path]
    # 新项目/产品词干还需:
    scripts/survey-names.sh --siblings [parent-of-projects]
    
  3. 匹配大小写和分隔符,针对该文件夹中的类型(目录使用 kebab-case,组件使用 PascalCase,环境变量使用 SCREAMING_SNAKE,固定的工具文件名)。

  4. 匹配词汇,与已有该目录树的词汇一致。复用词干;避免同义词分歧(如 auth/ 紧挨着 authentication/)。

  5. 检查冲突,与调查结果、兄弟仓库以及 PATH/包名比对。不允许有 2、final、new、copy 后缀。

  6. 输出:

    主名称:<name>
    范围:<surveyed path>
    模式:<rule + 1-2 real examples>
    拒绝:<alternatives and why>
    

文件和系统文件

  • 普通源文件:完全匹配兄弟文件的基本名称风格 + 扩展名。
  • 系统/配置/工具文件:优先使用惯用的固定名称(.env.example、docker-compose.yml、AGENTS.md、flake.nix、工作流 kebab 名称)。参见references/scope.md。

空目录时的默认值

若调查几乎无发现,则使用references/defaults.md,并从第一个名称开始保持一致。

反模式

  • 在范围内尚未存在该主题时使用随机的动物/食物代号
  • 新路径中包含空格;Title Case 文件夹与 kebab 兄弟目录混用
  • 同一文件夹中混用 camelCase 和 kebab-case 文件
  • 未经调查就将此工作区的项目风格应用于无关的仓库
  • “改进”必需的系统文件名(如 package.json → pkg.json)
  • utils2.ts、helpers-new.ts、tmp-final.tsx

捆绑资源

路径何时使用
scripts/survey-names.sh命名前始终使用
references/scope.md多仓库、文件、系统/配置名称
references/rules.md按类型的大小写/分隔符
references/kinds.md分类请求
references/defaults.md仅用于全新项目

相关技能