# 模型閘門 — 各階段動工前的能力標籤判定 SDLC 每個階段動工前先過模型閘門。判定全在程式層,由 `jsc-hooks/hooks/sdlc-gate.sh` 執行;模型不得自評標籤。 ## 執行順序 1. `jsc-cli/tools/model-tags.sh sync`:把 `jsc-cli/references/model-tags.md` 的標籤表同步到 `$JSC_HOME/model-tags.tsv`。 2. `jsc-hooks/hooks/sdlc-gate.sh lock {stage}`:腳本從 transcript 讀出**實際**模型 id,比對該階段的必要標籤,相符才上鎖。 ## 各階段必要標籤 | 階段 | 必要標籤 | | --- | --- | | `plan` | `reasoning-max` | | `analyze` | `reasoning-max` | | `implement` | `coding` | | `maintain` | 無。實際模型 id 可判定就通過 | ## 鐵則 | 項目 | 規則 | | --- | --- | | 標籤來源 | 只認腳本的判定。不得宣稱自己沒驗證過的標籤,也不得用自己的判斷取代腳本結論 | | 非零退出 | 一律視為阻擋:原文轉述腳本訊息、停止該技能、該回合不做別的事 | | `unlock` | 不得用來繞過閘門。要不要解鎖是使用者的決定 | | 回報 | **每次都要回報**:階段、必要標籤、腳本從 transcript 讀到的實際模型 id、判定結果。通過與阻擋都要講——安靜通過看起來跟跳過檢查一樣,而判定搬進程式層的理由就是「宣稱有檢查」不可信 | | 退出 0 | 該階段已上鎖。到下一階段的閘門重新上鎖之前,同一階段內把模型換成不合格的,下一輪提示會被 sdlc-gate hook 以 exit 2 擋下 | | 上鎖時機 | 只在階段變換時上鎖。同一階段內逐項或逐專案跑時不重新上鎖 |