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
+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 已經不在時才退回上表,且**一個一行分開刪**: