前幾天我讓 Claude Code 開始自己規劃、拆解任務,也測試了 Human-in-the-Loop。
這讓我開始思考一個更實際的問題:
如果今天一個功能需要同時修改很多檔案,Claude Code 能不能自己處理,而且不會改到一半就把整個專案弄亂?
在實際開發中,一個功能通常不會只存在於一個檔案。
例如新增一個 API,可能需要修改:
model.py
↓
api.py
↓
module.py
↓
database
↓
test.py
所以今天我拿前幾天的文章功能來做實驗。
我先告訴 Claude Code:
請幫我新增文章搜尋功能。
這個功能可能需要修改多個檔案,
請先分析目前專案,
確認哪些檔案需要修改。
先不要修改程式碼,
先告訴我修改範圍與原因。
Claude Code 分析後,發現這次功能並不是只修改 API 就可以完成。
model.py 需要定義 keyword 參數,module.py 需要處理搜尋邏輯,api.py 需要把參數傳給 Service,而 Test 也需要新增搜尋相關的測試。
確認修改範圍後,我再讓它開始執行。
這次我特別注意一件事情:
不同檔案之間的修改有沒有互相對得起來。
例如 api.py 接收到的是:
keyword
那麼 ArticleService.list_all() 就必須真的能接收這個參數。
如果 API 有傳:
list_all(keyword)
但 Service 還是:
list_all()
就會直接造成錯誤。
所以跨檔案修改真正困難的地方,不只是「改很多檔案」,而是要維持不同檔案之間的介面與資料流一致。
這次 Claude Code 修改完成後,我讓它執行完整 Test,而不是只測試新增的功能。
最後確認:
24 passed, 0 failed
代表新增功能的同時,原本的功能也沒有被這次修改破壞。
這次實驗讓我發現,Claude Code 在處理多檔案任務時,前面的 Planning 其實非常重要。
如果沒有先理解專案架構,就直接叫 AI 修改,很容易只改到其中一個地方,卻忘記其他檔案也需要配合。
而有了前面幾天建立的習慣,我現在比較傾向讓 AI 先回答:
「這個需求會影響哪些地方?」
確認之後才開始修改。
這也讓我開始覺得,AI Agent 的能力並不是單純「一次可以改幾個檔案」,而是能不能理解這些檔案之間的關係,並根據修改結果繼續完成後面的工作。
下一天,我想換一個方向。
如果 AI 可以幫我新增功能,那它能不能反過來幫我整理那些已經存在、但寫得不太好的 Code?
明天研究主題:讓 Claude Code 幫我重構舊 Code