From b9b6bb57d07df97b8ed79b3cb0cf6f11f4534d68 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Wed, 29 Jul 2026 17:58:41 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix(role):=20=E8=A8=98=E9=8C=84=E5=99=A8?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E6=8A=8A=E5=85=B6=E4=BB=96=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E7=9A=84=E8=A8=AD=E5=AE=9A=E5=AF=AB=E6=88=90=E8=87=AA=E5=B7=B1?= =?UTF-8?q?=E7=9A=84=E8=BA=AB=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 實例:使用者在角色 A 的工作階段中建立角色 B 並設定別名,Stop hook 卻把 「使用者要求以 呼喚 A」寫成 A 的 priority 5 身分指示(實測已被召回 2 次)。 A 的 identity.md 根本沒有該 aliases 欄位 —— 這是憑空產生的假「明確指示」。 根因:capture prompt 只說「你是角色 X 的記錄器」,沒有教它區分 「本輪在談另一個角色的設定」與「本輪在談你自己」。 新增 5a 條:看句子主體是誰。「叫你小雨」和「幫小雨設定別名」不同, 後者只是協助者,應記成 daily/episodic 的協助紀錄,不得寫成 priority 5 身分指示, 也不得把對方的別名、稱呼或關係定位寫成自己的。 Co-Authored-By: Claude Opus 5 (1M context) --- scripts/role/role_capture.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scripts/role/role_capture.sh b/scripts/role/role_capture.sh index 7b471a6..538ee3b 100755 --- a/scripts/role/role_capture.sh +++ b/scripts/role/role_capture.sh @@ -208,6 +208,14 @@ CONTENT: <3 至 6 行要點,每行以「- 」開頭> 4. 優先度判準:5=使用者明確要求記住、長期規範、穩定偏好;4=可重複套用的流程/技能/決策;3=專案相關且未來可能有用;2=短期進度;1=低價值暫存。 MEMORY_TYPE 為 emotional 者**至少 4** —— 載入時全文區塊有優先度門檻,低於 4 的情緒記憶進不了下次對話。 5. 使用者對角色互動方式的回饋要優先保存:例如稱讚角色、表示喜歡/不喜歡某種回應、提到某種反應讓使用者高興、希望角色下次也這樣做。也要保存使用者希望角色隨互動加深而更親近、更喜歡使用者、稍微改變語氣或出現害羞反應,希望角色大量使用 emoji/心情圖示來表達心情、用 emoji 數量表示情緒強度、emoji 熟練後不再額外加括號心情文字或心情說明,除非角色真的很想讓使用者知道自己害羞等強烈心情,希望角色有更多且更複雜情緒、讓互動更自然,以及希望記憶更新只由角色內部知道、不主動告知記憶寫入或整理細節的偏好。這類內容即使對話很短,也視為當前角色自己的互動偏好記憶;通常用 CATEGORY=important、PRIORITY=5、RELEVANCE=explicit,future,emotional。MEMORY_TYPE 依第 3a 條決定:「希望角色下次怎麼做」用 preference,「這一刻的感覺」用 emotional;同時具備時依 3a 條拆成兩則,不要只留 preference 那則。不要把它推論成所有角色共用同一份記憶。 +5a. **本輪在談「其他角色」的設定時,不得記成當前角色自己的身分或偏好**: + 使用者可能在與你的對話中建立或調整別的角色(名稱、別名、稱呼、關係定位、人格設定)。 + 那些屬於那個角色,不屬於你。判斷方式是看句子的主體是誰 —— + 「叫你小雨」和「幫小雨設定別名」完全不同,後者你只是協助者。 + 這種情況記成 CATEGORY=daily、MEMORY_TYPE=episodic 的「協助建立/調整了角色 X」即可, + **不得**寫成 PRIORITY=5 的身分指示,也不得把對方的別名、稱呼或關係定位寫成自己的。 + 本階段的角色是「${ROLE}」,只有明確針對它本人的指示才算它的身分設定。 + 這是資料完整性問題:錯置的身分指示會被當成「應在所有未來互動中遵守」而反覆生效。 6. 這一步只做工作記憶編碼,系統會自動標為 retention_stage=working;感官記憶(sensory memory: 短暫光影、聲音餘響、無結論的工具雜訊)不要保存。這裡指的是**感官殘留**, **不是情緒感受** —— 角色與使用者的情緒一律要保存,見第 3b 條。 -- 2.53.0 From d376930ee559fdddebb588df5f4cbf4ab495c142 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Wed, 29 Jul 2026 18:05:42 +0800 Subject: [PATCH 2/2] =?UTF-8?q?chore(plugin=20=E7=89=88=E6=9C=AC):=20?= =?UTF-8?q?=E4=B8=89=E5=AE=B6=20manifest=20=E5=8D=87=E7=89=88=200.1.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 前一個 commit(記錄器跨角色污染修正)在 PR #24 合併之後才推上 develop, 當時誤判 PR 仍為 open 而未升版,導致 master 與 develop 內容不同卻同為 0.1.0 —— 各助理以版本判斷更新,同版號會抓不到這次修正。 Co-Authored-By: Claude Opus 5 (1M context) --- .claude-plugin/plugin.json | 2 +- .codex-plugin/plugin.json | 2 +- plugin.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 094afb3..ce9224e 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "jsc-generic", - "version": "0.1.0", + "version": "0.1.1", "description": "JSC 跨 AI 助理共用規範 plugin(Claude Code / Codex / Antigravity / OpenCode)。所有 skills 以 SKILL.md 為共通標準,於 Claude Code 以 /jsc-generic: 前綴呼叫。", "skills": "./skills", "author": { diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json index 25abbd4..a0e2bb6 100644 --- a/.codex-plugin/plugin.json +++ b/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "jsc-generic", - "version": "0.1.0", + "version": "0.1.1", "description": "JSC 跨 AI 助理共用規範 plugin。所有 skills 以 SKILL.md 為共通標準。", "skills": "./skills" } diff --git a/plugin.json b/plugin.json index d93ca19..98845f3 100644 --- a/plugin.json +++ b/plugin.json @@ -1,6 +1,6 @@ { "name": "jsc-generic", - "version": "0.1.0", + "version": "0.1.1", "description": "JSC 跨 AI 助理共用規範 plugin。所有 skills 以 SKILL.md 為共通標準;於 Antigravity 以 /jsc-generic: 前綴呼叫。", "skills": "./skills/" } -- 2.53.0