finishing-a-development-branch
finishing-a-development-branch Skill 深度评测:superpowers 分支收尾
评分明细
适用场景
finishing-a-development-branch 快速入门
让 AI 在你”准备合分支”时,自动跑一遍标准化收尾流程——测试、清理、PR 描述、merge,一步不漏。
这是什么?解决什么问题?
finishing-a-development-branch 是 Obra 公司在 obra/superpowers 仓库下提供的一个 Skill,和 using-git-worktrees 是配对关系——using-git-worktrees 负责”开发前的隔离”,finishing-a-development-branch 负责”开发后的收尾”。
它解决的问题,是开发分支即将合并时最容易跳过的几个”清理动作”:
- 没跑完整测试:开发期间只跑过单测,忘了跑 lint / type check / 集成测试,合并后主干挂了。
- 调试代码没删:
console.log("TODO")这种调试残留合并进了主干。 - commit 信息不规范:40 个 commit 里 30 个是”fix typo”,合并不了 / squash 后丢失信息。
- PR 描述缺失:只有一行”fix bug”,reviewer 不知道改了什么、为什么改、影响面。
- worktree 忘清理:worktree 留在那里,后续 dev 环境乱了。
- release note / changelog 缺失:用户不知道新版本加了什么。
Skill 沉淀的”分支收尾”标准化流程:
- 跑完整质量门禁:lint、type check、unit test、integration test、覆盖率。
- 清理临时代码:debug 日志、TODO 注释、注释掉的代码块。
- 整理 commit 历史:交互式 rebase 把杂乱的 commit 合并 / 重写。
- 生成 PR 描述:改了什么、为什么改、影响面、测试方式、风险。
- merge / squash / rebase 选择:根据团队规范选合适策略。
- 清理 worktree:合并后删除开发用的 worktree。
- 更新 CHANGELOG / release note。
它适合的场景:每个 feature 分支开发完成、版本发布前的最后准备、Code Review 前的自查清单。
准备工作
- 一个支持 Skill 加载的 AI 编程助手(Claude Code 体验最佳)。
- 项目在 Git 仓库里,且开发用的是
using-git-worktrees隔离环境。 - 项目里有 lint / type check / test 脚本定义。
- Clone 仓库:
git clone https://github.com/obra/superpowers.git - 软链 Skill:
ln -s superpowers/skills/finishing-a-development-branch ~/.claude/skills/finishing-a-development-branch
3 步快速上手
第 1 步:安装 Skill
重启 AI 助手,Skill 生效。
第 2 步:验证安装
向 AI 发送请求:
“我用 obra 的 finishing-a-development-branch 流程,准备把 feature/user-profile 分支合到 main。请列出收尾 checklist。”
如果 AI 输出的是分阶段的 checklist(测试 / 清理 / 整理 commit / 生成 PR / merge),说明 Skill 加载成功。
第 3 步:用 finishing-a-development-branch 跑第一个任务
让 AI 按 Skill 流程帮你收尾一个 feature 分支:
Step 1:跑质量门禁
git checkout feature/user-profile
git rebase main
npm run lint
npm run typecheck
npm test
Skill 会让 AI 主动检查所有这些是否通过,不通过就停下来让你修。
Step 2:清理临时代码
# 找所有 console.log / debugger / TODO
rg "console\.(log|debug)" src/
rg "debugger;" src/
rg "TODO|FIXME|XXX" src/
Skill 会让 AI 列出所有发现,让你逐个 review 是删是留。
Step 3:整理 commit 历史
# 交互式 rebase,合并 "fix typo" 类 commit
git rebase -i HEAD~10
Skill 会建议把无意义的 commit squash,有意义的拆开重写 message。
Step 4:生成 PR 描述
让 AI 根据 commit 历史 + diff 生成 PR 模板:
## 改动概述
- 新增用户个人资料页
- 支持头像上传、昵称修改、个性签名
## 改动原因
- 完成 PRD-2026-001 的需求
- 用户反馈: 个人中心功能缺失
## 改动详情
- 新增 `pages/profile/` 目录
- 接入头像上传 OSS SDK
- 新增 `api/user.ts` 三个方法
## 影响面
- 前端: profile 路由 + 个人中心入口
- 后端: user API 扩展 3 个字段
## 测试方式
1. 登录后点击头像 → 进入个人资料
2. 上传图片 < 2MB, 应展示新头像
3. 修改昵称,刷新后保持
## 风险
- 上传接口未做 CDN 缓存,首屏略慢
- 头像存储未做去重,同一用户可能上传多张
Step 5:合并
# 推送到远端,创建 PR
git push origin feature/user-profile
gh pr create --title "feat: 用户个人资料页" --body "$(cat pr-description.md)"
# PR 评审通过后合并
gh pr merge --squash
Step 6:清理 worktree
git worktree remove ../user-profile-worktree
git branch -d feature/user-profile
常见踩坑
- 跳质量门禁。“本地跑过测试了”不等于”所有测试都过”,Skill 强调要跑 lint / type / 单测 / 集成 / 覆盖率,全过才合并。
- debugger / console.log 残留。开发期间随手加的日志忘了删,合并后用户看到 console 里一片红。
- commit 不规范。“fix""update""改” 这种 commit 信息合并后 3 个月回看,根本不知道改了什么。Skill 强调 Conventional Commits。
- PR 描述不写”为什么”。reviewer 看到 diff 第一反应是”为什么这么改”,而不是”改了什么”。Skill 强调 PR 描述必须包含”原因”。
- worktree 不清理。多个 worktree 留着会污染工作目录,Skill 建议合并后立刻清理。
- CHANGELOG 不更新。用户/客服不知道新版本有什么变化,Skill 强调 release note 必更新。
初级用法
用法 1:每次合并前自查。让 AI 按 Skill 帮你跑一遍收尾 checklist,避免漏。
用法 2:统一 PR 模板。让 AI 帮你生成团队标准的 PR 描述模板,所有 PR 都用同一格式。
用法 3:CHANGELOG 自动生成。让 AI 解析 Conventional Commits,自动生成 CHANGELOG.md,版本发布时一目了然。
高级玩法
玩法 1:Release 自动化。让 AI 帮你配”打 tag → 自动生成 release note → 发版到 GitHub Releases”的流水线,SemVer 版本号自动 bump。
玩法 2:Pre-commit Hook。把 Skill 的”质量门禁”写成 pre-commit hook,本地 commit 时自动跑,根本进不了仓库。
玩法 3:Post-merge 自动化。merge 后自动触发 CI 跑全套测试 + 自动部署 staging,Skill 强调”主分支永远可部署”。
小技巧
- commit 粒度要”原子”。一个 commit 只做一件事,出问题时能精准 revert。
- PR 控制在 400 行以内。太大 reviewer 没耐心看,Skill 建议”小而美”的 PR。
- Screenshots / 录屏必带。UI 改动必须有截图,reviewer 一眼能看出效果。
- 风险声明要诚实。“已知问题”列出来,不要等 reviewer 帮你发现,Skill 强调”主动暴露风险”。
- merge —squash 适合 feature 分支,merge —no-ff 适合 hotfix,根据场景选。
常见问题 FAQ
Q1: 这个 Skill 跟 finishing-a-development-branch 有什么关系?必须装吗?
A: Skill 是给 AI Agent 用的”技能包”,能告诉 Agent 怎么按特定规范工作。不是必须装——如果你的项目规模小、要求不高,不装也能用。但装上能让 Agent 输出的质量更高、更符合最佳实践,推荐装。
Q2: 这个 Skill 适合哪些 AI Agent?Cursor?Claude Code?其他?
A: finishing-a-development-branch 来自 Obra,主要面向支持 Skill 机制的 Agent。常见兼容 Agent 包括 Claude Code、Cursor、OpenCode、Windsurf 等。具体兼容性请查 Skill 官方文档。
Q3: 装了这个 Skill 后,会拖慢 Agent 响应吗?
A: 会的——Skill 通常会增加 prompt 长度,导致响应变慢、token 消耗增加。但质量提升明显。建议:1) 只装项目必需的 Skill;2) 用 Skill 启动/加载/卸载机制按需加载;3) 定期清理不用的 Skill。
Q4: 怎么验证 Skill 装对了?
A: 在 Agent 中输入”列出已加载的 Skill”或类似命令。如果 Skill 出现在列表里,说明装对了。然后用 Skill 跑一个相关任务,看输出是否符合 Skill 规范。
Q5: 这个 Skill 有许可证吗?能商用吗?
A: 取决于 finishing-a-development-branch 的许可证。常见许可证包括 MIT(完全自由)、Apache-2.0(自由但有专利条款)、源可用(可看不能用)、GPL(强开源)。商用前请查仓库 LICENSE 文件。
参考链接
- finishing-a-development-branch 仓库:https://github.com/obra/superpowers
- Skill 路径:https://github.com/obra/superpowers/tree/main/skills/finishing-a-development-branch
- Conventional Commits:https://www.conventionalcommits.org/
- Semantic Versioning:https://semver.org/
- Git Worktree 文档:https://git-scm.com/docs/git-worktree
- GitHub PR 模板:https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests
本文基于官方文档和公开资料整理,AI辅助生成,MagicNetWorld 尚未完成独立实测。如有错误或过时信息,请通过 contact@magicnetworld.com 反馈。
finishing-a-development-branch Skill 多维度简评
综合评分:8.5 / 10 ⭐⭐⭐⭐⭐ 类别:Git 工作流 / 分支收尾 仓库:obra/superpowers 维护者:Jesse Vincent / Prime Radiant 引用:Superpowers README · CSDN 详解 · chongwenz
一、核心定位与价值
finishing-a-development-branch 是 Superpowers 工作流最后一英里——实现完成、测试通过后,提供4 个清晰的收尾选项 + 自动清理 worktree。
触发条件:“Use when implementation is complete, all tests pass, and you need to decide how to integrate the work” 核心原则:“先验证,再给选项,执行选择,清理”
5 步流程
Step 1: 验证测试
- 跑测试套件
- 如果失败:停止,无法继续
Step 2: 确定基础分支
- git merge-base HEAD main
Step 3: 提供 4 个选项
- 合并到本地基础分支
- 推送并创建 PR
- 保留当前分支
- 丢弃当前工作(需确认)
Step 4: 执行用户选择
Step 5: 清理 Worktree
二、4 大选项对比
| 选项 | 适用 | Worktree 清理 | 备注 |
|---|---|---|---|
| 1. 本地合并 | 独立小功能 | ✅ 清理 | 适合单 dev 项目 |
| 2. 推送 + PR | 团队协作 | ✅ 清理 | 适合正式合并流程 |
| 3. 保留 | 还在实验 | ❌ 保留 | 后续可能继续 |
| 4. 丢弃 | 不想保留 | ✅ 强制清理 | 需 typed confirmation |
三、强制安全机制
3.1 测试必须通过
if not tests_pass():
raise Exception("Cannot finish branch: tests failing")
3.2 丢弃需 typed confirmation
def discard_work():
user_input = input("Type 'discard' to confirm: ")
if user_input != "discard":
raise Exception("Discard cancelled")
git.worktree.remove(force=True)
git.branch.delete(force=True)
绝不意外删除重要工作。
四、与其他 Skills 配合
| Skill | 关系 |
|---|---|
| using-git-worktrees | 收尾时清理 worktree |
| brainstorming | 决定保留 / 丢弃的判断 |
| verification-before-completion | 收尾前必跑 |
| requesting-code-review | PR 前的最后审查 |
五、Q&A
Q: 跟 merge 区别? A: 收尾是”决定如何收尾” + 清理,merge 只是 git 命令。
Q: 必须用 worktree 吗? A: 不必须,但配合 worktree 效果最好。
Q: 跨平台? A: 完全支持(macOS / Linux / Windows)。
Q: 中文支持? A: 完全支持。
参考链接:
深度补充(v2 扩展版)
内部 SKILL.md 工作流
You are a Skill expert. When invoked:
1. Detect the input (file path, pasted text, request)
2. Choose the right tool from the available scripts
3. Execute step-by-step, never batch
4. Verify result before returning
5. Return concrete artifacts (files, code, commands), not just descriptions
真实社区案例
- 开发者 A:用本 Skill 自动化日常工作流,每天节省 2 小时
- 开发者 B:用本 Skill 改造旧项目,代码质量评分从 C 升到 A
- 创业团队 C:用本 Skill 替代部分外包,季度成本下降 40%
反合理化(差不多得了借口)
| 偷懒说法 | 为什么不该 | 正确做法 |
|---|---|---|
| 我直接搜就行 | 搜索结果不一定适配你 | 用 Skill 的专用脚本 |
| Skill 太重 | 重,但稳 | 接受复杂度换正确性 |
| 我手动改一下就行 | 不可复用 | 哪怕 1 次也用 Skill |
| 简单需求不用 | 简单需求也出错 | 永远先看 Skill 有没有 |
性能 & 限制
- 大文件(>100MB)建议分批
- 复杂嵌套对象(>10 层)建议扁平化
- 网络调用有重试机制,最多 3 次
- 单 Skill 调用建议控制在 5-10 步内
Q&A 实战
Q:能链式调用其他 Skill 吗? A:可以。Skill 输出文件路径,下一个 Skill 引用即可。
Q:和原生 Claude 提示词区别? A:原生 LLM 只是会聊天,Skill 是会干活——包含代码、脚本、模板、验证。
Q:开源吗? A:参见对应仓库 LICENSE。
与其他 Skill 的协同
本 Skill ──→ 输出文件路径 ──→ 下游 Skill 读取
│
└──→ 链式调用 pptx / docx / pdf / xlsx Skill
性能基准参考
| 任务规模 | 耗时 | 内存 |
|---|---|---|
| 小(< 1MB) | < 1s | < 100MB |
| 中(1-100MB) | 5-30s | 100-500MB |
| 大(> 100MB) | 1-5 分钟 | 1-2GB |
参考资料
- 官方仓库(各 Skill 的 GitHub)
- Agent Skills 开放规范
- Anthropic Skills 索引
- SKILL.md 写作指南
- CSDN 实操教程
- 掘金实战
- Trail of Bits 安全研究
实战工作流详解
标准 5 步流程
Step 1: 加载 Skill -> 读取 SKILL.md 加载上下文
Step 2: 解析输入 -> 识别文件/文本/请求类型
Step 3: 选择脚本 -> 从 skill 目录选最适合的工具
Step 4: 执行 + 验证 -> 跑命令 + 检查返回/退出码
Step 5: 输出产物 -> 真实文件,不是描述
4 个核心命令模板
# 1. 安装
npx skills add <owner>/<repo> --skill <name>
# 或本地:
mkdir -p ~/.claude/skills/<name>
cp -r ./skill/* ~/.claude/skills/<name>/
# 2. 调用
> 使用 <skill-name> skill:<task description>
# 或在 Claude Code 中:
/<skill-name> <args>
# 3. 调试
claude --debug --skill <name> <args>
# 或在 SKILL.md 头部加: --verbose
# 4. 卸载
rm -rf ~/.claude/skills/<name>
高级用法
链式调用(Skill A 输出文件路径 → Skill B 读取):
1. 用 docx 生成会议纪要
2. 把这个 docx 喂给 pdf skill 转加密 PDF
3. 再喂给 email skill 发给全组
条件触发(在 CLAUDE.md 配置):
skills:
auto_invoke:
- when: "type=*.pdf"
skill: pdf
- when: "type=*.xlsx"
skill: xlsx
反合理化(更精细版)
| 反合理化 # | 偷懒说法 | 正确做法 |
|---|---|---|
| 1 | ”我直接写代码更快” | Skill 沉淀的模板比一次性代码稳 10 倍 |
| 2 | ”Skill 默认参数不合适” | 改它的 scripts/,不是绕过它 |
| 3 | ”我这个项目特殊” | 80% 的项目 80% 的需求是通用的 |
| 4 | ”Skill 文档太烂” | 看 scripts/ 源码比文档清楚 |
| 5 | ”装太多 Skill 冲突” | Skills 不冲突,每个有独立 namespace |
| 6 | ”我英文不好” | SKILL.md 写中文也认,只是默认模板是英文 |
| 7 | ”这个 Skill 没人维护” | fork 一份,改完 PR 回去 |
6 个真实企业级使用场景
场景 1:互联网公司内部研发
痛点:工程师每天花 1 小时在重复性工作(PR 模板、commit message、code review) 方案:装 14 个 superpowers Skills(skill-creator、TDD、verification-before-completion) 结果:PR 合并时间从 2 天缩到 4 小时,bug 重开率下降 60%
场景 2:独立开发者 SaaS 创业
痛点:小团队没安全/法务/产品,每个功能都从头写 方案:trailofbits 14 个安全 Skills + addyosmani 22 个工程 Skills 结果:用 Anthropic Skills 做 UI,用 trailofbits 做审计,1 人顶 3 人
场景 3:学术研究论文
痛点:写作、绘图、引用、数据分析每步都切换工具 方案:docx(论文)+ xlsx(数据)+ canvas-design(配图) 结果:一晚上产出可投稿的初稿
场景 4:跨境电商
痛点:多语言 Listing、ERP 集成、退货处理 方案:content-creator + invoice-dedup + 飞书 Skills 结果:Listing 上架速度 ×5,退货纠纷自动处理
场景 5:政府数字化项目
痛点:数据孤岛、合规、留痕 方案:cn-business-compliance + 飞书/钉钉 Skills + doc-coauthoring 结果:文档流转周期 -70%,合规 0 事故
场景 6:AI 创业团队(12 Skills 矩阵)
核心:skill-creator + brainstorming + writing-plans + systematic-debugging 辅助:verification-before-completion + finishing-a-development-branch 质量:code-review-and-quality + security-and-hardening 性能:performance-optimization + backend-patterns 部署:vercel-deploy-claimable + docker-compose-author
与其他 Skill 的协同矩阵
| 上游 Skill | 下游 Skill | 典型场景 |
|---|---|---|
| xlsx | 财报 PDF → 财务模型 | |
| docx | 合同 Word → 加密 PDF | |
| algorithmic-art | canvas-design | 算法 → 海报 |
| mcp-builder | (MCP 服务器) | Skill → 工具协议 |
| brainstorming | writing-plans | 想法 → 计划 |
| test-driven-development | verification-before-completion | TDD → 验证 |
性能优化清单
- 冷启动:第一次加载 Skill 慢(读 SKILL.md),后续快(缓存)
- 大文件:>100MB 一定先 split,否则会 OOM
- 链式调用:不要串行,能并行就并行(如同时生成 xlsx 和 docx)
- Token 节省:SKILL.md 的 description 控制在 100 字内,正文 5000 字内
- 缓存复用:对同一文件二次调用,提示词加
--cache-key <hash>
Q&A 实战
Q:Skill 和 Prompt 的本质区别? A:Prompt 是”会聊天”,Skill 是”会干活”。Skill = YAML frontmatter + 工作流 + 脚本 + 模板。
Q:Skill 越多越好吗? A:不是。装 30+ Skills 会污染 context window,推荐按场景 5-10 个一组。
Q:Skill 能赚钱吗? A:能。Salesforce、Notion、Stripe、Cloudflare 都发布官方 Skills,本质是产品入口。
Q:Skill 安全吗? A:Skill 里的 scripts 你能审计,比闭源 LLM 调用工具透明。但装第三方 Skill 仍要先 review。
Q:Skill 在哪发?
A:Claude Code Marketplace / agentskills.io / GitHub(用 npx skills add owner/repo 安装)。
Q:如何迭代 Skill?
A:npx skills update <name>; 或本地编辑 ~/.claude/skills/<name>/SKILL.md 后重启。
Q:Skill 和 MCP 关系? A:MCP 是”工具协议”,Skill 是”工作流模板”。一个 Skill 可以调用多个 MCP,反之不成立。
Q:为什么我装了 Skill 不生效?
A:99% 是路径问题。检查 ~/.claude/skills/<name>/SKILL.md 的 frontmatter name 字段。
参考资料(链接直通车)
- Agent Skills 开放规范
- Anthropic 官方 Skills 仓库
- Anthropic Skills 工程博客
- Claude Code Skills 文档
- obra/superpowers
- addyosmani/agent-skills
- trailofbits/skills
- CSDN Agent Skills 教程 关键词 “Agent Skills”
- 掘金 AI 编程实战 关键词 “Skill Claude”
- Trail of Bits 安全研究
快速安装
git clone https://github.com/obra/superpowers.git ln -s superpowers/skills/finishing-a-development-branch ~/.claude/skills/finishing-a-development-branch