fix(git): 補齊稽核缺失並修掉護欄失效
What:依 jsc-meta:skill-check 的稽核結果修正技能與工具——補上每個步驟的可檢核完成條件、 把留在內文的標準輸入輸出流程下放 tools/、修正查表與退碼路由造成的誤判。 Why:稽核發現這些缺失會讓技能在實際執行時走錯分支或靜默通過。 完成條件缺漏是最常被違反的一項;退碼誤判與查表錯誤則會讓良性狀況被當成失敗。 How:逐項對照 references/guidelines.md 的審核檢查清單修正,新增的工具都有 documented exit codes,並以真實執行驗證每條路徑。 Who:jsc-meta:skill-check 例行稽核(2026-08-25)。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
# 規則: 全部轉小寫,非 a-z0-9 的字元換成連字號,
|
||||
# 連續連字號合併成一個,並去除開頭與結尾的連字號。
|
||||
# 輸出: {type}/{slug}(例如: slugify.sh feat "export report" → feat/export-report)
|
||||
# 護欄: 輸入含非 ASCII 字元回傳 2;slug 化後為空回傳 3。兩者都印繁中錯誤到 stderr。
|
||||
set -u
|
||||
|
||||
if [ "$#" -lt 2 ]; then
|
||||
@@ -17,4 +18,14 @@ PHRASE="$*"
|
||||
|
||||
slug=$(printf '%s' "$PHRASE" | tr '[:upper:]' '[:lower:]' | sed -e 's/[^a-z0-9]/-/g' -e 's/-\{2,\}/-/g' -e 's/^-//' -e 's/-$//')
|
||||
|
||||
if printf '%s%s' "$TYPE" "$PHRASE" | LC_ALL=C grep -q '[^ -~]'; then
|
||||
echo "錯誤: 分支名只允許 ASCII。請先把標題翻譯成英文短語,再交給 slugify.sh。" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if [ -z "$slug" ]; then
|
||||
echo "錯誤: 標題 slug 化後是空字串,組不出分支名。請先把標題翻譯成英文短語,再交給 slugify.sh。" >&2
|
||||
exit 3
|
||||
fi
|
||||
|
||||
printf '%s/%s\n' "$TYPE" "$slug"
|
||||
|
||||
Reference in New Issue
Block a user