feat(plugins): include shared in installer skill
This commit is contained in:
@@ -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 <gitea 主機>] [--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 <gitea 主機>] [--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 主機,省略時預設 `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://<host>/plugins/code.git` |
|
||||
| `doc` | `jsc-doc` | `doc` | `jsc-doc@doc` | `https://<host>/plugins/doc.git` |
|
||||
| `persona` | `jsc-persona` | `jsc-plugins` | `jsc-persona@jsc-plugins` | `https://<host>/plugins/persona.git` |
|
||||
| `persona` | `jsc-persona` | `persona` | `jsc-persona@persona` | `https://<host>/plugins/persona.git` |
|
||||
| `shared` | `jsc-shared` | `shared` | `jsc-shared@shared` | `https://<host>/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` 四個都做。清單中出現對照表以外的名稱 → 回報並略過該項,其餘照做。
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user