fix/model-config-resolve-subcommand #4

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

摘要

  • 需求描述:這次改動有兩件事:一是修正 marketplace 清單檔的說明與擁有者欄位不一致的問題;二是幫 tools/model-config.sh 新增 resolve 子指令,讓 jsc-sdlc 的四個階段技能可以直接取得可用的模型名稱。
  • 計畫名稱:無
  • 計畫頁:無
  • 分析頁:無

變更內容

檔案 為什麼改
.agents/plugins/marketplace.json 補上最上層 description、owner 欄位,並補齊十個外掛各自的說明文字,對齊 plugins/jsc 標準版本
.claude-plugin/marketplace.json 補上最上層 description、owner 欄位,並修正 jsc-meta 說明文字用字(「新建/更新/刪除」改成「新建、更新、刪除」)
tools/model-config.sh 新增 resolve {stage} 子指令與 current_cli() 輔助函式,讓 jsc-sdlc 四個階段技能可以共用模型選擇邏輯
README.md 補上 resolve {stage} 子指令的說明,讓工具說明表格跟程式碼一致
plugin.json 版本號從 0.0.2 升到 0.0.3,反映本次新增功能
.claude-plugin/plugin.json 版本號從 0.0.2 升到 0.0.3,反映本次新增功能
.codex-plugin/plugin.json 版本號從 0.0.2 升到 0.0.3,反映本次新增功能

設計重點

  • resolve 子指令讓 jsc-sdlc 的 plan、analyze、implement、maintain 四個階段技能,共用同一套「讀模型鏈、選一個模型」的邏輯,不用各自在技能說明裡重複寫一次。
  • current_cli() 先把偵測目前 CLI 的能力做出來,但先不接上過濾邏輯,因為判斷某個模型在某個 CLI 底下是否可用,需要 LLM 層級的判斷,之後再對照 model-tags.md 跟 detect-clis.sh 來補上。
  • marketplace 清單檔以 plugins/jsc 為標準版本,其他 repo 的清單檔要跟它保持一致,才能讓每個 repo 都能當作 marketplace 的註冊入口。

測試結果

  • resolve 子指令已經用幾組範例模型鏈手動測試過,回傳結果正確。
  • get、list 這兩個既有子指令的行為沒有改變,測試結果跟改動前一樣。
  • ste100-lint 也跑過,沒有發現用字問題。

前置 Push Request

  • 無
## 摘要 - 需求描述:這次改動有兩件事:一是修正 marketplace 清單檔的說明與擁有者欄位不一致的問題;二是幫 tools/model-config.sh 新增 resolve 子指令,讓 jsc-sdlc 的四個階段技能可以直接取得可用的模型名稱。 - 計畫名稱:無 - 計畫頁:無 - 分析頁:無 ## 變更內容 | 檔案 | 為什麼改 | | --- | --- | | `.agents/plugins/marketplace.json` | 補上最上層 description、owner 欄位,並補齊十個外掛各自的說明文字,對齊 plugins/jsc 標準版本 | | `.claude-plugin/marketplace.json` | 補上最上層 description、owner 欄位,並修正 jsc-meta 說明文字用字(「新建/更新/刪除」改成「新建、更新、刪除」) | | `tools/model-config.sh` | 新增 `resolve {stage}` 子指令與 `current_cli()` 輔助函式,讓 jsc-sdlc 四個階段技能可以共用模型選擇邏輯 | | `README.md` | 補上 `resolve {stage}` 子指令的說明,讓工具說明表格跟程式碼一致 | | `plugin.json` | 版本號從 0.0.2 升到 0.0.3,反映本次新增功能 | | `.claude-plugin/plugin.json` | 版本號從 0.0.2 升到 0.0.3,反映本次新增功能 | | `.codex-plugin/plugin.json` | 版本號從 0.0.2 升到 0.0.3,反映本次新增功能 | ## 設計重點 - resolve 子指令讓 jsc-sdlc 的 plan、analyze、implement、maintain 四個階段技能,共用同一套「讀模型鏈、選一個模型」的邏輯,不用各自在技能說明裡重複寫一次。 - current_cli() 先把偵測目前 CLI 的能力做出來,但先不接上過濾邏輯,因為判斷某個模型在某個 CLI 底下是否可用,需要 LLM 層級的判斷,之後再對照 model-tags.md 跟 detect-clis.sh 來補上。 - marketplace 清單檔以 plugins/jsc 為標準版本,其他 repo 的清單檔要跟它保持一致,才能讓每個 repo 都能當作 marketplace 的註冊入口。 ## 測試結果 - resolve 子指令已經用幾組範例模型鏈手動測試過,回傳結果正確。 - get、list 這兩個既有子指令的行為沒有改變,測試結果跟改動前一樣。 - ste100-lint 也跑過,沒有發現用字問題。 ## 前置 Push Request - 無
jiantw83 added 2 commits 2026-08-24 06:51:24 +00:00
What:
`.agents/plugins/marketplace.json` 和 `.claude-plugin/marketplace.json` 兩份檔案內容不一致。這次把兩份都對齊 plugins/jsc 的標準版本。在 `.agents/plugins/marketplace.json` 加上最上層的 description 和 owner(name: "JSC")欄位,並幫十個外掛(jsc-ask、jsc-cli、jsc-git、jsc-gitea、jsc-hooks、jsc-log、jsc-meta、jsc-pkg、jsc-review、jsc-sdlc)各自補上說明文字。在 `.claude-plugin/marketplace.json` 加上最上層的 description 和 owner 欄位,並修正 jsc-meta 說明文字,把「新建/更新/刪除」改成「新建、更新、刪除」。

