feat(git-safety,model): 分支一律先確認、模型 id 改以 transcript 實際值為準
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -40,6 +40,20 @@ description: JSC plugins 共用「取得可用模型並加上標籤」規範:
|
||||
|
||||
同一任務有多個候選都滿足必要標籤時,優先挑加分標籤命中較多者;仍並列則挑 `verified_at`(見〔四、快取設計〕)較新者。
|
||||
|
||||
### 與 SDLC 閘門標籤的對應
|
||||
|
||||
`jsc-cli/references/model-tags.md` 另有一組供程式判定用的英文標籤(機器可讀,`model-tags.sh` 與 `sdlc-gate.sh` 直接比對字面)。兩組標籤的對應如下,**新增或改名任一邊都要同步另一邊**:
|
||||
|
||||
| 本規範標籤 | model-tags.md 標籤 |
|
||||
| --- | --- |
|
||||
| `#深度推理`(頂級一階) | `reasoning-max` |
|
||||
| `#深度推理`(可判讀規格) | `reasoning-high` |
|
||||
| `#均衡實作` | `coding` |
|
||||
| `#輕量快速` | `fast`、`cheap` |
|
||||
| `#長上下文` | `long-context` |
|
||||
|
||||
SDLC 各階段的放行判定一律以 `model-tags.md` 的英文標籤為準;本節的中文標籤用於選型說明與人讀敘述。
|
||||
|
||||
## 三、取得清單的權威來源優先序
|
||||
|
||||
依序取得可用模型清單與其中繼資料(id/定價/上下文長度),**前一項可取得就不往下**:
|
||||
@@ -87,7 +101,13 @@ description: JSC plugins 共用「取得可用模型並加上標籤」規範:
|
||||
請執行 /model <alias> 切換後重新載入,本次不進行任何修改。
|
||||
```
|
||||
|
||||
- **限制**:Claude Code **沒有環境變數可讀取當前模型 id**,只能以 agent 對自己當下模型的自我回報為準;自我回報不確定時,請使用者執行 `/status` 確認目前模型後再繼續判斷,不得用猜測代替確認。
|
||||
- **取得當前模型 id 的優先序**(前一項可取得就不往下):
|
||||
|
||||
1. **transcript 記錄的實際值**——hook 收到的 stdin JSON 有 `transcript_path`,該 jsonl 每筆 assistant 訊息都帶 `model` 欄位;取尾端最後一筆即為實際使用的模型。實作見 `jsc-hooks/hooks/lib.sh` 的 `transcript_model`。**這是唯一可驗證的來源**,SDLC 階段閘門(`jsc-hooks/hooks/sdlc-gate.sh`)一律以它為準。
|
||||
2. stdin JSON 的 `model` 欄位、環境變數 `JSC_MODEL`、`~/.claude/settings.json` 的 `model`——都是宣告值,未必等於實際跑的模型。
|
||||
3. **agent 自我回報**——只在以上都取不到時當最後手段。自我回報無法驗證:模型可以宣稱自己具備某標籤而沒有任何東西擋得住,**因此不得作為放行依據**。不確定時請使用者執行 `/status` 確認,不得用猜測代替確認。
|
||||
|
||||
- **強制力落在程式層**:任何「必須用某能力的模型才能執行」的規則,判定都要由腳本做完並以 exit code 表態;只把要求寫在 skill 內文、交給模型自我檢查,等於沒有閘門。
|
||||
|
||||
## 六、讀到帶 `model:` frontmatter 的清單檔時的檢查義務
|
||||
|
||||
|
||||
Reference in New Issue
Block a user