release: v0.1.1 develop 到 master #18

Merged
admin merged 6 commits from develop into master 2026-08-27 04:14:22 +00:00
6 Commits
Author SHA1 Message Date
jiantw83 d01368248e Merge pull request 'feat(log): 每完成一個任務就寫一筆日誌,暫存改三段式寫入' (#17) from feat/sdlc-flow-rules/main into develop 2026-08-27 03:39:38 +00:00
admin c513f6a4e9 Merge pull request 'feat(log): 每完成一個任務就寫一筆日誌,暫存改三段式' (#16) from feat/sdlc-flow-rules/worklog-per-task into feat/sdlc-flow-rules/main
Reviewed-on: #16
2026-08-27 03:26:14 +00:00
jiantw83 52b35a2d6b chore(manifest): 三份 manifest 版本升到 0.1.1
What:`plugin.json`、`.claude-plugin/plugin.json`、`.codex-plugin/plugin.json` 的 `version` 由 0.1.0 改為 0.1.1。

Why:本次改了日誌粒度並新增三個暫存子命令,屬於行為變更,版本要跟著往上走,各 CLI 才知道要更新。

How:三份只改 `version` 一個欄位,其餘內容不動,三份保持同一版號。

Who:`jsc-log` 外掛的套件描述檔。
2026-08-27 11:20:29 +08:00
jiantw83 7eb93af733 docs(log): README 同步日誌粒度與三段式暫存
What:README 的 `worklog` 技能說明改寫成「每完成一個任務就寫一筆」並列出三種任務,工具表的 `worklog-pending.sh` 一列補上 `merge`、`commit`、`abort` 三個子命令與各自的時機。

Why:粒度與暫存流程都變了,README 是對外說明。說明沒跟上,使用者會照舊以為一個階段寫一筆、清暫存用 `clear`。

How:技能說明拆成兩段,第一段講粒度、第二段講十項資訊與寫入流程;工具表那一列把「寫進 wiki 成功之後才清」這句留著,因為三段式要守的正是這一條。

Who:讀 `jsc-log` 說明的人,以及要接 `worklog-pending.sh` 的 `jsc-sdlc`。
2026-08-27 11:20:29 +08:00
jiantw83 5e61528ad0 feat(worklog): 每完成一個任務就寫一筆日誌
What:`worklog` 技能改成一個任務一筆條目,任務有三種——一個工作包、一輪 PR 留言修正、一個獨立的修正提交,並新增「What counts as one task」一表寫明各自何時結束;寫入步驟改走 `merge`、`commit`、`abort` 三段式,十項資訊裡的花費時間、token 用量、任務狀態、執行細節四項改成只算這一個任務。`templates/log-entry.md` 的頁首說明同步改寫。

Why:原本一個階段只寫一筆,同一個工作包跑五輪留言修正也只留下一筆。花費時間與 token 用量被攤成一個總數,看不出哪一輪花掉多少;連「試了卻沒改到檔案」的那一輪也整段消失,而那段時間正是最該被看見的。

How:下一個任務開始前先把這一筆寫完,五輪就是五筆,各自帶自己的花費時間與 token 用量,一律附加到同一頁 `LOG_{HASH}`,既有條目不動。每筆的標題要寫清楚是哪一個任務(工作包代號、第幾輪、或提交標題),五筆並排才讀得下去。花費時間在任務結束的當下讀,token 用量傳同一個 session id,兩個數字才描述同一件事。

Who:`jsc-sdlc:implement` 與 `jsc-sdlc:maintain` 收尾時呼叫日誌的每一個工作階段。
2026-08-27 11:20:29 +08:00
jiantw83 416fb916cb feat(worklog-pending): 暫存改三段式的 merge、commit、abort
What:`tools/worklog-pending.sh` 新增 `merge {hash} {本次條目檔}`、`commit {hash} {併入清單}`、`abort {hash} {併入清單}` 三個子命令。`merge` 合成「暫存內容在前、本次條目在後」的檔案並印出 `MERGED=`、`CLAIM=`、`PENDING=`;`commit` 只刪併入清單上那幾個檔;`abort` 暫存一個都不刪,只丟掉合併檔與清單。原本的 `clear` 保留,改為清掉全部暫存。

Why:暫存只能在 wiki 寫入成功之後才清,但原本只有一個 `clear`,呼叫端要嘛先清再寫(寫失敗就兩邊都沒有),要嘛寫完清全部(把 `merge` 之後才存進來的內容一起刪掉)。兩種都會弄丟工作紀錄。

How:`merge` 只讀不刪,刪檔一律等 `commit`,也就是等 wiki 回報成功。只刪清單上的檔案,是為了保住 `merge` 之後、`commit` 之前另一個工作階段新存進來的內容。`commit` 只認 `merge` 產出的清單,而且清單上的路徑必須落在該 hash 的暫存目錄底下,不然當用法錯誤擋下來——這道護欄擋的是拿別處的清單來刪檔。`merge` 在沒有暫存時仍然回 `0`,合併檔至少有本次條目,呼叫端不必分兩條路走。

Who:`jsc-log:worklog` 寫日誌那一步,以及用 `stage-report.sh --pending-file` 暫存過內容的 SDLC 階段。
2026-08-27 11:20:28 +08:00