diff --git a/skills/deploy/SKILL.md b/skills/deploy/SKILL.md index 83b2cdf..727358d 100644 --- a/skills/deploy/SKILL.md +++ b/skills/deploy/SKILL.md @@ -3,24 +3,24 @@ 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 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 — 技能庫批次安裝/更新/解除安裝 +# deploy — batch install, update, or uninstall the skill set -## 步驟 +## Steps -1. `tools/detect-clis.sh` 找出已安裝的 CLI 與執行檔路徑。 -2. 依 `jsc-ask:ask` 規則讓使用者選擇模式:`install` / `update` / `uninstall`(每個選項標明影響範圍:影響哪些 CLI、會寫入哪些設定)。 -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): +1. Run `tools/detect-clis.sh` to find the installed CLIs and their executable paths. +2. Ask the user for the mode per the `jsc-ask:ask` rules: `install` / `update` / `uninstall`. Every option states its impact scope: which CLIs it touches and which configs it writes. +3. Get the domain list (**never hardcode it**; this skill follows automatically when domains are added or removed): read `plugins[].name` from the unified marketplace via + `jsc-gitea/tools/gitea.sh api GET /repos/plugins/jsc/raw/.claude-plugin/marketplace.json`. + The marketplace is unified as `jsc` (`{MKT}` = `https://gitea.jsc.idv.tw/plugins/jsc.git`); the install token is `jsc-{domain}@jsc`. +4. Run the matching commands for each CLI (add the marketplace once per CLI, then install per domain). This step **MUST run as a sub agent** (one sub agent per CLI): | CLI | install | update | uninstall | | --- | --- | --- | --- | -| 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 目錄 | +| claude | `claude plugin marketplace add {MKT}`, then per domain `claude plugin install jsc-{domain}@jsc` | `claude plugin marketplace update jsc`, then per domain `claude plugin update jsc-{domain}@jsc` | per domain `claude plugin uninstall jsc-{domain}@jsc`, finally `claude plugin marketplace remove jsc` | +| codex | `codex plugin marketplace add {MKT}`, then per domain `codex plugin add jsc-{domain}@jsc` | `codex plugin marketplace upgrade jsc` | per domain `codex plugin remove jsc-{domain}@jsc`, finally `codex plugin marketplace remove jsc` | +| copilot | `copilot plugin marketplace add {MKT}`, then per domain `copilot plugin install jsc-{domain}@jsc` | `copilot plugin marketplace update jsc`, then per domain `copilot plugin update jsc-{domain}@jsc` | per domain `copilot plugin uninstall jsc-{domain}@jsc`, finally `copilot plugin marketplace remove jsc` | +| antigravity | per domain `git clone https://gitea.jsc.idv.tw/plugins/{domain}.git ~/plugins/{domain}`, then `agy plugin install ~/plugins/{domain}` (agy cannot install from a gitea URL) | `git -C ~/plugins/{domain} pull`, then `agy plugin uninstall jsc-{domain}` and install again | `agy plugin uninstall jsc-{domain}` | +| kiro | same plugin commands as copilot (executable `kiro-cli`); if unsupported, copy each repo's `skills/` into the kiro skills directory | pull again, then copy again | delete the matching skills directories | -5. 安裝或更新完成後呼叫 `jsc-hooks:hooks-install` 重新接線 hooks。 -6. 回報每個 CLI × 模式的結果與失敗原因。 +5. After install or update, call `jsc-hooks:hooks-install` to rewire the hooks. +6. Report the result and any failure reason for every CLI × mode. diff --git a/skills/models/SKILL.md b/skills/models/SKILL.md index b0dd56f..2ff0795 100644 --- a/skills/models/SKILL.md +++ b/skills/models/SKILL.md @@ -3,22 +3,22 @@ name: models description: List every model usable by each installed AI CLI (claude, codex, copilot, antigravity, kiro) and attach capability tags from references/model-tags.md. Also states which tags each SDLC phase requires, so jsc-sdlc skills can gate execution. Use when checking model fitness or inventorying models; not for switching models. --- -# models — 列出 CLI 可用模型與能力標籤 +# models — list CLI models with capability tags -## 步驟 +## Steps -1. `jsc-cli/tools/detect-clis.sh` 取得已安裝的 CLI。 -2. 對每個 CLI 讀取可用模型與目前使用的模型,此步驟**必須以 sub agent 執行**: +1. Run `jsc-cli/tools/detect-clis.sh` to get the installed CLIs. +2. For each CLI, read the available models and the model currently in use. This step **MUST run as a sub agent**: -| CLI | 取得方式 | +| CLI | Source | | --- | --- | -| claude | `~/.claude/settings.json` 的 `model`;可用家族見 model-tags.md 的 claude 列 | -| codex | `~/.codex/config.toml` 的 `model` | -| copilot | copilot 設定檔(`~/.config/copilot/`)所列模型選項 | -| antigravity | agy 設定檔所列模型 | -| kiro | kiro 設定檔所列模型 | +| claude | `model` in `~/.claude/settings.json`; known families are in the claude rows of model-tags.md | +| codex | `model` in `~/.codex/config.toml` | +| copilot | model options listed in the copilot config (`~/.config/copilot/`) | +| antigravity | models listed in the agy config | +| kiro | models listed in the kiro config | - 讀不到設定就列該 CLI 的已知預設模型並標註「預設推定」。 -3. 依 `references/model-tags.md` 為每個模型加上能力標籤;表列以外的模型依該文件末段規則處理。 -4. 輸出表格:CLI / 模型 / 標籤 / 是否為目前使用中。 -5. 附上 SDLC 階段需求表(plan、analyze 需 `reasoning-high`;implement 需 `coding`;maintain 任意),供 `jsc-sdlc` 各技能做模型能力檢查。 + If a config is unreadable, list that CLI's known default models and mark each one with the literal label 「預設推定」 (assumed default). +3. Attach capability tags to every model per `references/model-tags.md`. Handle unlisted models per the closing rule of that file. +4. Output a table with four columns: CLI, model, tags, currently in use. +5. Append the SDLC phase requirement table (plan and analyze need `reasoning-high`; implement needs `coding`; maintain accepts any), so `jsc-sdlc` skills can gate on model capability.