From 9c2817660ef92a24f252f5cdc19b38ccdc6ca346 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Wed, 12 Aug 2026 05:52:38 +0000 Subject: [PATCH] =?UTF-8?q?fix(plugins=20=E5=AE=89=E8=A3=9D=E8=88=87?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=8C=87=E4=BB=A4):=20=E4=BF=AE=E6=AD=A3=20p?= =?UTF-8?q?ersona=20marketplace=20=E5=90=8D=E7=A8=B1=E6=BC=82=E7=A7=BB?= =?UTF-8?q?=EF=BC=8C=E4=B8=A6=E6=94=B6=E6=96=82=E5=AE=89=E8=A3=9D=EF=BC=8F?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=8C=87=E4=BB=A4=E6=94=B9=E5=BC=95=E7=94=A8?= =?UTF-8?q?=20spec-plugin-cli?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - plugins-uninstall 對照表的 persona marketplace 名誤植為已停用的舊名 jsc-plugins,修正為現行的 persona 並補充舊鍵處理說明。 - 兩份 skill 原本各自重寫的四家助理安裝/移除指令與 OpenCode 移除迴圈,改為引用 /jsc-shared:spec-plugin-cli 的唯一權威版本,只保留各自批次安裝/移除特有的判斷邏輯。 --- skills/plugins-install/SKILL.md | 41 ++++----------------------- skills/plugins-uninstall/SKILL.md | 47 ++++++------------------------- 2 files changed, 14 insertions(+), 74 deletions(-) diff --git a/skills/plugins-install/SKILL.md b/skills/plugins-install/SKILL.md index dcb1587..722a8e7 100644 --- a/skills/plugins-install/SKILL.md +++ b/skills/plugins-install/SKILL.md @@ -20,7 +20,7 @@ argument-hint: "[--assistant <助理清單,逗號分隔,或 all>] [--plugins ## 共用規範(必要前置) 先載入 `/jsc-shared:spec-preflight` 並依其流程處理。 -本 skill 需要的規範:`spec-output`、`spec-execution`、`spec-git-safety` +本 skill 需要的規範:`spec-output`、`spec-execution`、`spec-git-safety`、`spec-plugin-cli` 本 skill 特有補充: @@ -112,43 +112,14 @@ argument-hint: "[--assistant <助理清單,逗號分隔,或 all>] [--plugins 以下 ``、``、``、`` 一律取自對照表。 -### Claude Code +### Claude Code / Codex / GitHub Copilot CLI -```bash -# 安裝(marketplace 尚未加入) -claude plugin marketplace add -claude plugin install - -# 更新(已安裝) -claude plugin marketplace update -claude plugin update -``` - -### Codex - -```bash -# 安裝 -codex plugin marketplace add -codex plugin add - -# 更新(重新抓取 marketplace 的 git 快照) -codex plugin marketplace upgrade -``` - -### GitHub Copilot CLI - -```bash -# 安裝 -copilot plugin marketplace add -copilot plugin install - -# 更新 -copilot plugin marketplace update -copilot plugin update -``` +安裝/更新指令依 `/jsc-shared:spec-plugin-cli` 對應助理小節的「安裝」「更新」兩段(不需移除段),代入本檔對照表的 ``/``/``。三家指令形狀一致(` plugin marketplace add/update` + ` plugin install/update`);Codex 的更新是單一指令 `codex plugin marketplace upgrade `(無獨立 `update` 子指令),差異已列在 spec-plugin-cli 的各助理速查表,這裡不重複列出指令區塊。 ### Antigravity(`agy`) +> 基礎指令語法依 `/jsc-shared:spec-plugin-cli` 的 Antigravity 節;下方是本 skill 特有的「先判斷 clone 是否已存在」批次安裝/更新分流邏輯(spec-plugin-cli 只示範單次安裝,不含這層判斷)。 + > `agy plugin install ` 目前只支援 github.com;gitea 一律走「clone + 本地路徑」。`agy` 沒有 update 子指令,更新=`git pull` 後重裝。**預設 clone root 在 `~/.gemini/plugins`,不要偷用目前工作目錄或 `~/plugins` 的開發工作區。** ```bash @@ -174,7 +145,7 @@ agy plugin install / ### 無 plugin 匯入指令但可使用 skill 的助理 -> 這類助理沒有可用的 plugin 匯入指令,但可以使用 skill,因此改用**目錄安裝**。先把技能組 clone 到工具專屬資料夾,再依技能組 `README.md` 的匯入說明,把技能放到指定位置。 +> 這類助理沒有可用的 plugin 匯入指令,但可以使用 skill,因此改用**目錄安裝**。先把技能組 clone 到工具專屬資料夾,再依技能組 `README.md` 的匯入說明,把技能放到指定位置。基礎 clone/複製指令依 `/jsc-shared:spec-plugin-cli` 的 OpenCode 節;下方的候選位置判定(C-1)與已裝/未裝分流(C-2/C-3)是本 skill 特有的批次安裝邏輯,spec-plugin-cli 不含這層判斷。 > 這類助理**沒有 plugin CLI 可查安裝清單**,所以不能像四家原生 CLI 那樣「問 CLI 裝了沒」,也**不可預設就往全域目錄倒**——先讀設定或 README.md 找出它實際掛在哪,再決定要更新誰。 #### C-1. 先判定安裝位置(讀設定,不要臆測) diff --git a/skills/plugins-uninstall/SKILL.md b/skills/plugins-uninstall/SKILL.md index 8b872b5..9ee85c8 100644 --- a/skills/plugins-uninstall/SKILL.md +++ b/skills/plugins-uninstall/SKILL.md @@ -20,7 +20,7 @@ argument-hint: "[--assistant <助理清單,逗號分隔,或 all>] [--plugins ## 共用規範(必要前置) 先載入 `/jsc-shared:spec-preflight` 並依其流程處理。 -本 skill 需要的規範:`spec-output`、`spec-execution`、`spec-git-safety` +本 skill 需要的規範:`spec-output`、`spec-execution`、`spec-git-safety`、`spec-plugin-cli` 本 skill 特有補充: @@ -47,10 +47,10 @@ argument-hint: "[--assistant <助理清單,逗號分隔,或 all>] [--plugins | --- | --- | --- | --- | | `code` | `jsc-code` | `code` | `jsc-code@code` | | `doc` | `jsc-doc` | `doc` | `jsc-doc@doc` | -| `persona` | `jsc-persona` | `jsc-plugins` | `jsc-persona@jsc-plugins` | +| `persona` | `jsc-persona` | `persona` | `jsc-persona@persona` | | `shared` | `jsc-shared` | `shared` | `jsc-shared@shared` | -> **`persona` 的 marketplace 名不是 repo 名**(是 `jsc-plugins`)。移除 marketplace 時特別注意別誤刪別的登錄。 +> 依 `/jsc-shared:spec-plugin-cli`:`persona` 沒有例外,現行 marketplace 名就是 repo 名 `persona`。`jsc-plugins` 是**已停用的舊名**,只會出現在早期安裝過的本機殘留鍵——遇到使用者本機還留著 `jsc-persona@jsc-plugins`,先移除該舊鍵(`claude plugin uninstall jsc-persona@jsc-plugins` 之類),再照本表用 `jsc-persona@persona` 處理,不要把舊名當成現行對照表的值。 各 plugin 帶入的 skill 目錄(OpenCode 路徑會用到): @@ -107,47 +107,16 @@ argument-hint: "[--assistant <助理清單,逗號分隔,或 all>] [--plugins 以下 ``、``、`` 一律取自對照表;帶 `--keep-marketplace` 時略過 `marketplace remove` 那行。 -### Claude Code +### Claude Code / Codex / GitHub Copilot CLI / Antigravity -```bash -claude plugin uninstall -claude plugin marketplace remove -``` +移除指令依 `/jsc-shared:spec-plugin-cli` 對應助理小節的「移除」段,代入本檔對照表的 ``/``/``;帶 `--keep-marketplace` 時略過各助理的 `marketplace remove` 那行(Antigravity 沒有 marketplace 概念,只有 `agy plugin uninstall ` 一行,不受此旗標影響)。四家指令與 spec-plugin-cli 完全一致,這裡不重複列出指令區塊,僅列本 skill 特有的收尾動作: -- 移除後檢查 `~/.claude/settings.json` 的 `enabledPlugins`,**清掉該 plugin 的殘留鍵**(留著會讓下次安裝的狀態對不上)。 - -### Codex - -```bash -codex plugin remove -codex plugin marketplace remove -``` - -### GitHub Copilot CLI - -```bash -copilot plugin uninstall -copilot plugin marketplace remove -``` - -### Antigravity(`agy`) - -```bash -agy plugin uninstall -``` - -- 本機 clone(`~/plugins/` 之類)**預設保留**;使用者在階段 B 明確同意才刪,且該目錄有未提交變更時一律保留並回報。 +- **Claude Code**:移除後檢查 `~/.claude/settings.json` 的 `enabledPlugins`,**清掉該 plugin 的殘留鍵**(留著會讓下次安裝的狀態對不上)。 +- **Antigravity**:本機 clone(`~/plugins/` 之類)**預設保留**;使用者在階段 B 明確同意才刪,且該目錄有未提交變更時一律保留並回報。 ### 無 plugin 匯入指令但可使用 skill 的助理 -逐一刪除該 plugin 帶入的 skill 目錄。**最可靠的做法是從本機 clone 與 README.md 推導清單**,而不是照抄上表——上表是快照,plugin 新增 skill 之後就會漏: - -```bash -# clone 還在:從來源目錄與 README.md 推導要刪哪些(唯一不會漏的做法) -for s in //skills/*/; do - rm -rf "$HOME/.config/opencode/skills/$(basename "$s")" -done -``` +逐一刪除該 plugin 帶入的 skill 目錄。**最可靠的做法是從本機 clone 與 README.md 推導清單**,而不是照抄上表——上表是快照,plugin 新增 skill 之後就會漏。clone 還在時,推導+刪除迴圈依 `/jsc-shared:spec-plugin-cli` 的 OpenCode 節「移除」段,不重複列出。 clone 已經不在時才退回上表,且**一個一行分開刪**: