pr 是什么?

pr 不是单一工具,而是一类 Agent Skill 的统称。不同来源的 pr Skill 在功能侧重上差异明显,但共同目标是:让 AI 编码助手在创建或更新 Pull Request 时,产出比手写更一致、更可评审的描述。

目前主流的 pr Skill 可以分为几个方向:创建型(生成 PR 描述并推送)、评审型(自动化 PR code review)、整理型(把杂乱提交整理成逻辑清晰的 PR)、以及全流程型(从 issue 到 merge 的完整管线)。

值得注意的是,pr 也被用作教学示例——Claude 官方 Academy 的“创建你的第一个 Skill”课程中,就是用 pr-description 来演示 Skill 的 frontmatter 结构和匹配机制。

pr 的主要功能

PR 描述自动生成。读取 git diff main...HEAD,按照团队既定格式输出描述。常见结构包括 What/Why/Changes、Conventional PR(Intent/Summary/Rationale/Test plan)、以及带表格和文件级拆解的深度模板。

Conventional PR 格式。以 Conventional Commits 为参照,标准化 PR 描述结构:Summary、Changes、Rationale、Test plan。这种格式既方便人类评审,也方便 AI 在后续 code review 中读取“作者意图”。

多平台支持。自动检测 GitHub 或 GitLab,通过 gh 或 glab CLI 创建 PR/MR,处理分支检测、重复 PR 检查、目标分支定位等。

PR 评审循环。部分 pr Skill 专注评审端:并行运行安全审查、可维护性审查、代码质量审查,或逐条处理 PR 评论直到阻塞项清除。

提交历史整理。把当前未提交的 diff 转化为逻辑自洽的 Conventional Commits,便于评审者按提交粒度理解改动。

pr 的核心特色

证据驱动,而非“编造”描述。一个值得注意的设计方向是 write-pr 提出的 3 层证据栈:从 diff 中提取具体文件引用、运行验证命令、用 file:line 标注来源。它强制 AI 基于实际改动写描述,而不是生成看起来合理但未经核实的概括。

模板可校准。pr-perfect 的做法是:让你把团队最近 3 个已合并 PR 的格式喂给 Skill,之后它生成的描述会“像你们团队的”而不是通用模板。Conventional PR 格式则是另一种可复用标准。

草稿优先,人工确认。多数 pr Skill 不会直接推送或创建 PR,而是先展示生成的内容供你调整。openclaw-pr-workflow 甚至要求 PR 以 draft 状态创建,二次确认后才标记 ready。

“不在实现对话里写 PR 描述是浪费。”optimus:pr 的核心理念:PR 描述应该在同一场实现对话中生成,因为那场对话包含了设计决策、非目标、权衡取舍——这些信息是事后单独写描述无法复原的。

pr 可以用来做什么?

快速把功能分支变成可评审的 PR。实现完成后运行 /pr,AI 读取 diff、生成描述、推送并创建 PR。适合日常功能开发收尾。

统一团队 PR 格式。如果你厌倦了每次手动调整标题、摘要、测试计划,pr Skill 可以固化格式,让每个 PR 形状一致。

整理混乱的提交历史。把“wip”“fix typo”“actually fix”这类提交重组为逻辑清晰的 Conventional Commits,再生成 PR。

自动化 PR 评审。不写 PR 而是审 PR:并行运行多个审查视角,输出结构化反馈。

不适合的场景:需要复杂人工判断的架构评审、需要跨仓库协调的发布 PR、以及对 PR 创建有严格合规要求的企业环境。

pr 适合哪些人?

  • 频繁创建 PR 的开发者:把“写描述”这件事从手动切换到自动化。
  • 团队协作中格式不统一的团队:用 Skill 固化 PR 模板,减少评审时的格式摩擦。
  • 使用 AI 编码助手并希望减少上下文切换的人:实现完成后直接说“create a PR”,不用停下来想怎么写。
  • 需要 AI 辅助 PR 评审的维护者:用评审型 Skill 做第一轮自动化筛选。

不太适合:从不写 PR 描述的个人项目、需要高度定制 PR 流程的 monorepo、以及不信任 AI 处理 git 操作的场景。

pr 如何安装?

pr 没有统一的“官方安装入口”,不同来源的安装方式不同:

方式一:通过 skills CLI 安装(通用)

npx skills add <owner>/<repo> --skill <pr-skill-name>

例如从 xpepper/pr-review-agent-skill 安装:

npx skills add xpepper/pr-review-agent-skill/pr-review-loop

方式二:通过 CLI 包安装(pr-skills)

npm install -g pr-skills
pr-skills add --all --global --yes

pr-skills 支持 Cursor、Claude Code、Codex、OpenCode 的目录结构。

方式三:手动复制

多数 pr Skill 是纯 Markdown 文件。按 Agent 的 skills 目录手动复制即可,例如 Claude Code 的 ~/.claude/skills/。

pr 怎么使用?

基本流程(创建型):

  1. 在功能分支上完成实现和提交。
  2. 对 AI 说 “create a PR” 或运行 /pr。
  3. AI 读取 git diff main...HEAD,生成描述预览。
  4. 确认或调整后,AI 推送分支并调用 gh pr create。
  5. 返回 PR URL。

optimus:pr 的推荐工作流:

在实现对话中运行 /optimus:commit,然后立即运行 /optimus:pr。PR 描述会自动填充 Intent(Problem/Scope/Non-goals/Key decisions),这些内容来自实现对话的上下文。之后切换到新对话运行 code review,让评审方读取 PR 描述作为“作者意图”。

