SuperAPI AI 工具集

pr-splitter

编程与开发

查看项目

更新于 10-16 00:06

技能介绍

用途:把大型、复杂、杂乱或难以审查的拉取请求拆分成多个更小、可独立审查的 PR,并规划堆叠式(stacked)PR、从原变更中提取相互独立的改动。

主要能力与流程:

  1. 先做快照:检查 git status,创建不可变本地引用 git branch backup/original-large-pr,拆分完成前不得删除或改写原分支。
  2. 清点原 PR:查看 git diff --stat <base>...HEAD、git diff --name-only <base>...HEAD、git log --oneline <base>..HEAD;按审查单元分类改动(准备/重构、API/类型、行为、测试、文档、清理、生成/锁文件)。
  3. 建本地草稿:把拆分笔记写入未提交的 .notes/pr-split.md,确保该目录被忽略或保持未跟踪,除非用户明确要求否则不提交。
  4. 选择拆分形态:后置工作依赖前置用堆叠 PR;真正独立用并行 PR;共享准备改动解锁独立工作时用 foundation + 并行跟进。
  5. 安全提取:优先从正确基线拉新分支再做选择性恢复;整文件用 git checkout backup/original-large-pr -- path/to/file,混合文件用 hunk 级 git restore -p --source backup/original-large-pr -- path/to/file;每个 PR 保持可独立构建和审查。
  6. 独立验证:针对该 PR 范围运行最窄的相关 build、typecheck、lint 和测试;除计划明确要求外,不要把测试、文档或生成文件与其验证的代码分离。
  7. 漂移管理:以审查通过后的改为新事实来源;改动前置 PR 后把后续 PR rebase 到其上,冲突按已审查方向解决;用 backup/original-large-pr 对照找出剩余意图,而非强求逐字节一致,并在草稿中记录有意差异。
  8. 重写栈后用 git range-diff 理解变化,更新堆叠 PR 时向审查者总结有意义的结果。

PR 描述模式:保持面向审查者的简洁结构(Summary、Scope、Intentionally excluded、Verification),不把完整拆分账本写进描述。

Changesets:每个拆分 PR 必须携带自己作用域的 changeset,删除从原分支带过来的 changeset,用 pnpm changeset -s -m "your scoped message" (--major | --minor | --patch) pkg-name 新建,仅包含本 PR 实际改动的包,版本递增类型匹配范围(准备/重构通常 patch,新增 API 通常 minor,破坏性改动 major)。

常见失败模式:跨文件行为按文件拆、把测试与代码分开、后续 PR 无法编译、强制推送却不给审查者总结、过早删原分支、解冲突时回退审查反馈、每个拆分 PR 保留原 changeset。

默认输出:提议的 PR 序列、分支策略、草稿路径与初始内容、提取命令、每个 PR 的验证计划、漂移管理计划。