用途
open-pr 是一个面向 AI 智能体的技能,用于引导智能体按照仓库约定创建符合规范的 Pull Request,并完成测试覆盖与评审工作流。它来自 significant-gravitas/autogpt 仓库,目标是在开 PR 前保证改动质量、在开 PR 后推动评审直至 CI 通过。
主要能力
该技能覆盖 PR 生命周期的多个环节:
- 提交前检查:确保所有改动已提交、分支已推送到远端(git push -u origin <branch>),并在整个仓库(而非仅改动文件)运行 linter/formatter 并提交修复。
- 测试覆盖:验证既有行为未被破坏,识别改动涉及的模块并运行对应测试套件;为新功能、端点或行为变更补充测试。若无法在本地运行完整测试套件,需在测试计划中说明已运行和未运行的测试。
- 按模板创建 PR:读取 .github/PULL_REQUEST_TEMPLATE.md 并逐字用作 PR 正文,保留 ### Why / What / How、### Changes 🏗️、### Checklist 📋 等章节标题与格式,用实际内容替换 HTML 注释提示,不预先勾选复选框,不修改模板结构。
- 标题规范:PR 标题须使用 conventional commit 格式,例如 feat(backend): add new block、fix(frontend): resolve routing bug、dx(skills): update PR workflow,完整 scope 列表参见 CLAUDE.md。
- 评审工作流:根据是否具备可测试工作区,选择不同的评审路径。
使用方式
创建 PR 时使用 gh pr create,并指定 base 分支(未提供 [base-branch] 时默认 dev),通过 --body-file 避免 shell 对反引号和特殊字符的解释。资料给出的命令示例为:
BASE_BRANCH="${BASE_BRANCH:-dev}"
PR_BODY=$(mktemp)
cat > "$PR_BODY" << 'PREOF'
<filled-in template from .github/PULL_REQUEST_TEMPLATE.md>
PREOF
gh pr create --base "$BASE_BRANCH" --title "<type>(scope): short description" --body-file "$PR_BODY"
rm "$PR_BODY"
评审阶段分两种情况:
- 若拥有可测试工作区(docker、运行中的后端等):运行 /pr-test 使用 docker compose、agent-browser 和 API 调用进行端到端手动测试;随后运行 /pr-review 进行正确性、安全性、代码质量和测试缺口的自审。
- 若没有可测试工作区(常见于在 worktree 中运行、没有完整技术栈的智能体):先在本地运行 /pr-review 捕捉明显问题,创建 PR 后评论 /review 触发评审机器人,并每 30 秒轮询一次评审结果,使用 gh api repos/Significant-Gravitas/AutoGPT/pulls/{N}/reviews --paginate 及 GraphQL inline threads 查询。机器人通常在 30 分钟内响应。在机器人评审返回前不得继续或合并。
创建 PR 后触发评审的示例命令:
PR_NUMBER=$(gh pr view --json number -q .number)
gh pr comment "$PR_NUMBER" --body "/review"
处理评审反馈时运行 /pr-address,它会循环直到 CI 通过且所有评论解决。
关联技能
- /pr-test:使用 docker compose、agent-browser、API 调用进行端到端测试,适用于有运行中工作区的场景。
- /pr-review:审查正确性、安全性、代码质量,适用于请求人工评审之前。
- /pr-address:处理评审者评论并循环直到 CI 通过,适用于评审意见到达之后。
适用场景
适用于 AI 智能体在 significant-gravitas/autogpt 仓库中提交代码改动并需要创建、评审 Pull Request 的流程,尤其适合需要遵循仓库模板、conventional commit 标题规范和评审机器人流程的自动化开发场景。
限制
该技能明确要求:不得在存在已知回归的情况下开 PR;不得预先勾选模板复选框;不得修改模板结构、重命名章节或删除检查项;在评审机器人返回前不得继续或合并;未经人工批准不得合并。资料未提供该技能的收费、价格、平台支持范围等信息。