Hub Claude Code 教學

進階篇 · 第 7 章

工作模式與 Claude Code 心法

前面幾章,你已經會叫 Claude Code 寫程式、用 CLAUDE.md 給它記憶、用 Git 存進度了。這一章不教新指令,而是教你「怎麼跟它合作得更順」——什麼時候讓它先想清楚再動手、怎麼決定哪些事不用每次問你、以及一些讓它表現更穩的相處之道。這些都是進階心法,不是非學不可。 你大可先照前面的方式用得很開心,等哪天覺得「想更上手一點」,再回來這章慢慢看。

7.1 三種權限模式:決定它「多常問你」

還記得嗎?Claude Code 動手做事之前,會先停下來問你一聲:「我可以改這個檔案嗎?」「我可以跑這個指令嗎?」這是它的安全設計——不會趁你不注意亂動東西。

權限模式,就是用來調整它「多常停下來問你」的那個開關。有時候你想要它每一步都先報備(最安全);有時候你信得過、想讓它一口氣做完、你最後再一起檢查(最省事)。三種模式就是給你這個彈性。

一開始 Claude Code 預設就是從「預設(default)」模式開場,除非你在 settings.json 裡設了 defaultMode,或啟動時加上 --permission-mode 指定別的模式。

在終端機裡,按 就能在這幾種模式之間循環切換,目前是哪一種,會顯示在畫面下方的狀態列。切換順序是:

預設(default)→ 接受編輯(acceptEdits)→ 計畫(plan),再按又轉回預設。

補充一點:如果你的帳號有開啟 bypassPermissions 或 auto 這類額外模式,它們會接在「計畫(plan)」之後出現在循環順序裡,所以你按 Shift + Tab 看到的選項可能比上面這三個多——這是正常的。

按了 Shift + Tab 卻沒切換,或「計畫」選項不見了?

這通常不是你按錯,是終端機程式跟 Claude Code 之間對「這個按鍵代表什麼」沒對上。社群陸續回報過幾種狀況:某些版本的 Windows Terminal 只在「接受編輯」和「自動接受」兩個模式間循環,「計畫」模式整個從選項裡消失;原生 Windows PowerShell(沒透過 Windows Terminal 開)有時按了完全沒反應;比較新潮、採用不同鍵盤協定的終端機(例如 Ghostty)送出的按鍵訊號格式不一樣,Claude Code 認不出來。踩到這幾種狀況,別浪費時間狂按,改用文字指令 /plan 一樣能進計畫模式(下一節會教),效果相同;持續有問題,可以查當時的終端機設定說明排解,這塊會隨版本修正。

下面這張表把三種模式攤開給你看。看不懂沒關係,記住最後一欄就好:新手請先用「預設」這一個。

模式 它能「不問你」就做什麼 適合誰
預設 default 沒有——每一個動作都先問過你才做。 敏感工作、新手(✅ 先用這個)
接受編輯
畫面會顯示 ⏵⏵ accept edits on
自動套用「改檔案」這類編輯,不用每筆都核准(但受保護路徑仍然不會自動改)。 你想事後git diff 一次檢查全部,而不是一筆一筆核准的時候
計畫 plan
畫面會顯示 ⏸ plan mode on
只研究、只提計畫,完全不會碰你的程式碼 大改動之前,先讓它規劃

「接受編輯」實際上放行到多細?

這個模式不是「什麼都自動過」,它只放行兩件事:改檔案本身,以及少數幾個公認安全、只會動到檔案系統的 Bash 指令——像 mkdir(建資料夾)、touch(建空檔)、rmrmdir(刪除)、mv(搬移改名)、cp(複製)、sed(改檔案內容)這類,而且僅限在你目前的專案資料夾(或你額外加進去的目錄)裡,範圍外的路徑一樣要問。至於其他指令,特別是任何會連網路、會裝套件、或會執行專案自訂腳本的動作,一律照樣跳出來問你,不會因為切了這個模式就整批放行。實際被納入「安全清單」的指令細節可能隨版本調整,看到清單跟這裡描述的不完全一樣不用意外,以當下的官方文件為準就好。

一條底線:除了最寬鬆那個模式,沒有人能亂動你的「受保護路徑」

不管你切到哪個模式,有一類叫「」的重要檔案,Claude Code 都不會自動去改——它保護的是你的專案狀態,還有 Claude Code 自己的設定,不讓它們被誤動。具體來說,這類受保護的目錄與檔案包含 .git.claude(其中 .claude/worktrees 是例外,會被當成一般工作區處理)、.vscode.idea.husky.devcontainer 這類編輯器與工具設定資料夾,以及 .bashrc.zshrc.gitconfig.npmrc.gitmodules.mcp.json.claude.json、pre-commit 設定等檔案——這張清單會隨版本持續增補,實際內容以官方文件當時列出的為準。唯一的例外是一個叫 的「完全放行」模式,那個非常寬鬆、新手請不要碰。換句話說,只要你用預設或前面兩種模式,就有這道安全底線在守著你。

