自動模式是什麼?
官方文件的描述是:Claude Code 不再對例行操作逐一請你確認,而是把工具呼叫送進分類器,分類器擋下不可逆、破壞性、或指向你環境之外的動作。預設情況下,分類器只信任工作目錄與目前 repo 已設定的 remote,所以推到公司的其他組織、寫入團隊的雲端 bucket 這類動作,在你把它們加進 autoMode.environment 之前都會被擋。
為什麼需要它,跟逐一確認或完全放行有什麼不同?
逐一確認會讓人養成不看就按同意的習慣,完全放行(bypass)則沒有任何檢查。自動模式是中間路線:用分類器代替人做第一輪判斷。但它不是硬邊界:官方說明 deny 與明確的 ask 規則在分類器之前評估,仍然會擋或詢問;分類器是權限系統之後的第二道關卡。
分類器怎麼判斷,設定怎麼調?
分類器內部有四層:hard_deny 無條件擋;soft_deny 擋,但使用者意圖與 allow 例外可以放行;allow 是 soft 規則的例外;使用者訊息若直接描述了那個具體動作,也能放行。設定放在 autoMode 區塊(environment、allow、soft_deny、hard_deny),只從 ~/.claude/settings.json、managed settings 與 --settings 讀取,不讀專案設定。陣列裡要放 "$defaults" 才會保留內建規則,沒放就是整份取代。可用 claude auto-mode defaults、config、critique、reset 與 /auto-mode-setup 檢視與草擬。
對我有什麼影響?
如果你開自動模式:先把自己的 repo 組織、內部網域、雲端 bucket 寫進 environment,才能減少誤擋;要絕對不能做的事用 managed 的 permissions.deny,不要指望分類器設定;官方也說開發者加的 allow 可以蓋過組織的 soft_deny,所以組織層級的硬規則放 permissions.deny。我沒有實測分類器的準確度,官方頁面也沒有給誤擋或漏擋的比率。
官方文件的例子:「整理一下 repo」不算授權 force push,但直接說「force-push 這個分支」就算明確意圖,分類器會放行。另一個:推到名稱標示為部署目標的分支(如 production、release、gh-pages),分類器會把它當 production deploy 另行判斷。
優點是減少例行確認又保留一層檢查;缺點是分類器看不到的環境資訊要靠你寫進設定,漏寫會誤擋,陣列漏放 "$defaults" 又會無聲地拿掉內建規則。