feat(模型標籤閘門): 新增 model-tags.sh 與 reasoning-max 分級,SDLC 階段閘門改由能力標籤判定 #5

Merged
admin merged 3 commits from fix/model-config-resolve-subcommand into develop 2026-08-24 08:16:32 +00:00
Member

變更摘要

SDLC 階段閘門原本會退回「模型自評能力標籤」,模型可以自己宣稱合格,形同沒有閘門。本 PR 補齊判定所需的資料與工具,讓閘門改在程式層判定。

  • 新增 tools/model-tags.sh:解析 references/model-tags.md 的兩張表,提供 dump/sync/stage/model/gate 子指令。gate 以 exit code 表態:0 通過、1 缺標籤、2 無法判定。
  • 新增 reasoning-max 標籤,代表各家當代最強一階(fable-5、opus-5、gpt-5.x、gemini-3-pro);reasoning-high 改為「足以判讀規格與寫實作」。
  • SDLC 階段需求改為:plan、analyze 需 reasoning-max,implement 需 coding,maintain 任意。Sonnet 5 這類模型從此跑不了規劃與分析。
  • 偏好模型鏈(model-config.sh)不再參與放行判定,只用於建議切換目標與表達偏好順序;設定檔不能當繞過閘門的後門。
  • sync 把標籤表寫成 $JSC_HOME/model-tags.tsv,供 jsc-hooks 的 sdlc-gate 讀取,避免跨 plugin 直接呼叫腳本。

影響範圍

  • jsc-cli:models 多一步 sync,並改述階段需求與偏好鏈的語意。
  • jsc-sdlc 四個階段技能的閘門判準跟著改變(該 repo 另有 PR)。
  • 既有 .jsc/models/models.conf 語法不變,但語意從「指定即放行」變成「僅供建議」。

重點檔案

檔案 變更
tools/model-tags.sh 新增;標籤解析與 gate 判定
references/model-tags.md 新增 reasoning-max、階段需求改版、補判定方式與標籤蘊含關係
skills/models/SKILL.md 加入 sync 步驟、階段需求改版、偏好鏈語意調整
README.md 工具表與 models 技能說明同步

風險與注意事項

  • 相依:jsc-hooks 的 sdlc-gate 需要 $JSC_HOME/model-tags.tsv。使用者要先跑一次 jsc-cli:models 或 tools/model-tags.sh sync,否則 SDLC 階段無法上鎖——閘門會拒絕,不會放行。
  • 補新模型進 references/model-tags.md 時,帶 reasoning-max 的模型必須同時列 reasoning-high。比對是逐標籤字面比對,不推導上下位關係。
  • 表格解析用 awk:模型欄的全形括號說明會被砍掉,並以「/」切成多個鍵。調整該表格式時要順手驗證 model-tags.sh dump 的輸出。

驗證

  • sh -n 語法檢查通過。
  • dump/stage/model/gate 實測:opus-5 四階段皆通過;sonnet-5 在 plan、analyze 回 FAIL:reasoning-max;haiku 在 implement 通過;未知模型回 UNKNOWN-MODEL。
  • STE100 lint 通過。
## 變更摘要 SDLC 階段閘門原本會退回「模型自評能力標籤」,模型可以自己宣稱合格,形同沒有閘門。本 PR 補齊判定所需的資料與工具,讓閘門改在程式層判定。 - 新增 `tools/model-tags.sh`:解析 `references/model-tags.md` 的兩張表,提供 `dump`/`sync`/`stage`/`model`/`gate` 子指令。`gate` 以 exit code 表態:0 通過、1 缺標籤、2 無法判定。 - 新增 `reasoning-max` 標籤,代表各家當代最強一階(fable-5、opus-5、gpt-5.x、gemini-3-pro);`reasoning-high` 改為「足以判讀規格與寫實作」。 - SDLC 階段需求改為:plan、analyze 需 `reasoning-max`,implement 需 `coding`,maintain 任意。Sonnet 5 這類模型從此跑不了規劃與分析。 - 偏好模型鏈(`model-config.sh`)不再參與放行判定,只用於建議切換目標與表達偏好順序;設定檔不能當繞過閘門的後門。 - `sync` 把標籤表寫成 `$JSC_HOME/model-tags.tsv`,供 `jsc-hooks` 的 sdlc-gate 讀取,避免跨 plugin 直接呼叫腳本。 ## 影響範圍 - `jsc-cli:models` 多一步 `sync`,並改述階段需求與偏好鏈的語意。 - `jsc-sdlc` 四個階段技能的閘門判準跟著改變(該 repo 另有 PR)。 - 既有 `.jsc/models`/`models.conf` 語法不變,但語意從「指定即放行」變成「僅供建議」。 ## 重點檔案 | 檔案 | 變更 | | --- | --- | | `tools/model-tags.sh` | 新增;標籤解析與 `gate` 判定 | | `references/model-tags.md` | 新增 `reasoning-max`、階段需求改版、補判定方式與標籤蘊含關係 | | `skills/models/SKILL.md` | 加入 `sync` 步驟、階段需求改版、偏好鏈語意調整 | | `README.md` | 工具表與 `models` 技能說明同步 | ## 風險與注意事項 - **相依**:`jsc-hooks` 的 sdlc-gate 需要 `$JSC_HOME/model-tags.tsv`。使用者要先跑一次 `jsc-cli:models` 或 `tools/model-tags.sh sync`,否則 SDLC 階段無法上鎖——閘門會拒絕,不會放行。 - 補新模型進 `references/model-tags.md` 時,帶 `reasoning-max` 的模型必須同時列 `reasoning-high`。比對是逐標籤字面比對,不推導上下位關係。 - 表格解析用 awk:模型欄的全形括號說明會被砍掉,並以「/」切成多個鍵。調整該表格式時要順手驗證 `model-tags.sh dump` 的輸出。 ## 驗證 - `sh -n` 語法檢查通過。 - `dump`/`stage`/`model`/`gate` 實測:opus-5 四階段皆通過;sonnet-5 在 plan、analyze 回 `FAIL:reasoning-max`;haiku 在 implement 通過;未知模型回 `UNKNOWN-MODEL`。 - STE100 lint 通過。
jiantw83 added 3 commits 2026-08-24 08:08:09 +00:00
admin approved these changes 2026-08-24 08:16:28 +00:00
admin merged commit ec7ccc3918 into develop 2026-08-24 08:16:32 +00:00
admin deleted branch fix/model-config-resolve-subcommand 2026-08-24 08:16:32 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Reference: plugins/cli#5