「新手請不要碰」不是說著玩的,是真的出過事

bypassPermissions 不是危言聳聽的警告,社群裡已經有真實的慘痛案例。2025 年秋天有人在巢狀專案目錄下開著這個模式跑一個韌體專案,Claude 執行了一個從根目錄開始跑的刪除指令,事後留下的紀錄看得到它一路想清 /bin/boot/etc 這些系統路徑,最後是作業系統自己的檔案權限擋住才沒讓整台機器報銷,但這個人自己專案裡的檔案已經全部沒了——而且對話紀錄只留下指令執行後的「結果」,沒留下當初到底下了什麼指令,事後連要搞懂發生了什麼事都很難。2026 年初也有一起案例:使用者明確交代「幫我整理資料夾,東西都留著」,結果代理人執行了刪除指令,清掉了將近 11GB 的檔案,任務清單上還把「刪除使用者資料」這件事標成「已完成」。

這不代表 bypassPermissions 完全沒有底線——它在 macOS/Linux 上如果偵測到你是用 rootsudo 執行,會直接拒絕啟動(值得信任的沙盒容器環境除外);就算真的開著它,對 rm -rf /rm -rf ~ 這種對準根目錄、家目錄的刪除指令,仍然會跳出來要你確認,這是官方留給模型犯錯的最後一道防線。但這道防線只攔得住「整台機器」等級的災難,攔不住「你自己的專案資料夾」被清空——社群的共識很一致:別在自己的正式環境直接開這個旗標,真的需要無人值守的自主權,去用有網路白名單、跟正式環境隔離的容器或虛擬機器來跑。

還有一個「auto」模式,但不一定看得到

你可能會聽說還有一個叫 auto(自動 / 研究預覽) 的模式。它的特色是:背後有一個自動審查的機制幫你把關,大部分動作不用一一問你。不過這個選項只在「符合資格的帳號」上才會出現,所以你的畫面可能根本沒有它——沒看到是正常的,不影響你使用。

想知道原理:auto 模式怎麼判斷「這個動作要不要問我」?

auto 模式背後有一個自動「分類器」:每當 Claude Code 要做一個動作(例如執行某個指令、改某個檔案),分類器會先快速判斷這個動作有沒有風險。被判定為安全的,就直接放行、不打擾你;看起來有疑慮的,才停下來請你確認。它的好處是「該問的才問」,幫你省掉一堆對安全指令的重複核准。但它也不是萬無一失,所以才只在特定帳號上開放、當作「研究預覽」功能慢慢驗證。另外要注意:你使用的 Claude 模型版本必須是 Opus 4.6 或 Sonnet 4.6 以上才支援;像 Sonnet 4.5、Opus 4.5、Haiku 這些較舊的版本不支援,就算帳號符合資格也不會看到 auto 模式。

7.2 計畫模式(Plan Mode):先想清楚,再動手

這是整個進階篇裡,最值得你學起來的一招。

想像你要請一位裝潢師傅改你家廚房。你可以「直接叫他動手敲」,也可以先請他「畫一張施工圖給你看、你滿意了再敲」。計畫模式()就是後者。 在這個模式下,Claude Code 會去讀你的檔案、四處探索、然後寫出一份「我打算怎麼做」的計畫——但它完全不會動到你的程式碼。你看過、改過、點頭了,它才真的開工。

為什麼這招這麼有用?因為對複雜一點的任務來說,「先講清楚要做什麼、彼此對齊」往往比「直接叫它做、做歪了再重來」省事太多。你等於是在它動手前,先把方向談妥。

  1. 動手做

    在對話中按兩次 Shift + Tab,進入計畫模式

    第一次按 Shift + Tab 會切到「接受編輯」,再按一次就到「計畫模式」。看畫面下方狀態列出現 ⏸ plan mode on,就代表進來了。

  2. 動手做

    用一句話告訴它「先研究、再規劃」,先別叫它寫

    把你的目標說清楚,重點是「規劃」不是「動手」。例如照下面這樣打(這是範例,換成你自己的需求):

    讀 src/auth/ 搞懂我們現在怎麼處理登入狀態,然後規劃一下要怎麼加入「用 Google 帳號登入」。先別動程式碼,給我一份計畫。
  3. 動手做

    看它寫的計畫,用對話來回修,滿意了才讓它實作

    它會回給你一份「打算怎麼做」的計畫。覺得哪裡不對、想加東西、想換順序,就直接打字告訴它改。等這份計畫你看順眼了,再說一句「好,照這個計畫開始做」,它才會真的動手寫程式。

    預期會看到
    # 它會先回一份「計畫」而不是直接改檔,大致像這樣(實際內容依你的專案而定)
    我的計畫:
    1. 在 src/auth/ 新增 google.ts,處理 Google 登入流程
    2. 修改 login.ts,加入「用 Google 登入」按鈕的串接
    3. 更新設定檔,填入需要的金鑰欄位
    (在你說「開始做」之前,我不會改任何檔案。)

