SuperAPI AI 工具集

finishing-a-development-branch

编程与开发

查看项目

更新于 10-14 05:33

技能介绍

用途

该技能用于在开发分支的实现完成、所有测试通过后,以一致的流程收尾这份工作,决定如何将其集成回主代码线。其核心原则是:验证测试 → 检测环境 → 展示选项 → 执行选择 → 清理。开始时应宣告:"我正在使用 finishing-a-development-branch 技能来收尾这份工作。"

主要能力

  • 测试验证:须运行项目完整测试套件(如 npm test、cargo test、pytest、go test ./...),失败则停止并报告。
  • 环境检测:通过 git 命令判断当前处于普通仓库、命名分支的 worktree 还是分离 HEAD 状态,从而决定菜单和清理方式。
  • 提供选项:普通仓库和命名分支 worktree 展示标准三选项(本地合并回基础分支、推送并创建 Pull Request、保留分支不动);分离 HEAD 展示两选项(作为新分支推送并创建 PR、保持原样)。
  • 执行操作:根据选择执行本地合并、推送并创建 PR 或保留原样,并在合并后再次验证测试。
  • 清理工作区:仅对本地合并或已确认的丢弃执行 worktree 清理,且只清理 .worktrees/ 或 worktrees/ 下的工作树;处理被拒绝删除的情况时要求用户选择。

使用方式

按上述流程执行,每一步都需遵循特定命令和判断逻辑。例如在检测环境时需要捕获 GIT_DIR、GIT_COMMON 和 WORKTREE_PATH 的值;基础分支需确认,通常来自计划、对话或 upstream;展示菜单需照原文,等待人类伙伴回答;执行本地合并时需先切到主仓库根目录再合并并验证测试;推送并创建 PR 时保留 worktree;丢弃工作需用户明确输入“discard”才继续。清理工作区时不可重新计算路径,必须使用之前捕获的值。

适用场景

适用于所有需要将开发分支工作集成的场景,尤其适合使用 git worktree 的开发者,能规范收尾流程,避免误操作。

限制

  • 必须测试全绿才能进入菜单,否则停止。
  • 集成决策完全由人类伙伴做出,技能不代替决策。
  • 丢弃工作必须得到精确的“discard”确认词。
  • 只清理 .worktrees/ 或 worktrees/ 下的工作树,其他工作区归宿主环境所有,不得动。
  • 合并结果失败时需停下并保留现场,不得自行猜测为偶发失败。
  • 推送被拒时不得擅自 force-push。
  • 删除被拒时不得加 --force,需询问用户。