85 Commits
Author SHA1 Message Date
admin ee32bfd2ec Merge pull request '釋出:三支技能的目錄頁改版、收尾事件回報、連結驗證與暫存區孤兒掃描' (#37) from develop into master
Reviewed-on: #37
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-09-04 05:02:00 +00:00
admin 4c7b63d43a Merge pull request '工作日誌三個目錄頁改成大標題加條列,三支技能的呼叫與敘述同步' (#36) from feat/contents-list/main into develop
Reviewed-on: #36
2026-09-02 10:00:43 +00:00
jiantw83 fda0fca304 chore(manifest): 三份 manifest 升版至 0.1.9
三份外掛清單的版號一起往上推一版。

三個目錄頁的版面與寫入參數都變了,呼叫端要靠版號才判得出手上這一份是新的
還是舊的。版號不動,版本閘門就不會提示更新,機器上會留著舊版敘述去寫新版
目錄頁。

三份清單各自被不同的 CLI 讀,值必須一致,所以一起改、一起提交。

範圍是外掛清單的版號宣告。
2026-09-02 17:22:33 +08:00
jiantw83 18d12bbbe2 docs(behaviors): 說明文件與行為清單跟上目錄頁的條列版面
存取庫說明與技能行為清單裡講到目錄頁的段落一律改口:一筆一個大標題區塊、
標題就是內容頁頁名也就是鍵、欄位是標題底下的一層條列,頁上不留表格。

三個目錄頁的範本與三支技能的敘述都換了版面,說明文件卻還寫著「一列」與
「表格」。文件與範本各說一套,照文件手工補紀錄的人會補出一列表格,那一列
在條列頁上讀不成一筆紀錄,而且下一輪工具重寫時也不會被當成既有那一筆換掉。

只改敘述,行為與呼叫參數都不動;欄位語意與寫入語意的正本仍在各自的範本
引言裡,這裡只指向它,不重述細節。

範圍是說明文件與技能行為清單裡的目錄頁敘述。
2026-09-02 17:22:33 +08:00
jiantw83 369b327a4f feat(report): 報表目錄頁改成一個報表頁一個大標題區塊
報表目錄頁的版面從 markdown 表格換成「大標題加條列」:一個報表頁一個大標題
區塊,也就是一個存取庫的一種期間一個區塊,標題就是那個報表頁的實際頁名,
期間、最新一期、期數這些欄位改成標題底下的一層條列。範本與 report 技能的
寫入敘述與退出碼說明一起跟上。

表格的欄位組合是整頁共用的,一頁上卻有很多報表頁各自的紀錄,每一輪只重寫
自己那一列。欄位一增減,舊列的格數與表頭就對不上,而目錄頁不能整頁覆蓋——
覆蓋等於刪掉別人的紀錄。條列一筆一個區塊,欄位各自獨立,加一條只動到自己
那一個區塊。

比對鍵從裸雜湊那一格改成大標題本身,標題寫成報表頁的實際頁名。頁名只由
存取庫的擁有者、名稱與期間決定,換主機位址或頁名編碼有差都動不到它;含
網址的那一條連結照樣留著給人點,但不當鍵。把報表存取庫改指別的庫是另一回
事:雜湊本身就取自那個庫,換庫等於換頁,四種期間會各多一個區塊,那是換庫
的本意,不是鍵失準,舊區塊請人工清掉。

範圍是工作報表的目錄頁與 report 技能。
2026-09-02 17:22:33 +08:00
jiantw83 cce75e2f45 feat(learn): 教訓目錄頁改成一個存取庫一個大標題區塊
教訓目錄頁的版面從 markdown 表格換成「大標題加條列」:一個存取庫一個大標題
區塊,標題就是那個存取庫教訓頁的實際頁名,存取庫名稱、教訓紀錄連結、最後
更新時間改成標題底下的一層條列。範本與 learn 技能的寫入敘述一起跟上。

表格的欄位組合是整頁共用的,一頁上卻有很多存取庫各自的紀錄,每一輪只重寫
自己那一列。欄位一增減,舊列的格數與表頭就對不上,而目錄頁不能整頁覆蓋——
覆蓋等於刪掉別人的紀錄。條列一筆一個區塊,欄位各自獨立,加一條只動到自己
那一個區塊。

比對鍵從存取庫名稱那一格改成大標題本身,標題寫成教訓頁的實際頁名。頁名只由
存取庫的擁有者與名稱決定,換主機位址、改存取庫或頁名編碼有差都動不到它。
欄號那個參數配合線上實際欄位改成教訓紀錄那一欄:轉檔時取那一格的文字當
標題,格子寫成連結就只取顯示文字。欄號填錯的話,轉出來的標題跟鍵對不上,
既有那一筆會被當成新的附加上去,同一個存取庫變兩個區塊。

範圍是教訓紀錄的目錄頁與 learn 技能。
2026-09-02 17:22:33 +08:00
jiantw83 fbfe424c39 feat(worklog): 日誌目錄頁改成一個日誌頁一個大標題區塊
日誌目錄頁的版面從 markdown 表格換成「大標題加條列」:一個日誌頁一個大標題
區塊,標題就是那個日誌頁的實際頁名,週五日期、條目數這些欄位改成標題底下的
一層條列。範本與 worklog 技能的寫入敘述、完成條件、退出碼說明一起跟上。

表格的欄位組合是整頁共用的,一頁上卻有很多存取庫各自的紀錄,每一輪只重寫
自己那一列。欄位一增減,舊列的格數與表頭就對不上,而目錄頁不能整頁覆蓋——
覆蓋等於刪掉別人的紀錄。條列一筆一個區塊,欄位各自獨立,加一條只動到自己
那一個區塊。

比對鍵從裸雜湊那一格改成大標題本身,標題寫成日誌頁的實際頁名。頁名只由
存取庫的擁有者與名稱決定,換主機位址、把日誌頁移到別的存取庫,或頁名編碼
有差,都動不到它;含網址的那一條連結照樣留著給人點,但不當鍵——拿它當鍵,
上面任一件事一變,這一輪的文字就跟上一輪不一樣,比不到既有那一筆就走附加,
同一個日誌頁多出第二個區塊,舊區塊從此再也更新不到。欄號那個參數只在舊
表格頁轉檔時用得到,頁面已經是條列就完全忽略它。

範圍是工作日誌的目錄頁與 worklog 技能。
2026-09-02 17:22:33 +08:00
admin dd64c0350e Merge pull request '收尾寫一筆 skill-end 事件,執行狀態才回報得到助理' (#35) from feat/status-report into develop
Reviewed-on: #35
2026-09-02 08:04:30 +00:00
jiantw83 277e6df960 chore(plugin 版本): 三份 manifest 升版至 0.1.8 2026-09-02 16:01:15 +08:00
jiantw83 aeb3f467e2 feat(狀態回報): 收尾寫一筆 skill-end 事件
現行紀錄只記「被叫用」,沒有成敗也沒有結束碼。跑完整輪的技能與開場就
中止的技能,在紀錄裡長得一模一樣。

start 由技能用量 hook 順手發,不必改技能文件。end 只能由技能自己在收尾
步驟寫——hook 接在技能工具呼叫上,而實際工作發生在之後的模型輪次,它在
原理上看不到成敗。有 start 沒有配對的 end,就是那一輪中止了。

status 五選一,每支技能各自寫明什麼情況選哪一個。找不到回報腳本就安靜
跳過,回報失敗一律不改變技能自己的結論。
2026-09-02 16:01:15 +08:00
admin 277a8f1b88 Merge pull request '工作日誌暫存收編舊名目錄,並掃出定址不到的孤兒' (#34) from fix/pending-legacy-dir-and-orphan-scan into develop
Reviewed-on: #34
2026-09-02 07:32:15 +00:00
jiantw83 afeb0a0e7c chore(plugin 版本): 三份 manifest 升版至 0.1.7 2026-09-02 15:27:03 +08:00
jiantw83 e762cf986e fix(工作日誌暫存): 收編舊名目錄,並掃出定址不到的孤兒
雜湊規則從 8 碼改成完整 40 碼那一刻,還沒寫進 wiki 的暫存留在舊名底下。
現行程式拿 40 碼去查,查不到那些目錄,裡面的條目就再也寫不出去。

沒人發現是因為兩種狀態長得一樣:「真的沒有待寫」與「待寫卡在舊名底下」
對呼叫端都是成功。技能於是照常回報完成,日誌卻一筆都沒有。

兩道處置。推得出對映的(舊名等於 H 加新名前 7 碼)由 list、cat、merge
一併收編,clear 與 commit 也連舊目錄一起清——commit 不放行的話,已經寫進
wiki 的暫存清不掉,下一輪會整批重複寫一次。推不出對映的交給新的 orphans
子命令掃出來回報,要有人看到才處理得掉。
2026-09-02 15:27:03 +08:00
admin 7ff79005c2 Merge pull request '連結一律寫成 [文字](絕對網址),並在寫入前驗證連得到' (#33) from feat/link-verification/main into develop
Reviewed-on: #33
2026-09-02 06:46:30 +00:00
jiantw83 c5f92ea51c chore(plugin 版本): 三份 manifest 升版至 0.1.6 2026-09-02 14:27:18 +08:00
jiantw83 2c085d68ef feat(link): 連結一律寫成 [文字](絕對網址),寫入前先驗證連得到
取消 [[頁名]] 與 [[顯示文字|頁名]] 兩種同 wiki 寫法,不再分「同存取庫」與
「跨存取庫」兩條規則。那種寫法只在自己那個 wiki 內解析,寫錯不報錯,畫面上
看起來像普通文字或死連結,巡不到也修不了。

連結寫進頁面前先過 jsc-gitea 的 link-check.sh,結束碼 0 才寫。驗證一律走 API,
不看網頁狀態碼:私有存取庫的網頁網址對未登入請求一律回 404,拿狀態碼判會把
好連結判成壞的。認證失敗回 7,與死連結的 1 分開,免得金鑰一過期就把還在的頁
整批判死。
2026-09-02 14:27:18 +08:00
admin dc5626c6c0 Merge pull request 'release: wiki 目錄頁專用存取庫、HASH 完整 40 碼、閘門依 CLI 分流' (#32) from develop into master
Reviewed-on: #32
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-09-02 04:21:02 +00:00
admin e2a22b5408 Merge pull request 'feat(wiki): 三個目錄頁改走專用存取庫,比對鍵改用裸 HASH' (#31) from feat/wiki-contents-repo/main into develop
Reviewed-on: #31
2026-09-02 03:28:01 +00:00
jiantw83 aee17e45c7 feat(wiki): 三個目錄頁改走專用存取庫,比對鍵改用裸 HASH
What:LOG_CONTENTS、LEARN_CONTENTS、REPORT_CONTENTS 改由 wiki-repo CONTENTS
解析並透過 wiki-contents.sh upsert 寫入,內容頁仍各走自己的型別。LOG 與 REPORT
的目錄頁新增一欄裸 HASH 當比對鍵。

Why:比對鍵原本是含網址的儲存格,換主機、換存取庫或 URL 編碼有差就比對不到,
upsert 會走附加分支,同一頁多出第二列而舊列永遠不再更新。REPORT 更脆:存取庫一換,
雜湊與網址同時變,四個期間的列會一次全部重複。

How:worklog-pending.sh 的 valid_hash 放寬成 40 碼、8 碼與 H 加 7 碼三種形狀。
放寬的是長度不是字元集——先剝字元再比長度的順序保留,路徑穿越與換行注入照樣擋下。
年報不得沿用日誌存取庫那條規則收斂到內容頁,目錄頁同住一庫是另一回事。

Who:jsc-log
2026-09-02 11:02:21 +08:00
admin 089d709ca4 Merge pull request '釋出 jsc-assist 的 marketplace 條目' (#30) from develop into master
Reviewed-on: #30
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-09-01 04:57:39 +00:00
admin 39bbf3c505 Merge pull request '放行 jsc-assist 的 marketplace 條目到預設分支' (#29) from chore/marketplace-assist-registry/main into develop
Reviewed-on: #29
2026-09-01 04:55:23 +00:00
admin 7f47a136e3 Merge pull request 'chore/marketplace-assist-registry/sync-copies' (#28) from chore/marketplace-assist-registry/sync-copies into chore/marketplace-assist-registry/main
Reviewed-on: #28
2026-09-01 04:53:38 +00:00
jiantw83 81e96a90d1 chore(marketplace): 把 jsc-assist 登錄進統一 marketplace
What:
- 兩份 marketplace 檔各加一個 jsc-assist 條目,來源網址指向 assist 存放庫。

Why:
- 準則要求每個 domain 存放庫都帶同一份 marketplace 檔,任何一個存放庫都能當註冊入口。副本之間只要有一份沒跟上,稽核就會報出不一致。
- 正本少了這個條目,各 CLI 的安裝指令就找不到 jsc-assist,這個 domain 等於發佈不出去。

How:
- 條目由 meta 的 sync-marketplace.sh 產生,同時寫進正本與每個 domain 存放庫的副本,寫完逐檔比對位元組。這一支存放庫的兩份副本就是那一輪的產物。
- 條目依名稱排序,縮排與非 ASCII 描述的處理都交給同一支腳本,不手改 JSON。
- 這一批是從最新的預設分支重新產生的。前一輪的分支基底早於監控頁型別那批改動,直接合併會把那些改動回退掉,所以整批重做而不是解衝突。

Who:
助理 domain 落地的註冊步驟在這個存放庫的同步。
2026-09-01 12:50:04 +08:00
admin 5d9ded2063 Merge pull request '釋出 jsc-log 0.1.4:新增四支技能的行為清單' (#26) from develop into master
Reviewed-on: #26
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-08-31 08:18:57 +00:00
jiantw83 13654c4ff9 Merge pull request '收攏 log 四支技能的行為清單,功能主幹併回 develop' (#25) from feat/skill-behaviors-and-version-block/main into develop 2026-08-31 08:10:37 +00:00
jiantw83 8216650b28 Merge pull request '整理 learn、report、stats、worklog 四支技能的行為清單' (#24) from feat/skill-behaviors-and-version-block/behavior-list into feat/skill-behaviors-and-version-block/main 2026-08-31 08:09:23 +00:00
jiantw83 6cf9884d42 chore(manifest): 三份 manifest 版號升到 0.1.4
- What:把 `.claude-plugin/plugin.json`、`.codex-plugin/plugin.json`、`plugin.json` 的 `version` 由 0.1.3 改成 0.1.4。
- Why:本次新增技能行為清單,是對外可見的內容變更。版號不動,各 CLI 的版本守衛就認不出這份外掛已更新,使用者端不會拉到新內容。
- How:三份 manifest 只改 `version` 一個欄位,三邊同號。其餘欄位一字不動。
- Who:屬於技能行為清單功能,負責讓這次變更能被部署與版本檢查認得。
2026-08-31 13:39:52 +08:00
jiantw83 5070863063 docs(behaviors): 新增 jsc-log 技能行為清單
- What:新建 `references/` 目錄,加入 `references/behaviors.md`。內含 learn、report、stats、worklog 四節,每節一張五列表,欄位為觸發時機、關鍵步驟、外部呼叫、完成條件、可驗證跡象。
- Why:技能驗證原本沒有基準,只能靠人逐份比對 SKILL.md,10 個 domain 每次稽核都要重做,還會漏。把每支技能的行為寫成清單,驗證就有可比對的正本。技能改了行為、清單沒跟著改,兩邊就漂移,所以規定日後任何技能異動都要在同一個 PR 內同步更新這一頁。
- How:逐支讀 `skills/*/SKILL.md`,把流程拆成五個固定欄位。節名與技能目錄名逐字相同,節序照目錄名字典序排。格式不靠人看,由 `jsc-meta/tools/check-behaviors.sh` 在程式層檢查六項合約。清單放在本 repo 而不是集中到 meta,這樣技能改動與清單在同一個 PR,不會漂移,也不用跨 repo 開兩條 PR 互卡。
- Who:屬於技能行為清單功能,是 jsc 技能組技能驗證基準的 jsc-log 部分。
2026-08-31 13:39:46 +08:00
admin b62203b271 Merge pull request 'chore(release): 放行技能組稽核修正到預設分支' (#23) from develop into master
Reviewed-on: #23
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-08-31 03:54:40 +00:00
admin a0336e733d Merge pull request 'fix/skill-check-compliance-and-flow' (#22) from fix/skill-check-compliance-and-flow into develop
Reviewed-on: #22
2026-08-31 03:16:13 +00:00
jiantw83 fee4185966 chore(manifest): 宣告 jsc-ask 與 jsc-hooks 相依並更新版號
- What:Claude、Codex 與根目錄三份 plugin 清單同步補上 jsc-ask 與 jsc-hooks 的最低版本需求,
  並把版號往前推一版。
- Why:技能早就呼叫 jsc-ask 的決策樹問期間與任務狀態,也讀 jsc-hooks 的計時器與用量紀錄取數字,
  清單卻只宣告 gitea。缺宣告時,部署到只裝一半的機器上不會被擋,要跑到一半才失敗,
  而且失敗訊息指向 wiki 或計時器,看不出真正缺的是哪個外掛。
- How:三份清單的 requires 一起改,三份內容保持一致,免得不同 CLI 讀到不同的相依。
- Who:log 技能組的安裝與部署檢查。
2026-08-31 11:07:16 +08:00
jiantw83 04f28d4505 docs(log): 補上工具結束碼宣告與新流程說明
- What:README 的工具表補進彙總腳本,並改寫 worklog 與 report 兩節;
  tools/token-usage.sh 的檔頭改寫成完整的結束碼宣告。
- Why:README 還停在舊流程,讀的人會以為報表數字仍由技能自己數,也不知道週五已經有腳本可用。
  token-usage.sh 原本只寫「護欄回傳 2」,沒說來源讀不到時印 N/A 也算成功,
  接手的人容易把那個情況當成故障,白追一輪。
- How:工具表加一列,寫出彙總腳本的輸出欄位與「無資料不估算」;
  worklog 一節寫出四項來源併行取得、週五由腳本算;
  report 一節寫出三線併行、彙總改走腳本,以及教訓頁另解自己的 wiki 存取庫。
  相依清單補上 jsc-ask 一列,說明它負責問期間與任務狀態。
- Who:整個 log 技能組的說明文件。
2026-08-31 11:07:16 +08:00
jiantw83 1bec87b047 feat(tools): 報表彙總與工作週週五都交給腳本算
- What:新增 tools/log-aggregate.sh,把日誌頁彙總成報表數字;
  tools/worklog-target.sh 新增 friday 子命令,印出該工作週的週五。
- Why:彙總與日期原本只寫在技能散文裡,每次跑都靠模型自己數。
  四個條目只有一個填了花費時間時,模型容易把它攤到每一筆,得出一個沒人做過的工時。
  週五同理,跨月、跨年那一週用手算就會差一天。規則寫進程式,每次跑才會一樣。
- How:log-aggregate.sh 讀日誌條目的固定版型,依條目標題的日期取範圍內的條目,
  印出條目數、存取庫、花費時間、各 CLI 的 token 用量與狀態計數。
  「無資料不估算」寫死在程式裡:沒填時間的條目不進總和,只進 ELAPSED_MISSING;
  整段期間都沒有時間就印「無資料」,不印 0,因為 0 會被讀成「花了 0 分鐘」。
  friday 的週界向 report-range.sh weekly 取得,這裡只做「週一加四天」,不自己定義週的起點。
- Who:report 技能的數字彙總,worklog 技能的日誌頁週次。
2026-08-31 11:07:16 +08:00
jiantw83 7d803245a5 fix(overwrite): 只有頁面真的不存在才建新頁
- What:worklog、learn、report 三支技能共六處讀取分流改寫,只有結束碼 4 才建新頁;
  結束碼 7 與 8 一律中止,一個字都不寫。三份目錄頁樣板補上寫入語意,明寫禁止整頁覆蓋、
  不得改動別人的列。usage-stats.sh 的參數護欄改成明確回傳結束碼 2。
- Why:原本把「讀失敗」與「頁面不存在」當成同一件事。金鑰失效時讀取回 7,技能卻讀成
  「這頁還沒有」,於是照樣板建一份新頁蓋回去。整份工作日誌會被這一筆條目取代,
  既有教訓會被清成空表,報表則產出一份說「這段期間沒有工作」的假數字。
  這些內容只活在 wiki 上,蓋掉就救不回來,所以這是本輪最要緊的一項。
- How:每一處讀取都先看結束碼再決定動作,並在技能文件裡列成表格:
  0 接在既有內容後面附加,4 才從樣板建頁,5 缺網址就中止,7 金鑰或權限問題就中止,
  8 其他 API 失敗就中止。目錄頁一律先讀整頁再改那一列。
  stats 也補上分流,參數錯誤不再被讀成「零次」。
- Who:worklog、learn、report、stats 四支技能的 wiki 讀寫與統計輸出。
2026-08-31 11:07:16 +08:00
admin 037feb1b18 Merge pull request 'release: 發布 jsc-log 相依版本宣告' (#21) from develop into master
Reviewed-on: #21
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-08-28 06:52:03 +00:00
admin a617c599bb Merge pull request 'feat/plugin-dependencies/main' (#20) from feat/plugin-dependencies/main into develop
Reviewed-on: #20
2026-08-28 04:05:04 +00:00
admin 1e1ff8c9db Merge pull request 'feat/plugin-dependencies/declare-requires' (#19) from feat/plugin-dependencies/declare-requires into feat/plugin-dependencies/main
Reviewed-on: #19
2026-08-28 04:03:07 +00:00
jiantw83 bc8763c1b7 feat(manifest): 宣告 log 技能相依版本 2026-08-28 11:59:16 +08:00
admin 5ae9d869db Merge pull request 'release: v0.1.1 develop 到 master' (#18) from develop into master
Reviewed-on: #18
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-08-27 04:14:22 +00:00
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
admin 123e5a83ef Merge pull request 'release: develop 併入 master(report)' (#15) from develop into master
Reviewed-on: #15
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-08-26 03:00:00 +00:00
admin 74aada742c Merge pull request 'feat/log-period-report-skill' (#14) from feat/log-period-report-skill into develop
Reviewed-on: #14
2026-08-26 02:51:27 +00:00
jiantw83 e6fafd4132 feat(report): 新增工作日誌總結技能
What: 新增 jsc-log:report,把工作日誌總結成年報、月報、週報或日報,寫進 wiki REPORT_{HASH}。另加 tools/report-range.sh 算期間、tools/report-template.sh 解析範本,以及四份報表範本與報表目錄範本。
Why: worklog 只記單筆工作,累積起來沒有工具看得出一週或一個月做了什麼、什麼在卡。要總結只能自己翻頁面加總。
How: 期間換算交給系統的 date,不自己算閏年與週界;週次採 ISO-8601。範本解析採工作目錄優先,.jsc/templates/report-{period}.md 蓋過技能自帶的那份,專案要換格式不必改技能。資料讀 LOG_CONTENTS 列出的所有日誌頁,取工作日期落在期間內的條目,只加總條目真的寫了的數字。
Who: 工作日誌的期間總結。
2026-08-26 10:47:07 +08:00
admin 76bddf1630 Merge pull request 'log 0.0.9 發佈:工作日誌待寫入暫存' (#13) from develop into master
Reviewed-on: #13
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-08-26 01:33:44 +00:00
admin b1baaf1546 Merge pull request 'feat(log): 工作日誌支援待寫入暫存' (#12) from feat/worklog-pending into develop
Reviewed-on: #12
2026-08-26 01:29:38 +00:00