SuperAPI AI 工具集

worktree-manager

编程与开发

查看项目

更新于 10-15 09:54

技能介绍

用途

Worktree Manager 用于通过 git worktree 编排并行开发。它会在会话启动时主动检测当前工作目录的 WIP(进行中工作)状态,并主动提出将工作隔离到独立 worktree 中,从而让开发者可以在多个任务之间并行推进而不互相干扰。

主要能力

主动触发

当会话开始且工作目录存在 WIP 状态时激活。检测方式包括:

  • 未提交或已暂存的更改:git status --porcelain
  • Stash 列表:git stash list
  • 未推送提交(可能因无上游而失败,属正常):git log --oneline @{u}..HEAD 2>/dev/null

若任一命令有输出,则向用户展示 WIP 摘要,并提供三个选项:

  • A) 将 WIP 移入 worktree(stash、创建 worktree、在其中应用)
  • B) 继续在当前分支工作(本次会话不再提示)
  • C) 先查看详情

选择 A 时,询问 worktree 名称和描述,执行 git stash push -m "wt-migration: <name>",通过 /wt new <name> --desc "..." 创建 worktree(直接传入名称和描述,不提示类别或工作类型),在新 worktree 中执行 git stash pop,并确认 WIP 已迁移、当前分支已干净。

选择 B 时,本次会话不再就 WIP 状态提示。

选择 C 时,展示三个检测命令的完整输出,然后重新提供 A/B 选项。

仪表盘

当用户询问“show my worktrees”“what am I working on”或“worktree status”时,读取 .worktrees/registry.json,对每个 worktree 收集:

  • 领先提交数:git -C <path> log --oneline <base>..<branch>
  • 落后提交数:git -C <path> log --oneline <branch>..<base>
  • 未提交更改:git -C <path> status --porcelain
  • 最后活动时间:git -C <path> log -1 --format=%ar

以“Parallel Development Dashboard”形式展示每个 worktree 的编号、名称、状态、最后活动时间、分支、领先/落后提交数、修改文件数、描述,并列出警告(如落后于 master 建议 rebase)。

上下文恢复

当用户说“what am I working on”或休息后返回时,展示仪表盘,并对最近活跃的 worktree 显示:最后 3 条提交信息、当前修改的文件、分支 diff 中新增的 TODO/FIXME 注释,并建议是否继续。

多 Worktree 创建

当用户说“I need to work on N things”或列出多个任务时,解析任务,为每个任务派生 worktree 名称和描述(不提示类别或工作类型),展示创建计划并请求确认,确认后依次通过 /wt new 流程创建所有 worktree,最后展示仪表盘。

清理建议

当用户要求“clean up worktrees”或在仪表盘中检测到时,识别以下候选:

  • Done:分支已完全合并到 base 的 worktree
  • Stale:超过 7 天无提交且状态为 active 的 worktree
  • Missing:registry 中路径已不存在的条目

展示清理建议及对应命令(如 /wt rm <name>)。

冲突早期预警

当用户要求“check for conflicts”或在仪表盘中存在多个 active worktree 时,对每对 active worktree 检查文件重叠:

  • 各 worktree 相对 base 的变更文件:git -C <path> diff --name-only <base>...<branch>
  • 求变更文件交集
  • 对重叠文件检查是否触及相同行:git -C <path> diff <base>...<branch> -- <file>

以“Conflict Risk Assessment”形式报告重叠文件、冲突可能性(如 LIKELY CONFLICT、low risk)及合并建议。

使用方式

通过 /wt 命令执行操作:

  • /wt new <name> - 创建 worktree
  • /wt list - 紧凑列表
  • /wt status - 详细仪表盘
  • /wt pause <name> / /wt resume <name> - 切换状态
  • /wt rm <name> - 删除 worktree
  • /wt merge <name> - 引导式合并流程

适用场景

  • 需要同时推进多个开发任务,希望隔离各自的工作区
  • 当前分支存在未提交更改、stash 或未推送提交,希望迁移到独立 worktree
  • 需要查看所有 worktree 的状态、进度和最后活动时间
  • 需要识别可清理的 worktree(已合并、长期无活动、路径丢失)
  • 需要提前发现多个 worktree 之间的文件冲突风险

限制

  • 依赖 git worktree 和 .worktrees/registry.json 注册表
  • 未推送提交检测在无上游分支时可能失败(属正常情况)
  • 冲突预警基于文件与行范围重叠分析,不保证完全准确
  • 具体安装方式、平台支持、收费情况暂未提供