
前面幾篇我們已經把項目地圖、狀態機和SIADOS講清楚了。這一篇要繼續往下走回答一個非常實際的問題當前這一輪任務到底應該怎么寫AI 才能看得懂、做得對、不會越界本書把這個問題交給current_task.md。它不是聊天記錄也不是隨手寫的一句口頭要求而是一份短期有效、可以驗收、可以回寫狀態的任務契約。1. 為什么還要有current_task.md很多時候人類給 AI 的任務本來是模糊的。比如你可能會說“把這個 Bug 修一下”“順便把相關測試補上”“改完以后盡量別影響其他部分”“如果有兼容性風險先記下來”這些話人能聽懂一點但對系統來說并不夠清楚。因為它沒有把下面幾件事明確寫出來這輪的目標到底是什么這輪允許改哪里這輪禁止碰哪里什么結果算通過哪些歧義需要先確認所以本書把這類信息收斂到current_task.md里。它的作用就是把當前任務收窄到一個可執行范圍內。2. 一輪任務只能有一個主目標current_task.md最重要的原則是單一主任務原則。“完成項目修復”“繼續開發項目”這種說法只能算長期方向。真正的一輪任務還必須具體到一件可做、可驗收的事。比如修一個 Bug補一個測試改一個接口更新一個狀態文件記錄一個未決問題。如果一輪任務太散Agent 就會把相關事情一起做掉。看起來像“順手優化”實際上可能會修改范圍擴大任務目標混亂驗收條件不清后續無法回滾。其他重要但不屬于當前輪的內容應該寫入open_issues.md或后續任務而不是塞進當前任務。3.current_task.md應該寫什么一份可執行的current_task.md不需要很長但要寫清幾個字段# Current Task ## Task Fix the empty-cart checkout path in checkout/service.py. ## Goal Return a safe error when the cart is empty, while preserving normal checkout behavior. ## Allowed - checkout/service.py - tests/test_checkout.py - revision_log.md - open_issues.md ## Forbidden - auth/* - payment_gateway/* - docs/* - unrelated modules ## Acceptance 1. Empty-cart checkout is handled safely. 2. Normal checkout still passes. 3. Only allowed files changed. 4. Unresolved compatibility concerns are recorded.重點不是格式漂亮而是把任務變成可檢查的邊界。Agent 看到這份文件以后應該能判斷當前要做什么修改范圍在哪里哪些地方不能動什么結果算通過哪些問題需要記錄而不是直接處理。4. 從自然語言到任務契約這一章很重要的一點是把自然語言輸入“編譯”成任務契約。比如人說“把這個 Bug 修一下順便保證不影響其他模塊。”這句話本身并不適合直接執行。因為它包含了兩個問題“修一下”不夠具體“不影響其他模塊”可能會誘導越界修改所以系統不能直接照著做而要把它編譯成一份結構化任務目標修復空購物車結算允許checkout/service.py、tests/test_checkout.py禁止auth/、payment_gateway/驗收只檢查結算路徑和回歸測試這樣Agent 不會把“保證不影響其他模塊”理解成“可以把其他模塊一起改”。它只能在當前授權范圍內完成任務。5. 沖突和歧義怎么處理任務里經常會出現沖突。例如當前任務要求只修結算邏輯但又有人補了一句順便統一一下認證模塊。這時不能直接執行。因為認證模塊不在當前任務范圍內。current_task.md 應該規定優先級1). 安全和系統邊界2). 當前任務的禁止項3). 當前任務目標和驗收條件4). 補充偏好和軟性建議。也就是說軟性建議不能覆蓋明確邊界。如果 Agent 發現了相關問題可以寫入 open_issues.md留給后續任務處理。6. 驗收條件必須可觀察任務能不能完成取決于驗收條件是否清楚。“寫好一點”“提高質量”“盡量優化”都不適合作為驗收條件。更好的驗收條件應該是可觀察的空購物車返回安全錯誤正常結算路徑不受影響只修改允許文件未決兼容性問題已記錄。這些條件可以檢查。可檢查任務才有結束點。不可檢查Agent 就容易繼續猜、繼續改最后越改越散。本章小結current_task.md 的作用是把自然語言要求變成一份當前輪任務契約這一輪做什么哪些地方能動哪些地方不能碰什么結果算通過哪些問題要記錄下來。Agent 不需要每輪重新猜任務而是在明確邊界里推進。下一章我會繼續講修改日志revision_log.md為什么能幫系統收斂以及它和 Git 的分工到底是什么。