Why:
這兩份檔案是 marketplace 的清單檔,內容原本不一致。`.claude-plugin/marketplace.json` 已有每個外掛的說明,但缺最上層欄位。`.agents/plugins/marketplace.json` 完全沒有說明文字。清單檔不一致,會讓不同工具讀到不同資訊,造成混淆,所以要修正。

How:
對照 plugins/jsc 這份標準版本,逐一比對兩份檔案,補齊缺少的欄位,並統一用字。

Who:
這次改動跟 jsc-cli 自己的技能邏輯無關,是整個 repo 層級的一致性修正。目的是讓 jsc-cli 這個 repo 可以正確扮演 marketplace 註冊入口的角色,跟其他 repo 的清單檔保持同步。
What:
在 `tools/model-config.sh` 新增 `resolve {stage}` 子指令。這個指令會取出某個 SDLC 階段的模型鏈(跟 `get {stage}` 用同樣的解析規則:先讀專案的 `.jsc/models`,找不到再讀 `$JSC_HOME/models.conf`),然後印出鏈中第一個模型名稱,當作目前這個 CLI 可用的模型。同時新增 `current_cli()` 這個輔助函式,透過各家 CLI 的環境變數,判斷目前是在 claude、codex、copilot、antigravity、還是 kiro 底下執行。這個版本先把 `current_cli()` 的結果記錄下來,還沒有拿它去過濾模型鏈中不可用的模型,這件事留到之後再做,因為要判斷某個模型是否可用,需要 LLM 層級的判斷,不是單純的 shell script 能做到的。之後的計畫是拿 `current_cli()` 的結果,對照 `references/model-tags.md` 和 `detect-clis.sh`,跳過模型鏈裡不可用的模型。另外,把 README.md 裡 `tools/model-config.sh` 的工具說明表格,加上新的 `resolve {stage}` 子指令說明。版本號也從 0.0.2 升到 0.0.3,同步改了 `plugin.json`、`.claude-plugin/plugin.json`、`.codex-plugin/plugin.json` 這三份清單檔,這是這個 repo 的慣例:新增功能時要一併升版號。

Why:
jsc-meta:skill-check 這次稽核發現,jsc-sdlc 底下 plan、analyze、implement、maintain 這四個階段的技能,各自都要幫自己的階段挑一個模型,來做 gate check。如果沒有 `resolve` 這個子指令,這四個技能就要各自在技能說明裡,重複寫一次「讀模型鏈、選一個候補模型」的邏輯。這樣容易寫錯,也難維護。

How:
在既有的 `get`/`list` 邏輯基礎上,加一個 `resolve` 子指令,直接回傳模型鏈的第一個模型。同時加上 `current_cli()`,先把偵測 CLI 的能力做出來,但先不接上過濾邏輯,用註解說明後續要怎麼接。文件和版本號一併更新。

Who:
這個功能是給 jsc-sdlc 的四個階段技能(plan、analyze、implement、maintain)用的。它們可以直接呼叫 `resolve {stage}`,取得一個可用的模型名稱,不用各自重複寫模型鏈的判斷邏輯。
jiantw83 added a new dependency 2026-08-24 06:52:15 +00:00
admin approved these changes 2026-08-24 08:00:04 +00:00
admin merged commit 0d9e496fc7 into develop 2026-08-24 08:00:09 +00:00
admin deleted branch fix/model-config-resolve-subcommand 2026-08-24 08:00:09 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Reference: plugins/cli#4