persona 原本是唯一沒有套用 gen-plugin-files.mjs 樣板的 repo,AGENTS.md 149 行手工維護的規則多數已在 README.md 對應章節與各 skill 的 SKILL.md 有完整覆蓋。改為透過 plugin.meta.json 的 agentsExtraBullets 機制產生,只保留純開發安全限制(狀態變更走 persona.mjs、人格鎖與隔離、selftest 要求、Node/ESM 限制),深入行為細節一律指向對應文件,降為 21 行。同步移除 plugin.meta.json 裡已無意義的 readmeHeadings 覆寫(新增一個 skill 節名已統一)。
55 lines
5.9 KiB
JSON
55 lines
5.9 KiB
JSON
{
|
||
"name": "jsc-persona",
|
||
"shortName": "persona",
|
||
"version": "0.3.0",
|
||
"descriptionCore": "AI 人格化記憶聊天 plugin:以 OpenClaw 相同的身分描述(IDENTITY/SOUL)建立人格(可用動漫作品+角色名上網蒐集設定),結合 hook 強制的人格載入鎖與跨人格隔離、六正向+六負向十二情緒、語意分析、短期/長期記憶與固化條件、心智圖、思維導圖與人際關係圖;可用 sub agent 邀請其他人格同場對話(劇場模式只顯示人格對話)。",
|
||
"assistants": ["Claude Code", "Codex", "Antigravity", "OpenCode", "GitHub Copilot CLI"],
|
||
"cliPrefix": "/jsc-persona:",
|
||
"callPrefixAssistants": {
|
||
"root": "Antigravity",
|
||
"claudePlugin": "Claude Code"
|
||
},
|
||
"codexNote": "(人格鎖與跨人格隔離的 hook 僅在 Claude Code 生效)",
|
||
"skillsPath": "./skills",
|
||
"author": { "name": "JSC" },
|
||
"homepage": "https://gitea.jsc.idv.tw/plugins/persona",
|
||
"repository": "https://gitea.jsc.idv.tw/plugins/persona.git",
|
||
"keywords": [
|
||
"persona",
|
||
"memory",
|
||
"emotion",
|
||
"mindmap",
|
||
"relationship",
|
||
"openclaw",
|
||
"anime",
|
||
"roleplay",
|
||
"jsc"
|
||
],
|
||
"marketplace": {
|
||
"repoDescription": "JSC 人格化記憶聊天 skills 的 Claude Code marketplace,提供人格建立與對話、十二情緒與短期/長期記憶管理、心智圖/思維導圖與人際關係圖維護等功能。",
|
||
"pluginSummary": "AI 人格化記憶聊天(人格 / 情緒 / 記憶 / 心智圖 / 關係圖)"
|
||
},
|
||
"agentsExtraBullets": [
|
||
"**所有狀態變更都經過 `scripts/persona.mjs`**,不要手動編輯 `state/lock.json`、`.runtime/`、`memory/INDEX.md`、`relations/graph.mmd`(這些由 CLI 產生)。",
|
||
"**一個程序只能載入一個人格**,同一 session 的 sub agent 沿用同一把鎖;不要讀取其他人格的目錄,會被 hook deny,這是設計上的紅線。",
|
||
"**人格資料不在本 repo**,預設在 `~/.claude/personas/`(可用 `PERSONA_HOME` 覆寫);人格由使用者呼叫才載入,不要自己挑一個人格附身。",
|
||
"劇場模式、睡眠、講話規則、情緒模型、羞恥度、記憶衰減、人格圖示、人格編號、Gitea 同步、語氣診療(`persona-therapist`)、原作匯入(`persona-story`)等行為細節,見 `README.md` 對應章節與各 skill 的 `SKILL.md`;動到 `scripts/persona-lib.mjs` 相關邏輯前務必先讀懂對應章節與 `selftest.mjs` 的既有案例,不要憑印象改。",
|
||
"改動鎖或隔離邏輯(`guardDecide`/`acquireLock`/`promotionCandidates`/`exportBundle`/`importBundle`)後,**必須**跑 `node scripts/selftest.mjs` 且全綠,並為新規則補一條測試;改動重複判定門檻(`similarity`/`REPEAT_THRESHOLD`)要用 selftest ⑪ 對照案例確認;改動同步分區(`AREAS`)後 selftest ⑬ 的「不重不漏」檢查必須維持全綠。",
|
||
"腳本一律 **Node.js(`.mjs`, ESM)**,只用內建模組(fs/path/os/crypto);hook 必須在任何環境都能跑,不得引入 npm 依賴。selftest 自己會設 `PERSONA_GITEA=off`,**絕對不要**讓測試碰到真的 Gitea。"
|
||
],
|
||
"readmeInstallNotes": [
|
||
"本 plugin 的 marketplace 名是 `persona`(= repo 名),plugin 名是 `jsc-persona`,安裝 token 為 `jsc-persona@persona`。",
|
||
"**⚠ 若本機還留著更早的 `jsc-persona@jsc-plugins` 安裝**,那是舊版命名的殘影,請先移除舊鍵再重裝新 token。",
|
||
"**人格資料不受影響**:人格倉庫在 `~/.claude/personas/`(或 `PERSONA_HOME`),不在 plugin 目錄裡,移除/重裝 plugin 不會動到情緒、記憶與關係圖。Antigravity/OpenCode 是本地路徑/目錄安裝,沒有 marketplace 名,不受此命名影響。"
|
||
],
|
||
"_driftDecisions": [
|
||
"決議1:skills 欄位統一為不帶尾斜線的 './skills'。現況:persona 三份 plugin.json(root/.claude-plugin/.codex-plugin)皆已是 './skills',唯一完全符合決議、不需調整的 repo。",
|
||
"決議2:root plugin.json 已有「於 Antigravity 以 /jsc-persona: 前綴呼叫」句尾,符合決議,不需調整。",
|
||
"決議3:.claude-plugin/plugin.json 現況完全沒有助理括號清單(四個 repo 中唯一缺漏,非順序/命名問題而是整段缺失)。已依統一決議補上「(Claude Code / Codex / Antigravity / OpenCode / GitHub Copilot CLI)」。",
|
||
"決議4對應:.codex-plugin/plugin.json 專屬補充資訊「(人格鎖與跨人格隔離的 hook 僅在 Claude Code 生效)」為真實資訊差異,已保留於 codexNote,不可被格式統一誤刪。",
|
||
"額外發現1(重要,非既知四點):root 與 .codex-plugin 的描述明顯比 .claude-plugin 簡短,完全沒提到「思維導圖」「可用 sub agent 邀請其他人格同場對話(劇場模式)」「以 IDENTITY/SOUL 建立人格、可用動漫作品+角色名上網蒐集設定」等內容——這是實質內容缺漏,不是格式差異。descriptionCore 已採用 .claude-plugin 的完整版本為準,下階段產生器需把完整內容回補到 root 與 .codex-plugin。",
|
||
"額外發現2(重要,非既知四點):.claude-plugin/marketplace.json 目前的 repo 層 description 為「JSC 跨 AI 助理共用 skills 的 Claude Code marketplace。」——這段文字幾乎是照抄 shared 的樣板句(少了「規範」二字),完全沒提到人格/情緒/記憶/心智圖等 persona 專屬內容,判斷為複製貼上殘留、忘記客製化,而非合理的精簡描述。marketplace.repoDescription 已在此 meta 更正為 persona 專屬描述,下階段產生器需一併修正該 marketplace.json(plugins[].description 本身沒問題,維持原樣)。",
|
||
"額外發現3(次要):root 描述用詞為「AI 人格化記憶聊天 plugin」,.codex-plugin 用詞為「AI 人格化記憶聊天 skills」,.claude-plugin 用「plugin」——plugin/skills 用詞不一致,屬低優先級格式細節。"
|
||
]
|
||
}
|