完成專案工作
核心原則
- 完成目前約定的任務或目標,不要把持續開發本身當成成功。
- 以可驗證成果驅動工作,不以基礎建設、抽象層數、文件數量或工作時間衡量進度。
- 優先交付能跨越必要層級、可實際驗證的垂直切片,再補真正阻擋交付的基礎能力。
- 收尾不代表降低品質;以符合風險的驗證證明已完成,而不是省略必要工作。
- 關閉的是目前約定的範圍,不要把單一任務完成誤稱為整個產品或程式庫永久完成。
建立完成契約
開始實作前,從使用者要求與現有證據確認:
- 目標成果:使用者最後能取得、操作或確認什麼。
- 範圍邊界:本次包含與明確不包含哪些工作。
- 完成條件:哪些可觀察結果成立才算完成。
- 驗證證據:需要哪些測試、建置、檢查、執行結果或人工確認。
- 終點層級:只需程式碼完成,還是包含合併、資料調整、部署、健康檢查或公開驗證。
若資訊足以安全推進,採用最小合理假設並在 commentary 說明;只有當不同答案會實質改變成果、風險或權限時才停下詢問。將完成契約保留在目前的 plan 或 commentary,不要自行建立新的規劃或狀態文件。
依任務尺度保存契約:多步驟或高風險任務放在目前 plan 或 commentary;單一步驟、低風險且終點明確的任務可在目前回覆中簡短推定,不要只為了使用本 Skill 建立正式 plan、追蹤文件或額外工作項目。契約的詳細程度不得大於安全完成任務所需的程度。
限制打底
只有同時符合以下條件,才進行基礎建設、共用抽象、框架調整、研究或大範圍重構:
- 它直接解除某一項完成條件的當前阻礙。
- 沒有更小、更直接且品質足夠的交付路徑。
- 能指出它將解鎖的垂直切片與停止條件。
不要因為未來可能需要、架構可以更漂亮、測試框架可以更完整,或順手整理會比較舒服而繼續打底。完成一項必要基礎工作後,立即回到可驗證成果;不要連續向下新增第二層、第三層前置工程。
推進交付
依序選擇下一步:
- 最接近完成且尚未滿足的完成條件。
- 讓現有成果真正可使用的整合缺口。
- 由本次變更造成或阻擋驗證的缺陷。
- 無法繞過的必要基礎阻礙。
每個工作項目都要能回答:「它推進哪一項完成條件,以及要如何驗證?」若無法回答,不要自動納入目前範圍。
探索過程發現新工作時,將它分類:
- 完成所必需:納入並更新完成契約;若會實質改變方案、風險或時程,先告知使用者。
- 本次變更造成的問題:在收尾前修正並重新驗證。
- 可選改善或既有問題:只有在會影響使用者決策、風險或後續操作時才簡短回報;不要自行實作、重構或開啟下一階段。
每完成一個可驗證批次,就重新檢查完成閘門。若已符合目前完成契約,不要再產生下一批工作。
完成閘門
只有在下列條件都成立時,才宣告完成:
- 約定範圍內的完成條件已有可核對證據。
- 相關測試、建置、靜態檢查與必要 smoke test 依風險通過。
- 跨層整合、錯誤路徑與重要回歸風險已在合理範圍內驗證。
- 沒有仍會阻止使用者取得目標成果的已知問題。
- 暫存產物已妥善處理,且沒有覆蓋或混入使用者的無關變更。
- 使用者要求的終點層級已達成;若要求 staging、部署或公開驗證,不要在只有本機通過時宣告完成。
只執行目前範圍所需的驗證。不要為了讓收尾看起來更完整,自行加入新的文件、重構、功能、部署或長期改善工作。
停止與回報
完成閘門通過後:
- 停止修改程式碼、架構、資料與文件。
- 以結果開頭,簡潔列出完成內容與驗證證據。
- 只揭露仍然存在且與目前成果有關的風險、限制或未涵蓋範圍。
- 將可選改善留作後續候選;除非使用者要求,不要繼續實作或建立下一階段計畫。
- 若存在 Codex Goal,只有在目標確實達成且沒有必要工作剩餘時才標記完成。
每次完成、尚未完成或受阻的最終回報,都依下列順序提供八個必要欄位。這份收尾憑證就是完成判定本身;即使使用者只問「是否完成」,也直接用八個欄位回答。小型任務每欄一句即可;不要為了填滿格式增加驗證、文件或範圍。
結果(必要):已完成/尚未完成/受阻,以及使用者目前可取得的成果
目標成果(必要):本次約定要交付的可觀察結果
範圍邊界(必要):已涵蓋內容與明確未納入的額外構想
完成條件(必要):各條件是否成立
驗證證據(必要):實際執行的測試、建置、檢查、部署或公開驗證結果
終點層級(必要):程式碼、合併、資料、部署、健康檢查或公開狀態實際到達哪一層
剩餘風險(必要):仍與成果有關的已知風險;沒有時寫「沒有已知阻礙」
停止理由(必要):完成閘門已通過,或目前阻礙與需要的外部決定
證據缺失時,把對應完成條件標為未成立;不要用「應該通過」、剩餘時間不足或大部分完成代替證據。
即使仍有時間、Token 或預算,也不要為了持續工作而增加範圍、補強地基或尋找新的改善項目。
若安全且在範圍內的替代路徑都已用盡,但仍無法通過完成閘門,停止擴張基礎工程,回報確切阻礙、已有證據、尚未完成的條件,以及需要的使用者決定或外部狀態變更。