自动提交脚本要先确认当前分支
实测形态
Trellis 的 add_session.py / task.py archive 会自动提交日志与任务文档。现有 safe_commit.py 只做了两层护栏(只 add 特定路径、绝不 -f 强加),缺的正是「我现在在哪个分支」这一问。真实事故:在 codex/zoo-74-* feature 分支上跑一次 task.py archive,Trellis 文档就被提交进了那个分支。
修法很小:auto-commit 前判断「当前分支不是 main 就拒绝自动提交」,打印提示让人自己处理(config 可配例外分支)。
配套:密钥扫描要进 CI 门禁,而不是靠人工 grep
同一批需求里的另一半:把 gitleaks 装进 CI,每个 PR 的 diff 自动扫疑似密钥,扫到就红灯不让合。
- 起因也是真实事故:PR 的 session 简报里带进过本地测试账号密码(评估无害,但暴露了「AI 写的简报会原样进仓库」这个模式风险)。
- 入库几百个文件前手工 grep 一遍密钥,是把一次性人工动作当成了机制。人工检查在「每次都要做」的场景里必然漏。
- 这类门禁要与既有的「CI 门禁补建」任务合并做,别重复建设。
可迁移的判断
- 任何自动化写入动作(commit、push、部署、改库)都要在动手前确认「我作用在哪个对象/分支/环境上」。
- 护栏要挡的是「作用对象错了」,不是「内容不对」。
safe_commit的路径白名单挡不住分支错。 - 靠人工纪律守住的检查项,最终都要变成 CI 里的一条规则。
相关
- 什么该进git什么该ignore —— 入库内容的判据;本条是入库动作的护栏
- 同目录多会话会抢分支 —— 分支错位的另一种成因
- Issue完成由用户验收后再关闭 —— 协作状态机里的自动动作同样需要护栏
- 多Agent协作控制面