審計畫還有兩個好用的細節

想直接動手改計畫,而不是一句一句打字要求? 在支援的終端機裡按 Ctrl + G,它會把整份計畫用你電腦的預設文字編輯器開出來,你可以像改一份普通檔案一樣直接刪改、調順序,存檔關掉,Claude Code 會照你改過的版本繼續——比在對話裡一輪一輪口頭要求快得多。

核准計畫的那一刻,它還會順便問你「核准後要進哪個模式」:接下來是要它照計畫一路做到底(進「接受編輯」或更自主的模式),還是每一步都想再親眼看過再放行(留在預設模式逐步審)。這次任務你有多信任它,就選對應的收尾模式,不用每次都套同一個習慣。

除了在對話裡按鍵切換,還有幾個更快的入口,看你的情境挑:

只是這一句話想先規劃、不想整個 session 都切模式?在提示詞前面加 /plan 當開頭就好,例如「/plan 幫我看看要怎麼加深色模式」——這一輪會用計畫模式處理,講完之後不會一直卡在計畫模式裡,很適合偶爾一次的規劃需求。

如果你開新對話時就知道「這次要先規劃」,可以在啟動時直接從計畫模式開場,不用進去再按 Shift + Tab

建議執行:開新 session 就直接進計畫模式

claude --permission-mode plan

以上兩招都只對「這一次」有效。如果某個專案你每次開工都想先看計畫(例如正在動一個容易出包的老系統),可以把它寫進專案的 .claude/settings.json,之後在這個專案開新對話就自動從計畫模式開始,不用每次手動指定:

{
  "permissions": {
    "defaultMode": "plan"
  }
}

官方推薦的「兩階段法」:先規劃、再動手

Anthropic 官方建議把複雜任務拆成兩階段:第一階段在計畫模式下,讓它研究、寫計畫,你來回修到滿意;第二階段才讓它照計畫實作。比起「直接叫它寫」,這個「先想清楚再動手」的兩步,對複雜任務的效果好上非常多。記住一句話就夠:愈複雜的事,愈值得先看計畫。

用 VS Code 的人有個小福利

如果你是在 VS Code 裡用 Claude Code,它的計畫會以一份 Markdown 檔案打開。你可以直接在檔案上加行內註解,把回饋寫在你想改的那一行旁邊,溝通更精準。(純終端機用對話文字回饋也完全沒問題。)

7.3 用 /permissions 設定「哪些可以直接放行」

用久了你會發現一件煩事:有些指令明明很安全(像「跑一下測試」npm test、像「看一下目前狀態」git status),它卻每次都還要問你一遍「可以嗎?」。一直按確認,很累。

解法是:建一份允許清單,把這些你信得過的指令登記起來,之後它對這些就不再每次問,直接放行。同樣地,你也可以建一份禁止清單,把危險動作(例如刪檔)擋下來,連問都不問就拒絕。

怎麼設定,有兩種方式,挑順手的:

建議執行:在對話裡叫出權限設定畫面

/permissions

在對話裡直接打這個指令,它會開一個畫面讓你管理「放行」和「禁止」清單,照畫面操作就好。

你也可以直接編輯專案裡的 .claude/settings.json,在 permissions.allow(放行)清單裡加你信任的指令;想擋掉的危險動作,就放進 permissions.deny(禁止)清單。這個之後第 8 章「個人化設定」會更完整地教,這裡先知道有這條路就好。

放行清單管不到「受保護路徑」

這份允許清單很好用,但有一個地方它管不到:就算你在 permissions.allow 裡明確寫規則想放行,7.1 提過的受保護路徑.git.claude 這類)還是不會被自動放行——那張保護清單的優先權比你自訂的允許清單高。這是刻意設計成這樣:允許清單管的是「省去重複詢問」,不是拿來拆掉系統本來就有的安全底線。真的要動那些檔案,還是得走一般的逐次確認,或自己動手改。

剛開始,可以先放行這幾個「絕對安全」的

不確定要放行什麼?可以先從「只看、不改」的查詢類指令開始,例如 git status(看目前狀態)、npm test(跑測試)。這類指令不會動到你的東西,放行了也安心,又能省下一堆重複確認。危險的動作(特別是刪除類)就別放行,讓它每次都問你,多一道保險。

7.4 讓它表現更穩的相處之道

