feat(worklog): worklog.sh 改寫為 worklog.mjs(node 全面模組化)

新增 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>
This commit is contained in:
2026-08-17 15:12:31 +08:00
co-authored by Claude Sonnet 5
parent 336878cc04
commit d31aa53fc3
5 changed files with 322 additions and 5 deletions
+1 -1
View File
@@ -40,7 +40,7 @@ doc/
│ └── hooks.json # Stop → worklog;Claude 用 plugin root,Codex/Copilot fallback 到各自安裝 cache
├── scripts/
│ └── worklog/ # worklog 自動記錄的可執行元件(skill 與 hook 共用)
│ ├── worklog.sh # 主流程:抽本輪 → 濃縮成七欄(含 token 用量) → 遮蔽 → 追加到 wiki
│ ├── worklog.mjs # 主流程:抽本輪 → 濃縮成七欄(含 token 用量) → 遮蔽 → 追加到 wiki
│ ├── wiki_api.mjs # Gitea wiki 讀寫、token 解析、append 重試、週頁命名
│ └── transcript.mjs # transcript 本輪抽取、耗時估算、token 統計與機密遮蔽
├── skills/ # ★ 唯一真實來源:所有 skills