用途
review-prs-cx 是一个 PR 审查与分析工作流,用于处理项目 GitHub 仓库中所有处于打开状态的 Pull Request。它会逐个分析 PR,生成批判性报告,并在获得用户明确批准后,才进行修复、合并等后续操作。该工作流的核心目标是在保证代码质量的同时,保护贡献者的署名与公开记录。
主要能力
- 拉取仓库全部打开的 PR,并逐个获取元数据与 diff。
- 对每个 PR 进行多维度分析:功能评估(是否填补真实空白、是否符合项目架构与路线图、范围是否合理)、代码质量(重复代码、错误处理、命名与风格、TypeScript 类型)、安全性(认证授权、注入漏洞、输入校验、硬编码密钥)、架构(是否遵循既有模式、公共 API 破坏性变更、数据库 schema 与迁移、性能影响)、测试覆盖(是否含测试、边界情况、既有测试是否受影响)。
- 跨层(全局)分析:检查后端改动是否缺少对应前端界面(新页面、按钮、菜单、可编辑字段、开关或状态指示),前端改动是否有后端 API 与数据模型支撑,以及共享层(类型、DTO、校验 schema、路由、中间件)是否完整。
- 生成包含 PR 摘要、改进与收益(按 HIGH/MEDIUM/LOW 标注影响)、风险与问题(CRITICAL/IMPORTANT/MINOR)、评分表(功能相关性、代码质量、安全性、健壮性、测试)、结论与后续步骤的 Markdown 报告。
- 在用户批准后,将修复与冲突解决推回 PR 作者分支,运行测试,再通过 GitHub 合并 PR。
使用方式
该技能以斜杠命令 /review-prs 形式触发,按步骤执行:
- 识别 GitHub 仓库:读取 package.json 的 repository 字段,或使用 git remote origin URL。
- 确保发布分支存在:检查当前分支,若在 main 上则根据 package.json 版本号创建 release/vX.Y.Z 分支并执行 npm version patch --no-git-tag-version 与 npm install。
- 拉取打开的 PR:先用 gh pr list --json number --jq '.[].number' 获取 PR 编号列表(避免 JSON 输出被截断),再逐个用 gh pr view 获取完整元数据,用 gh pr diff 保存 diff 到 /tmp 后读取。
- 将目标为 main 的 PR 基础分支重定向到当前发布分支:使用 gh pr edit <PR_NUM> --base <RELEASE_BRANCH>。
- 对每个 PR 执行上述多维度分析。
- 生成报告并展示给用户,作为阻塞检查点,等待明确批准。
- 批准后执行合并前修复与 CI 绿灯:将发布分支合入 PR 分支、在作者分支上解决冲突、应用修复、推送改动,并运行项目测试套件。
- 合并到发布分支:使用 gh pr merge <NUMBER> --squash --body "Integrated into release/vX.Y.Z",并在合并前后发布感谢评论。
- 同步本地发布分支:git fetch origin 与 git pull origin release/vX.Y.Z。
- 继续处理剩余 PR 或收尾:更新 CHANGELOG.md,运行 npm run test:coverage 验证覆盖率门槛(语句/行/函数 ≥75%,分支 ≥70%,实测约 82%),修复回归,再运行 /generate-release 工作流完成发布分支到 main 的最终合并。
适用场景
- 维护开源项目、需要批量审查社区提交的 PR 时。
- 希望在合并前系统性地检查功能、安全、架构、测试与前后端完整性。
- 需要确保贡献者获得 GitHub Merged 徽章与公开署名,避免因 cherry-pick 或关闭 PR 而抹去贡献记录。
限制与约束
- 该工作流有严格的禁止条款:绝不能在打算使用贡献者代码、想法或修复的情况下关闭其 PR;绝不能手动将贡献者代码整合进发布分支后再关闭其 PR;绝不能以“有冲突”为由关闭 PR 并自行重新实现相同修复;绝不能关闭 PR 后提交受其启发的“类似”方案;绝不能对内容已被或将被使用的 PR 执行 gh pr close。
- 只有在用户(仓库所有者)明确要求、PR 明显为垃圾或恶意、或作者本人要求关闭时,才可关闭 PR;其他情况一律保持打开。
- 修复与冲突解决必须推回 PR 作者分支;仅当 git push 因权限错误明确失败(贡献者未勾选“允许维护者编辑”或为锁定 fork)时,才可退回使用 cherry-pick,且需保留贡献者署名。
- 使用 cherry-pick 时,必须在 CHANGELOG.md 的 [Unreleased] 部分以 (#PR_NUMBER — thanks @username) 格式添加条目,以补偿贡献者未获得的自动 Merged 徽章。
- PR 始终合并到当前 release/vX.Y.Z 分支,绝不直接合并到 main;发布分支作为暂存区,待所有 PR 集成且测试通过后,才通过 /generate-release 工作流合并到 main。
- 在用户明确批准报告之前,不得检出 PR 分支、编辑文件、发布 PR 评论、关闭 PR、合并、cherry-pick 或运行大范围修复/测试循环。
- 若 gh pr diff 过大,需记录限制,改用 gh pr view --json files 配合 git fetch refs/pull/... 与 git diff --stat / git diff --name-status,仅读取确认问题所需的定向片段。
- 该技能的具体收费、价格、支持平台等信息暂未提供。