--- name: deploy description: Batch install, update, or uninstall the whole jsc skill set on every installed AI CLI. Detect CLIs via detect-clis.sh, ask the user for the mode via decision tree, then run each CLI's native plugin commands per domain repo. Domain list comes from the plugins org on Gitea, never hardcoded. Use for rollout or removal of the jsc plugins; not for a single skill. --- # deploy — 技能庫批次安裝/更新/解除安裝 ## 步驟 1. `tools/detect-clis.sh` 找出已安裝的 CLI 與執行檔路徑。 2. 依 `jsc-ask:ask` 規則讓使用者選擇模式:`install` / `update` / `uninstall`(每個選項標明影響範圍:影響哪些 CLI、會寫入哪些設定)。 3. 取得 domain 名單(**不可硬編碼**;技能組新增或刪除 domain 時本技能自動跟進):`jsc-gitea/tools/gitea.sh repos plugins` 列出存取庫,取「repo 根目錄的 `plugin.json` 存在且 `name` 為 `jsc-{domain}`」者。每個 domain repo 自帶 marketplace(名稱 = `{domain}`),plugin 名 = `jsc-{domain}`,安裝 token = `jsc-{domain}@{domain}`。 4. 對每個 CLI × 每個 domain 執行對應指令(`{URL}` = `https://gitea.jsc.idv.tw/plugins/{domain}.git`),**必須以 sub agent 執行**(每個 CLI 一個 sub agent): | CLI | install | update | uninstall | | --- | --- | --- | --- | | claude | `claude plugin marketplace add {URL}` 後 `claude plugin install jsc-{domain}@{domain}` | `claude plugin marketplace update {domain}` 後 `claude plugin update jsc-{domain}@{domain}` | `claude plugin uninstall jsc-{domain}@{domain}` 後 `claude plugin marketplace remove {domain}` | | codex | `codex plugin marketplace add {URL}` 後 `codex plugin add jsc-{domain}@{domain}` | `codex plugin marketplace upgrade {domain}` | `codex plugin remove jsc-{domain}@{domain}` 後 `codex plugin marketplace remove {domain}` | | copilot | `copilot plugin marketplace add {URL}` 後 `copilot plugin install jsc-{domain}@{domain}` | `copilot plugin marketplace update {domain}` 後 `copilot plugin update jsc-{domain}@{domain}` | `copilot plugin uninstall jsc-{domain}@{domain}` 後 `copilot plugin marketplace remove {domain}` | | antigravity | `git clone {URL} ~/plugins/{domain}` 後 `agy plugin install ~/plugins/{domain}`(agy 不支援 gitea URL 安裝) | `git -C ~/plugins/{domain} pull` 後先 `agy plugin uninstall jsc-{domain}` 再 install | `agy plugin uninstall jsc-{domain}` | | kiro | 比照 copilot 的 plugin 指令(執行檔 `kiro-cli`);不支援時把 repo 的 `skills/` 複製到 kiro 的 skills 目錄 | 重新 pull 後重新複製 | 刪除對應 skills 目錄 | 5. 安裝或更新完成後呼叫 `jsc-hooks:hooks-install` 重新接線 hooks。 6. 回報每個 CLI × 模式的結果與失敗原因。