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:
DKChan committed 2026-09-19 16:41:15 +08:00
1 parent 2ca3e20d73
commit 86d341c6d7
3 files changed
+130

No files matched your search

+14
View File
@@ -2,6 +2,20 @@
"hooks": {
"enabled": true,
"events": {
"PreToolUse": [
{
"matcher": "Edit|Write|MultiEdit|NotebookEdit|Bash",
"hooks": [
{
"type": "process",
"command": "bash",
"args": ["${ZCODE_PROJECT_DIR}/.zcode/hooks/worktree-guard.sh"],
"timeoutMs": 10000,
"statusMessage": "worktree 铁律守卫(主工作区直改/提交拦截)"
}
]
}
],
"SessionStart": [
{
"hooks": [