brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
review-pull-request使用 GitHub CLI 端到端审查拉取请求。涵盖差异分析、提交历史审查、CI/CD 检查验证、严重程度分级反馈(阻塞/建议/微调/称赞),以及 gh pr review 提交。 适用于当拉取请求被分配审查时、在请求他人评审前进行自我审查、在反馈被处理后 进行第二轮审查,或审计已合并 PR 的合并后质量评估。
Independent GitHub snapshot · Automated classification · Original documentation governs
端到端审查 GitHub 拉取请求——从理解变更到提交结构化反馈。所有 GitHub 交互均使用 gh CLI,并生成严重程度分级的审查评论。
owner/repo#number)阅读 PR 描述,理解此次变更要实现的目标。
gh pr view <number> --json title,body,author,baseRefName,headRefName,labels,additions,deletions,changedFiles,reviewDecision
PR 规模指南:
+--------+-----------+---------+-------------------------------------+
| 规模 | 文件数 | 行数 | 审查方式 |
+--------+-----------+---------+-------------------------------------+
| 小型 | 1-5 | <100 | 逐行阅读,快速审查 |
| 中型 | 5-15 | 100-500 | 关注逻辑变更,略读配置 |
| 大型 | 15-30 | 500- | 按提交审查,关注关键文件, |
| | | 1000 | 标记是否应该拆分 |
| 超大型 | 30+ | 1000+ | 标记需拆分。只审查最关键的文件。 |
+--------+-----------+---------+-------------------------------------+
gh pr view <number> --json commits --jq '.commits[].messageHeadline'
gh pr checks <number>
预期结果: 清楚了解 PR 的功能、存在原因、规模以及 CI 是否通过。此背景信息决定审查方式。
失败处理: 若 PR 描述为空或不清晰,将此作为第一条反馈。没有背景信息的 PR 是审查的反模式。若 gh 命令失败,验证你已通过认证(gh auth status)且有仓库访问权限。
系统性地阅读实际代码变更。
gh pr diff <number>
gh pr diff <number> --patch # full patch format
预期结果: 一组观察,涵盖差异中每个有意义变更的正确性、安全性、性能和质量。每条观察都有严重程度级别。
失败处理: 若差异太大无法有效审查,标记:"此 PR 更改了 {N} 个文件和 {M} 行。建议将其拆分为更小的 PR 以获得更有效的审查。"仍然审查风险最高的文件。
将观察整理为严重程度级别。
反馈严重程度级别:
+-----------+------+----------------------------------------------------+
| 级别 | 图标 | 描述 |
+-----------+------+----------------------------------------------------+
| 阻塞 | [B] | 合并前必须修复。缺陷、安全问题、 |
| | | 数据丢失风险、功能损坏。 |
| 建议 | [S] | 应修复,但不阻塞合并。更好的方式、 |
| | | 缺失的边缘情况、影响可维护性的风格问题。 |
| 微调 | [N] | 可选改进。风格偏好、轻微命名建议、格式。 |
| 称赞 | [P] | 值得指出的好工作。巧妙的解决方案、 |
| | | 全面的测试、干净的抽象。 |
+-----------+------+----------------------------------------------------+
预期结果: 按严重程度排序的反馈项列表,级别清晰。阻塞项有修复建议。比例一般应为:少量阻塞、一些建议、极少微调、至少一条称赞。
失败处理: 若一切似乎都是阻塞的,PR 可能需要重新设计而非打补丁。考虑在 PR 级别请求变更而非逐行评论。若没有发现问题,直接说——"LGTM"(代码看起来不错)在代码良好时是有效的反馈。
撰写结构化、可操作的反馈。
# Post inline comments via gh API
gh api repos/{owner}/{repo}/pulls/{number}/comments \
-f body="[B] This SQL query is vulnerable to injection. Use parameterized queries instead.\n\n\`\`\`suggestion\ndb.query('SELECT * FROM users WHERE id = $1', [userId])\n\`\`\`" \
-f commit_id="<sha>" \
-f path="src/users.js" \
-F line=42 \
-f side="RIGHT"
[B]、[S]、[N] 或 [P]# Approve
gh pr review <number> --approve --body "Review summary here"
# Request changes (when blocking issues exist)
gh pr review <number> --request-changes --body "Review summary here"
# Comment only (when unsure or providing FYI feedback)
gh pr review <number> --comment --body "Review summary here"
预期结果: 已提交的审查包含清晰、可操作的反馈。作者确切知道需要修复什么(阻塞)、需要考虑什么(建议)以及做得好什么(称赞)。
失败处理: 若 gh pr review 失败,检查权限。你需要仓库的写入权限或是被指定的审查者。若内联评论失败,退而将所有反馈放在审查正文中,附文件:行引用。
跟踪审查解决情况。
gh pr view <number> --json reviewDecision,reviews
gh pr diff <number> # check new commits
gh pr review <number> --approve --body "All blocking issues resolved. LGTM."
预期结果: 阻塞问题已验证修复。审查对话已解决。PR 已批准或进一步请求变更,附具体剩余事项。
失败处理: 若作者对反馈有异议,在 PR 线程中讨论。关注影响(为什么重要)而非权威。若对非阻塞项的分歧持续,优雅地让步——作者拥有代码。
review-software-architecture — 系统级架构审查(对 PR 级审查的补充)security-audit-codebase — 对含有安全敏感变更的 PR 进行深度安全分析create-pull-request — 流程的另一面:创建易于审查的 PRcommit-changes — 清晰的提交历史使 PR 审查显著更容易