5.0 KiB
5.0 KiB
工程改动报告——车道铁律换代(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 | 合回闸六况照常拦+按域指引(回归确认零改) |
评估(真实任务)
- 重量减轻(已测):本报告=新规后第一个真实直改提交——动作数 2(写文件→add+commit,闸自动),对照旧流程 8 动作(建 worktree→搬运→改→跑闸→冻结件核→并 master→merge→删区)。
- 冷启动 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 车道节登记。 - 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),下次任何跑批覆写,无影响。