Files
persona/plugin.json
T
jiantw83andClaude Opus 5 e986686d0e feat: 人格編號(ASUNA-01)與 Gitea 儲存,依更新頻率分檔案區/Wiki 區
1. 人格編號
   - 編號 = 英文名全大寫 + 兩位索引,同名才遞增:ASUNA-01 / YUI-01 / ASUNA-02。
   - 編號同時是新人格的本機目錄名與 Gitea 存取庫名稱(`create` 不給
     --persona 就用編號當目錄名;既有小寫 slug 仍然合法,不會被鎖在門外)。
   - 中文名由 skill 提議羅馬拼音、使用者確認後帶 `--romaji` 進來;
     CLI 只吃拉丁字母,避免拼音在程式裡亂猜。
   - 新增 `code show|assign|next`;`code assign --rename` 可把既有人格的
     目錄名一併改成編號(會轉移鎖與 session 綁定)。

2. Gitea 儲存(scripts/persona-gitea.mjs)
   - 每個人格一個私有存取庫,庫名 = 編號。本機仍是工作副本,hook 每輪
     讀寫本機檔案,**同步失敗永遠不阻斷對話**。
   - 依更新頻率分區:
       檔案區(高頻)emotion / short-term / inner / said / inbox /
                     mindmap threads / journal → 每輪由 Stop hook 背景 push
       Wiki 區(低頻)IDENTITY SOUL AGENTS USER / 長期記憶 / INDEX /
                     心智圖 / 關係圖 → 固化、改身分關係、release 時 push
   - Gitea 的 wiki 只有根目錄 .md 會變成頁面(1.27 實測子目錄頁面 404),
     所以 Wiki 區攤平成 `Memory-xxx.md`,原始路徑記在 `_paths.json`,
     pull 時還原;Home 頁自動列出所有長期記憶連結。
   - 新增 `sync status|init|push|pull`;載入時先 pull,兩邊都改過同一個
     檔案就停下來不覆蓋本機,交由使用者決定。
   - push 遇到 non-fast-forward 會對齊遠端後把工作副本重新疊上去再推。
   - 認證走 http.extraHeader(GIT_CONFIG_* 環境變數),token 不寫進
     .git/config 也不進 process 參數。

3. 順帶修正
   - guard 的 `--persona` 解析原本只吃小寫,大寫編號會漏掉整個跨人格檢查。
   - pull 原本會無差別覆蓋本機檔案,本機較新但還沒 push 的內容會被蓋掉;
     改成只寫回「遠端真的改過的」與「本機缺少的」。
   - `create` 原本吞掉 Gitea 首次推送的結果,失敗是靜默的。

新增 skill:persona-sync(編號、同步、既有人格遷移、衝突處理)。
selftest 116 項全綠(新增 ⑬,含「分區不重不漏」檢查;測試強制 PERSONA_GITEA=off)。
另對真實 Gitea 跑過端對端(建庫→兩區推送→改動→拉回→release),測試用存取庫已刪除。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-30 01:49:27 +00:00

7 lines
294 B
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"name": "jsc-persona",
"version": "0.0.3",
"description": "AI 人格化記憶聊天 pluginOpenClaw 相同的人格描述 + 十二情緒 + 語意分析 + 短期/長期記憶 + 心智圖 + 人際關係圖。於 Antigravity 以 /jsc-persona: 前綴呼叫。",
"skills": "./skills/"
}