mcpField
F
finishing-a-development-branch

finishing-a-development-branch

github.com/mavscui开发19360 次安装34 周前更新
代码仓库

关于 finishing-a-development-branch

finishing-a-development-branch 指导 Agent 完成开发分支,从验证测试到按选择执行合并、创建 PR、保留或丢弃流程。适用于需要按步骤收尾分支的开发 Agent。

主要功能

  1. 01提供选项前验证测试
  2. 02确定基准分支
  3. 03列出四种收尾选项
  4. 04按选择执行分支流程
  5. 05在适用时清理 worktree

适用场景

  1. 01结束分支前检查测试结果
  2. 02在本地合并已完成的工作
  3. 03推送分支并创建 Pull Request
  4. 04保留或丢弃开发分支

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mavscui/agent-skills-hunter --skill finishing-a-development-branch

安装后在 Claude Code 中输入/finishing-a-development-branch确认已加载。

详细介绍

完成开发分支

概述

通过提供清晰的选项并执行所选工作流,引导完成开发工作。

核心原则: 验证测试 → 提供选项 → 执行选择 → 清理。

开始时宣布:“我将使用 finishing-a-development-branch 技能来完成这项工作。”

流程

第 1 步:验证测试

提供选项前,先验证测试是否通过:

# Run project's test suite
npm test / cargo test / pytest / go test ./...

如果测试失败:

Tests failing (<N> failures). Must fix before completing:

[Show failures]

Cannot proceed with merge/PR until tests pass.

停止。不要继续第 2 步。

**如果测试通过:**继续第 2 步。

第 2 步:确定基准分支
# Try common base branches
git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null

或者询问:“此分支是从 main 分出的——这样对吗?”

第 3 步:提供选项

请准确提供以下 4 个选项:

Implementation complete. What would you like to do?

1. Merge back to <base-branch> locally
2. Push and create a Pull Request
3. Keep the branch as-is (I'll handle it later)
4. Discard this work

Which option?

不要添加说明——选项应保持简洁。

第 4 步:执行选择
选项 1:在本地合并
# Switch to base branch
git checkout <base-branch>

# Pull latest
git pull

# Merge feature branch
git merge <feature-branch>

# Verify tests on merged result
<test command>

# If tests pass
git branch -d <feature-branch>

然后:清理工作树(第 5 步)

选项 2:推送并创建 PR
# Push branch
git push -u origin <feature-branch>

# Create PR
gh pr create --title "<title>" --body "$(cat <<'EOF'
## Summary
<2-3 bullets of what changed>

## Test Plan
- [ ] <verification steps>
EOF
)"

然后:清理工作树(第 5 步)

选项 3:保持现状

报告:“保留分支 。工作树保留在 。”

不要清理工作树。

选项 4:丢弃

先确认:

This will permanently delete:
- Branch <name>
- All commits: <commit-list>
- Worktree at <path>

Type 'discard' to confirm.

等待用户输入准确的确认文本。

如果确认:

git checkout <base-branch>
git branch -D <feature-branch>

然后:清理工作树(第 5 步)

第 5 步:清理工作树

适用于选项 1、2、4:

检查当前是否位于工作树中:

git worktree list | grep $(git branch --show-current)

如果是:

git worktree remove <worktree-path>

**对于选项 3:**保留工作树。

快速参考

选项合并推送保留工作树清理分支
1. 在本地合并✓--✓
2. 创建 PR-✓✓-
3. 保持现状--✓-
4. 丢弃---✓(强制)

常见错误

跳过测试验证

  • **问题:**合并有问题的代码,创建失败的 PR
  • **解决方法:**提供选项前始终验证测试

开放式提问

  • 问题:“接下来该做什么?”→ 含义不明确
  • **解决方法:**准确提供 4 个结构化选项

自动清理工作树

  • **问题:**可能还需要工作树时将其删除(选项 2、3)
  • **解决方法:**仅在选项 1 和 4 中清理

丢弃前不确认

  • **问题:**意外删除工作内容
  • **解决方法:**要求输入“discard”进行确认

危险信号

绝不:

  • 在测试失败时继续
  • 不验证合并结果的测试就进行合并
  • 未经确认就删除工作内容
  • 未经明确请求就强制推送

始终:

  • 提供选项前验证测试
  • 准确提供 4 个选项
  • 获取选项 4 的输入确认
  • 仅为选项 1 和 4 清理工作树

集成

由以下内容调用:

  • subagent-driven-development(第 7 步)——所有任务完成后
  • executing-plans(第 5 步)——所有批次完成后

配合使用:

  • using-git-worktrees——清理该技能创建的工作树

评论

支持 Markdown