繼承舊有風格
防止 AI 在舊有專案中產生程式碼風格偏移,透過掃描程式碼庫在 4 個元架構維度中的隱含慣例,逐一與使用者解決衝突,並將共識凝聚成一份可強制執行的 .ai-style-rules.md。完全語言與框架無關。
何時啟用
- 使用者輸入
/inherit-legacy-style - 使用者提到將 AI 引入一個手寫的舊有專案
- 使用者擔心 AI 生成的程式碼會偏離現有的專案慣例
- 使用者想要提取並整理專案的隱含編碼規則
使用時機
當你需要保留舊有專案風格並防止 AI 風格偏移時使用此技能。請參閱上方何時啟用以了解觸發條件。
前置需求
- Git(建議;非 Git 專案會回退使用檔案時間戳記進行增量模式)
- 對專案根目錄的讀取/寫入權限(會產生
.ai-style-rules.md和選擇性的CLAUDE.md)
工作流程
步驟 0 — 自動偵測模式
在專案根目錄靜默檢查 .ai-style-rules.md 是否存在:
| 檔案存在? | 模式 |
|---|---|
| 否 | 分支 A — 首次完整掃描 |
| 是 | 分支 B — 增量嗅探 |
用一行文字宣布模式並繼續 — 永遠不要讓使用者選擇。
分支 A — 首次完整掃描
1. 衡量規模,選擇掃描層級
git ls-files | grep -cE '\.(js|ts|jsx|tsx|vue|py|go|rs|java|kt|rb|php|cs|swift|c|cpp|h)$'
| 層級 | 原始檔案數 | 策略 |
|---|---|---|
| 小型 | ≲ 50 | 完整細讀每個原始檔 |
| 中型 | 50–500 | 基礎設施層 = 完整讀取;業務層 = 每個維度取 2–3 個取樣 |
| 大型 | ≳ 500 | 嚴格的取樣 + 預算上限;先彙整 --stat 摘要,再進行目標式讀取 |
2. 從 4 個維度掃描
- 檔案結構 — 檔案內的宣告順序(匯入 → 類型 → 主要邏輯 → 輔助函式 → 匯出)
- 狀態與控制流程 — 非同步狀態、分頁、旗標的命名慣例
- 基礎設施 — 跨橫切面工具(攔截器、格式化器、中介軟體)的存放位置
- 錯誤處理 — try/catch 與全域攔截器與 Result 回傳的取捨;null 檢查習慣
3. 應用訊號閾值的噪聲降低
在打斷使用者之前,先評估訊號強度:
- 弱訊號 → 自動抑制:少數派 < 5% 且數量 < 10 → 多數派獲勝,少數派列入禁止事項
- 強訊號 → 需要詳細審查:幾乎對半分,或是在核心維度上有語義分歧
- 小專案例外:原始檔 ≲ 50,