Claude Code 可以客製化權限,方法是在專案根目錄放一個 `.claude/settings.json`,用 `permissions.deny` 把正式檔案的路徑擋掉,實習生的 Claude Code 就不會、也不能去改那些檔。這件事三分鐘可以設好,但我發現真正卡住老闆的,從來不是技術,是「他不知道自己想守住什麼」。
先講一個真的發生過的事。上個月一家做電商後台的公司,六個人,其中一個是暑期實習生。老闆讓他用 Claude Code 幫忙整理商品描述的 script,結果那孩子叫 Claude Code 「順便把資料夾整理乾淨一點」,Claude Code 很聽話,把一個放線上結帳邏輯的檔案也一起「整理」了。晚上八點,結帳頁面開始跳錯。老闆打給我的時候聲音是抖的,他說:「我不是不信任這孩子,是我根本沒想到 AI 會動到那個檔。」
這句話我記到現在。問題不在實習生,也不在工具。是他從來沒有畫過一條線,說「這裡不能碰」。
先設界線,再談效率
Claude Code 的權限設定其實很直接。你在專案根目錄開一個資料夾叫 `.claude`,裡面放一個 `settings.json`,最基本的長這樣:
`{ "permissions": { "deny": ["Edit(./production/)", "Write(./production/)"] } }`
意思是:任何在 `production` 資料夾底下的檔案,Claude Code 都不准編輯、不准覆寫。它連提議都不會提議,直接擋在門外。你把哪個資料夾放正式檔,就把哪個路徑寫進去。結帳邏輯、金流設定、客戶資料庫的 migration,這些你不想讓人手滑的,全部列進 deny。
這個 `settings.json` 是可以 check 進 git 的,代表整個團隊拉下來就套用同一套規則,不是靠每個人自律。實習生的機器、你的機器、資深工程師的機器,同一條線。而每個人自己還可以有一個 `settings.local.json` 放個人偏好,那個不進版控。公用的守規矩,私人的歸私人。
deny 之外,還有一層「問一下」
權限不是只有「准」跟「不准」兩格。中間還有一格叫 `ask`。你可以設某些操作要先問過你才做,比如刪檔、跑 git push、動到設定檔。實習生要碰邊界地帶的東西時,Claude Code 會停下來等一個「可以」,那個「可以」由你按。
我通常建議新團隊這樣分三層:正式檔案 deny,直接擋死;有風險但偶爾要動的 ask,人來把關;剩下的日常工作 allow,放手讓他跑。這樣實習生該學的東西照學,該練的手照練,只是他練功的場子跟正式營運的場子被隔開了。
這件事,易經早就講過
六十四卦裡有一卦叫「節」。節就是節制、就是界限。它的卦象是水在澤上,澤的容量有限,水滿了就得有個度。卦辭講得很有意思:「節,亨。苦節不可貞。」意思是有節制才通達,但把界限設到讓人痛苦的地步,就守不住了。
這句話我拿去對照權限設定,覺得古人真的看過人性。很多老闆一出事就反應過度,乾脆什麼都不讓實習生碰,結果那孩子整個暑假只能複製貼上,什麼也沒學到,這就是「苦節」。另一種老闆是完全不設限,出事才後悔,那是連節都沒有。
真正的分寸在中間。你 deny 的是那幾個「錯了就要熬夜補」的檔,其他的儘量放開。界線畫在對的地方,人才會在裡面自由。
我後來幫那家電商設完 deny,老闆傳訊息給我,說他第一次覺得可以放心讓實習生用 AI 了。不是因為工具變安全,是因為他終於知道自己要守的是哪三個檔案。
這才是重點。工具給你一把鎖,可鎖住哪扇門,得你自己決定。