agent/role-nap-memory
master
role_sleep.sh --nap
ROLE_NAP_ENABLED
ROLE_NAP_IDLE_MINUTES
ROLE_NAP_MIN_INBOX
ROLE_NAP_INTERVAL_MINUTES
bash -n scripts/role/role_capture.sh scripts/role/role_sleep.sh
node --check scripts/role/memory.js
memory.js need-nap
yes
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>
同名 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>
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>
hooks/hooks.json 與 role 腳本有變更,需升版才會重建版本化快取目錄並被載入。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
No dependencies set.
The note is not visible to the blocked user.
變更內容
role_sleep.sh --nap,在 CLI 閒置且 inbox 達門檻時自動整理記憶。ROLE_NAP_ENABLED、ROLE_NAP_IDLE_MINUTES、ROLE_NAP_MIN_INBOX、ROLE_NAP_INTERVAL_MINUTES預設環境變數與文件。驗證
bash -n scripts/role/role_capture.sh scripts/role/role_sleep.shnode --check scripts/role/memory.jsmemory.js need-nap測試達門檻時回yesrole_sleep.sh --nap測試未達門檻時正常略過