feat(cli): 匯入 jsc-cli 技能組並統一 marketplace 為 jsc #2

Merged
admin merged 11 commits from develop into master 2026-08-21 06:41:01 +00:00
Showing only changes of commit 4dccea8cf6 - Show all commits
+9 -7
View File
@@ -1,6 +1,6 @@
---
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.
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 with the unified jsc marketplace (token jsc-{domain}@jsc). Domain list comes from the plugins/jsc marketplace.json, never hardcoded. Use for rollout or removal of the jsc plugins; not for a single skill.
---
# deploy — 技能庫批次安裝/更新/解除安裝
@@ -9,15 +9,17 @@ description: Batch install, update, or uninstall the whole jsc skill set on ever
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):
3. 取得 domain 名單(**不可硬編碼**;技能組新增或刪除 domain 時本技能自動跟進):讀統一 marketplace 的清單
`jsc-gitea/tools/gitea.sh api GET /repos/plugins/jsc/raw/.claude-plugin/marketplace.json` 的 `plugins[].name`。
Marketplace 統一為 `jsc`(`{MKT}` = `https://gitea.jsc.idv.tw/plugins/jsc.git`),安裝 token = `jsc-{domain}@jsc`。
4. 對每個 CLI 執行對應指令(marketplace 每個 CLI 只 add 一次,之後逐 domain 安裝),**必須以 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}` |
| claude | `claude plugin marketplace add {MKT}`,逐 domain `claude plugin install jsc-{domain}@jsc` | `claude plugin marketplace update jsc`,逐 domain `claude plugin update jsc-{domain}@jsc` | 逐 domain `claude plugin uninstall jsc-{domain}@jsc`,最後 `claude plugin marketplace remove jsc` |
| codex | `codex plugin marketplace add {MKT}`,逐 domain `codex plugin add jsc-{domain}@jsc` | `codex plugin marketplace upgrade jsc` | 逐 domain `codex plugin remove jsc-{domain}@jsc`,最後 `codex plugin marketplace remove jsc` |
| copilot | `copilot plugin marketplace add {MKT}`,逐 domain `copilot plugin install jsc-{domain}@jsc` | `copilot plugin marketplace update jsc`,逐 domain `copilot plugin update jsc-{domain}@jsc` | 逐 domain `copilot plugin uninstall jsc-{domain}@jsc`,最後 `copilot plugin marketplace remove jsc` |
| antigravity | 逐 domain `git clone https://gitea.jsc.idv.tw/plugins/{domain}.git ~/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。