SuperAPI AI 工具集

using-git-worktrees

编程与开发

查看项目

更新于 10-15 09:58

技能介绍

用途

该技能用于在 Git 仓库中创建隔离的工作树(worktree),使得开发者可以在不切换当前工作区的情况下,同时在多个分支上工作。它特别适用于开始需要与当前工作区隔离的功能开发,或在执行实现计划之前使用。

主要能力

  • 系统化目录选择:按照优先级顺序确定工作树目录位置。优先检查现有的 .worktrees 或 worktrees 目录(.worktrees 优先),其次检查 CLAUDE.md 中的偏好设置,最后询问用户选择项目本地隐藏目录或全局目录。
  • 安全验证:对于项目本地目录,强制使用 git check-ignore 验证目录已被忽略,防止工作树内容被意外提交到仓库。若未忽略,则自动添加到 .gitignore 并提交。
  • 自动项目设置:根据项目文件自动检测并运行相应的依赖安装命令,支持 Node.js (npm install)、Rust (cargo build)、Python (pip install / poetry install)、Go (go mod download) 等。
  • 基线测试验证:运行项目测试以确保工作树以干净状态启动。如果测试失败,会报告失败并询问是否继续或调查。
  • 报告位置:创建工作树后,报告完整路径、测试通过情况,并准备实现指定功能。

使用方式

  1. 选择目录:按优先级检查 .worktrees、worktrees、CLAUDE.md 偏好,若无则询问用户。
  2. 安全验证:对于项目本地目录,运行 git check-ignore -q .worktrees 或 git check-ignore -q worktrees 进行验证。若未忽略,添加至 .gitignore 并提交。
  3. 创建工作树:检测项目名称,使用 git worktree add "$path" -b "$BRANCH_NAME" 创建,并切换到该路径。
  4. 运行项目设置:自动检测并运行依赖安装命令。
  5. 验证基线:运行测试命令(如 npm test、cargo test、pytest、go test ./...)确认工作树干净。
  6. 报告:输出工作树路径、测试结果,准备实现功能。

适用场景

  • 需要并行开发多个功能分支而不干扰当前工作区时。
  • 执行实现计划前,需要隔离环境进行开发时。
  • 被其他技能调用,如 brainstorming(阶段4)、subagent-driven-development、executing-plans 等。

限制与注意事项

  • 对于项目本地目录,必须验证其已被忽略,否则工作树内容可能被跟踪并污染 git status。
  • 如果基线测试失败,必须报告失败并获取明确许可才能继续。
  • 不要硬编码设置命令,应基于项目文件自动检测。
  • 不要假设目录位置,应遵循优先级:现有目录 > CLAUDE.md > 询问用户。
  • 全局目录(~/.config/superpowers/worktrees)无需 .gitignore 验证,因其位于项目之外。
  • 如果项目没有 package.json、Cargo.toml 等文件,则跳过依赖安装。

集成

  • 被调用:brainstorming(阶段4,设计批准后必须)、subagent-driven-development(执行任何任务前必须)、executing-plans(执行任何任务前必须)、任何需要隔离工作区的技能。
  • 配对:finishing-a-development-branch(工作完成后清理必须)。