最後這節,是一些「相處心法」——沒有新指令要背,但照著做,Claude Code 會明顯更好用、更少出包。你可以把它當成「跟一位能幹同事合作的訣竅」來看。

  • 把它當成「能幹的新同事」,給方向、給脈絡,細節交給它。 別把它當成只會照字面做事的機器。最好的用法是:說清楚「要解決什麼問題、相關的東西在哪裡」,剩下的怎麼做交給它。比方說,與其只丟一句「修一下結帳」,不如說:「結帳流程對『信用卡過期』的使用者會壞掉,相關程式在 src/payments/,幫我找出原因並修好。」——你給的脈絡愈足,它做得愈準。
  • 複雜的事,「研究」和「動手」分開做。 這就是回到 7.2 的計畫模式:遇到大一點、不確定的任務,先讓它研究、出計畫,你對齊好了再讓它寫。把「想清楚」和「動手做」分成兩步,比一口氣叫它做穩得多。
  • 善用「延伸思考」,讓它對難題多想一下。 碰到複雜問題時,Claude Code 預設會自己「多想一會兒」再回答(這叫)。你不用做什麼就有這個好處。如果你好奇它在想什麼,按 可以切換「開啟/關閉」延伸思考——看不懂也沒關係,這純粹是給你參考的。想再精細一點調整它想多深,官方有個 /effort 指令可以手動調(下面有原理可以展開看)。
  • 先用 /init 生成 CLAUDE.md,再慢慢打磨。 還記得第 5 章的 CLAUDE.md 嗎?讓它在每次對話都先讀懂你的專案規矩。實務上的好習慣是:一開始先用 /init 自動生成一份,之後每次發現「它又忘了某個規矩」,就順手補一行進去。養久了,它會愈來愈懂你的專案。
  • 讓它自己抓脈絡,別自己慢慢貼。 需要它看某個網頁、某份錯誤紀錄時,與其手動複製一大段貼給它,不如直接把來源餵給它。例如把錯誤 log 直接「倒」給它看:
    cat error.log | claude
    這行的意思是「把 error.log 這個檔的內容,直接交給 claude 看」。它就能拿到完整的錯誤訊息,不會因為你只貼了一小段而漏掉關鍵線索。
想知道原理:為什麼「研究」和「寫程式」分開做,結果會更好?

道理跟人一樣:要你「一邊摸清楚狀況、一邊就把事情做完」,很容易顧此失彼——對問題還沒完全理解,就先寫下去,寫到一半發現方向錯了,又得回頭重來。把兩件事分開後,「研究」階段它能心無旁騖地把問題、相關檔案、可能的做法都看清楚,整理成一份計畫;你在這個階段就能及早發現「啊它理解錯了」並糾正,成本很低。等計畫對齊了,「動手」階段它只要照著清楚的計畫實作,犯錯的機會自然小很多。一句話:先把地圖畫對,再上路,比邊走邊畫地圖少繞很多冤枉路。

想知道原理:/effort 怎麼調,還有 ultrathink 這個關鍵字到底還有沒有用?

「多想一會兒」不是只有開跟關兩檔。官方另外提供 /effort 指令,把它分成好幾級:從省時間的 lowmedium,到多花心思的 highxhigh,一路到最深的 max。多數任務用預設值就夠了,真的卡關、需要它認真想透一個難題時再手動往上調;max 只在當次 session 有效,不會變成你以後每次的習慣設定,其餘等級會一直沿用到你自己改回去為止。至於哪一級對應多深、各模型的預設落在哪一級,這塊改版頻率高,實際數值請以你終端機打 /effort 或當時的官方文件為準,這裡記得「有這個旋鈕可以轉」就好。

另外要破解一個流傳很廣的舊說法:不少早期教學文章講得煞有介事,說「think=4000 token、megathink=10000、ultrathink=32000」,好像每個字都對應精確的分級。這套說法已經對不上現況。依目前的官方文件,提示詞裡只剩 ultrathink 這個字還會被特別辨識——寫進提示詞的任何位置,Claude Code 就會多做一輪比較深的推理;至於 thinkthink hardthink harder 這些說法,現在就只是普通的一句話,不會被特殊解讀成「加碼多少 token」。這塊變動得快,教學文章裡看到講得很精確的 token 數字,多留一個心眼,以你當下裝的版本說明為準。

這章是「需要再回來」的那種

你已經知道怎麼讓 Claude Code 先看計畫再動手、怎麼少被它打擾、以及幾個讓它更穩的相處心法。這些都是進階心法——現在記個大概就好,不用全部背起來。等你實際用一陣子,哪天覺得「它老是問我一些小事」或「這個任務有點複雜」,再翻回這章對症下藥就行。下一章我們來看怎麼把 Claude Code 調整成你自己順手的樣子