fix/wp-gate-check-deps-field-index
develop
tools/wp-gate.sh
check-deps
awk -F'|'
-
|
\|
bash -n tools/wp-gate.sh
原本 awk -F'|' 固定用第 6 欄當相依欄,但表格每列開頭多一個空欄,實際相依欄是第 7 欄, 導致每個候選工作包都被誤判成無相依可直接挑選,相依關卡形同虛設。同時 PR/狀態欄改用 從結尾往回數,避免層 0 多一欄「工作證」時與層 1 到 4 的表格欄位對不齊;並在切欄前先 處理儲存格內跳脫的字面 |,避免該列後續欄位整批錯位。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
No dependencies set.
The note is not visible to the blocked user.
摘要
tools/wp-gate.sh的check-deps子指令,靠awk -F'|'切析分析頁的 WBS markdown 表格列來讀「相依」「PR」「狀態」三個欄位,藉此判斷候選工作包能不能挑。原本有三個問題:(1)相依欄位寫死在第 6 個 awk 欄位,但因每列開頭多一個空欄,相依欄實際落在第 7 欄,原本讀到的其實是幾乎都是-的「交付型別」欄,導致每個候選工作包都被誤判成「沒有相依,可以挑」,相依關卡完全沒在把關;(2)WBS 表格分兩種欄位數(層 0 比層 1 到 4 多一欄「工作證」),原本用寫死的欄號讀 PR 與狀態,兩種表格對不齊;(3)有一列描述文字裡含跳脫過的字面|(合法的 markdown 跳脫語法),awk -F'|'不懂跳脫語法會多切一欄,害該列後面欄位全部錯位。此修正一次解決以上三個問題,讓相依關卡能正確攔下相依未合併的候選工作包。變更內容
tools/wp-gate.shcheck-deps的 awk 欄位切析:相依欄改為讀取正確的第 7 欄;PR 欄與狀態欄改成從整列結尾往回數(倒數第一格為狀態、倒數第二格為 PR),不再依賴寫死欄號,讓層 0 與層 1 到 4 兩種欄位數的表格都能對齊;讀入分析頁內容後先將跳脫字面|換成控制字元再交給 `awk -F'設計重點
\|置換成控制字元,避開awk -F'|'不理解 markdown 跳脫語法的限制,切完欄位後再視需要還原,防止單一列的跳脫符號拖累後續所有欄位錯位。測試結果
bash -n tools/wp-gate.sh:語法檢查通過。前置 Push Request