前幾天我先讓 Claude Code 做 Planning,再把「新增文章搜尋功能」拆成幾個可以執行的小任務。
到了今天,我想直接測試:
如果已經有完整的 Plan,Claude Code 能不能按照計畫,自己完成整個功能?
所以這次我沒有再一個檔案一個檔案告訴它要怎麼修改,而是直接讓它按照前面拆好的 Task 開始執行。
這次總共分成 4 個主要修改:
test_account_and_article_api.py:新增 5 個搜尋功能的 Testmodel.py:新增 keyword Query Parametermodule.py:讓 ArticleService.list_all() 支援 keyword
api.py:讓 /articles 接收 keyword 並傳給 Service完成修改後,再進行完整的回歸測試。
最後的結果是:
24 passed, 0 failed
也就是目前的 24 個 Test 全部通過。
這 24 個 Test 不只有這次新增的文章搜尋功能,也包含原本的文章 CRUD 和帳號相關功能。
新增的搜尋 Test 則包含:
搜尋 title
搜尋 content
不分大小寫
查無結果
沒有提供 keyword 時維持原本行為
其中在執行過程中,Claude Code 還發現一個原本就存在的 Bug。
test_get_article_not_found 少了:
body = resp.get_json()
導致執行 Test 時出現:
NameError
這個問題並不是這次新增搜尋功能造成的,而是原本測試程式就存在的錯誤。
Claude Code 找到原因後補上遺漏的賦值,並沒有修改 Test 原本預期的結果。
最後重新執行完整 Test:
24 passed, 0 failed
這次讓我比較明顯感受到,前幾天研究的 Planning、Task Decomposition、Testing、Debug 開始真的串在一起了。
我只需要先確認「我要新增文章搜尋功能」以及它的實作計畫,Claude Code 就可以根據拆好的任務修改不同檔案、建立 Test、執行 Test,遇到原本存在的問題也能分析後修正。
而且最後不是只確認「搜尋功能可以用」,而是再執行完整 Test,確認原本的功能也沒有被這次修改影響。
這和以前「我一步一步告訴 AI 要做什麼」的方式相比,已經有很大的不同。
我開始發現,Agent 真正有價值的地方,不只是幫我寫 Code,而是能夠根據任務、執行結果和 Test 結果,持續決定下一步該做什麼。
不過到這裡,我又想到一個問題:
Test 全部通過,就真的代表功能完全符合需求嗎?
下一步,我想讓 Claude Code 自己重新檢查一次,看看它能不能自己發現「還有沒有漏掉的需求」。
明天研究主題:讓 Claude Code 自己檢查:真的完成了嗎?