feat/designated-model-gate-lock #4

Merged
admin merged 3 commits from feat/designated-model-gate-lock into develop 2026-08-24 03:48:04 +00:00
Member

PR 描述

摘要

  • 需求描述:SDLC 四階段(plan/analyze/implement/maintain)的模型閘門改為「指定模型鏈(jsc-cli model-config)優先、能力標籤備援」;閘門通過後呼叫 jsc-hooks 的 sdlc-gate 上鎖,自 plan 起手到 analyze 換階段前強制沿用同一模型,階段中途換模型會被擋下。
  • 計畫名稱:無
  • 計畫頁:無
  • 分析頁:無

變更內容

檔案 為什麼改
skills/plan/SKILL.md 步驟一改為「模型閘門與階段上鎖」:先解析指定模型鏈,無設定才退回 reasoning-high 標籤檢查,通過後 sdlc-gate lock plan 上鎖
skills/analyze/SKILL.md 同上,階段改為 analyze(reasoning-high 標籤備援),上鎖至下一階段閘門重跑前
skills/implement/SKILL.md 同上,階段改為 implement(coding 標籤備援),通過後 sdlc-gate lock implement 上鎖
skills/maintain/SKILL.md 同上,備援改查「SDLC 階段需求」表;另明定僅換階段時重跑閘門,維護階段內跨專案不重複驗證
README.md 首段改寫為指定模型鏈優先、標籤備援與 sdlc-gate 鎖定的新流程;相關 domain 補上 jsc-hooks 並擴充 jsc-cli 條目
plugin.json 版本升至 0.0.3,讓 plugin 更新機制偵測新版
.claude-plugin/plugin.json 同上,三份 manifest 版本一致
.codex-plugin/plugin.json 同上,三份 manifest 版本一致

設計重點

  • 指定模型鏈優先:jsc-cli/tools/model-config.sh get {stage} 解析(專案 .jsc/models 優先於 $JSC_HOME/models.conf),鏈上第一個當前 CLI 可用的模型即為必用模型,依鏈序備援。
  • 能力標籤備援:未設定指定模型時退回 jsc-cli:models 標籤檢查(plan/analyze 需 reasoning-high,implement 需 coding,maintain 查階段需求表),保留原有彈性。
  • 階段上鎖:閘門通過後 jsc-hooks/hooks/sdlc-gate.sh lock {stage} {current-model} 寫入鎖檔並以 sdlc-gate.sh report 驗證;hook 在每次 prompt 強制檢查,直到下一階段閘門重新上鎖前強制沿用同一模型。
  • 每小步附完成條件,maintain 明定階段內不重複驗證,避免跨專案重跑閘門。

測試結果

  • 跨 repo 整合測試通過(model-config 解析+sdlc-gate lock/check/unlock,模型不符時注入繁中封鎖提醒)。

前置 Push Request

  • plugins/cli 的 feat/model-config-routing、plugins/hooks 的 feat/sdlc-model-lock-and-wrapper(PR 編號建立後由主流程掛上依賴)。
