契約凍結是通過 test skeleton 的結果,不是前提

順序是 場景審查 → test skeleton → 契約凍結 → 展開多線。skeleton 必須放在凍結之前

理由:skeleton 是契約的最後一次證偽機會。

  • 寫不出具體斷言 = 契約缺欄位、缺狀態、缺錯誤碼
  • 在凍結發現 → 改契約成本為零
  • 在凍結發現 → 所有已展開的平行線連鎖爆炸

所以「凍結」不是一個排程上的里程碑,而是一個判定結果:通過 skeleton 才准凍結。

skeleton 閘門的三個通過條件

  1. 每條 spec 條件至少對到一個 skeleton
  2. 每個 skeleton 都寫得出具體值的預期輸出(寫「合理」「視情況」即為洞,退回改規格)
  3. 標成 integration 的項目,其跨線邊界已經能寫成契約——寫不出來就不准凍結、不准展開

第 3 點順帶還是切線的依據:skeleton 分不進任何模組 → 模組邊界沒定,那條線就不該展開。

這一輪的成本是小時級

把紅燈提前到開工前幾小時,取代「做到一半才回頭補 spec」的週級成本。而且 skeleton 不是拋棄物——它就是 it.todo 清單,實作階段逐條把斷言填實 → 紅 → 綠。

相關:規格的兩種洞:沉默與假具體平行展開前要過 Definition of Ready