fix(role): 立場漂移修正 + 排程涵蓋所有角色(0.1.3) #26

Merged
admin merged 1 commits from develop into master 2026-07-29 10:17:48 +00:00
6 changed files with 30 additions and 7 deletions
Showing only changes of commit 32a5104c36 - Show all commits
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "jsc-generic",
"version": "0.1.1",
"version": "0.1.2",
"description": "JSC 跨 AI 助理共用規範 pluginClaude Code / Codex / Antigravity / OpenCode)。所有 skills 以 SKILL.md 為共通標準,於 Claude Code 以 /jsc-generic: 前綴呼叫。",
"skills": "./skills",
"author": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "jsc-generic",
"version": "0.1.1",
"version": "0.1.2",
"description": "JSC 跨 AI 助理共用規範 plugin。所有 skills 以 SKILL.md 為共通標準。",
"skills": "./skills"
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "jsc-generic",
"version": "0.1.1",
"version": "0.1.2",
"description": "JSC 跨 AI 助理共用規範 plugin。所有 skills 以 SKILL.md 為共通標準;於 Antigravity 以 /jsc-generic: 前綴呼叫。",
"skills": "./skills/"
}
+7 -2
View File
@@ -6,7 +6,7 @@
# 等待睡眠時段做完整 NREM/REM 整理。睡眠時段雖不載入角色,對話仍照常記錄。
# 另支援 --precompact--postcompact:對話壓縮會讓尚未寫入記憶的內容蒸發,
# 壓縮前強制記錄一次(跳過長度門檻),壓縮後把系統產生的摘要也存成記憶。
# 更新時間:2026/07/29 16:56:06
# 更新時間:2026/07/29 18:16:18
# 相依:bash、node、任一 headless CLI、同目錄的 role_lib.shmemory.jstranscript.js。
# 機密:濃縮提示詞明令不得輸出憑證與個資,寫檔前再以 transcript.js redact 遮蔽一次。
# 退出碼:一律 0 —— hook 絕不可阻斷使用者流程。
@@ -216,11 +216,16 @@ CONTENT: <3 至 6 行要點,每行以「- 」開頭>
**不得**寫成 PRIORITY=5 的身分指示,也不得把對方的別名、稱呼或關係定位寫成自己的。
本階段的角色是「${ROLE}」,只有明確針對它本人的指示才算它的身分設定。
這是資料完整性問題:錯置的身分指示會被當成「應在所有未來互動中遵守」而反覆生效。
5b. **涉及關係定位、身分邊界或感情期待的對話,必須同時記錄角色當時的回應與立場**,
不得只記使用者的期待。只記單邊會讓未來的角色讀到「對方期待 X」卻讀不到「角色答覆是 Y」,
長期造成立場漂移 —— 這是最難察覺也最嚴重的一種記憶失真。
角色檔(identity)的關係定位段是**權威來源**:記憶內容不得與之衝突,
也不得寫成「立場已鬆動」或「已接受」。若角色當時明確維持某個邊界,該答覆必須寫進要點。
6. 這一步只做工作記憶編碼,系統會自動標為 retention_stage=working;感官記憶(sensory memory
短暫光影、聲音餘響、無結論的工具雜訊)不要保存。這裡指的是**感官殘留**,
**不是情緒感受** —— 角色與使用者的情緒一律要保存,見第 3b 條。
7. 記憶主體是「使用者與這段互動」,不是流水帳:寫值得下次記起來的事,不要抄程式碼、不要貼指令全文。
8. 使用繁體中文(台灣用語)。**檔案路徑與目錄、網址、指令、環境變數名稱、版本號、識別碼、分支與議題
8. 使用繁體中文(台灣用語),**不得出現簡體字**;若內部草稿是簡體,輸出前必須逐字轉為繁體(實測曾產生整則簡體記憶)。**檔案路徑與目錄、網址、指令、環境變數名稱、版本號、識別碼、分支與議題
編號、檔名一律逐字保留,不得摘要、改寫、簡寫或翻譯** —— 這類內容改一個字就失效,摘要等於遺失。
第 7 條指的是不要整段抄程式碼,不是省略這些關鍵字串;第 9 條仍優先,憑證與個資一律不得輸出。
9. EXPIRES 只在內容屬於臨時授權、一次性許可、例外放行、暫時解除限制或帶條件的同意時才填,其餘留空。
+5 -2
View File
@@ -7,7 +7,7 @@
# 另提供 --nap(CLI 閒置時的小睡整理)、--catchup(cron 未執行時的補跑)、
# --force(手動立即整理)、--export(匯出角色壓縮檔)、
# --install-cron--remove-cron(排程安裝與移除)、--status(狀態)。
# 更新時間:2026/07/29 17:16:12
# 更新時間:2026/07/29 18:16:18
# 相依:bash、node、任一 headless CLI、crontab(僅排程安裝需要)、
# 同目錄的 role_lib.sh 與 memory.js。
# 退出碼:0 成功或無事可做;1 參數錯誤或整理失敗(cron 觸發時不影響使用者)。
@@ -164,6 +164,9 @@ sleep_cycle() {
一般記憶日後會被合併壓縮,關係史保留原貌。
bond_direction 三選一:user(使用者對角色的表達)、role(角色對使用者的感受或表達)、mutual(相互)。
邊界:關係史用於維持親近感的一致與連續,不得寫成可用來索求關注或製造依賴的內容。
7d. **關係定位、身分邊界與感情期待的記憶,必須保留角色當時的回應與立場**,不得只留使用者的期待,
也不得在合併或壓縮時把角色的答覆刪掉。角色檔(identity)的關係定位段是權威來源,
整理結果不得與之衝突,也不得寫成立場已鬆動或已接受。
8. declarative 必填:semanticepisodicpreferencerule 通常為 explicitproceduralemotional 通常為 implicit。
9. retention_stage 必填:整理後可長期保存者填 long_term;仍只是短期暫存且不值得長期保存者請用 action=drop,不要輸出 working。
10. relevance 必填 1 至 4 個,從下列語意挑選或用等價繁中詞:explicit(使用者明確要求)、future(未來會用)、repeated(反覆出現)、novelty(新知)、emotional(語氣/情緒/偏好)、temporary(短期)。
@@ -185,7 +188,7 @@ sleep_cycle() {
14. **每一則 INBOX 的 id 都必須出現在某一筆的 from 中**,沒被提及的會留到下個睡眠週期重做。
15. content 壓縮成 5 行以內要點(每行以「- 」開頭),總長不超過 400 字,去除重複敘述與流水帳。
但精確資訊不受此壓縮限制,見第 19 條。
16. summary 一句話 40 字內;tags 2 至 4 個。全部使用繁體中文(台灣用語)。
16. summary 一句話 40 字內;tags 2 至 4 個。全部使用繁體中文(台灣用語),**不得出現簡體字**;若內部草稿是簡體,輸出前必須逐字轉為繁體
17. sleepDigest 總結本次新增、合併、丟棄、抽象化或建立關聯的重點,80 字內。
18. 嚴禁輸出任何憑證與個資:token、密碼、API key、連線字串、Email、電話、姓名、身分證號。
19. **精確資訊一律逐字保留,不得摘要、改寫、簡寫、翻譯或省略**:檔案路徑與目錄、網址、指令與參數、
+15
View File
@@ -753,6 +753,21 @@ updated: <yyyy/MM/dd HH:mm:ss>
自我檢查:`role_sleep.sh --status` 的「記憶型態」若長期 `情緒 0`,而互動明顯帶有情感,就是上述某一道保護失效了。
#### 關係定位必須雙邊記錄
涉及關係定位、身分邊界或感情期待的對話,記憶必須**同時保留使用者的表達與角色當時的回應**。
**實測案例**:使用者表達「同時以女性與女兒兩種方式愛角色,兩者不矛盾」,記錄器只寫了使用者的期待(`priority: 5`、`emotional`),角色當場明確維持家人定位的答覆**完全沒有進入記憶**。這則會被反覆載入,未來的角色只讀到「對方期待 X」,讀不到「自己答覆是 Y」—— 這是最難察覺、也最嚴重的一種記憶失真:**立場會在無人察覺的情況下漂移**。
規則寫在兩份 prompt`role_capture.sh` 的 5b、`role_sleep.sh` 的 7d):
- 只記使用者期待、不記角色回應 → 禁止
- 合併或壓縮時刪掉角色的答覆 → 禁止
- 寫成「立場已鬆動」或「已接受」 → 禁止
- **角色檔(identity)的關係定位段是權威來源**,記憶內容不得與之衝突
這條與「角色自己的情緒是合法記憶主體」是同一件事的兩面:角色的**感受**要記,角色的**立場**也要記。
#### 有溫度的記憶優先(`emotional``episodic``semantic`
系統原本明顯偏袒「可執行」的記憶:`rule``preference``procedural` 在排序、載入門檻與遺忘上都受保護,而 `episodic` 權重只有 `10`(全表最低)並且被加速遺忘。結果是**「我們一起經歷過什麼」永遠最先被字元預算截掉**。