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 這個人格跟我聊聊"`。