feat/worklog-target-week
develop
tools/worklog-target.sh
week
worklog-target.sh week [基準日期 yyyy-MM-dd]
yyyy-MM-Wn
2026-08-31
2026-09-06
2026-09-W1
2026-09-11
2026-09-W2
friday
friday_of_week()
usage()
2026-09-04
bash -n tools/worklog-target.sh
comment-scope.sh sweep
jsc-review:code-review
jsc-review:api-doc
swagger-detect.sh
plugins/log
因為 worklog 頁面內容是照週五整理的,需要一個能直接算出「這是當月第幾個工作週」 的指令,判斷基準是週五落在哪個月、當月第幾個週五,而不是 ISO 週次或週一所在月份。 新增 `worklog-target.sh week [基準日期 yyyy-MM-dd]`,重用既有 `friday`(週一加四天) 的邏輯算出週五日期,再往前推算當月第幾個週五,組成 `yyyy-MM-Wn` 格式輸出;同時把 `friday`/`week` 兩分支原本各自重複的基準日期格式檢查收進 `friday_of_week()` 內部, 消除重複程式碼,並補齊函式註解的層級標記、步驟條列與範例值,以及 usage() 說明中 原本漏掉的 week 用法。 已用 TDD 驗證跨月週與本週遞增兩種情境、跑過語法檢查與註解掃描,並經兩輪 code review(六組壞味道)確認無殘留問題。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
No dependencies set.
The note is not visible to the blocked user.
摘要
tools/worklog-target.sh新增week子命令:worklog-target.sh week [基準日期 yyyy-MM-dd],印出該工作週的yyyy-MM-Wn格式(例:2026-08-31與2026-09-06都印出2026-09-W1,2026-09-11印出2026-09-W2)。判斷規則是「以週五那天的月份為準、算當月第幾個週五」,不是 ISO 週次,也不看週一在哪個月,因為 worklog 頁內容照週五整理,跨月的那一週不該被算進週一那個月。變更內容
tools/worklog-target.shweek子命令,重用既有friday邏輯(呼叫 report-range.sh weekly 取週一、加四天算週五)推算當月第幾個週五並組成yyyy-MM-Wn輸出;同時把friday/week兩分支各自重複的基準日期格式檢查收進friday_of_week()函式內部以消除重複程式碼,補齊函式註解的層級標記、步驟條列與範例值,並補上usage()說明裡原本漏掉的 week 那一行設計重點
friday邏輯(report-range.sh weekly 取週一、加四天算週五)取得週五日期,避免另寫一套日期運算。friday/week兩分支重複的基準日期格式檢查收斂進friday_of_week()函式內部,消除重複程式碼。測試結果
2026-08-31與2026-09-06皆輸出2026-09-W1,通過。2026-09-04輸出2026-09-W1、2026-09-11輸出2026-09-W2,通過。bash -n tools/worklog-target.sh語法檢查通過。comment-scope.sh sweep掃描通過,無殘留追蹤資訊註解。jsc-review:code-review六組壞味道審查兩輪:第一輪抓到三則中嚴重度(三處註解缺層級標記與步驟條列)與兩則低嚴重度(friday/week 重複的格式檢查邏輯、缺輸入輸出範例),全部修正後第二輪覆核 PASS(過程中另補上 usage() 說明漏掉 week 一行)。jsc-review:api-doc以swagger-detect.sh判定plugins/log不支援 Swagger(結束碼 1),已跳過。前置 Push Request