用途:在同一 Git 仓库下为不同分支创建相互隔离的工作目录(worktree),从而并行开展工作而无需频繁切换分支。
主要能力与流程:
- 目录选择按优先级进行:先检查项目内是否存在 .worktrees(首选,隐藏目录)或 worktrees;若存在则直接使用,两者同时存在时选择 .worktrees。若不存在,则读取 CLAUDE.md 中的 worktree 目录偏好;仍无结果时询问用户,可选 .worktrees/ 或 ~/.clank-worktrees/<项目名>/。
- 安全检查:对项目内目录,创建前必须确认 .gitignore 已包含对应目录规则,例如: grep -q "^.worktrees/$" .gitignore || grep -q "^worktrees/$" .gitignore 若未包含,则添加相应行并提交后再创建,防止 worktree 内容被误提交。全局目录位于项目之外,无需此检查。
- 创建步骤:检测项目名后确定路径并执行创建命令: git worktree add "$path" -b "$BRANCH_NAME" 然后进入该目录。
- 项目初始化自动识别:存在 package.json 执行 npm install;Cargo.toml 执行 cargo build;requirements.txt 执行 pip install -r requirements.txt;pyproject.toml 执行 poetry install;go.mod 执行 go mod download。
- 基线验证:运行项目相应测试命令(如 npm test、cargo test、pytest、go test ./...)。若测试失败,需报告失败并询问是继续还是排查;通过则报告就绪,并输出 worktree 路径、测试数量与待实现功能。
适用场景:需要在隔离环境中实现新功能、执行开发计划,或与其他技能(如头脑风暴、完成开发分支、执行计划)配合使用时。
限制与注意事项:项目内 worktree 必须校验 .gitignore;不可跳过基线测试;测试失败时不可擅自继续;目录位置不明确时不得臆测,应遵循“已有目录 > CLAUDE.md > 询问用户”的顺序;避免硬编码安装命令,应依据项目文件自动识别。