# PR 描述 ## 摘要 - 需求描述:SDLC 四階段(plan/analyze/implement/maintain)的模型閘門改為「指定模型鏈(jsc-cli model-config)優先、能力標籤備援」;閘門通過後呼叫 jsc-hooks 的 sdlc-gate 上鎖,自 plan 起手到 analyze 換階段前強制沿用同一模型,階段中途換模型會被擋下。 - 計畫名稱:無 - 計畫頁:無 - 分析頁:無 ## 變更內容 | 檔案 | 為什麼改 | | --- | --- | | skills/plan/SKILL.md | 步驟一改為「模型閘門與階段上鎖」:先解析指定模型鏈,無設定才退回 reasoning-high 標籤檢查,通過後 sdlc-gate lock plan 上鎖 | | skills/analyze/SKILL.md | 同上,階段改為 analyze(reasoning-high 標籤備援),上鎖至下一階段閘門重跑前 | | skills/implement/SKILL.md | 同上,階段改為 implement(coding 標籤備援),通過後 sdlc-gate lock implement 上鎖 | | skills/maintain/SKILL.md | 同上,備援改查「SDLC 階段需求」表;另明定僅換階段時重跑閘門,維護階段內跨專案不重複驗證 | | README.md | 首段改寫為指定模型鏈優先、標籤備援與 sdlc-gate 鎖定的新流程;相關 domain 補上 jsc-hooks 並擴充 jsc-cli 條目 | | plugin.json | 版本升至 0.0.3,讓 plugin 更新機制偵測新版 | | .claude-plugin/plugin.json | 同上,三份 manifest 版本一致 | | .codex-plugin/plugin.json | 同上,三份 manifest 版本一致 | ## 設計重點 - 指定模型鏈優先:`jsc-cli/tools/model-config.sh get {stage}` 解析(專案 `.jsc/models` 優先於 `$JSC_HOME/models.conf`),鏈上第一個當前 CLI 可用的模型即為必用模型,依鏈序備援。 - 能力標籤備援:未設定指定模型時退回 `jsc-cli:models` 標籤檢查(plan/analyze 需 reasoning-high,implement 需 coding,maintain 查階段需求表),保留原有彈性。 - 階段上鎖:閘門通過後 `jsc-hooks/hooks/sdlc-gate.sh lock {stage} {current-model}` 寫入鎖檔並以 `sdlc-gate.sh report` 驗證;hook 在每次 prompt 強制檢查,直到下一階段閘門重新上鎖前強制沿用同一模型。 - 每小步附完成條件,maintain 明定階段內不重複驗證,避免跨專案重跑閘門。 ## 測試結果 - 跨 repo 整合測試通過(model-config 解析+sdlc-gate lock/check/unlock,模型不符時注入繁中封鎖提醒)。 ## 前置 Push Request - plugins/cli 的 feat/model-config-routing、plugins/hooks 的 feat/sdlc-model-lock-and-wrapper(PR 編號建立後由主流程掛上依賴)。 <!-- 有前置 PR 時必須同時以 gitea.sh pr-depend 掛上依賴;依賴未關閉前 Gitea 會阻擋本 PR 合併。 -->
jiantw83 added 3 commits 2026-08-24 03:37:46 +00:00
What:plan、analyze、implement、maintain 四個 SKILL.md 的第一步從單純的能力標籤檢查,改為「模型閘門與階段上鎖」三段流程:先以 jsc-cli/tools/model-config.sh get {stage} 解析該階段的指定模型鏈,鏈上第一個當前 CLI 可用的模型即為必用模型;沒有設定指定模型時才退回 jsc-cli:models 的能力標籤檢查。閘門通過後執行 jsc-hooks/hooks/sdlc-gate.sh lock {stage} {current-model} 寫入鎖檔,並以 sdlc-gate.sh report 驗證。

Why:原本只驗能力標籤,同一標籤下模型可任意替換,階段中途換模型也無人攔阻,導致產出品質與可重現性不穩定。改為指定模型鏈優先可讓團隊明確指派每階段用哪個模型,標籤備援則保留未設定時的彈性;上鎖後由 hook 在每次 prompt 強制檢查,階段內換模型會被擋下。

How:每個技能的步驟一拆成三小步(解析模型鏈、驗證當前模型、上鎖並驗證鎖檔),各小步附完成條件;maintain 另加第四小步,明確規定只在換階段時重跑閘門,維護階段內跨專案不重複驗證。frontmatter description 同步更新。鎖定自 plan 起手生效,直到下一階段(如 analyze)的閘門重新上鎖前,強制沿用同一模型。

Who:jsc-sdlc 的 plan/analyze/implement/maintain 四個技能,及依賴其閘門行為的 jsc-hooks sdlc-gate hook。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
What:README 開頭的階段模型檢查說明改寫:每次切換階段先以 jsc-cli/tools/model-config.sh get {stage} 解析指定模型鏈(專案 .jsc/models 優先於 $JSC_HOME/models.conf),未設定才退回能力標籤檢查;通過後由 jsc-hooks 的 sdlc-gate hook 鎖定模型直到下一階段重新上鎖。「相關 domain」清單同步更新:jsc-cli 條目補上指定模型鏈工具,新增 jsc-hooks 條目說明 sdlc-gate 階段模型鎖定。

Why:四個技能的閘門邏輯已改為指定模型優先、標籤備援並上鎖,README 若仍描述舊的「僅檢查能力標籤」流程會誤導使用者,也漏掉新依賴的 jsc-hooks domain。

How:改寫首段的階段檢查敘述,補明設定檔優先序與鎖定生效範圍(同一階段內換模型會被擋下);相關 domain 章節加入 jsc-hooks 連結並擴充 jsc-cli 條目。

Who:jsc-sdlc domain 的 README 文件,服務安裝與使用此技能組的使用者。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
What:plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json 三份 manifest 的 version 由 0.0.2 升為 0.0.3。

Why:本次加入指定模型閘門與 sdlc-gate 階段鎖定屬功能性變更,需要提升版本號讓各 AI CLI 的 plugin 更新機制偵測到新版並重新安裝。

How:同步修改三份 manifest 的 version 欄位,維持三處版本一致。

Who:jsc-sdlc plugin 的安裝與更新流程(jsc-cli:deploy 及各 CLI 原生 plugin 指令)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jiantw83 added a new dependency 2026-08-24 03:38:36 +00:00
jiantw83 added a new dependency 2026-08-24 03:38:36 +00:00
admin approved these changes 2026-08-24 03:46:45 +00:00
admin merged commit bb1094df33 into develop 2026-08-24 03:48:04 +00:00
admin deleted branch feat/designated-model-gate-lock 2026-08-24 03:48:05 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Reference: plugins/sdlc#4