feat(session): worktree 铁律批(台账 87,2026-09-19 用户立规:一切开发/设计任务走独立 worktree,完事合并回 master,主工作区禁止直改直提交)——①CLAUDE.md 新增「分支纪律(worktree 铁律)」节+硬性红线增首条:开工建 ../g-plan2-<任务名> worktree、收尾 merge --no-ff 合回+清 worktree、豁免面仅 production/session-state/ 与 .zcode/(会话收口与钩子自举);②PreToolUse 钩子 .zcode/hooks/worktree-guard.sh 双路拦截:Edit/Write/MultiEdit 落主工作区(白名单外)且主区检出 master/main → exit 2;Bash 在主区 git commit(含 -C/cd 指向主区、链式命令;路径边界正则防 worktree 兄弟目录误伤)→ exit 2;解析异常一律放行(守卫是兜底不挡收口);Windows/MSYS 双路径形态归一(cygpath,修复 /d/... 被 abspath 解析成 D:\d\... 的归属失配);③config.json 注册 PreToolUse(matcher 五工具)。验证:15 用例三态测试全 PASS(主区拦/worktree 放/白名单放/-C 边界/链式 commit/merge 放行/MSYS+Windows+正斜杠路径形态);零游戏代码冒烟不适用。
This commit is contained in:
1 parent
2ca3e20d73
commit
86d341c6d7
3 files changed
+130
No files matched your search
@@ -45,8 +45,19 @@
|
||||
| 会话进度记录 | `production/session-state/active.md`——顶部「当前状态快照」节 + 批次台账;收口先改快照再记账,每条 ≤3 行,详情外链 |
|
||||
| 工程路线图 | `production/roadmap.md`——里程碑时间线与下一步顺序(批级视图;实时状态看快照节) |
|
||||
|
||||
## 分支纪律(worktree 铁律,2026-09-19 用户立规)
|
||||
|
||||
主工作区(本目录,`master` 检出)只作**合并落点与共享状态载体**,一切开发/设计改动不得直接发生在主工作区:
|
||||
|
||||
1. **开工**:每个任务批次先建独立 worktree 分支再动手:`git worktree add ../g-plan2-<任务名> -b <任务分支>`。所有代码/文档/数值改动与验证跑测都在 worktree 内进行(注意:未跟踪文件不会出现在新 worktree,需手工搬运)
|
||||
2. **收尾**:验证全绿(冒烟 + 场景探针)后,在主工作区 `git merge --no-ff <任务分支>` 落回 master,然后 `git worktree remove` + 删分支;合并前先看 active.md 尾部台账,避免与并行会话撞号/漏捎带
|
||||
3. **豁免面(仅这两处允许主工作区直改)**:`production/session-state/`(会话收口)与 `.zcode/`(钩子配置)——其余一律走 worktree;主工作区 `git commit` 会被钩子直接拦截
|
||||
4. 本铁律由 PreToolUse 钩子 `.zcode/hooks/worktree-guard.sh` 强制兜底;钩子只约束 agent 侧,用户本人手工改动不受限
|
||||
|
||||
## 硬性红线(勿违反)
|
||||
|
||||
- **worktree 铁律**:主工作区禁止直接改动与提交(细则见上节;并行会话各占 worktree 互不踩踏)
|
||||
|
||||
- **数值单一事实源**:玩法数值只存 `data/tables/`(.tres),经 `ConfigDB` autoload 类型化单点读取;禁止数值字面量与自建 `load()` 表路径
|
||||
- **RNG 单点**:禁止 `randomize()` / 自建 RandomNumberGenerator——随机只经 `RngService` 封闭命名流
|
||||
- **Core 层零 UI 依赖**:完整战斗必须可 `--headless --script` 跑通
|
||||
|
||||
Reference in new issue
Block a user