AgentSkillsCN

finishing-a-development-branch

当功能实现完毕、各项测试均已通过,而您需要决定如何整合这些工作时,可使用此功能——通过呈现合并、PR或清理等结构化的选项,引导开发工作的顺利完成。

SKILL.md
--- frontmatter
name: finishing-a-development-branch
description: 當實作完成、所有測試通過,且你需要決定如何整合工作時使用 - 透過呈現合併、PR 或清理的結構化選項來指導開發工作的完成

完成開發分支

概述

透過呈現清晰的選項並處理所選的工作流程來指導開發工作的完成。

核心原則: 驗證測試 → 呈現選項 → 執行選擇 → 清理。

開始時宣布: "我正在使用 finishing-a-development-branch 技能來完成這項工作。"

流程

步驟 1:驗證測試

在呈現選項之前,驗證測試通過:

bash
# 執行專案的測試套件
npm test / cargo test / pytest / go test ./...

如果測試失敗:

code
測試失敗(<N> 個失敗)。必須在完成前修復:

[顯示失敗]

在測試通過之前無法進行合併/PR。

停止。不要進入步驟 2。

如果測試通過: 繼續步驟 2。

步驟 2:確定基礎分支

bash
# 嘗試常見的基礎分支
git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null

或詢問:"這個分支是從 main 分出來的 - 對嗎?"

步驟 3:呈現選項

精確呈現這 4 個選項:

code
實作完成。你想做什麼?

1. 在本地合併回 <base-branch>
2. 推送並建立 Pull Request
3. 保持分支現狀(我稍後處理)
4. 捨棄這項工作

選擇哪個?

不要添加說明 - 保持選項簡潔。

步驟 4:執行選擇

選項 1:本地合併

bash
# 切換到基礎分支
git checkout <base-branch>

# 拉取最新
git pull

# 合併功能分支
git merge <feature-branch>

# 在合併結果上驗證測試
<test command>

# 如果測試通過
git branch -d <feature-branch>

然後:清理工作樹(步驟 5)

選項 2:推送並建立 PR

bash
# 推送分支
git push -u origin <feature-branch>

# 建立 PR
gh pr create --title "<title>" --body "$(cat <<'EOF'
## 摘要
<2-3 個變更要點>

## 測試計劃
- [ ] <驗證步驟>
EOF
)"

然後:清理工作樹(步驟 5)

選項 3:保持現狀

報告:"保持分支 <name>。工作樹保留在 <path>。"

不要清理工作樹。

選項 4:捨棄

先確認:

code
這將永久刪除:
- 分支 <name>
- 所有提交:<commit-list>
- 位於 <path> 的工作樹

輸入 'discard' 確認。

等待精確確認。

如果確認:

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

然後:清理工作樹(步驟 5)

步驟 5:清理工作樹

對於選項 1、2、4:

檢查是否在工作樹中:

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

如果是:

bash
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 - 清理該技能建立的工作樹