From b66ee5bade1d5b536d6b749b889c76468b466dd0 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Mon, 3 Aug 2026 11:29:34 +0800 Subject: [PATCH] feat(plugins): include shared in installer skill --- skills/plugins-install/SKILL.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/skills/plugins-install/SKILL.md b/skills/plugins-install/SKILL.md index 536f891..b40d11f 100644 --- a/skills/plugins-install/SKILL.md +++ b/skills/plugins-install/SKILL.md @@ -1,7 +1,7 @@ --- name: plugins-install -description: 一次把 JSC 的三個 plugin(jsc-code/jsc-doc/jsc-persona)安裝或更新到一個或多個 AI 助理,可同時處理 Claude Code、Codex、GitHub Copilot CLI、Antigravity 四家原生 plugin CLI 與 OpenCode(複製 skills 目錄);沒指定時偵測本機裝了哪些 CLI 並讓使用者多選,每個 plugin 先判斷已安裝或未安裝,未安裝就安裝、已安裝就更新到最新,最後以「助理 × plugin」的表格回報結果與版本。當使用者說要安裝所有 jsc plugin、一次更新全部 skill 套件、把 code/doc/persona 都裝起來、要同時更新好幾個 CLI、換新機器要把 plugin 都補齊、或問怎麼一次更新所有 plugin 時觸發。不適用於:移除 plugin(用 /jsc-shared:plugins-uninstall)、只處理單一 plugin(直接照該 plugin README 的安裝章節)、安裝非 JSC 的第三方 plugin。 -argument-hint: "[--assistant <助理清單,逗號分隔,或 all>] [--plugins code,doc,persona] [--host ] [--clone-dir <目錄>] [--yes]" +description: 一次把 JSC 的四個 plugin(jsc-code/jsc-doc/jsc-persona/jsc-shared)安裝或更新到一個或多個 AI 助理,可同時處理 Claude Code、Codex、GitHub Copilot CLI、Antigravity 四家原生 plugin CLI 與 OpenCode(複製 skills 目錄);沒指定時偵測本機裝了哪些 CLI 並讓使用者多選,每個 plugin 先判斷已安裝或未安裝,未安裝就安裝、已安裝就更新到最新,最後以「助理 × plugin」的表格回報結果與版本。當使用者說要安裝所有 jsc plugin、一次更新全部 skill 套件、把 code/doc/persona/shared 都裝起來、要同時更新好幾個 CLI、換新機器要把 plugin 都補齊、或問怎麼一次更新所有 plugin 時觸發。不適用於:移除 plugin(用 /jsc-shared:plugins-uninstall)、只處理單一 plugin(直接照該 plugin README 的安裝章節)、安裝非 JSC 的第三方 plugin。 +argument-hint: "[--assistant <助理清單,逗號分隔,或 all>] [--plugins code,doc,persona,shared] [--host ] [--clone-dir <目錄>] [--yes]" --- # plugins-install — 一次安裝/更新所有 JSC plugin @@ -10,7 +10,7 @@ argument-hint: "[--assistant <助理清單,逗號分隔,或 all>] [--plugins | 階段 | 動作 | | --- | --- | -| A. 前置設定 | 決定要操作哪些助理(`--assistant` 可帶多個或 all/偵測本機有哪些 CLI/多個就讓使用者多選)→ 決定 gitea 主機 → 決定 plugin 清單(預設 code、doc、persona) | +| A. 前置設定 | 決定要操作哪些助理(`--assistant` 可帶多個或 all/偵測本機有哪些 CLI/多個就讓使用者多選)→ 決定 gitea 主機 → 決定 plugin 清單(預設 code、doc、persona、shared) | | B. 現況盤點 | 對每個 plugin 查詢 marketplace 與 plugin 是否已存在,決定「安裝」或「更新」 | | C. 安裝/更新 | 依助理的原生指令逐一執行;Antigravity 與 OpenCode 走 clone/複製路徑 | | D. 回報 | 以表格列出每個 plugin 的動作、結果與版本,並提醒重啟工作階段 | @@ -29,14 +29,14 @@ argument-hint: "[--assistant <助理清單,逗號分隔,或 all>] [--plugins - **不移除任何東西**。更新時就算需要「先移除再安裝」(Antigravity 沒有 update 子指令),也只針對該 plugin 自己,且移除後必須立刻重裝成功。 - **必要決策**(會中斷詢問):無法判斷目前是哪個助理、指定的助理 CLI 不存在、本機 clone 有未提交變更、安裝失敗且原因需要使用者裁示。 -- **本 skill 不處理 `jsc-shared` 自己**:它是本 skill 的所在地,安裝它請直接照 shared 的 README。 +- **可處理 `jsc-shared` 自己**:但更新目前正在執行本 skill 的助理時,將 `shared` 放在該助理的最後處理,並在回報中提醒重啟工作階段。 --- ## 參數 - `--assistant <清單>`:要操作的助理,**可以多個**,以逗號分隔(`claude,codex,copilot,agy,opencode`),或用 `all` 代表本機找得到的全部。**省略時**依階段 A1 判斷(只有一個就直接用,多個就讓使用者多選)。 -- `--plugins code,doc,persona`:要處理的 plugin(以逗號分隔,用 repo 短名)。**省略時預設三個全做**。 +- `--plugins code,doc,persona,shared`:要處理的 plugin(以逗號分隔,用 repo 短名)。**省略時預設四個全做**。 - `--host `:gitea 主機,省略時預設 `gitea.jsc.idv.tw`。 - `--clone-dir <目錄>`:Antigravity/OpenCode 的本機 clone 根目錄,**省略時預設 `~/plugins`**。 - `--yes`:全自動,不做確認式詢問(必要決策仍會中斷)。 @@ -49,9 +49,10 @@ argument-hint: "[--assistant <助理清單,逗號分隔,或 all>] [--plugins | --- | --- | --- | --- | --- | | `code` | `jsc-code` | `code` | `jsc-code@code` | `https:///plugins/code.git` | | `doc` | `jsc-doc` | `doc` | `jsc-doc@doc` | `https:///plugins/doc.git` | -| `persona` | `jsc-persona` | `jsc-plugins` | `jsc-persona@jsc-plugins` | `https:///plugins/persona.git` | +| `persona` | `jsc-persona` | `persona` | `jsc-persona@persona` | `https:///plugins/persona.git` | +| `shared` | `jsc-shared` | `shared` | `jsc-shared@shared` | `https:///plugins/shared.git` | -> **`persona` 的 marketplace 名不是 repo 名**(是 `jsc-plugins`)。指令一律照這張表帶,不要用 repo 短名去猜。 +> 指令一律照這張表帶,不要用 repo 短名去猜;若 CLI 回報 marketplace 宣告名稱與表格不一致,先記錄差異,再用 CLI 實際接受的名稱完成同一個 plugin。 各 plugin 帶入的 skill 目錄(OpenCode 路徑會用到): @@ -60,6 +61,7 @@ argument-hint: "[--assistant <助理清單,逗號分隔,或 all>] [--plugins | `code` | `action-composite`、`action-docker`、`action-node`、`image`、`issues`、`nuget`、`review-resolve`、`sync` | | `doc` | `docker`、`funcs`、`issues-analyze`、`issues-analyze-to-file`、`issues-sync`、`worklog` | | `persona` | `persona-anime`、`persona-chat`、`persona-create`、`persona-icon`、`persona-invite`、`persona-memory`、`persona-relation`、`persona-sleep`、`persona-status`、`persona-sync`、`persona-therapist`、`persona-transfer` | +| `shared` | `plugins-install`、`plugins-uninstall`、`spec-action-params`、`spec-doc-funcs-handoff`、`spec-dockerfile`、`spec-execution`、`spec-git-safety`、`spec-gitea`、`spec-output`、`spec-plugin-version`、`spec-project-board`、`spec-time-log` | --- @@ -78,7 +80,7 @@ argument-hint: "[--assistant <助理清單,逗號分隔,或 all>] [--plugins - 找到 **多個** → 列出來讓使用者**多選**(預設全選)。帶 `--yes` 時不問,直接全做。 3. 一個都沒有 → 回報「找不到任何支援的助理 CLI」並停止。 -> 目前正在執行本 skill 的那個助理,如果也在清單裡,**放到最後處理**——更新它自己會需要重啟工作階段。 +> 目前正在執行本 skill 的那個助理,如果也在清單裡,**放到最後處理**;該助理內若包含 `shared`,再把 `shared` 放在該助理的最後一個 plugin 處理——更新它自己會需要重啟工作階段。 ### A2. 決定 gitea 主機與 clone 根目錄 @@ -87,7 +89,7 @@ argument-hint: "[--assistant <助理清單,逗號分隔,或 all>] [--plugins ### A3. 決定 plugin 清單 -`--plugins` 指定則照它,否則 `code,doc,persona` 三個都做。清單中出現對照表以外的名稱 → 回報並略過該項,其餘照做。 +`--plugins` 指定則照它,否則 `code,doc,persona,shared` 四個都做。清單中出現對照表以外的名稱 → 回報並略過該項,其餘照做。 ---