关于 worktree
worktree 是用于隔离分支工作会话的 Git worktree 管理技能,支持查看、创建、删除和清理 worktree,并设有路径、工作区洁净度及人工授权保护。
主要功能
- 01创建和查看 Git worktree
- 02删除 worktree 并清理元数据
- 03清理已 squash 合并的分支
- 04将 worktree 限定在 .agents/worktree/
- 05磁盘变更前要求授权
适用场景
- 01隔离分支上的工作
- 02查看活动 worktree 和分支
- 03安全删除洁净的 worktree
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ venhdev/ zenforge --skill worktree安装后在 Claude Code 中输入/worktree确认已加载。
附带文件scripts/prune-squashed.sh
详细介绍
worktree — 隔离会话与分支引擎
操作不变量
- 路径隔离:所有分支编辑、Shell 命令和测试执行都必须严格限制在
.agents/worktree/<branch>内;禁止在 worktree 会话中修改根仓库文件。 - 脏工作树拦截:删除 worktree 前,通过
git status --porcelain检查工作树是否干净;禁止删除包含未提交修改的 worktree。 - 变更前置审批关卡:以规范变更集格式暂存 worktree 的创建或移除操作,并立即停止当前轮次;未经人工明确授权,禁止在磁盘上执行 worktree 变更。
领域规则
1. 命名与存储约定
<branch>:严格采用<type>/<slug>格式(feat/、fix/、refactor/、chore/、test/)。<path>:专用路径,必须位于.agents/worktree/<branch>下。- 隐私保障:根目录的
.gitignore必须包含.agents/worktree/。
2. 支持的 Worktree 操作
[CREATE]:在目标路径创建并检出新的 worktree 分支。[DELETE]:移除 worktree 目录并清理 Git 管理元数据。[LIST]:检查活动 worktree 及其关联分支。[PRUNE]:通过scripts/prune-squashed.sh安全清理已 squash 合并的分支。
规范输出约定
# Changeset: Git Worktree <Action>
`-- .agents/worktree/<branch>/
`-- [<ACTION>] <Worktree operation summary>.
Summary: 1 worktree affected (<branch>).
执行协议
阶段 1:预检与冲突审计
- 对于创建操作:检查
git worktree list,并确认不存在分支或目录冲突。 - 对于删除操作:在目标
<path>内检查git status --porcelain。如果工作树有未提交修改,立即停止并报告未提交的文件。 - 对于列表操作:运行
git worktree list并列出活动 worktree,随后立即停止当前轮次。
阶段 2:暂存与授权关卡
- 以规范变更集格式暂存计划中的 worktree 修改。
- 呈现暂存摘要,并立即停止当前轮次以等待人工授权。
阶段 3:原子执行与交接
- 获得批准后,执行所需操作:
- 创建:
git worktree add <path> -b <branch> <base_ref> - 删除:
git worktree remove <path> && git worktree prune - 清理:
bash scripts/prune-squashed.sh <target_branch>
- 创建:
- 报告操作已完成,并提供绝对工作区路径以便在 IDE 中导航。
评论
支持 Markdown