diff --git a/reports/工程改动报告-车道铁律-2026-10-26.md b/reports/工程改动报告-车道铁律-2026-10-26.md new file mode 100644 index 00000000..f6e03f9d --- /dev/null +++ b/reports/工程改动报告-车道铁律-2026-10-26.md @@ -0,0 +1,45 @@ +# 工程改动报告——车道铁律换代(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 检验(待用户开新会话)**:布置一次真实小文档改动+一次造红修红,观察冷 AI 不建 worktree、零游戏测试、红后动作收敛于修红重提。 +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),下次任何跑批覆写,无影响。