并 master(收口前同步):并入架构文档知识沉淀批 24f07dc4

This commit is contained in:
DKChan committed 2026-10-26 05:07:50 +08:00
commit 1724df82ef
4 files changed
+68 -25

No files matched your search

@@ -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 检验(已完成——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),下次任何跑批覆写,无影响。
@@ -0,0 +1,5 @@
# 车道核查:退役路径 design/research/ 的活引用(2026-10-26)
- 查了什么:全仓 md(链接与正文指针)+非 md 载体,关键词 `design/research`;`design/` 下已无该目录。
- 命中什么:md 四处(三份文件)——AGENTS.md 两处、doc-conventions.md §11 一处、道具退役素材库.md 头注一处,均为「已退役」声明或历史迁出注记,非活引用,未动。非 md 四处——`tools/repo_structure_audit.py` 退役清单与 `tools/doc_ref_audit.py` 件头注(执法件自身,非活引用);另有 `game/data/tables/shop.tres` 与 `game/presentation/views/tile_palette.gd` 各一处注释仍把 `design/research/...md` 当权威出处指向,目标文件已不在(`reports/` 无同名件),属代码面陈旧指针,本次不动,留待工程改动车道处理。
- 改没改:现行文档零活引用,本核查零修改;本文为唯一产出。