一致命名
杜绝随意命名。每个新名称(含文件名)必须看起来已经属于目标目录树。
硬性规则
在提议或编写任何新名称之前:
- 确定命名范围(references/scope.md):兄弟目录 → 包 → git 根目录 → 磁盘上的兄弟项目 → 项目默认设置。
- 在该范围上运行
scripts/survey-names.sh(新项目需加--siblings)。 - 阅读references/rules.md以了解名称类型。
- 提议 一个主要名称 外加至多 两个备选名称,每个都需用调查中的具体示例证明合理性。
- 若模式冲突,优先采用局部邻域,然后用一个句子解释原因。
不要使用忽略邻居的可爱、梗或一次性名称。不要未经调查 repo B 就直接复用 repo A 的风格。
工作流程
-
分类名称类型(references/kinds.md):项目、包、目录、文件、系统/配置文件、组件、测试、环境变量、分支、技能、CLI、API/路由。
-
调查所属路径(不是随机的 workspace 根目录):
scripts/survey-names.sh [path] # 新项目/产品词干还需: scripts/survey-names.sh --siblings [parent-of-projects] -
匹配大小写和分隔符,针对该文件夹中的类型(目录使用 kebab-case,组件使用 PascalCase,环境变量使用 SCREAMING_SNAKE,固定的工具文件名)。
-
匹配词汇,与已有该目录树的词汇一致。复用词干;避免同义词分歧(如
auth/紧挨着authentication/)。 -
检查冲突,与调查结果、兄弟仓库以及 PATH/包名比对。不允许有
2、final、new、copy后缀。 -
输出:
主名称:<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 | 仅用于全新项目 |