pr-perfect 的自定义方式:

把团队已合并 PR 的格式导出到 Skill 的 references 目录,之后生成的描述会模仿你们团队的风格。

pr 使用技巧

在实现对话中写 PR,而不是另起对话。这是 optimus:pr 强调的核心技巧。实现过程中的决策上下文是 PR 描述中最有价值的部分,离开那场对话后就很难复原。

用 PR 描述“喂”给 code review。结构化的 PR 描述不仅方便人类评审,也是 AI code review 的重要输入。Conventional PR 的 Intent 部分直接告诉评审方“这个 PR 想做什么”,让评审聚焦于“是否做到了”。

先整理提交,再写 PR。如果提交历史混乱,先用 prepare-review-commits 之类的 Skill 把 diff 整理成逻辑自洽的提交序列,再生成 PR 描述。评审者可以按提交粒度理解改动,而不是面对一个巨大的混合 diff。

把 PR 创建设为“draft 优先”。openclaw-pr-workflow 的实践:默认以 draft 创建 PR,人工确认后才标记 ready。适合对 PR 质量有较高要求、不希望半成品被误合并的场景。

pr 收费吗?

Skill 本身免费。搜索到的 pr 相关 Skill 均以开源形式发布(MIT 或其他开源许可证),不收取费用。你只需要为使用的 AI 编码助手(Claude Code、Cursor 等)支付订阅费用。

pr 的优点与缺点

维度 优点 缺点
一致性 固化的模板让每个 PR 形状统一,减少格式返工 模板不匹配团队习惯时需要额外校准
上下文利用 在实现对话中生成描述,保留设计决策和权衡 如果实现和 PR 生成分离,描述质量下降
自动化程度 从 diff 到 PR URL 一条命令完成 对 git 操作的自动化需要信任,部分场景需人工确认
生态多样性 创建、评审、整理、全流程均有对应 Skill 同名 Skill 来源众多,选择时需要甄别质量
评审友好 结构化描述为人类和 AI 评审提供作者意图 过度模板化可能产生“填表式”描述,丧失重点

pr 与同类工具对比

vs 手动写 PR 描述。手动描述依赖你对 diff 的记忆和概括能力。pr Skill 直接读取 diff,且可以利用实现对话的上下文。对于改动复杂或时间间隔较久的 PR,Skill 的优势更明显。

vs GitHub PR 模板。模板是静态的,你需要自己填写。pr Skill 是动态的:它读取实际 diff,按模板结构填充内容,甚至根据改动类型调整 sections。

vs Copilot 的 PR 摘要。GitHub Copilot 可以生成 PR 摘要,但通常是通用格式。pr Skill 的可定制性更强:你可以用团队已合并 PR 校准输出风格,或要求特定的章节结构(如文件级拆解、验证清单)。

vs 纯 git 工作流 Skill。一些 Skill 只负责 commit message(如 Conventional Commits)。pr Skill 覆盖更完整的链:从 diff 分析到 PR 创建,commit message 只是其中一环。

pr 常见问题 FAQ

Q:pr Skill 会自动推送代码或创建 PR 吗?
取决于具体 Skill。多数创建型 Skill 会先展示生成内容,确认后才推送。openclaw-pr-workflow 默认以 draft 创建,需要二次确认才标记 ready。评审型 Skill 通常只读,不修改 PR。

Q:pr 和 code review Skill 是什么关系?
互补。pr Skill 负责“把改动说清楚”,code review Skill 负责“检查改动是否正确”。Conventional PR 格式的设计初衷之一,就是让 code review Skill 能读取 PR 描述中的作者意图,从而做更有针对性的评审。

Q:我用的不是 GitHub,pr 能用吗?
部分可以。optimus:pr 同时支持 GitHub(gh)和 GitLab(glab),自动从 remote URL 检测平台。其他 Skill 可能只支持 GitHub。

Q:pr 会修改我的 git 历史吗?
大多数不会。prepare-review-commits 明确标注“Never rewrites history or pushes”。创建型 Skill 通常只是 push 新分支和创建 PR,不 rebase 或 squash 已有提交。

Q:为什么有这么多同名 pr Skill?
因为“PR 工作流”是 AI 编码助手的核心场景之一,不同开发者和团队根据自己的痛点做了不同侧重。选择时看它解决的具体问题:是创建描述、评审、整理提交,还是全流程自动化。

pr 综合评价

pr Skill 解决的是一个真实但常被低估的摩擦:代码写完了,但把它变成“可评审的 PR”还需要额外的心智切换。这个切换包括:回忆改了什么、组织成描述、检查格式是否符合团队规范、然后执行 git/gh 命令。

pr Skill 的价值不在于“AI 替你写 PR”,而在于把 PR 描述还原为它本来的样子:一份从代码改动直接推导出的结构化文档。当描述由 diff 和实现上下文生成时,它更接近事实,而不是事后回忆。

它的门槛在于选择。pr 不是单一产品,而是一类工具的统称。你需要先明确自己的痛点:是描述写得太慢、格式不统一、提交历史混乱,还是评审反馈处理不过来。然后选择对应方向的 Skill。

对于日常在功能分支上工作的开发者,一个创建型 pr Skill(如 optimus:pr 或 pr-perfect)能消除每天多次的小摩擦。对于维护者,评审型 Skill 能做第一轮自动化筛选。两者结合使用时,PR 描述的格式化输出会成为 code review 的“作者意图输入”,形成从创建到评审的闭环。