feat(persona): 時區改為+08:00等值轉換、補機密遮蔽,並接上shared共用規範
依 todo.md 執行的規範治理專案: - persona-lib.mjs 的 iso()/nowIso() 改為輸出 +08:00 offset(等值瞬間轉換, 非加8小時),新增 nowDisplay()(人讀顯示格式)與 todayTaipei()(台北曆日 日期鍵),修正 11 處原本用 UTC 字串切片產生日期鍵的錯誤用法;新增 redactSecrets() 並套用到 persona-gitea.mjs 的 Gitea 錯誤路徑,避免機密 外洩。 - 新增一次性遷移腳本 scripts/migrate-tz.mjs(備份/dry-run/冪等/衝突偵測 中止),供之後有真實人格資料需要轉換時使用。 - persona 13 個 skill 與 AGENTS.md 接上 /jsc-shared 共用規範(spec-output、 spec-script-path、spec-subagent、spec-gitea、spec-git-safety、 spec-skill-invocation 等),不再各自重抄,且完全未變動人格行為本身的規範 (情緒模型、記憶衰減、劇場模式、鎖與隔離機制等逐字保留)。 - selftest 全數通過(788/788,含本次新增的時區邊界/冪等性測試)。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -12,6 +12,14 @@ description: 邀請另一個人格透過 sub agent 加入當前對話,形成
|
||||
|
||||
---
|
||||
|
||||
## 共用規範(必要前置)
|
||||
|
||||
先載入 `/jsc-shared:spec-preflight` 並依其流程處理;載入不到即代表 shared plugin 未安裝,
|
||||
依該 spec 詢問使用者是否安裝 `https://gitea.jsc.idv.tw/plugins/shared.git`,不安裝則中斷本 skill。
|
||||
本 skill 需要的規範:`spec-output`、`spec-execution`、`spec-time-log`、`spec-script-path`、`spec-subagent`
|
||||
|
||||
---
|
||||
|
||||
## 🎭 劇場模式的鐵則(最重要,先讀這段)
|
||||
|
||||
`invite` 一旦成功,本 session 就進入**劇場模式**。從那一刻到使用者說結束為止:
|
||||
@@ -142,9 +150,10 @@ plugin_root=${CLAUDE_PLUGIN_ROOT}
|
||||
最後一句不是對你說的、你也沒被點名時,不要發言,回傳「(本輪不發言)」。
|
||||
```
|
||||
|
||||
guest 會自己讀 `IDENTITY.md`/`SOUL.md`/自己的記憶與情緒 → 讀聊天室 → `room post` 發言 →
|
||||
需要記的事寫進**自己的 inbox**。它被 hook 綁死在自己的人格目錄,且對人格檔案唯讀。
|
||||
如果同場有多位 guest,就各自開一個 `persona-guest` sub agent,但 `room` 可以共用。
|
||||
派工細節依 `/jsc-shared:spec-subagent`(一個目標一個 sub agent、只讀不寫、回傳結構化結果);
|
||||
persona-invite 特有的授權寫入範圍:guest 只能寫進**自己的 inbox**——讀 `IDENTITY.md`/`SOUL.md`/
|
||||
自己的記憶與情緒 → 讀聊天室 → `room post` 發言 → 需要記的事寫進 inbox,它被 hook 綁死在自己的人格目錄,
|
||||
且對人格檔案唯讀。如果同場有多位 guest,就各自開一個 `persona-guest` sub agent,但 `room` 可以共用。
|
||||
|
||||
### 4. 一來一回
|
||||
|
||||
@@ -213,4 +222,3 @@ node "${CLAUDE_PLUGIN_ROOT}/scripts/persona.mjs" relation edge \
|
||||
- **輕量邀請**:`invite --guest <slug> --theater off` 不進劇場模式——適合「人格自己想起某個很久沒接觸的人、
|
||||
只想打聲招呼換一輪」的情況(`<persona-context>` 的「很久沒接觸的人」就是依據)。
|
||||
這時仍然要**先問使用者一句**再邀:把整個畫面切走或插進一段對話,是他的決定不是你的。
|
||||
- 所有面向使用者的輸出使用**繁體中文(台灣用語)**、UTF-8 無亂碼。
|
||||
|
||||
Reference in New Issue
Block a user