#!/usr/bin/env bash # 直改车道闸(git pre-commit,2026-10-30 本地 CI 化换代)——提交点现场跑文档域闸 # (tools/run_all_gates.sh --docs,秒级文本扫描):绿=落地,红=中止。 # 代码面提交不再拦(2026-10-30 用户裁:主区直改全面放开)——代码验证归合回后的本地 CI # (tools/hooks/post-merge 全量跑批;CI 红态下 tools/hooks/post-commit 追绿复验)。 # 合并收尾提交跳过(MERGE_HEAD 在=冲突合并的收尾 commit)——内容归合回后的 CI 全量验。 # --no-verify 绕过仅属用户(agent 侧由 worktree-guard 拦截)。 set -u REPO="$(git rev-parse --show-toplevel)" # 合并收尾提交:跳过文档闸,交合回后 CI [ -f "$(git rev-parse --git-dir)/MERGE_HEAD" ] && exit 0 RC=0 bash "$REPO/tools/run_all_gates.sh" --docs || RC=$? if [ "$RC" -eq 0 ]; then exit 0 elif [ "$RC" -eq 1 ]; then echo "[直改闸] 文档域闸有新增红,提交已拦。修上方红项后重新 commit,钩子会自动重跑闸;禁跑代码域/游戏类测试,与本次红项无关。" >&2 else echo "[直改闸] 闸脚本自身故障(退出码 $RC),不是文档红——把本输出原样呈报用户,勿改文档、勿跑替代测试。" >&2 fi exit 1