关于 ship
Ship 是用于当前分支的顺序式发布技能,仅在明确调用时运行。它协调代码评审、简化代码、提交并推送、创建 PR,以及跟进至 PR 可合并。
主要功能
- 01依据 AGENTS.md 评审差异
- 02简化修改过的代码
- 03提交并推送更改
- 04创建拉取请求
- 05跟进至可合并状态
适用场景
- 01准备分支以发布
- 02创建并推送经过评审的 PR
- 03处理范围内的 PR 反馈与 CI 问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ millionco/ react-doctor --skill ship安装后在 Claude Code 中输入/ship确认已加载。
详细介绍
发布
针对当前分支的顺序发布流水线。仅在明确调用时运行——它会提交、更改远程仓库并创建 PR。
每个阶段都委托给现有技能。按顺序运行,阶段仍有未解决的问题时不要进入下一阶段。
复制此检查清单并跟踪进度:
Ship progress:
- [ ] 1. Review the diff against AGENTS.md
- [ ] 2. Deslop the touched code
- [ ] 3. Commit and push
- [ ] 4. Open the PR
- [ ] 5. Babysit to merge-ready
1. 根据 AGENTS.md 进行审查
先阅读 AGENTS.md(其中的规则会变化),然后对本分支的差异运行 /review,并依据这些规则进行判断。继续之前先修复确实存在的违规。只有当修复会改变行为或扩大范围时,才暂停并询问用户。
2. 精简
运行 /deslop(../deslop/SKILL.md),在保留功能的同时简化最近修改的代码,包括其 truffler 重复项合并环节。提交前应用这些改进。
3. 提交并推送
- 仅暂存预期的更改;绝不提交机密信息。
- 发布包的行为发生变化时,先添加 changeset(遵循
/rule-validate的 Changeset 部分);仅在仅涉及私有内容、文档、测试或工具的更改时跳过,并说明原因。 - 提交前运行适用于此次更改的仓库检查:
nr test、nr lint、nr typecheck、nr format:check。 - 按照仓库风格撰写简洁的提交消息,聚焦于原因。
- 推送分支;首次推送时使用
-u设置上游分支。 - Git 安全要求:不得强制推送到
main,不得跳过钩子,不得更改git config。
4. 创建 PR
使用 gh pr create 创建 PR,并按照 /rule-validate(../rule-validate/SKILL.md)中的 PR Description 结构撰写正文:Why(包含前后对比)、What changed、Eval results(未运行 RDE 时省略表格)、Test plan。通过 heredoc 传入正文。返回 PR URL。
5. 跟进
运行 /babysit,推动 PR 达到可合并状态:在保留原意的前提下解决合并冲突,分类处理未解决的评论(包括 Bugbot),并循环修复范围内的 CI 问题,直到 PR 可合并、检查全部通过且评论均已分类处理。报告结果,不要合并。
停止条件
出现以下情况时暂停并询问用户:
- 审查或跟进发现会扩大范围或改变预期行为的更改。
- 合并冲突反映了两个分支上确实相互冲突的意图。
- 即使合并了最新基线,CI 仍因本分支范围之外的原因失败。
评论
支持 Markdown