Communitygithub.com

thatdudealso/consistent-naming

代理技能:透過調查本地儲存庫結構來為檔案與專案命名。

consistent-naming 是什麼?

這個技能旨在終結隨機命名,確保每個新名稱都像是早已存在於目標樹中。它要求使用者在提出或寫入任何新名稱前,先選取命名範圍(從同層級到專案根目錄、Git 根目錄,再到磁碟上的兄弟專案,最後是團隊預設),然後執行指定的調查腳本來收集實際命名範例。技能支援多種名稱種類(專案、套件、目錄、檔案、系統/設定檔、元件、測試、環境變數、分支、技能、CLI、API/路由),並根據調查結果比對大小寫、分隔符號與詞彙,以確保一致性。此技能適用於 Claude Code、Cursor 或 Codex 等 AI 代理,透過內建的腳本與參考文件,有效防止出現「utils2.ts」或「tmp-final.tsx」等反模式名稱。

相容平台~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 的風格重複使用在 repo B 中。

工作流程

  1. 分類名稱種類(references/kinds.md): 專案、套件、目錄、檔案、系統/設定檔、元件、測試、環境變數、分支、技能、CLI、API/路由。

  2. 調查所屬路徑(不是隨機的工作區根目錄):

    scripts/survey-names.sh [path]
    # 新專案 / 產品主幹也加上:
    scripts/survey-names.sh --siblings [projects-parent-directory]
    
  3. 比對大小寫和分隔符號以符合該資料夾中該種類的慣例 (目錄用 kebab、元件用 PascalCase、環境變數用 SCREAMING_SNAKE、固定的工具檔名)。

  4. 比對詞彙已在該樹中使用。重複使用詞根;避免同義詞分支 (auth/ 旁邊出現 authentication/)。

  5. 檢查衝突:對照調查結果、兄弟 repo 以及 PATH/套件名稱。 不要使用 2、final、new、copy 等後綴。

  6. 輸出:

    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僅限全新專案

相關技能