Claude Code系列文7 – Plan Mode看清楚再動手

目錄

本篇文章的重點

  1. 先瞭解需求再動手 – 在真正消耗token寫程式之前,先充分瞭解Claude Code接下來可能的改動,減少token浪費。
  2. 三種實戰場景 – 程式開發常遇到的三種場景。
  3. Shift + Tab切換Plan Mode

先讓Claude Code瞭解需求再動手

當我們開始用 Claude Code 寫程式時,多數人的直覺是打開 IDE、直接讓 Claude Code 修改程式碼,但這其實是錯的起手式;更有效的方法,是先讓 AI 徹底理解專案本身:從讀取目錄結構與 README 開始,接著掌握核心模組的進入點、測試程式的執行方式,以及 CI 設定檔,逐步建立整個系統的心智模型,包括有哪些模組、彼此之間如何依賴、資料如何流動、哪些地方使用了關鍵技術,以及背後是否存在歷史性的技術決策

在這個階段,Claude Code 不應該寫任何程式或執行任何指令,而是專注於分析、理解與規劃,你可以在這樣的模式下與 Claude Code 討論需求,讓它充分理解接下來要實作的功能、影響範圍與架構調整

若是全新專案,則更需要先清楚定義專案目標、技術棧、系統架構與功能規劃,讓 Claude Code 在動手前就建立完整脈絡;最終,只有在你明確授權之後,才讓 Claude Code 開始介入撰寫與修改程式碼,確保整體系統的一致性與可維護性——因為 Claude Code 的價值,不在於寫得多快,而在於它是否真正理解你的系統

實戰場景

場景一:多步驟實作

你要做一個跨多個檔案的功能。比方說,把認證系統從 JWT 換成 OAuth2。這牽涉到 auth middleware、user model、token service、API routes、前端的 token 管理、資料庫 schema⋯⋯一改就是十幾個檔案

如果你直接讓 Claude 開始改,它會怎麼做?它會按照自己的理解,一個檔案一個檔案地改。改到一半你發現方向不對——但它已經動了七個檔案了。你要 undo,要搞清楚哪些改動要保留哪些要丟掉

正確的做法:先在 Plan Mode 裡讓 Claude 分析所有相關檔案,列出完整的遷移計畫——先改什麼、後改什麼、哪些地方有向下相容的問題、資料庫要不要做 migration。你看完計畫,確認方向對了,再切換到正常模式讓它執行

場景二:程式碼探索

你剛加入一個新專案。或者你要去改一個你三個月沒碰的模組。你需要重新理解這段 code 在做什麼

Plan Mode 在這裡就是你的程式碼導覽員。你可以問 Claude:

  • 「這個 authentication 模組的整體架構是什麼?」
  • 「資料從前端到資料庫經過哪些 middleware?」
  • 「這個 utils 資料夾裡哪些函式被最多地方引用?」

Claude 會翻遍你的程式碼,讀取相關檔案,然後給你一個清晰的分析。但它不會動你任何一行 code,你可以安心地探索,不用擔心 Claude 一不小心改了什麼

場景三:互動式討論

有些技術決策不是一次就能定下來的。你心裡有三個方案,但不確定哪個最好。

Plan Mode 讓你可以跟 Claude 反覆討論。你丟一個想法,Claude 分析利弊。你再丟另一個想法,Claude 比較兩者。你們一來一回,最後收斂到最佳方案。整個過程中,Claude 沒有動你的 code——因為方向還沒確定,動 code 是浪費

等到你們達成共識了,切換到正常模式,Claude 根據剛才討論的結論開始執行

如何使用Plan Mode

在Session中切換

在對話過程中,按 Shift+Tab 可以在三種權限模式之間循環切換

Normal Mode → Accept Edits Mode → Plan Mode → Normal Mode → …

啟動時直接指定

claude --permission-mode plan

實戰案例:用Plan Mode規劃一次複雜重構

背景

假設你的專案目前用自己寫的 JWT 認證系統,現在要遷移到 OAuth2。這是一個牽涉面很廣的重構——auth middleware、token 管理、使用者模型、API 路由、資料庫 schema 全部都要改

Step 1: 進入Plan Mode

claude --permission-mode plan

Step 2: 讓Claude Code分析現況

> 我需要把認證系統從自製 JWT 遷移到 OAuth2。
> 請分析目前的認證系統架構,列出所有相關檔案和它們的依賴關係。

Claude Code會開始讀取你的codebase,它會找到 auth 相關的 middleware、token 生成邏輯、使用者模型、路由定義、前端的 token 儲存方式。然後給你一份結構化的分析報告

Step 3: 追問細節

> 向下相容怎麼處理?現有的使用者已經有 JWT token,遷移期間怎麼同時支援兩種認證?
> 資料庫需要做什麼 migration?使用者表要加什麼欄位?
> 前端的 token refresh 邏輯需要怎麼調整?

每一個追問,Claude 都會回去讀更多相關檔案,然後給你更細緻的分析。整個過程中,它沒有碰你的任何一行 code。

Step 4: 確認計劃

經過幾輪討論,收斂出一份完整的計畫:

  1. 先建立 OAuth2 的 provider 設定
  2. 加一個新的 auth middleware 支援 OAuth2 token
  3. 修改 user model,加入 OAuth2 相關欄位
  4. 寫 database migration
  5. 更新 API routes,支援 OAuth2 callback
  6. 調整前端 token 管理邏輯
  7. 在過渡期用 adapter pattern 同時支援 JWT 和 OAuth2
  8. 寫測試覆蓋新的認證流程
  9. 驗證通過後,移除舊的 JWT 邏輯

正確無誤之後再開始執行

Step 5: 切換到一般模式,開始執行

Shift+Tab(按到 Normal Mode),然後:

> 根據我們剛才討論的計畫,從第一步開始執行。

Claude 有了完整的理解和明確的計畫,執行的品質會比直接讓它衝高很多。因為它不是盲目地改 code——它是帶著全局理解、按照確認過的計畫在工作。

這就是 Plan Mode 的價值:讓 AI 的執行有基礎,而不是碰運氣

發佈留言