@@ -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 <url>` 目前只支援 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 同時安裝時會衝突)。各助理以
> ` <plugin 名>@<marketplace 名>` 當安裝識別鍵,` 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。
- **呼叫**: ` $<name>`(例 ` $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 這個人格跟我聊聊"`。