feat/model-config-routing #3

Merged
admin merged 3 commits from feat/model-config-routing into develop 2026-08-24 03:45:48 +00:00
Member

PR 描述

摘要

  • 需求描述:oh-my-pi 角色式模型路由:各 SDLC 階段可指定模型與 fallback 鏈,專案 .jsc/models 覆寫全域 $JSC_HOME/models.conf,標籤判定為備援
  • 計畫名稱:無
  • 計畫頁:無
  • 分析頁:無

變更內容

檔案 為什麼改
tools/model-config.sh 新增階段→指定模型鏈解析工具(get {stage}、list),專案 .jsc/models 優先於 $JSC_HOME/models.conf
references/model-tags.md 新增「階段指定模型(角色式路由)」章節:設定格式、檔案優先序、遞補鏈語意與指定模型優先於標籤比對的規則
skills/models/SKILL.md description 與步驟加入 model-config.sh list 的「階段指定模型」輸出表(stage、指定鏈、source 三欄)
README.md 補上 tools/model-config.sh 工具列與 models 技能說明
plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json 功能性變更,版本號同步提升為 0.0.2

設計重點

  • 角色式路由:每個 SDLC 階段(plan、analyze、implement、maintain)可指定一個模型並附遞補鏈,格式 stage=model[,fallback...],一行一階段
  • 優先序:專案 .jsc/models 有設定的階段完全覆寫全域 $JSC_HOME/models.conf(JSC_HOME 預設 ~/.jsc);其餘階段仍讀全域檔
  • 指定模型優先於標籤比對:階段有指定模型時直接用指定鏈,沒有指定才退回能力標籤判定,標籤判定為備援
  • 解析一律透過 jsc-cli/tools/model-config.sh,其他技能不自行讀設定檔;get 未設定時空輸出且 exit 0,list 未設定的階段以「-」表示

測試結果

  • model-config.sh get plan:專案覆寫命中,實測通過
  • model-config.sh get implement:讀取全域設定,實測通過
  • model-config.sh get analyze:未設定→空輸出、exit 0,實測通過
  • model-config.sh list:四階段皆列出且含 source 欄,實測通過

前置 Push Request

  • 無
# PR 描述 ## 摘要 - 需求描述:oh-my-pi 角色式模型路由:各 SDLC 階段可指定模型與 fallback 鏈,專案 `.jsc/models` 覆寫全域 `$JSC_HOME/models.conf`,標籤判定為備援 - 計畫名稱:無 - 計畫頁:無 - 分析頁:無 ## 變更內容 | 檔案 | 為什麼改 | | --- | --- | | tools/model-config.sh | 新增階段→指定模型鏈解析工具(`get {stage}`、`list`),專案 `.jsc/models` 優先於 `$JSC_HOME/models.conf` | | references/model-tags.md | 新增「階段指定模型(角色式路由)」章節:設定格式、檔案優先序、遞補鏈語意與指定模型優先於標籤比對的規則 | | skills/models/SKILL.md | description 與步驟加入 `model-config.sh list` 的「階段指定模型」輸出表(stage、指定鏈、source 三欄) | | README.md | 補上 tools/model-config.sh 工具列與 models 技能說明 | | plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json | 功能性變更,版本號同步提升為 0.0.2 | ## 設計重點 - 角色式路由:每個 SDLC 階段(plan、analyze、implement、maintain)可指定一個模型並附遞補鏈,格式 `stage=model[,fallback...]`,一行一階段 - 優先序:專案 `.jsc/models` 有設定的階段完全覆寫全域 `$JSC_HOME/models.conf`(`JSC_HOME` 預設 `~/.jsc`);其餘階段仍讀全域檔 - 指定模型優先於標籤比對:階段有指定模型時直接用指定鏈,沒有指定才退回能力標籤判定,標籤判定為備援 - 解析一律透過 `jsc-cli/tools/model-config.sh`,其他技能不自行讀設定檔;`get` 未設定時空輸出且 exit 0,`list` 未設定的階段以「-」表示 ## 測試結果 - `model-config.sh get plan`:專案覆寫命中,實測通過 - `model-config.sh get implement`:讀取全域設定,實測通過 - `model-config.sh get analyze`:未設定→空輸出、exit 0,實測通過 - `model-config.sh list`:四階段皆列出且含 source 欄,實測通過 ## 前置 Push Request - 無
jiantw83 added 3 commits 2026-08-24 03:37:39 +00:00
What:新增 tools/model-config.sh,提供 get {stage} 與 list 兩個子命令,解析 SDLC 各階段(plan、analyze、implement、maintain)的指定模型鏈。
Why:讓 jsc-sdlc 各階段閘門能以角色式模型路由指定模型與遞補鏈,而不是只靠能力標籤比對;同時讓專案能覆寫全域設定。
How:以 POSIX sh 加 awk 實作;先讀專案目錄 .jsc/models,該階段沒設定才退回 $JSC_HOME/models.conf(JSC_HOME 預設 ~/.jsc);設定格式 stage=model[,fallback...],同階段多行取最後一行;get 未設定時空輸出且 exit 0,list 每階段輸出 stage、chain、source(未設定印「-」)。
Who:jsc-cli models 技能與 jsc-sdlc 各階段的模型閘門。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
What:references/model-tags.md 新增「階段指定模型(角色式路由)」章節,說明設定格式、檔案優先序與遞補鏈語意;skills/models/SKILL.md 的 description 與步驟加入 model-config.sh list 的「階段指定模型」輸出表(stage、指定鏈、source 三欄);README.md 補上 tools/model-config.sh 工具列與 models 技能說明。
Why:角色式模型路由需要文件明確定義設定格式與判定順序,jsc-sdlc 閘門與使用者才知道指定模型優先、標籤比對為備援。
How:設定格式 stage=model[,fallback...];優先序為專案 .jsc/models 覆寫 $JSC_HOME/models.conf;解析一律透過 jsc-cli/tools/model-config.sh,不自行讀檔;models 技能輸出表未設定的階段以「-」表示。
Who:models 技能的使用者與依賴模型閘門的 jsc-sdlc 各階段技能。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
What:plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json 三份 manifest 的 version 由 0.0.1 提升為 0.0.2。
Why:本次新增角色式模型路由功能(model-config.sh 與相關文件),屬功能性變更,需要新版本號讓各 CLI 的插件更新機制辨識。
How:同步修改三份 manifest 的 version 欄位,維持三處版本一致。
Who:jsc-cli 插件的安裝與更新流程(jsc-cli:deploy 及各 CLI 原生插件命令)。

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