docs(model-gate): 說明 Codex 模型來源與人工覆寫
This commit is contained in:
@@ -5,7 +5,7 @@ SDLC 每個階段動工前先過模型閘門。判定全在程式層,由 `jsc-
|
||||
## 執行順序
|
||||
|
||||
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,比對該階段的必要標籤,相符才上鎖。
|
||||
2. `jsc-hooks/hooks/sdlc-gate.sh lock {stage}`:腳本從可驗證來源讀出模型 id,比對該階段的必要標籤,相符才上鎖。
|
||||
|
||||
## 各階段必要標籤
|
||||
|
||||
@@ -21,8 +21,25 @@ SDLC 每個階段動工前先過模型閘門。判定全在程式層,由 `jsc-
|
||||
| 項目 | 規則 |
|
||||
| --- | --- |
|
||||
| 標籤來源 | 只認腳本的判定。不得宣稱自己沒驗證過的標籤,也不得用自己的判斷取代腳本結論 |
|
||||
| 模型來源 | 優先序為 transcript、hook stdin JSON、Codex 本機 session 記錄、`JSC_MODEL` 人工覆寫 |
|
||||
| 非零退出 | 一律視為阻擋:原文轉述腳本訊息、停止該技能、該回合不做別的事 |
|
||||
| `unlock` | 不得用來繞過閘門。要不要解鎖是使用者的決定 |
|
||||
| 回報 | **每次都要回報**:階段、必要標籤、腳本從 transcript 讀到的實際模型 id、判定結果。通過與阻擋都要講——安靜通過看起來跟跳過檢查一樣,而判定搬進程式層的理由就是「宣稱有檢查」不可信 |
|
||||
| 回報 | **每次都要回報**:階段、必要標籤、模型 id、模型來源、判定結果。通過與阻擋都要講——安靜通過看起來跟跳過檢查一樣,而判定搬進程式層的理由就是「宣稱有檢查」不可信 |
|
||||
| 退出 0 | 該階段已上鎖。到下一階段的閘門重新上鎖之前,同一階段內把模型換成不合格的,下一輪提示會被 sdlc-gate hook 以 exit 2 擋下 |
|
||||
| 上鎖時機 | 只在階段變換時上鎖。同一階段內逐項或逐專案跑時不重新上鎖 |
|
||||
|
||||
## Codex 判定來源
|
||||
|
||||
Codex 不一定提供 Claude 式 transcript 路徑。閘門會依序檢查下列來源。
|
||||
|
||||
| 順位 | 來源 | 語意 |
|
||||
| --- | --- | --- |
|
||||
| 1 | hook stdin JSON 的 `transcript_path`,或 `JSC_TRANSCRIPT_PATH` | CLI 產生的 transcript。這是首選實查來源 |
|
||||
| 2 | hook stdin JSON 的 `model`、`model_id`、`model_slug`、`modelName`、`current_model`、`currentModel` | hook 宿主提供的結構化欄位。只讀 JSON 欄位,不讀對話文字 |
|
||||
| 3 | `$CODEX_HOME/sessions/**/*.jsonl`,預設 `~/.codex/sessions/**/*.jsonl` | Codex 本機 session 記錄。先用 session id 對檔名,沒有 session id 時取最新 session 檔 |
|
||||
| 4 | `$CODEX_HOME/history.jsonl`、`$CODEX_HOME/session_index.jsonl` | Codex 輔助索引。只取結構化模型欄位;沒有欄位就略過 |
|
||||
| 5 | `JSC_MODEL` | 明確人工覆寫。輸出來源固定標成 `人工覆寫:JSC_MODEL` |
|
||||
|
||||
`JSC_MODEL` 是最後退路,不是預設來源。使用它時,回報必須標明「人工覆寫」,避免把人工宣告誤認為 transcript 實查。
|
||||
|
||||
對話內容不屬於可驗證來源。即使使用者或模型在訊息裡寫出模型 id,閘門也不得採用那段文字。
|
||||
|
||||
Reference in New Issue
Block a user