fix(plugins 安裝與移除指令): 修正 persona marketplace 名稱漂移,並收斂安裝/移除指令改引用 spec-plugin-cli

- plugins-uninstall 對照表的 persona marketplace 名誤植為已停用的舊名 jsc-plugins,修正為現行的 persona 並補充舊鍵處理說明。
- 兩份 skill 原本各自重寫的四家助理安裝/移除指令與 OpenCode 移除迴圈,改為引用 /jsc-shared:spec-plugin-cli 的唯一權威版本,只保留各自批次安裝/移除特有的判斷邏輯。
This commit is contained in:
2026-08-12 05:52:38 +00:00
parent b9c7855adb
commit 9c2817660e
2 changed files with 14 additions and 74 deletions
+6 -35
View File
@@ -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
以下 `<url>`、`<plugin>`、`<marketplace>`、`<token>` 一律取自對照表。
### Claude Code
### Claude Code / Codex / GitHub Copilot CLI
```bash
# 安裝(marketplace 尚未加入)
claude plugin marketplace add <url>
claude plugin install <token>
# 更新(已安裝)
claude plugin marketplace update <marketplace>
claude plugin update <token>
```
### Codex
```bash
# 安裝
codex plugin marketplace add <url>
codex plugin add <token>
# 更新(重新抓取 marketplace 的 git 快照)
codex plugin marketplace upgrade <marketplace>
```
### GitHub Copilot CLI
```bash
# 安裝
copilot plugin marketplace add <url>
copilot plugin install <token>
# 更新
copilot plugin marketplace update <marketplace>
copilot plugin update <token>
```
安裝/更新指令依 `/jsc-shared:spec-plugin-cli` 對應助理小節的「安裝」「更新」兩段(不需移除段),代入本檔對照表的 `<url>`/`<token>`/`<marketplace>`。三家指令形狀一致(`<cli> plugin marketplace add/update` + `<cli> plugin install/update`);Codex 的更新是單一指令 `codex plugin marketplace upgrade <marketplace>`(無獨立 `update` 子指令),差異已列在 spec-plugin-cli 的各助理速查表,這裡不重複列出指令區塊。
### Antigravity(`agy`)
> 基礎指令語法依 `/jsc-shared:spec-plugin-cli` 的 Antigravity 節;下方是本 skill 特有的「先判斷 clone 是否已存在」批次安裝/更新分流邏輯(spec-plugin-cli 只示範單次安裝,不含這層判斷)。
> `agy plugin install <url>` 目前只支援 github.com;gitea 一律走「clone + 本地路徑」。`agy` 沒有 update 子指令,更新=`git pull` 後重裝。**預設 clone root 在 `~/.gemini/plugins`,不要偷用目前工作目錄或 `~/plugins` 的開發工作區。**
```bash
@@ -174,7 +145,7 @@ agy plugin install <clone-dir>/<repo>
### 無 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. 先判定安裝位置(讀設定,不要臆測)
+8 -39
View File
@@ -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
以下 `<plugin>`、`<marketplace>`、`<token>` 一律取自對照表;帶 `--keep-marketplace` 時略過 `marketplace remove` 那行。
### Claude Code
### Claude Code / Codex / GitHub Copilot CLI / Antigravity
```bash
claude plugin uninstall <token>
claude plugin marketplace remove <marketplace>
```
移除指令依 `/jsc-shared:spec-plugin-cli` 對應助理小節的「移除」段,代入本檔對照表的 `<token>`/`<marketplace>`/`<plugin>`;帶 `--keep-marketplace` 時略過各助理的 `marketplace remove` 那行(Antigravity 沒有 marketplace 概念,只有 `agy plugin uninstall <plugin>` 一行,不受此旗標影響)。四家指令與 spec-plugin-cli 完全一致,這裡不重複列出指令區塊,僅列本 skill 特有的收尾動作:
- 移除後檢查 `~/.claude/settings.json` 的 `enabledPlugins`,**清掉該 plugin 的殘留鍵**(留著會讓下次安裝的狀態對不上)。
### Codex
```bash
codex plugin remove <token>
codex plugin marketplace remove <marketplace>
```
### GitHub Copilot CLI
```bash
copilot plugin uninstall <token>
copilot plugin marketplace remove <marketplace>
```
### Antigravity(`agy`)
```bash
agy plugin uninstall <plugin>
```
- 本機 clone(`~/plugins/<repo>` 之類)**預設保留**;使用者在階段 B 明確同意才刪,且該目錄有未提交變更時一律保留並回報。
- **Claude Code**:移除後檢查 `~/.claude/settings.json` 的 `enabledPlugins`,**清掉該 plugin 的殘留鍵**(留著會讓下次安裝的狀態對不上)。
- **Antigravity**:本機 clone(`~/plugins/<repo>` 之類)**預設保留**;使用者在階段 B 明確同意才刪,且該目錄有未提交變更時一律保留並回報。
### 無 plugin 匯入指令但可使用 skill 的助理
逐一刪除該 plugin 帶入的 skill 目錄。**最可靠的做法是從本機 clone 與 README.md 推導清單**,而不是照抄上表——上表是快照,plugin 新增 skill 之後就會漏:
```bash
# clone 還在:從來源目錄與 README.md 推導要刪哪些(唯一不會漏的做法)
for s in <clone-dir>/<repo>/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 已經不在時才退回上表,且**一個一行分開刪**: