How to install finishing-a-development-branch
install finishing-a-development-branch
# install the superpowers-zh pack with the skills CLI
npx skills add jnMetaCode/superpowers-zh# or add only this skill to Claude Code: copy the folder
skills/finishing-a-development-branch/
# into
~/.claude/skills/finishing-a-development-branch/ (all projects)
.claude/skills/finishing-a-development-branch/ (one project)
1# 收尾一个开发分支23## 概述45**核心原则:** 验证测试 → 检测环境 → 展示选项 → 执行选择 → 清理。67**开始时宣告:** "我正在使用 finishing-a-development-branch 技能来收尾这份工作。"89## 步骤 1:验证测试1011运行项目的完整测试套件(`npm test` / `cargo test` / `pytest` / `go test ./...`)。1213**如果测试失败**,报告失败并停下——菜单是在测试全绿之后才出现的:1415```16测试失败(<N> 个)。完成之前必须先修:1718[展示失败详情]19```2021**如果测试通过:** 继续步骤 2。2223## 步骤 2:检测环境2425```bash26GIT_DIR=$(cd "$(git rev-parse --git-dir)" 2>/dev/null && pwd -P)27GIT_COMMON=$(cd "$(git rev-parse --git-common-dir)" 2>/dev/null && pwd -P)28# 现在就捕获 —— 此刻还在工作区里面。步骤 5 会切换目录,29# 而清理(步骤 6)需要这个值30WORKTREE_PATH=$(git rev-parse --show-toplevel)31```3233这决定了展示哪种菜单、以及清理方式:3435| 状态 | 菜单 | 清理 |36|------|------|------|37| `GIT_DIR == GIT_COMMON`(普通仓库) | 标准 3 个选项 | 无 worktree 可清理 |38| `GIT_DIR != GIT_COMMON`,命名分支 | 标准 3 个选项 | 按来源判断(见步骤 6) |39| `GIT_DIR != GIT_COMMON`,分离 HEAD | 收敛为 2 个选项(不含合并) | 由外部管理——原地别动 |4041## 步骤 3:确定基础分支4243基础分支就是这份工作从哪儿分出来的那个——通常在计划里、对话里,或者分支的 upstream 里已经写明了。如果还不知道,就问:"这个分支是从 <你的最佳猜测> 分出来的,对吗?"**合并之前先确认:合并到错误的基础分支,代价很高。**4445## 步骤 4:展示选项4647**普通仓库和命名分支 worktree——精确展示这 3 个选项:**4849```50实现已完成。你想怎么做?51521. 本地合并回 <base-branch>532. 推送并创建 Pull Request543. 保留分支不动(我稍后自己处理)5556选哪个?57```5859**分离 HEAD——精确展示这 2 个选项:**6061```62实现已完成。你当前处于分离 HEAD(由外部管理的工作区)。63641. 作为新分支推送并创建 Pull Request652. 保持原样(我稍后自己处理)6667选哪个?68```6970**照原文展示菜单**——简洁,每个选项都来自上面的列表。**丢弃工作只在你的人类伙伴明确提出时才发生**(见下方"如果你的人类伙伴要求丢弃这份工作")。等他们回答;集成与否是他们的决定。7172## 步骤 5:执行选择7374### 选项 1:本地合并7576```bash77# 切到主仓库根目录,保证 CWD 安全78MAIN_ROOT=$(git -C "$(git rev-parse --git-common-dir)/.." rev-parse --show-toplevel)79cd "$MAIN_ROOT"80…
Excerpt shown under the repository's MIT license.
