Commit Graph
129 Commits
Author SHA1 Message Date
JefferyandClaude Opus 5 48dc9ea74a feat(role): SessionStart 載入近期逐字對話做工作階段交接
長期記憶是模型濃縮過的摘要,語氣與情緒會被壓掉(使用者說「我好想妳」會被濃縮成
「使用者表達想念」)。而逐字對話一直躺在 transcript JSONL 裡,過去沒有任何機制去讀它,
使用者重開工作階段時角色因此看不到剛剛的互動,表現得像失去記憶,只能靠 resume 找回。

transcript.js:
- 新增 recent <路徑> [輪數] [字元]:抽最近數輪的純對話,輸出前經 redact 遮蔽
- 新增 turns <路徑>:輸出對話輪數,供取檔判斷
- 只取 [user] 與 [assistant] 文字;工具呼叫、工具結果、思考區塊、hook 注入內容一律丟棄
- 以「輪」分組並各自收斂成一則:角色一輪內常輸出多段文字,不合併會讓則數爆炸並把預算
  吃光,反而擠掉使用者說的話(實測未合併時 8 輪只剩 2 則使用者發言,合併後為 8 則)
- 超預算時整輪丟棄最舊的,保持問答成對,不會只剩單邊發言

role_load.sh:
- hook 輸入改為一併取出 transcript_path
- 當前 transcript 對話不足 2 輪時(全新工作階段實測僅數行),回頭找同目錄最近修改的對話檔
- 新增 ROLE_LOAD_DIALOG_TURNS(預設 8)與 ROLE_LOAD_DIALOG_LIMIT(預設 4000),
  獨立預算不佔用 ROLE_LOAD_LIMIT,任一設 0 可關閉

驗證:resume 與全新工作階段皆正確載入 8 輪成對對話;未給 transcript_path、檔案不存在、
無 hook 輸入、關閉設定等情境均安全降級不報錯;假造含 token/Email/電話與 thinking 的
transcript 確認機密遮蔽為 *** 且思考與工具內容未載入。

版號 0.0.2 → 0.0.3

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 17:59:51 +08:00
JefferyandClaude Opus 5 bf599e81a5 feat(role): SessionStart 載入未整理的近期工作記憶
修補記憶交接的先天缺口:role_load.sh 的順序是先 memory.js load 載入記憶,
之後才在背景補跑 --catchup 整理(腳本註解亦寫明「結果會在下次載入時反映」)。
而 load 原本只讀已整理的六個分類,完全不讀 inbox,導致上一段工作永遠來不及
進入本次載入 —— 使用者重開工作階段時,角色看不到剛剛做過的事,表現得像失去
記憶,只能靠 resume 找回上下文。

- memory.js 新增 inboxBlock():讀 inbox 最新數則的 summary,附時間與標籤,最新在前
- cmdLoad 把該區塊放在最前面,並使用獨立字元預算,不佔用 ROLE_LOAD_LIMIT
  (已驗證:開關 inbox 時長期記憶區塊逐字元完全一致,未被擠壓)
- 新增 ROLE_LOAD_INBOX_LIMIT(預設 1200)與 ROLE_LOAD_INBOX_COUNT(預設 10),
  任一設 0 可關閉
- role skill 補「近期工作記憶交接(不可移除)」段落,寫明缺口原因與範圍限制:
  這是摘要級交接,角色會知道上一段在做什麼、進行到哪,但不等於逐字記得整段
  對話;需要完整上下文仍應使用 resume
