f2029d4cd0067629b69101c8b893fd76079eb6ab
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}`,取得一個可用的模型名稱,不用各自重複寫模型鏈的判斷邏輯。
jsc-cli — CLI 偵測與技能庫部署
jsc 技能組的 CLI domain:找出已安裝的 AI CLI、列出各 CLI 可用模型並加上能力標籤,以及對每個 CLI 批次安裝、更新、解除安裝整組 jsc plugins。
安裝、更新、移除
Marketplace 統一為 jsc(https://gitea.jsc.idv.tw/plugins/jsc.git),安裝 token 為 jsc-cli@jsc。每個指令一行:
| CLI | 安裝 | 更新 | 移除 |
|---|---|---|---|
| claude | claude plugin marketplace add https://gitea.jsc.idv.tw/plugins/jsc.git && claude plugin install jsc-cli@jsc |
claude plugin marketplace update jsc && claude plugin update jsc-cli@jsc |
claude plugin uninstall jsc-cli@jsc |
| codex | codex plugin marketplace add https://gitea.jsc.idv.tw/plugins/jsc.git && codex plugin add jsc-cli@jsc |
codex plugin marketplace upgrade jsc |
codex plugin remove jsc-cli@jsc |
| copilot | copilot plugin marketplace add https://gitea.jsc.idv.tw/plugins/jsc.git && copilot plugin install jsc-cli@jsc |
copilot plugin marketplace update jsc && copilot plugin update jsc-cli@jsc |
copilot plugin uninstall jsc-cli@jsc |
| antigravity | git clone https://gitea.jsc.idv.tw/plugins/cli.git ~/plugins/cli && agy plugin install ~/plugins/cli |
git -C ~/plugins/cli pull && agy plugin uninstall jsc-cli && agy plugin install ~/plugins/cli |
agy plugin uninstall jsc-cli |
| kiro | kiro-cli plugin marketplace add https://gitea.jsc.idv.tw/plugins/jsc.git && kiro-cli plugin install jsc-cli@jsc |
kiro-cli plugin marketplace update jsc && kiro-cli plugin update jsc-cli@jsc |
kiro-cli plugin uninstall jsc-cli@jsc |
antigravity 不支援 gitea URL 安裝,改用本地 clone 路徑。批次操作五個 CLI:使用
/jsc-cli:deploy。
工具
| 工具 | 用途 |
|---|---|
tools/detect-clis.sh |
列出已安裝的 AI CLI 與執行檔路徑(TSV:name / path / version;kiro 的執行檔為 kiro-cli) |
tools/model-config.sh |
解析 SDLC 各階段的指定模型鏈(get {stage}、list、resolve {stage} 印出目前 CLI 可用的第一個模型);專案 .jsc/models 優先於 $JSC_HOME/models.conf,格式見 references/model-tags.md |
Skills 目錄
呼叫方式:Claude / Antigravity /jsc-cli:{name};Codex ${name};Copilot / Kiro 描述需求自動觸發。
models
讀取各已安裝 CLI 可使用的模型並加上能力標籤(references/model-tags.md),列出 SDLC 各階段的必要標籤,並用 tools/model-config.sh 解析各階段的指定模型鏈(專案 .jsc/models 優先於 $JSC_HOME/models.conf)。jsc-sdlc 閘門先看指定模型,沒有指定才退回標籤比對。
deploy
技能庫批次安裝、更新、解除安裝:偵測 CLI → 決策樹選模式 → 每個 CLI 一個 sub agent 執行原生 plugin 指令(統一 marketplace jsc,token jsc-{domain}@jsc)。domain 名單動態取自 plugins/jsc 的 marketplace.json,不硬編碼。
相關 domain
Languages
Shell
100%