一致命名
終止隨機命名。每個新名稱必須看起來早已屬於目標樹中——包括檔案在內。
嚴格規則
在提議或撰寫任何新名稱之前:
- 選取命名範圍(references/scope.md): 同層級 → 套件 → Git 根目錄 → 磁碟上的兄弟專案 → 團隊預設。
- 對該範圍執行
scripts/survey-names.sh(新專案加上--siblings)。 - 閱讀 references/rules.md 以了解該名稱種類。
- 提議一個主要名稱以及最多兩個替代名稱,每個名稱必須由調查中的具體範例來證明合理性。
- 如果模式衝突,優先採用局部鄰近模式,然後用一句話解釋原因。
不要使用忽略鄰近名稱的可愛、迷因或一次性名稱。未經調查 repo B,請勿將 repo A 的風格重複使用在 repo B 中。
工作流程
-
分類名稱種類(references/kinds.md): 專案、套件、目錄、檔案、系統/設定檔、元件、測試、環境變數、分支、技能、CLI、API/路由。
-
調查所屬路徑(不是隨機的工作區根目錄):
scripts/survey-names.sh [path] # 新專案 / 產品主幹也加上: scripts/survey-names.sh --siblings [projects-parent-directory] -
比對大小寫和分隔符號以符合該資料夾中該種類的慣例 (目錄用 kebab、元件用 PascalCase、環境變數用 SCREAMING_SNAKE、固定的工具檔名)。
-
比對詞彙已在該樹中使用。重複使用詞根;避免同義詞分支 (
auth/旁邊出現authentication/)。 -
檢查衝突:對照調查結果、兄弟 repo 以及 PATH/套件名稱。 不要使用
2、final、new、copy等後綴。 -
輸出:
Primary: <name> Scope: <path surveyed> Pattern: <rule + 1-2 real examples> Rejected: <alternatives and why>
檔案與系統檔案
- 一般原始碼檔案:完全比對同層級檔名的基準風格加上副檔名。
- 系統/設定/工具檔案:優先使用慣用的固定名稱
(
.env.example、docker-compose.yml、AGENTS.md、flake.nix、工作流程的 kebab 名稱)。請參閱 references/scope.md。
空環境時的預設值
如果調查幾乎找不到任何內容,請使用 references/defaults.md 並從第一個名稱開始保持一致性。
反模式
- 隨機的動物/食物代號,除非該主題已在範圍內存在
- 新路徑中包含空格;PascalCase 資料夾與 kebab 同層級混雜
- 同一個資料夾中混用
camelCase和kebab-case檔案 - 未經調查就將此工作區的風格應用到不相關的 repo
- 「改善」必需的系統檔名(
package.json→pkg.json) utils2.ts、helpers-new.ts、tmp-final.tsx
捆綁資源
| 路徑 | 使用時機 |
|---|---|
| scripts/survey-names.sh | 每次命名前 |
| references/scope.md | 多個 repo、檔案、系統/設定名稱 |
| references/rules.md | 依種類決定大小寫/分隔符號 |
| references/kinds.md | 分類需求 |
| references/defaults.md | 僅限全新專案 |