Files
gplan-2/reports/工程改动报告-车道铁律-2026-10-26.md

5.0 KiB
Raw Permalink Blame History

工程改动报告——车道铁律换代(worktree 收窄+直改闸)

2026-10-26 · 本批=工程改动+文档设计改动混合批,用户逐点裁决后发令执行 · 按旧流程 worktree 落地合回(e2cc26ec),合回后新规即时生效

改了什么

规则换代:2026-09-19 立的「一切改动走独立 worktree」铁律,改为车道铁律——判据与改动域划分同一(文件性质):代码面(game/ 下非 .md 行为载体)唯一强制 worktree;其余一切面(含 game/ 内 .md)主工作区直改+直提,验收=commit 点 git pre-commit 钩子现场跑 --docs(秒级),绿落地红拦,无回执流程。动机:文档维护类小改动高频,全套 worktree 仪式成本远超改动本身;机检强度不降级——绑定点从 merge 挪到 commit,验的就是提交字节。

落地件(worktree 批 lane-reform-20261026,6 文件):

件 内容
tools/hooks/pre-commit(新增,版本化) 直改闸:staged 判代码面(game/ 非非 md);非代码面→现场跑 run_all_gates.sh --docs;代码面→主区拦/worktree 跳过;两段拒绝文案(新增红/闸自身故障)
.gitattributes(新增) tools/hooks/* text eol=lf——autocrlf=true 下检出转 CRLF 会毁 bash 钩子
tools/run_all_gates.sh 开工自检:core.hooksPath 失位且默认钩子位无 pre-commit→红+自愈命令(防换机/重克隆后静默免验)
AGENTS.md 红线第一条换代+验收段/四类段/导航表/Layout 五处同步
design/engineering/process-conventions.md §1 整节改写(两车道+执法分层)+§2/§3 四处扫尾
design/engineering/architecture/architecture.md 测试与质量域新增「车道分层执法」登记(两层职责表+不对称取舍依据)

本机件(.zcode/,不入 git,主区直改):worktree-guard.sh 车道化收窄(Edit/Write 只拦代码面;commit 只拦 staged 含代码面+-a 形态查工作区;新增 --no-verify/-n agent 禁用拦截;合回闸零改——推域判据已被同日另批改为文件性质,天然一致)+四技能(doc-design/iter-plan/asset-ingest/batch-closure)车道条款与收尾闸口径 11 处。core.hooksPath=tools/hooks 已配置(worktree 共享)。

验证结果(七条全过,撤销对应改动均可复现变红)

# 测试 结果
V1 临时分支造红(新根文件绊熵增闸)→commit 钩子跑闸→红项可见→文案 A 逐字→提交中止,分支尖未动
V2 本报告直提 master 走真实直改车道(见下「评估」)
V3 主区 Edit game/core/damage_math.gd 守卫拦,文案正确,文件零改动
V4a bash 改 game 文件→stage→单独 commit ZCode 层按 staged 路径拦
V4b add&&commit 单命令链(ZCode 层看不到 stage) git 层接住:[直改闸] 主工作区禁止直提代码面,master 零位移
V5 git commit --no-verify ZCode 层拦(agent 禁用该旗标)
V6 临时 worktree 双提交 docs 提交 7.3s 过闸落地(冷检出钩子执行正常=LF 钉死生效);game 提交跳闸秒落
V7 带代码面的分支无回执 merge 进 master 合回闸六况照常拦+按域指引(回归确认零改)

评估(真实任务)

  1. 重量减轻(已测):本报告=新规后第一个真实直改提交——动作数 2(写文件→add+commit,闸自动),对照旧流程 8 动作(建 worktree→搬运→改→跑闸→冻结件核→并 master→merge→删区)。
  2. 冷启动 AI 检验(已完成——2026-10-26 用户裁以子代理代行,提示词仿当日真实批令口吻):全过——零 worktree、零游戏测试、零手动跑闸(闸全部由 commit 点钩子自动跑,共 3 次 2 绿 1 红)、造红被拦后读日志定位红因→清理→无扩大测试。附带真发现:代码面两处陈旧 design/research 注释指针(shop.tres:98、tile_palette.gd:11,见核查记录)留待工程车道。架构发现:子代理工具调用不经过 ZCode 守卫层(代码面 Edit 未拦、--no-verify 未拦)——git 层是唯一全提交者执法层,正常提交路径全被拦;残余暴露面=蓄意 --no-verify,已在 architecture.md 车道节登记。
  3. game/ 车道零扰回归(待下一迭代批):定义入库提交约 +6s(预期)、代码提交零打扰、合回闸行为不变,记入该批实现报告。

边界与遗留

  • 合并前已在途的旧 worktree(camp-art-doc ×2、camp-prompts-doc、iter37-plan、mutation-purge、quotaface)检出无钩子文件——git 对缺位钩子静默跳过,零打扰;其下次并入 master 后自然纳入执法。
  • 守卫 --no-verify/-n 判定是词法匹配(与既有词法判同精度级),消息值误报理论存在;git 层直改闸为最终兜底。
  • 主区 game/tests/.gates/receipt.json 现为 V1 测试残留(红回执,gitignored),下次任何跑批覆写,无影响。