ship-pr
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseShip a PR
提交 PR
Opening a PR is not the finish line. The finish line is a PR labeled
: verified against the built packages, reviewed by a
fresh pair of eyes, green, and every bot thread handled. A human should only
ever spend time on judgment.
Ready for Human ReviewRun every step. If one cannot run, say which and why in the handoff instead
of skipping it quietly.
创建 PR 并不是终点。真正的终点是 PR 已添加 标签:已针对构建后的包完成验证、由全新视角审阅、状态全绿,且所有 bot 讨论串均已处理。人工应该只把时间花在需要判断的事项上。
Ready for Human Review每一步都必须执行。如果某一步无法运行,应在交接说明中指出具体步骤及原因,而不是悄悄跳过。
1. Checks
1. 检查
Run what CI runs for what you touched, and fix everything:
bash
pnpm check # lint, dead code, typecheck, error codes, peer ranges, docs
pnpm test # or the touched package: pnpm --filter e2e run test:unit
pnpm --filter @e2e-dev/testbed test
pnpm test:web-benchmark # when the runner, web engine, or benchmark changedThen the repo rules cannot see (, "Contracts"):
pnpm checkAGENTS.md- A user-visible change to a published package adds a entry.
.changeset/ - Behavior changes update the matching page in the same change, "not implemented yet" callouts included, and
docs/**/*.mdxwhen it describes the changed surface.skills/e2e/ - A public API change reviews the emitted and updates
.d.ts; a wire change edits the schema, both fixtures, and the producer together.packages/e2e/tests/types/sdk-types.ts - A new build input or benchmark dependency goes into .
.github/filters.yml
针对变更部分运行 CI 会执行的检查,并修复所有问题:
bash
pnpm check # lint、死代码、类型检查、错误码、对等依赖范围、文档
pnpm test # 或针对变更的包:pnpm --filter e2e run test:unit
pnpm --filter @e2e-dev/testbed test
pnpm test:web-benchmark # 当 runner、web engine 或 benchmark 发生变化时然后检查 无法发现的仓库规则(、"Contracts"):
pnpm checkAGENTS.md- 对已发布包的用户可见变更,需要添加一个 条目。
.changeset/ - 行为变更需要在同一次修改中更新对应的 页面,包括 "not implemented yet" 提示;如果
docs/**/*.mdx描述了发生变化的功能范围,也需要同步更新。skills/e2e/ - 公共 API 变更需要检查生成的 ,并更新
.d.ts;wire 变更需要同时修改 schema、两个 fixture 和 producer。packages/e2e/tests/types/sdk-types.ts - 新增构建输入或 benchmark 依赖时,需要将其加入 。
.github/filters.yml
2. Verify
2. 验证
Prove the change with the verify skill on the surface
it touches: the built CLI on the testbed or a benchmark, the MCP server, a
scratch project for , or the docs site. Bug fixes capture main against
the branch. Keep the output and any video for the PR.
init使用 verify skill,在变更涉及的操作面上证明变更有效:可以是 testbed 或 benchmark 上基于构建产物的 CLI、MCP server、用于测试 的临时项目,或文档站点。Bug 修复需要对比 main 与分支来捕获问题。保留输出及所有视频,以供 PR 使用。
init3. Self-review in a fresh context
3. 在全新上下文中自审
The agent that wrote the change does not get to judge it. Spawn a reviewer
with no memory of this conversation (a subagent, or a new session) and give
it references/review-prompt.md with the base
branch filled in. Fix every and finding you agree
with, then rerun steps 1 and 2 for what the fixes touched. For each finding
you reject, keep the one-line reason for the PR body or handoff.
criticalimportantNo way to spawn a reviewer: re-read the whole diff cold against the same
prompt yourself, and say so in the handoff.
编写变更的 Agent 不能自行评判自己的变更。创建一个不记得当前对话上下文的审阅者(subagent 或新会话),向其提供 references/review-prompt.md,并填写 base branch。修复所有你认同的 和 审阅发现,然后针对修复涉及的部分重新执行第 1 步和第 2 步。对于每个未采纳的发现,保留一行原因,以备写入 PR 正文或交接说明。
criticalimportant如果无法创建审阅者:使用相同提示词,以冷静且不受先前上下文影响的方式重新通读整个 diff,并在交接说明中如实注明。
4. Commit and open
4. 提交并创建
- Branch off an up-to-date . Commits follow Conventional Commits.
origin/main - Title and body with the writing-pr skill. The body carries the verification evidence from step 2.
- Open it ready, not draft:
(
gh pr create --base main --title ... --body-file <file> --attach <each screenshot and video>2.99+). The body must carry theghsection## Verifieddescribes; fix a thin one withwriting-pr.gh pr edit --body-file <file> --attach ... - Multi-PR change: open every layer, each based on the one below, before babysitting.
- 从最新的 创建分支。Commit 遵循 Conventional Commits。
origin/main - 使用 writing-pr skill 编写标题和正文。正文需要包含第 2 步的验证证据。
- 创建时就绪,而不是草稿:
(
gh pr create --base main --title ... --body-file <file> --attach <each screenshot and video>2.99+)。正文必须包含gh所描述的writing-pr部分;如果内容过于单薄,使用## Verified修正。gh pr edit --body-file <file> --attach ... - 涉及多个 PR 的变更:在开始跟进之前,先创建每一层 PR,并确保每个 PR 都基于其下方的一层。
5. Babysit
5. 持续跟进
Hand the PR to the babysit skill and run it to the
end: green, threads handled, label. For a stack,
babysit bottom-up; a layer is labeled only when it is ready on its own.
Ready for Human Review将 PR 移交给 babysit skill,并一直运行到结束:状态全绿、讨论串处理完毕,并添加 标签。对于 PR 栈,自底向上进行跟进;只有当每一层单独达到就绪状态后,才能为其添加标签。
Ready for Human ReviewHandoff
交接
Reply to the human with:
- the PR URL and its label state
- how it was verified (surface, what you ran, what you saw, the media)
- what you fixed from review, what you dismissed and why
- anything left for them: escalated threads, parts you could not verify, scope you declined
向用户回复以下信息:
- PR URL 及其标签状态
- 验证方式(操作面、运行的命令、观察到的结果及相关媒体)
- 根据审阅意见修复了什么,以及驳回了哪些发现及其原因
- 仍需用户处理的事项:已升级的讨论串、无法验证的部分,以及拒绝承担的范围