Files
doc/hooks/hooks.json
T
jiantw83andClaude Sonnet 5 3193cce249 fix(worklog): Stop hook 補上 --use-system-ca,刪除已改寫完成的 worklog.sh
實測 worklog.mjs 全流程(含真的呼叫 claude -p 濃縮並寫入 Gitea wiki 週頁)
時發現 hooks.json 的 Stop command 漏加 --use-system-ca:本環境的 TLS
攔截代理會讓 Node fetch 預設信任鏈驗證失敗(HTTP 0),造成 wiki_api.mjs
誤判兩個 token 來源都失效而寫入失敗;shared/code/persona 的
version-guard hook 都有這個旗標,只有 doc 的 worklog Stop hook 漏掉。
加上後於既有 knowledges/Plan wiki 建立測試週頁重測通過(七欄格式正確、
兩次呼叫的 marker 各自附加不互相覆蓋),驗證後已刪除該測試頁。

worklog.sh 已確認可被 worklog.mjs 完全取代,直接刪除、不保留 bash
fallback;grep -rn 'worklog.sh' doc/ 回傳零筆。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 15:22:29 +08:00

29 lines
1.7 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"hooks": {
"PreToolUse": [
{
"matcher": "Read|Write|Edit|MultiEdit|NotebookEdit|Glob|Grep|LS|Bash",
"hooks": [
{
"type": "command",
"command": "own='shared'; plug='jsc-shared'; rel='scripts/version-guard.mjs'; for base in \"$HOME/.claude/plugins/cache\" \"$HOME/.codex/plugins/cache\" \"$HOME/.copilot/installed-plugins\"; do for dir in \"$base/$own/$plug\" \"$base\"; do s=$(find \"$dir\" -path \"*/$plug/*/$rel\" -type f 2>/dev/null | sort -V | tail -n 1); if [ -n \"$s\" ]; then exec node --use-system-ca \"$s\"; fi; done; done; ts=$(TZ='Asia/Taipei' date +'%Y/%m/%d %H:%M:%S'); echo \"[$ts][版本檢查][ERR]: 找不到 jsc-shared 的 version-guard.mjs,fail-closed 阻擋。\" >&2; printf '{\"hookSpecificOutput\":{\"hookEventName\":\"PreToolUse\",\"permissionDecision\":\"deny\",\"permissionDecisionReason\":\"找不到 jsc-shared 的 version-guard.mjs,fail-closed 阻擋\"}}\\n'; exit 0",
"timeout": 15,
"statusMessage": "檢查 jsc-doc 版本…"
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "rel='scripts/worklog/worklog.mjs'; own='doc'; plug='jsc-doc'; root=\"${CLAUDE_PLUGIN_ROOT:-}\"; if [ -n \"$root\" ] && [ -f \"$root/$rel\" ]; then exec node --use-system-ca \"$root/$rel\"; fi; for base in \"$HOME/.claude/plugins/cache\" \"$HOME/.codex/plugins/cache\" \"$HOME/.copilot/installed-plugins\"; do for dir in \"$base/$own/$plug\" \"$base\"; do s=$(find \"$dir\" -path \"*/$plug/*/$rel\" -type f 2>/dev/null | sort -V | tail -n 1); if [ -n \"$s\" ]; then exec node --use-system-ca \"$s\"; fi; done; done; exit 0",
"timeout": 60
}
]
}
]
}
}