合回 master 时发现:.gates/.gitignore 未入库,receipt.json 被纳入版本管理—— 它是每跑批覆写的当次回执,属中间产物。 成因:重跑闸前用 rm -rf game/tests/.gates 清目录,把 .gitignore 一起带走了; 脚本自身不重建,跑得再多次也不会回来。 - .gates/.gitignore 入库(挡 receipt.json 与 *.log)。 - run_all_gates.sh 启动时自愈:.gitignore 缺失则重建,杜绝复发。