develop
master
scripts/worklog/worklog.mjs
worklog.sh
import
transcript.mjs
wiki_api.mjs
extractTurn
turnDuration
turnTokens
redact
nowStr
log
appendEntry
resolveToken
weekPageName
weekPageHeader
WORKLOG_ENABLED
WORKLOG_HOST
WORKLOG_REPO
stop_hook_active
WORKLOG_SCOPE
hooks/hooks.json
Stop
node
worklog.mjs
timeout: 60
README.md
worklog/SKILL.md
舊 worklog.sh 暫未刪除:計畫是先在 WORKLOG_ENABLED=1 的環境實測 hook 真的會觸發並成功寫入週頁後才刪除,這個環境目前本機沒有設定,需要使用者提供或另行安排測試。
WORKLOG_ENABLED=1
node --check worklog.mjs
WORKLOG_CHILD=1
[worklog][WRN]
hooks.json
🤖 Generated with Claude Code
新增 scripts/worklog/worklog.mjs,逐段對應改寫 worklog.sh:log/nowStr 改 import 自 wiki_api.mjs,extractTurn/turnDuration/turnTokens/redact 改 import 自 transcript.mjs,appendEntry/resolveToken/weekPageName/ weekPageHeader 改 import 自 wiki_api.mjs,取代原本各自開子行程呼叫; stdin JSON 解析、遞迴防護、啟用檢查、Codex transcript fallback、 WORKLOG_SCOPE 過濾、專案判定、模型決定與快取過期、濃縮 prompt 九條規則 逐字保留,退出碼一律 0。hooks/hooks.json 的 Stop hook 改用 node 執行; README/worklog SKILL.md/wiki_api.mjs 檔頭註解同步更新指向 worklog.mjs。 舊 worklog.sh 暫未刪除:依規劃需先在 WORKLOG_ENABLED=1 的環境實測 hook 真的會觸發並成功寫入週頁,這個環境目前未設定,留待後續驗證後再處理。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
實測 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>
worklog.sh 改寫為 worklog.mjs、Stop hook 補 --use-system-ca、目錄頁 check 欄改用 ●/○,對照 master 現行版本 0.1.2 升版。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
No dependencies set.
The note is not visible to the blocked user.
摘要
scripts/worklog/worklog.mjs,把worklog.sh(294 行 bash)逐段等價改寫成 Node ESM:直接importtranscript.mjs/wiki_api.mjs已 export 的函式(extractTurn/turnDuration/turnTokens/redact/nowStr/log/appendEntry/resolveToken/weekPageName/weekPageHeader),不再開子行程呼叫。WORKLOG_ENABLED/WORKLOG_HOST/WORKLOG_REPO啟用檢查、stdin JSON 解析(同時接 snake_case/camelCase)、stop_hook_active檢查、Codex transcript fallback、WORKLOG_SCOPE範圍過濾、專案判定(git remote 優先)、模型決定與 30 天快取過期、濃縮 prompt 九條規則,全部逐字保留;退出碼一律 0。hooks/hooks.json的Stophook command 改用node執行worklog.mjs,跨 plugin 腳本定位邏輯與timeout: 60不變。README.md/worklog/SKILL.md/wiki_api.mjs檔頭註解四處引用同步改為worklog.mjs。舊
worklog.sh暫未刪除:計畫是先在WORKLOG_ENABLED=1的環境實測 hook 真的會觸發並成功寫入週頁後才刪除,這個環境目前本機沒有設定,需要使用者提供或另行安排測試。Test plan
node --check worklog.mjs語法通過。WORKLOG_CHILD=1→ 靜默 exit 0;未設WORKLOG_ENABLED→ 靜默 exit 0;transcript 路徑不存在 → 正確[worklog][WRN]訊息並 exit 0。hooks.json的Stopcommand 字串單獨執行,確認能正確定位並用 node 執行worklog.mjs。WORKLOG_HOST/WORKLOG_REPO並明確授權對外寫入)。🤖 Generated with Claude Code