Files
DevFlow/scripts/hooks/rules/todo-id-unique.sh
T
lxy 19ecadf3f6 新增: 编号唯一机械门禁G8+换装脚本v3加固+自主修复纪律
- commit-msg 规则外置: 主hook 遍历 rules/, G3 中文类型+G8 看板编号全域唯一(主板+归档恰好一次, 双向测试过), core.hooksPath 分发
- 换装脚本 v3: 句柄释放独占探测+构建产物 SHA256 校验+失败重试+SYSTEM 转投用户会话可见重启(上线验证过: SHA256 一致+H1 实测)
- CLAUDE.md 自主修复纪律: 明确缺陷禁反问直接修, 本机脚本行为变更=report_after 级
2026-10-06 23:48:45 +08:00

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