Files
shared/skills/spec-time-log/SKILL.md
T
jiantw83andClaude Sonnet 5 1030f9d403 feat(shared): 新增14個共用spec、models/todo工具與樣板產生器,收斂跨repo重複規範
依 todo.md 執行的規範治理專案:新增 spec-preflight 等 14 個共用規範(含
conventional-commit/pull-request/git-push/issue-read/todo-list/ask-user/
subagent/no-scratch-files/skill-invocation/script-path/action-scaffold/
node-src-layout/plugin-cli/model),擴充 spec-git-safety 與 spec-gitea(token
優先序、機密遮蔽、Wiki 頁名轉義規則);新增可執行 skill `models`(模型能力
查詢與標籤)與 `todo`(依指定模型產生/附加 todo.md);新增 plugin.meta.json
單一事實來源與 gen-plugin-files.mjs 樣板產生器,統一四個 repo 的 manifest/
README/AGENTS.md 並移除寫死的本機使用者路徑;新增 shared/scripts/lib 的
log/機密遮蔽三語言參考實作。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-11 06:02:30 +00:00

2.9 KiB
Raw Blame History


name: spec-time-log description: JSC plugins 共用「時間戳與輸出訊息格式規範」:更新時間一律台灣時區(Asia/Taipei)固定 yyyy/MM/dd HH:mm:ss、寫成檔內固定字串、流程完成後統一同步各處時間戳;輸出訊息統一為 [yyyy/MM/dd HH:mm:ss][階段][等級]: 訊息(等級 INF/WRN/ERR/TRC/DBG)、一行一則。當其他 skill 內文引用 spec-time-log 或 /jsc-shared:spec-time-log、或需要產生更新時間/統一 log 格式時載入此 skill。單獨被使用者呼叫時,直接說明本規範內容。

spec-time-log — 共用時間戳與訊息格式規範

參考實作

  • shared/scripts/lib/{log.sh,log.py,log.mjs} 是本規範在 bash/Python/Node(mjs)三種語言下的唯一參考實作來源(純參考、不會被其他 repo 跨 repo 呼叫)。其他 repo 的腳本要嘛直接複製其邏輯,要嘛在檔頭註明自己與這份參考實作的對應關係,禁止各自發明第三種時間戳或 log 格式。

更新時間

  • 一律使用**台灣時區(Asia/Taipei)**並固定為 yyyy/MM/dd HH:mm:ss,例如 2026/06/30 18:30:05。取得方式:

    TZ='Asia/Taipei' date +'%Y/%m/%d %H:%M:%S'
    
  • 寫入檔案(橫幅、標頭註解、README)的更新時間語意為「本檔最後由 skill 產生/更新的時間」,寫成檔內固定字串(非執行期動態時間)。

  • 多階段流程中先寫入暫定時間戳即可;全部完成後以完成當下的時間回頭統一同步各處時間戳(橫幅、標頭註解區塊、README),確保各處一致。

輸出訊息格式

function 或指令檔若有輸出訊息(log、console 輸出、echo、提示訊息),格式必須統一為:

[yyyy/MM/dd HH:mm:ss][階段][等級]: 訊息
  • 階段:選填,沿用該訊息所屬區塊的原始名稱並保留原文不翻譯;無對應階段則移除整個 [階段] 區塊。
  • 等級:限 INF/WRN/ERR/TRC/DBG 其中之一。
  • 時間:Asia/Taipei,固定 yyyy/MM/dd HH:mm:ss。
  • 調整訊息格式僅限「訊息呈現方式」,不得改變訊息反映的實際行為或判斷邏輯。

區塊階段命名與一行一則

  • 被格式化的 log 若包在有名稱的區塊內(原始碼的 #region 名稱、指令檔以「分隔線+標題+分隔線」宣告的橫幅段落),須將區塊名稱作為該段每則 log 的 階段 前綴,並移除該包裹/橫幅本身(僅移除標記,保留區塊內原有指令與行為)。
  • 例外:檔案開頭「用途/更新日期」的說明標頭(含外框分隔線)屬檔案標頭、不是階段區塊,必須原樣保留。
  • 一行一則:每則訊息必須是獨立的單行輸出指令;不得用多行字串、字串拼接或迴圈外包裹把多則訊息包成一個輸出。原本包成一坨的必須拆成逐行逐則,且每則仍套用統一格式。