- commit-msg 规则外置: 主hook 遍历 rules/, G3 中文类型+G8 看板编号全域唯一(主板+归档恰好一次, 双向测试过), core.hooksPath 分发 - 换装脚本 v3: 句柄释放独占探测+构建产物 SHA256 校验+失败重试+SYSTEM 转投用户会话可见重启(上线验证过: SHA256 一致+H1 实测) - CLAUDE.md 自主修复纪律: 明确缺陷禁反问直接修, 本机脚本行为变更=report_after 级
15 lines
768 B
Bash
15 lines
768 B
Bash
#!/bin/sh
|
|
# G8 看板编号全域唯一门禁:主板+全部归档中 "数字. " 条目编号必须恰好出现一次(历史不重)
|
|
# 新写撞历史编号即拒;恢复搬回场景须同步删归档行(搬回本该如此),总数不变则自然放行
|
|
git diff --cached --name-only -- 'docs/todo.md' 'docs/todo-归档*' | grep -q . || exit 0
|
|
ids=$( { git show ":docs/todo.md" 2>/dev/null
|
|
for f in docs/todo-归档*.md; do [ -f "$f" ] && git show ":$f" 2>/dev/null; done
|
|
} | grep -E '^[0-9]+\. \[' | cut -d. -f1)
|
|
dups=$(printf '%s\n' "$ids" | sort | uniq -d)
|
|
if [ -n "$dups" ]; then
|
|
echo "✗ [G8] 看板编号重复(历史须全域唯一): $(printf '%s ' $dups)"
|
|
echo " 写板前先 grep 查重(主板+归档);恢复搬回须同步删归档行"
|
|
exit 1
|
|
fi
|
|
exit 0
|