refactor(doc): 接上 shared 共用規範,去除重抄段落並修正時區/機密遮蔽引用
依 todo.md 執行的規範治理專案:worklog/funcs/issues-analyze/ issues-analyze-to-file/issues-sync/notifications/docker 七個 skill 改為 引用 shared 新增的 14 個共用 spec(token 優先序、issue 讀取、TODO list、 ask-user、subagent、no-scratch-files、skill-invocation、script-path 等), 不再重抄內容;wiki_api.py 改用 zoneinfo 而非硬編 +8 offset,並補上與 shared/scripts/lib/redact-patterns.json 的對應註記;worklog 的 --tune 改為 呼叫 /jsc-shared:models --task summary。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+13
-24
@@ -32,12 +32,7 @@ description: 工作證明自動記錄(worklog)的操作與維護 skill。搭
|
||||
|
||||
### 腳本路徑解析(重要)
|
||||
|
||||
skill 執行時的工作目錄是**使用者的專案目錄**,不是 plugin 根目錄,因此**絕不可用相對路徑呼叫腳本**。先解析出 plugin 根目錄再組絕對路徑:
|
||||
|
||||
| 環境 | plugin 根目錄 |
|
||||
| --- | --- |
|
||||
| Claude Code | `${CLAUDE_PLUGIN_ROOT}` |
|
||||
| 其他助理 | 本 skill 載入時提示的 base directory(`.../skills/worklog`)往上兩層 |
|
||||
依 `/jsc-shared:spec-script-path`(寫法一:多行版)解析 plugin 根目錄,全文以 `${WORKLOG_DIR}` 表示該目錄:
|
||||
|
||||
```bash
|
||||
# Claude Code
|
||||
@@ -47,22 +42,19 @@ WORKLOG_DIR="${CLAUDE_PLUGIN_ROOT}/scripts/worklog"
|
||||
WORKLOG_DIR="<skill base directory>/../../scripts/worklog"
|
||||
```
|
||||
|
||||
以下各模式的指令一律以 `${WORKLOG_DIR}` 表示該目錄。若解析不到或該目錄不存在,回報「plugin 目錄未包含 scripts/worklog,本 skill 在此環境不可用」並停止,不要改用相對路徑重試。
|
||||
若解析不到或該目錄不存在,依 spec-script-path 的標準錯誤處理回報並停止,不要改用相對路徑重試。
|
||||
|
||||
---
|
||||
|
||||
## 共用規範(必要前置)
|
||||
|
||||
執行本 skill 前,先以 Skill 工具載入下列共用規範並全程遵守;**任一載入不到時先詢問使用者是否安裝 shared plugin(`https://gitea.jsc.idv.tw/plugins/shared.git`),不安裝則中斷**:
|
||||
|
||||
- `/jsc-shared:spec-output`:繁體中文(台灣用語)、UTF-8 無 BOM、表格與 Mermaid 優先、**寫入外部系統不得洩漏 PII**。
|
||||
- `/jsc-shared:spec-execution`:自動執行原則(必要決策才中斷)、不臆測。
|
||||
- `/jsc-shared:spec-gitea`:token 機密保護(不 echo、遮蔽、不落地)、API 分頁、host 決定順序。
|
||||
- `/jsc-shared:spec-time-log`:時間戳固定 Asia/Taipei `yyyy/MM/dd HH:mm:ss`;訊息格式 `[時間][階段][等級]: 訊息`、一行一則。
|
||||
先載入 `/jsc-shared:spec-preflight` 並依其流程處理;載入不到即代表 shared plugin 未安裝,
|
||||
依該 spec 詢問使用者是否安裝 `https://gitea.jsc.idv.tw/plugins/shared.git`,不安裝則中斷本 skill。
|
||||
本 skill 需要的規範:`spec-output`、`spec-execution`、`spec-gitea`、`spec-time-log`、`spec-no-scratch-files`、`spec-script-path`、`spec-skill-invocation`、`spec-model`
|
||||
|
||||
本 skill 特有補充:
|
||||
|
||||
- **工作內容不落地**:transcript 片段只在程序記憶體與 stdin/stdout 間傳遞、wiki 走 API 不 clone,全程不產生暫存檔。唯一允許落地的是**模型快取檔** `~/.claude/worklog/model`(僅含模型 id 與判定時間,不含任何工作內容)。
|
||||
- **工作內容不落地**:依 `/jsc-shared:spec-no-scratch-files` 執行(transcript 片段只在程序記憶體與 stdin/stdout 間傳遞、wiki 走 API 不 clone,全程不產生暫存檔)。**本 skill 特有例外**:唯一允許落地的是**模型快取檔** `~/.claude/worklog/model`(僅含模型 id 與判定時間,不含任何工作內容)。
|
||||
- **絕不阻斷**:hook 路徑任何失敗都以 exit 0 結束,只在 stderr 留訊息。
|
||||
|
||||
---
|
||||
@@ -79,11 +71,7 @@ WORKLOG_DIR="<skill base directory>/../../scripts/worklog"
|
||||
| `WORKLOG_SCOPE` | | 冒號分隔的路徑前綴,僅這些路徑下的 session 才記 | 全部 session 都記 |
|
||||
| `WORKLOG_ERRLOG` | | 錯誤訊息額外寫入的檔案路徑(只記錯誤、不含工作內容) | 只走 stderr |
|
||||
|
||||
**token 不需另設變數**,依固定優先序自動解析並實際驗證:
|
||||
|
||||
```
|
||||
GITEA_TOKEN →(對目標 host 驗證失敗時)→ tea 設定檔中該 host 的 token → ~/.git-credentials
|
||||
```
|
||||
**token 不需另設變數**,依 /jsc-shared:spec-gitea 的『token 解析優先序』自動解析並實際驗證(worklog 沒有專用變數,直接從 GITEA_TOKEN 開始)。
|
||||
|
||||
---
|
||||
|
||||
@@ -103,12 +91,11 @@ GITEA_TOKEN →(對目標 host 驗證失敗時)→ tea 設定檔中該 host
|
||||
|
||||
| 步驟 | 動作 |
|
||||
| --- | --- |
|
||||
| 1 | 以 Skill 工具載入 `claude-api` 取當下模型清單與定價,**不憑記憶** |
|
||||
| 2 | 依本任務條件評分:延遲敏感(在使用者等待路徑上)、輸出短篇六欄工作紀錄、需嚴守機密過濾指令、每輪都跑一次故成本敏感 |
|
||||
| 3 | Smoke test:`WORKLOG_CHILD=1 claude -p "回 OK" --model <選定 id>` 確認該模型在此帳號可用 |
|
||||
| 4 | 寫入 `~/.claude/worklog/model`(`model=<id>`、`tuned_at=<時間>`、`reason=<一行理由>`),並回報選擇與理由 |
|
||||
| 1 | 以 Skill 工具呼叫 `/jsc-shared:models --task summary` 取得推薦模型——探測、評分(延遲敏感、輕量摘要、低成本等 `spec-model` 對映表定義的必要標籤)、smoke test 全由該 skill 依 `/jsc-shared:spec-model` 完成,本模式不重寫這套邏輯、不自行載入 `claude-api` 或另跑 smoke test |
|
||||
| 2 | 取推薦結果的模型 id 與一行理由,寫入 worklog 專屬快取檔 `~/.claude/worklog/model`(`model=<id>`、`tuned_at=<時間>`、`reason=<一行理由>`)——此檔與 `models` skill 自身的 `~/.claude/jsc/models.json` 快取用途不同(前者是 worklog hook 專讀的精簡快取,後者是全模型清單快取),兩者不合併、不互相讀取、不共用格式 |
|
||||
| 3 | 回報選擇與理由 |
|
||||
|
||||
快取超過 **30 天** 視為過期:hook 改用保底模型,並在條目標記 `(model: fallback)`,`--diagnose` 會提醒重跑 `--tune`。
|
||||
快取超過 **30 天** 視為過期:hook 改用保底模型 `claude-haiku-4-5-20251001`,並在條目標記 `(model: fallback)`,`--diagnose` 會提醒重跑 `--tune`。
|
||||
|
||||
### `--diagnose`
|
||||
|
||||
@@ -170,6 +157,8 @@ GITEA_TOKEN →(對目標 host 驗證失敗時)→ tea 設定檔中該 host
|
||||
|
||||
## 呼叫方式
|
||||
|
||||
依 `/jsc-shared:spec-skill-invocation` 的統一呼叫方式,本 skill 的實際參數格式與範例:
|
||||
|
||||
| 助理 | 呼叫 |
|
||||
| --- | --- |
|
||||
| Claude Code / Antigravity | `/jsc-doc:worklog --init`、`/jsc-doc:worklog --tune`、`/jsc-doc:worklog --diagnose`、`/jsc-doc:worklog --append "修正 X 的 Y 問題"`、`/jsc-doc:worklog --show` |
|
||||
|
||||
Reference in New Issue
Block a user