From 34b1dc79427d517b1d245c6781ef66bcd4c2318e Mon Sep 17 00:00:00 2001 From: Jeffery Date: Fri, 31 Jul 2026 14:43:58 +0000 Subject: [PATCH] =?UTF-8?q?fix(marketplace):=20marketplace=20=E5=90=8D?= =?UTF-8?q?=E7=94=B1=20jsc-plugins=20=E6=94=B9=E7=82=BA=20persona=EF=BC=88?= =?UTF-8?q?=E8=88=87=20template=20=E6=92=9E=E5=90=8D=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 兩份 marketplace.json 原本都叫 jsc-plugins,與 jsc-template 的 marketplace 同名 ——兩個 plugin 同時安裝時會撞名。template 已在 731a494 改為 template(=它的 repo 名),本 repo 跟著改為 persona,也與 code/doc/generic「marketplace 名 = repo 名」 的慣例一致。plugin 名維持 jsc-persona 不動。 README 的安裝 token、marketplace update/upgrade/remove 指令、目錄樹註解與 「marketplace 名是 …」那句一併更新(Claude/Codex/Copilot 三節各一組)。 依 spec-plugin-version,安裝識別鍵是 @,改名等於換識別 鍵,舊安裝不能用 update 遷移,必須先移除再安裝,中間 skills 會短暫消失。照 template 9b2e2bb 的做法在安裝章節開頭補上三家各自的升級路徑,並交代要清掉 settings.json 的 enabledPlugins 舊鍵、人格倉庫(PERSONA_HOME)不在 plugin 目錄裡 所以情緒與記憶不受影響。 版號維持 0.1.0 不動:spec 的「更名重置版號」指的是 plugin 更名(name 欄位改變), 本次三份 plugin.json 的 name 與 version 都沒動,marketplace.json 也沒有版本欄位; template 當時的 marketplace 改名(731a494)同樣沒有重置,照常從 0.0.2 走。 Co-Authored-By: Claude Opus 5 (1M context) --- .agents/plugins/marketplace.json | 2 +- .claude-plugin/marketplace.json | 2 +- README.md | 70 +++++++++++++++++++++++--------- 3 files changed, 53 insertions(+), 21 deletions(-) diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json index 96c372e..a59bc4f 100644 --- a/.agents/plugins/marketplace.json +++ b/.agents/plugins/marketplace.json @@ -1,5 +1,5 @@ { - "name": "jsc-plugins", + "name": "persona", "plugins": [ { "name": "jsc-persona", diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 5effb16..9ff485c 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -1,5 +1,5 @@ { - "name": "jsc-plugins", + "name": "persona", "description": "JSC 跨 AI 助理共用 skills 的 Claude Code marketplace。", "owner": { "name": "JSC" diff --git a/README.md b/README.md index ac19259..5256933 100644 --- a/README.md +++ b/README.md @@ -33,11 +33,11 @@ skills 是共通標準,**鎖與隔離的強制執行需要 hook,目前只有 persona/ ├── .claude-plugin/ │ ├── plugin.json # Claude 外掛定義(name: "jsc-persona") -│ └── marketplace.json # Claude marketplace(name: "jsc-plugins",source 指向本 repo) +│ └── marketplace.json # Claude marketplace(name: "persona",source 指向本 repo) ├── .codex-plugin/ │ └── plugin.json # Codex 外掛定義(name: "jsc-persona",skills: "./skills") ├── .agents/plugins/ -│ └── marketplace.json # Codex marketplace(name: "jsc-plugins",url source 指向本 repo) +│ └── marketplace.json # Codex marketplace(name: "persona",url source 指向本 repo) ├── plugin.json # Antigravity 外掛定義(name: "jsc-persona",skills: "./skills") ├── skills/ # ★ 唯一真實來源:所有 skills(十二個 persona-*) ├── scripts/ # persona.mjs / persona-gitea.mjs / persona-icon.mjs / selftest.mjs @@ -670,22 +670,54 @@ node scripts/selftest.mjs # 248 項驗證:鎖、隔離、情緒、固化 > **Antigravity 的 `agy plugin install ` 目前只支援 github.com**;gitea 請改用「clone + 本地路徑」(見 Antigravity 節)。 > 本機/離線:Claude 可用本地路徑加 marketplace;Antigravity 用本地路徑安裝。 > -> 本 plugin 的 marketplace 名是 **`jsc-plugins`**(不是 repo 名 `persona`),安裝 token 為 `jsc-persona@jsc-plugins`。 +> 本 plugin 的 marketplace 名是 **`persona`**(= repo 名),plugin 名是 **`jsc-persona`**,安裝 token 為 `jsc-persona@persona`。 + +> **⚠ 從 0.0.9 或更早升上來的人請先移除再安裝。** 0.1.0 起 marketplace 名由 `jsc-plugins` 改為 `persona` +> (舊名與 `jsc-template` 的 marketplace 撞名,兩個 plugin 同時安裝時會衝突)。各助理以 +> `@` 當安裝識別鍵,`jsc-persona@jsc-plugins` 與 `jsc-persona@persona` +> 是兩筆獨立條目,**不能用 update 遷移**——必須先移除舊的、再安裝新的,這段期間 skills 會短暫消失: +> +> ```bash +> # Claude Code +> claude plugin uninstall jsc-persona@jsc-plugins +> claude plugin marketplace remove jsc-plugins +> claude plugin marketplace add https://gitea.jsc.idv.tw/plugins/persona.git +> claude plugin install jsc-persona@persona +> +> # Codex +> codex plugin remove jsc-persona@jsc-plugins +> codex plugin marketplace remove jsc-plugins +> codex plugin marketplace add https://gitea.jsc.idv.tw/plugins/persona.git +> codex plugin add jsc-persona@persona +> +> # GitHub Copilot CLI +> copilot plugin uninstall jsc-persona@jsc-plugins +> copilot plugin marketplace remove jsc-plugins +> copilot plugin marketplace add https://gitea.jsc.idv.tw/plugins/persona.git +> copilot plugin install jsc-persona@persona +> ``` +> +> - 舊的 `jsc-plugins` marketplace 若還綁著別的 plugin(例如停在 0.0.1 的 `jsc-template`), +> 先把那個 plugin 也遷到它自己的 marketplace(`template`)再 `marketplace remove jsc-plugins`。 +> - 移除後記得清掉 `~/.claude/settings.json` 裡 `enabledPlugins` 的舊鍵 `jsc-persona@jsc-plugins`, +> 並**重開工作階段**讓六個 hook 重新掛上。 +> - **人格資料不受影響**:人格倉庫在 `~/.claude/personas/`(或 `PERSONA_HOME`),不在 plugin 目錄裡, +> 移除/重裝 plugin 不會動到情緒、記憶與關係圖。Antigravity/OpenCode 是本地路徑/目錄安裝,沒有 marketplace 名,不受此改名影響。 ### Claude Code ```bash # 安裝 claude plugin marketplace add https://gitea.jsc.idv.tw/plugins/persona.git -claude plugin install jsc-persona@jsc-plugins +claude plugin install jsc-persona@persona # 更新 -claude plugin marketplace update jsc-plugins -claude plugin update jsc-persona@jsc-plugins +claude plugin marketplace update persona +claude plugin update jsc-persona@persona # 移除 -claude plugin uninstall jsc-persona@jsc-plugins -claude plugin marketplace remove jsc-plugins +claude plugin uninstall jsc-persona@persona +claude plugin marketplace remove persona ``` - 工作階段內 slash 版(等價):把 `claude plugin` 換成 `/plugin`。 @@ -698,17 +730,17 @@ claude plugin marketplace remove jsc-plugins ```bash # 安裝 codex plugin marketplace add https://gitea.jsc.idv.tw/plugins/persona.git -codex plugin add jsc-persona@jsc-plugins +codex plugin add jsc-persona@persona # 更新(重新抓取 marketplace 的 git 快照) -codex plugin marketplace upgrade jsc-plugins +codex plugin marketplace upgrade persona # 移除 -codex plugin remove jsc-persona@jsc-plugins -codex plugin marketplace remove jsc-plugins +codex plugin remove jsc-persona@persona +codex plugin marketplace remove persona ``` -- 安裝 token `jsc-persona@jsc-plugins` = plugin 名(`.codex-plugin/plugin.json` 的 `name`)@ marketplace 名(`.agents/plugins/marketplace.json` 的 `name`)。 +- 安裝 token `jsc-persona@persona` = plugin 名(`.codex-plugin/plugin.json` 的 `name`)@ marketplace 名(`.agents/plugins/marketplace.json` 的 `name`)。 - 本 repo 的 Codex marketplace 以 `url` 來源指向自己,故 Codex **一律從 gitea 安裝**(需先 push);安裝後重啟 Codex。 - **呼叫**:`$`(例 `$persona-chat`),或用 `/skills` 選單。 - Codex 沒有 hook:鎖與隔離只剩 CLI 層的自律檢查。 @@ -766,18 +798,18 @@ Copilot CLI 支援與 Claude Code 類似的原生 plugin / marketplace 指令, ```bash # 安裝 copilot plugin marketplace add https://gitea.jsc.idv.tw/plugins/persona.git -copilot plugin install jsc-persona@jsc-plugins +copilot plugin install jsc-persona@persona # 更新 -copilot plugin marketplace update jsc-plugins -copilot plugin update jsc-persona@jsc-plugins +copilot plugin marketplace update persona +copilot plugin update jsc-persona@persona # 移除 -copilot plugin uninstall jsc-persona@jsc-plugins -copilot plugin marketplace remove jsc-plugins +copilot plugin uninstall jsc-persona@persona +copilot plugin marketplace remove persona ``` -- 安裝 token `jsc-persona@jsc-plugins` = plugin 名(plugin manifest 的 `name`)@ marketplace 名。 +- 安裝 token `jsc-persona@persona` = plugin 名(plugin manifest 的 `name`)@ marketplace 名。 - `copilot plugin marketplace add` 支援 GitHub `owner/repo`、git URL 與本地路徑;Gitea repo 可用上方 HTTPS URL。 - Copilot CLI 沒有 hook:鎖與隔離同樣只剩 CLI 層的自律檢查。 - **呼叫**:在 Copilot CLI 中用自然語言描述需求,例如 `copilot -i "用 lumi 這個人格跟我聊聊"`。