前言:一個月燒掉 $100 的真實故事

如果你正在考慮升級 Claude Code 的訂閱方案,或者已經升級了卻發現 token 還是不夠用,那你來對地方了。

這不是一篇推銷文,而是一個真實的使用心得。

我從 Pro Plan($20/月) 開始使用 Claude Code,很快就發現 token 不夠用。心想:「升級到 Max Plan($100/月)應該就沒問題了吧?」

結果呢?

Max Plan 的 token 也不夠用。

更尷尬的是,我花了大把的 token 去處理一些看似簡單的 bug,像是:

  • 體脂率的小數點精度問題
  • 排便次數顯示 null 和 0 的差異

這些問題聽起來簡單,實際上卻各花了大量 token 去「探索」程式碼。

直到我發現問題的根源不是 token 不夠 (Pro plan是真的不夠!),而是我沒有找到對的 Skill 來處理這類問題


問題分析:Token 都燒去哪了?

讓我用一張圖來說明沒有使用正確 Skill 時的除錯流程:

Mermaid Diagram

看到問題了嗎?

這就是「漫無目的的探索」——AI 不知道該往哪裡找,所以它嘗試讀取所有可能相關的檔案,每次讀取都在消耗 token。

Token 消耗的真相

操作類型Token 消耗實際價值
讀取不相關的檔案
廣泛搜尋 grep/glob低(通常需要多次)
隨機嘗試修復可能為負(引入新 bug)
來回確認「這樣對嗎?」

我的真實案例:為了修一個體脂率顯示的小數點問題,AI 讀取了:

  • Model 檔案(2個)
  • ViewModel 檔案(3個)
  • View 檔案(2個)
  • Repository 檔案(2個)
  • GraphQL 查詢檔案(1個)
  • 還有各種「可能相關」的 utils

總共讀了 10+ 個檔案,才找到問題其實只在 2 個檔案裡。


解決方案:使用正確的 Skill

我安裝了不少 Skill,也自己寫過幾個。但坦白說,在除錯時我一直沒想到要用 systematic-debugging 這個 Skill。

直到這次踩坑,我才意識到它正是為這種場景設計的。

什麼是 Systematic Debugging?

它是一種假設驅動的除錯方法,核心理念是:

先思考,再行動。先建立假設,再驗證假設。

Mermaid Diagram

使用方式

當你遇到 bug 時,在開始之前先輸入:

/systematic-debugging

這會啟動一個結構化的除錯流程,AI 會:

  1. 先釐清問題:「你看到了什麼症狀?預期行為是什麼?」
  2. 建立假設:「可能的原因有 A、B、C」
  3. 設計驗證:「只需要讀這 1-2 個檔案就能驗證假設 A」
  4. 精準定位:避免讀取不相關的檔案

實戰對比:有 Skill vs 沒 Skill

案例:體脂率小數點精度問題

問題描述:體脂率應該顯示 4 位小數,但只顯示了 2 位。

沒有使用 Skill 的流程

我:體脂率只顯示 2 位小數,應該要 4 位

AI:讓我搜尋相關程式碼...
    [讀取 body_fat_model.dart]
    [讀取 diary_view_model.dart]
    [讀取 diary_page.dart]
    [讀取 body_composition_repository.dart]
    [讀取 graphql_queries.dart]
    [讀取 number_formatter.dart]
    [讀取 diary_card_widget.dart]
    ...

    找到了!問題在 number_formatter 的 toStringAsFixed(2)

消耗:讀取 8+ 個檔案,大量 token

使用 Skill 的流程

我:/systematic-debugging
    體脂率只顯示 2 位小數,應該要 4 位

AI:讓我先釐清問題範圍。

    症狀:顯示精度不足
    預期:4 位小數
    實際:2 位小數

    假設優先順序:
    1. View 層格式化問題(最常見)
    2. ViewModel 層轉換問題
    3. Model 層資料問題(較少見)

    驗證假設 1:請告訴我顯示體脂率的是哪個頁面?

我:diary 頁面的 body fat card

AI:[只讀取 diary_body_fat_card.dart]

    找到了!這裡使用 toStringAsFixed(2),改成 4 即可。

消耗:讀取 1 個檔案,精準定位

Token 節省效果

指標無 Skill有 Skill節省
讀取檔案數8+1-275-85%
搜尋次數5+1-260-80%
總 Token 消耗70%+
解決時間50%+

為什麼會忽略正確的 Skill?

明明裝了很多 Skill,為什麼遇到 bug 時沒想到用?

我反思了一下,大概有這些原因:

情況心態
Bug 看起來簡單「這應該很快就能修好,不用特地叫 Skill」
習慣讓 AI 自己處理「讓它搜就好,反正它會找到」
Skill 太多,不確定用哪個「systematic-debugging 是做什麼的來著…」
趕時間「先讓它跑,我邊看邊引導」

回頭看,這些「省時間」的想法反而花了更多時間和 token。


如何避免重蹈覆轍

方法 1:在 CLAUDE.md 中加入鐵則

把 Skill 使用規則寫進專案的 CLAUDE.md,讓 Claude Code 每次開啟專案時都會看到:

## Debugging Rules - IRON LAW
- **ALWAYS use `/systematic-debugging` skill BEFORE proposing any fix**
- **NEVER explore codebase randomly** - this wastes tokens and time
- Follow hypothesis-driven debugging:
  1. Define symptoms clearly
  2. Form hypotheses about possible causes
  3. Design minimal verification steps
  4. Eliminate causes systematically with targeted reads

方法 2:記住關鍵場景對應的 Skill

# 遇到 bug 時
/systematic-debugging

# 需要規劃實作時
/brainstorming

# 完成功能要 review 時
/requesting-code-review

# 需要寫實作計畫時
/write-plan

方法 3:善用 Explore Agent

當你需要了解程式碼結構時,使用 Task tool 的 Explore agent,而不是讓 AI 自己 grep 來 grep 去:

「使用 Explore agent 幫我找出處理 user authentication 的相關檔案」

進階技巧:其他節省 Token 的方法

1. 提供精確的上下文

❌ 不好的問法:

「幫我修這個 bug」

✅ 好的問法:

「diary 頁面的 body_fat_card.dart 中,
體脂率顯示只有 2 位小數,應該要 4 位。
問題可能在格式化的部分。」

2. 善用 CLAUDE.md

把專案架構、命名規則、常見檔案位置寫在 CLAUDE.md 中,AI 就不用每次都從頭探索。

3. 追蹤資料流

對於顯示問題,先確認資料流:

API → Model → ViewModel → View

問 AI 從哪一層開始檢查,而不是讓它全部都看一遍。


結論:找對工具比升級方案重要

經過這次經驗,我的心得是:

1. Skill 是設計來解決特定問題的

每個 Skill 都有它的適用場景。systematic-debugging 就是為了除錯設計的,早點用就能少走彎路。

2. 寫進 CLAUDE.md 比記在腦子裡可靠

人會忘記,但 CLAUDE.md 每次都會被讀取。把重要的工作流程寫進去,形成「鐵則」。

3. 升級方案不是解決效率問題的答案

從 $20 升到 $100,如果使用方式不變,很快又會不夠用。

改變使用方式,找到對的 Skill,才是根本解法。


希望這篇文章能幫你少走一些彎路。

如果你也有類似的經驗或其他節省 token 的技巧,歡迎交流。


延伸閱讀:


寫作時間: 2025-12-20