契約凍結是通過 test skeleton 的結果,不是前提
順序是 場景審查 → test skeleton → 契約凍結 → 展開多線。skeleton 必須放在凍結之前。
理由:skeleton 是契約的最後一次證偽機會。
- 寫不出具體斷言 = 契約缺欄位、缺狀態、缺錯誤碼
- 在凍結前發現 → 改契約成本為零
- 在凍結後發現 → 所有已展開的平行線連鎖爆炸
所以「凍結」不是一個排程上的里程碑,而是一個判定結果:通過 skeleton 才准凍結。
skeleton 閘門的三個通過條件
- 每條 spec 條件至少對到一個 skeleton
- 每個 skeleton 都寫得出具體值的預期輸出(寫「合理」「視情況」即為洞,退回改規格)
- 標成 integration 的項目,其跨線邊界已經能寫成契約——寫不出來就不准凍結、不准展開
第 3 點順帶還是切線的依據:skeleton 分不進任何模組 → 模組邊界沒定,那條線就不該展開。
這一輪的成本是小時級
把紅燈提前到開工前幾小時,取代「做到一半才回頭補 spec」的週級成本。而且 skeleton 不是拋棄物——它就是 it.todo 清單,實作階段逐條把斷言填實 → 紅 → 綠。