develop
master
c713359
role_load.sh
memory.js
consent
consent-status
role_capture.sh
65426f0
hooks/hooks.json
Stop
6d5c4e3
bb48a77
SessionStart 不再原封不動注入整份角色檔:只抽出角色 ID、顯示名稱、本質、氛圍與簽名 emoji 作為人格層(SOUL),由 hook 產生固定操作邊界(AGENTS),記憶與同意狀態獨立成 USER/MEMORY 區塊,避免人格檔裡的背景故事與模板文字污染工程與安全規則。
SessionStart
同意狀態寫入 ~/.memory/<角色 ID>/state.json 的 personal_memory_consent(accepted/declined/unknown);accepted 後不再每次重問,偵測不到明確表述時不自行推論。
~/.memory/<角色 ID>/state.json
personal_memory_consent
accepted
declined
unknown
三個 plugin repo(code/doc/generic)的 plugin.json 名稱都是 jsc,Claude Code 以 plugin 名稱為鍵註冊 hooks,同名時只保留一份,且無法預期哪一份會贏。實測本工作階段 stop_hook_summary 的 hookCount 為 2(單一 plugin 的 hooks.json + 使用者 settings.json 的後援 hook),而非三個 plugin 疊加的 3 —— 證實只有一份 plugin hooks.json 生效。
code
doc
generic
plugin.json
jsc
stop_hook_summary
hookCount
settings.json
因此三個 repo 的 hooks/hooks.json 必須是同一份合併超集(worklog 的 Stop + role 的 SessionStart/Stop),否則贏得註冊的那一份缺少的 hook 會靜默失效。每個 hook 指令也不得假設 CLAUDE_PLUGIN_ROOT 指向擁有該腳本的 plugin,需先試 $CLAUDE_PLUGIN_ROOT,找不到再依「擁有者 marketplace 優先 → 全 cache 後援」搜尋 ~/.claude/~/.codex 快取。
CLAUDE_PLUGIN_ROOT
$CLAUDE_PLUGIN_ROOT
~/.claude
~/.codex
origin/master 現行 0.0.5 → 本 PR 0.0.7(develop 上的 0.0.6 尚未發佈),三份 manifest 同步。
origin/master
🤖 Generated with Claude Code
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.
變更內容
c713359role_load.sh改採 SOUL/AGENTS/USER-MEMORY 分層載入;memory.js新增consent/consent-status;role_capture.sh依明確表述更新同意狀態65426f0hooks/hooks.json補 doc 的 worklogStophook 並改用跨 cache 解析器6d5c4e3bb48a77角色分層載入
SessionStart不再原封不動注入整份角色檔:只抽出角色 ID、顯示名稱、本質、氛圍與簽名 emoji 作為人格層(SOUL),由 hook 產生固定操作邊界(AGENTS),記憶與同意狀態獨立成 USER/MEMORY 區塊,避免人格檔裡的背景故事與模板文字污染工程與安全規則。個人記憶同意狀態
同意狀態寫入
~/.memory/<角色 ID>/state.json的personal_memory_consent(accepted/declined/unknown);accepted後不再每次重問,偵測不到明確表述時不自行推論。背景
三個 plugin repo(
code/doc/generic)的plugin.json名稱都是jsc,Claude Code 以 plugin 名稱為鍵註冊 hooks,同名時只保留一份,且無法預期哪一份會贏。實測本工作階段stop_hook_summary的hookCount為 2(單一 plugin 的 hooks.json + 使用者settings.json的後援 hook),而非三個 plugin 疊加的 3 —— 證實只有一份 plugin hooks.json 生效。因此三個 repo 的
hooks/hooks.json必須是同一份合併超集(worklog 的Stop+ role 的SessionStart/Stop),否則贏得註冊的那一份缺少的 hook 會靜默失效。每個 hook 指令也不得假設CLAUDE_PLUGIN_ROOT指向擁有該腳本的 plugin,需先試$CLAUDE_PLUGIN_ROOT,找不到再依「擁有者 marketplace 優先 → 全 cache 後援」搜尋~/.claude/~/.codex快取。版號
origin/master現行 0.0.5 → 本 PR 0.0.7(develop 上的 0.0.6 尚未發佈),三份 manifest 同步。🤖 Generated with Claude Code