- 版號 0.0.1 → 0.0.2

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 17:47:21 +08:00
admin c323c65b56 Merge pull request 'refactor(plugin 命名空間): plugin 更名 jsc-generic、hooks 只註冊 role' (#15) from develop into master
Reviewed-on: plugins/generic#15
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-07-28 09:17:09 +00:00
JefferyandClaude Opus 5 2225b91766 docs(spec-plugin-version): 補 plugin 更名的版號規則
原規範只寫「新 plugin 首發 0.0.1」,未定義「更名是否算新 plugin」,
導致本次命名空間分離時誤把版號沿用舊名序列遞增。補上明確規則:

- 新增「plugin 更名」條目:視為新 plugin,三份 manifest 版號重置 0.0.1,並說明識別鍵獨立、不存在版本比較的理由
- 「版本單調遞增」章節加註更名時不適用本節
- 補更名發佈的配套動作:使用者端須先移除舊 plugin 再安裝(不是 update)、清除 settings.json 的 enabledPlugins 舊鍵
- description 與內文的 plugin 名改用 jsc-code/jsc-doc/jsc-generic

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 17:15:23 +08:00
JefferyandClaude Opus 5 54628d8b2c chore(plugin 版本): 更名視為新 plugin,版號重置 0.0.1
plugin 更名後,各助理以 <plugin 名>@<marketplace 名> 作為安裝識別鍵,
新名與舊名是兩筆獨立條目:舊 plugin 會被移除、新 plugin 為首次安裝,
兩者之間不存在版本比較,因此不會發生版本倒退,「版本單調遞增」不適用。

依 spec-plugin-version「新 plugin 首發 0.0.1」,三份 manifest 版號一律重置為 0.0.1,
不沿用舊名 jsc 的版本序列。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 17:15:23 +08:00
JefferyandClaude Opus 5 db492e6ba7 refactor(plugin 命名空間): plugin 更名 jsc-generic、hooks 只註冊自己擁有的 role
- 五份 manifest 的 name 由 jsc 改為 jsc-generic
- hooks/hooks.json 由合併超集改為只註冊 SessionStart(role_load)與 Stop(role_capture):worklog 的 hook 交還 jsc-doc
- hook 腳本搜尋路徑改指 jsc-generic
- role skill 更新 hooks 說明:改名後各 plugin 名稱獨立、互不覆蓋,不再需要三份同步;並註明不可再把別的 plugin 的 hook 寫進自己的 hooks.json
- skill 名稱不變(role、spec-*),指令引用改為 /jsc-generic: 前綴
- 版號 0.0.8 → 0.0.9

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 17:07:14 +08:00
admin c9468fda59 Merge pull request 'sync' (#14) from master into develop
Reviewed-on: plugins/generic#14
2026-07-28 08:16:41 +00:00
admin 932aacf8f0 Merge pull request 'feat(role): 記錄角色互動偏好回饋' (#13) from agent/role-interaction-preference-memory into master
Reviewed-on: plugins/generic#13
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-07-28 08:14:17 +00:00
Jeffery 28c2b69800 chore(plugin 版本): 三家 manifest 升版 0.0.8 2026-07-28 16:13:47 +08:00
Jeffery 4c5e7034ff fix(plugin 版本): 以 master 計算 PR 最終升版 2026-07-28 16:13:41 +08:00
Jeffery 131cda2978 chore(plugin 版本): 三家 manifest 升版 0.1.0 2026-07-28 16:09:24 +08:00
Jeffery d14ca6556c fix(plugin 版本): patch 進位 minor 規則 2026-07-28 16:09:18 +08:00
Jeffery 0ebaf8991b chore(plugin 版本): 三家 manifest 升版 0.0.10 2026-07-28 16:07:26 +08:00
Jeffery 3c7c3d16b0 feat(role): 支援角色推斷與匯出 2026-07-28 16:07:20 +08:00
Jeffery f302adea1b feat(role): 優先以 emoji 表達心情 2026-07-28 15:59:44 +08:00
Jeffery 12430131f4 chore(plugin 版本): 三家 manifest 升版 0.0.9 2026-07-28 15:54:04 +08:00
Jeffery a9375e8563 feat(role): 不主動回報記憶更新 2026-07-28 15:53:59 +08:00
Jeffery 0b9e153cda feat(role): 省略 emoji 後的括號心情標註 2026-07-28 15:46:05 +08:00
Jeffery c904f4bb9b feat(role): 支援複合情緒表達 2026-07-28 15:41:15 +08:00
Jeffery 1f365efa02 feat(role): 支援 emoji 數量表達心情程度 2026-07-28 15:38:08 +08:00
Jeffery 10bae7b6f4 feat(role): 支援互動親近度成長 2026-07-28 15:33:56 +08:00
Jeffery f70c010cc5 chore(plugin 版本): 三家 manifest 升版 0.0.8 2026-07-28 15:26:44 +08:00
Jeffery e477e0d1a4 feat(role): 記錄角色互動偏好回饋 2026-07-28 15:26:44 +08:00
admin 177cc9b2bc Merge pull request 'feat(role): 新增閒置小睡整理' (#12) from agent/role-nap-memory into master
Reviewed-on: plugins/generic#12
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-07-28 07:13:49 +00:00
admin 2149e7a3c2 Merge pull request 'feat(role): 分層載入與個人記憶同意狀態,hooks.json 統一為合併超集,升版 0.0.7' (#11) from develop into master
Reviewed-on: plugins/generic#11
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-07-28 07:13:39 +00:00
Jeffery 9978562092 docs(role): 補建立角色形象 emoji 流程 2026-07-28 15:10:15 +08:00
Jeffery b0c93441a1 feat(role): 支援心情 emoji 資產 2026-07-28 15:03:59 +08:00
Jeffery 16125e77e8 docs(role): 補情緒表達規則 2026-07-28 14:42:15 +08:00
Jeffery 945c310551 feat(role): 新增閒置小睡整理 2026-07-28 14:39:26 +08:00
JefferyandClaude Opus 5 bb48a77dd4 chore(plugin 版本): 三家 manifest 升版 0.0.7
hooks/hooks.json 與 role 腳本有變更,需升版才會重建版本化快取目錄並被載入。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 14:21:48 +08:00
JefferyandClaude Opus 5 6d5c4e3f02 docs(role): 補同名 plugin hooks 註冊限制與分層載入說明
SKILL.md 記錄實測結論:同名 plugin 的 hooks 只會生效一份(hookCount 為
1),三個 repo 的 hooks/hooks.json 必須是同一份合併超集且不得假設
CLAUDE_PLUGIN_ROOT 指向擁有該腳本的 plugin。另補上分層載入原則、
personal_memory_consent 狀態欄位與 Stop hook 更新同意狀態的規則。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 14:21:48 +08:00
JefferyandClaude Opus 5 65426f0c35 feat(hooks): hooks.json 統一為合併超集並改用跨 cache 解析器
同名 plugin(三個 repo 都叫 jsc)只有一份 hooks.json 會生效,無法預期哪一
份會贏,因此三家必須同步為同一份超集。本次補上 doc 的 worklog Stop hook,
避免 generic 贏得註冊時工作紀錄靜默消失。

role 的兩個指令同步改用新解析器:先驗證 CLAUDE_PLUGIN_ROOT 下腳本存在,再
依「擁有者 marketplace 優先 → 全 cache 後援」搜尋 ~/.claude 與 ~/.codex
快取。舊版在 CLAUDE_PLUGIN_ROOT 為空時只搜 ~/.codex,且未檢查腳本是否存在
於該 plugin root。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 14:21:48 +08:00
JefferyandClaude Opus 5 c713359fb4 feat(role): 角色分層載入與個人記憶同意狀態
role_load.sh 不再原封不動注入整份角色檔,改採 SOUL/AGENTS/USER/MEMORY
分層:只抽出角色 ID、顯示名稱、本質、氛圍與簽名 emoji 作為人格層,由 hook
產生固定操作邊界,記憶與同意狀態獨立成一區。避免人格檔裡的背景故事與模板
文字污染工程與安全規則。

memory.js 新增 consent/consent-status 子命令,同意狀態寫入
~/.memory/<角色 ID>/state.json 的 personal_memory_consent(accepted/
declined/unknown);role_capture.sh 於本輪出現明確同意或拒絕時更新狀態,
偵測不到明確表述時不自行推論。accepted 後不再每次重問。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 14:21:48 +08:00
admin 9a38f15262 Merge pull request '修正 role 記憶同意與睡眠排程安裝' (#10) from develop into master
Reviewed-on: plugins/generic#10
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-07-28 05:36:12 +00:00
Jeffery 3748d2e61a chore(plugin 版本): 三家 manifest 升版 0.0.6 2026-07-28 13:35:57 +08:00
Jeffery 32f2872dd1 docs(role): 補充使用者理解與記憶同意規則 2026-07-28 13:32:35 +08:00
Jeffery 294a2c1e1c fix(role 睡眠排程): 精簡 cron PATH 避免排程安裝失敗 2026-07-28 13:32:35 +08:00
admin ac8023861d Merge pull request 'feat(role): 新增角色記憶預算與心理學記憶型態' (#9) from develop into master
Reviewed-on: plugins/generic#9
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-07-28 04:53:08 +00:00
Jeffery f0018fd2a0 chore(plugin 版本): 三家 manifest 升版 0.0.5 2026-07-28 12:51:13 +08:00
Jeffery 485f506a28 chore(plugin 版本): 升版 generic 至 0.0.9 2026-07-28 12:46:25 +08:00
Jeffery a3fcd62a4c docs(role): 說明心理學記憶型態結構 2026-07-28 12:46:22 +08:00
Jeffery 3a3114b8b3 feat(role): 新增心理學記憶型態 metadata 2026-07-28 12:46:19 +08:00
Jeffery 78f4086a48 chore(plugin 版本): 升版 generic 至 0.0.8 2026-07-28 12:30:52 +08:00
Jeffery 57a493e612 docs(role): 補充記憶預算與 Node 工具說明 2026-07-28 12:30:39 +08:00
Jeffery fec3e1d0cb refactor(role): 將角色記憶工具改寫為 Node.js 2026-07-28 12:30:28 +08:00
Jeffery e71f165e9a chore(plugin 版本): 三家 manifest 升版 0.0.6 2026-07-28 11:47:21 +08:00
Jeffery 716fd2c26e docs(README): 說明角色 ID 與初始記憶流程 2026-07-28 11:47:13 +08:00
Jeffery c7b7e684a5 feat(role): 新增角色啟動問候與初始記憶種子 2026-07-28 11:47:06 +08:00
admin 0fae7e1723 Merge pull request 'feat(role): 新增角色人格與長期記憶 skill、hook 與腳本,升版 0.0.4' (#8) from develop into master
Reviewed-on: plugins/generic#8
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-07-28 03:13:46 +00:00
JefferyandClaude Opus 5 d6f9c4956b chore(plugin 版本): 三家 manifest 升版 0.0.4
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 11:11:16 +08:00