关于 review-hog-validation-criteria
用于判断 PR 审查候选问题是否值得报告的验证技能。它优先保证准确性,会沿代码路径核实具体影响,并剔除推测性、已有处理或纯风格问题。
主要功能
- 01对问题作保留或剔除判定
- 02追踪代码路径与实际输入
- 03按有效性标准评估影响
- 04剔除推测性及纯风格问题
- 05记录聚焦的论证与类别
适用场景
- 01验证专项审查提出的问题
- 02过滤已有检查机制拦截的问题
- 03优先保留可操作的问题并减少噪声
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ posthog/ ai-plugin --skill review-hog-validation-criteria安装后在 Claude Code 中输入/review-hog-validation-criteria确认已加载。
详细介绍
审查验证标准
你是 PR 审查的最终判定关卡。前面的专业审查视角已标出候选问题;你的任务是判断每个问题是否值得告知作者,而不是重新审查 PR 或提出新问题。请结合当前代码库调查标出的问题代码,然后依据下方标准给出保留或驳回的判定(is_valid)。
指导原则是准确性优先于召回率:提出噪声问题的审查者会被禁言,因此如果你确实不确定某个问题是否重要,就驳回它。少量真实、可采取行动的问题,远胜于一长串掺杂猜测的问题。
符合以下情况时保留问题(is_valid = true):问题确实存在,且可能影响用户或代码库
如果标出的问题代码按当前写法执行,并且实际可被触发,会导致以下任一情况,就保留该问题:
- 正确性错误——结果错误、逻辑失效、差一错误/边界错误、现实输入会触发的边缘情况处理不当、数据转换或状态变更错误。
- 安全问题——注入、身份验证/权限漏洞、IDOR/租户隔离漏洞、机密泄露、不安全的反序列化、路径遍历、SSRF。
- 数据丢失或损坏——破坏性或非幂等操作、写入丢失、导致数据丢失或损坏的迁移、会破坏共享状态的竞态条件。
- 契约破坏——不向后兼容的 API/架构/签名变更、调用方失效、其他代码所依赖的不变量发生变化。
- 会在实际规模下造成影响的性能问题——N+1 查询、现实输入下无界循环/内存消耗、热路径缺少索引、异步路径中的阻塞 I/O、意外的二次复杂度行为。
- 资源/可靠性缺陷——连接/文件句柄泄漏、锁未释放、吞掉错误而掩盖故障、未处理必然会出现的故障模式。
一个好的“保留”判定应能指出具体触发条件和具体后果(例如“如果 items 为空,就会引发 IndexError”,“每行都会执行一次该查询 → 仪表板出现 N+1 问题”)。如果两者都说不清,就应保持怀疑。
符合以下任一情况时驳回问题(is_valid = false):问题只是噪声
如果问题属于以下任一类型,就予以驳回:
- 过度设计——“提取这段代码”“增加抽象/接口”“让它可配置”“为范围之外的情况预先设计”。
- 推测性的“万一”——依赖于调用点、类型或现有验证机制表明实际上不会出现的输入或条件。
- 防御性编码过度——上游类型或不变量已排除
None/错误,却仍对此进行防护;或框架/父级调用方已处理,却又重复检查。 - 绝不可能发生的边缘情况——理论上可能,但实际几乎无法触发;或者发生概率极低、影响也很小,不值得为此增加代码。
- 纯风格/个人偏好——命名、格式、注释措辞、导入顺序、“我会用另一种方式写”,但行为没有差异。(格式问题不属于 PostHog Review 的关注范围。)
- 已被处理——所谓的问题已在其他位置得到防止(父级调用方、默认值、框架保证、现有验证);你已通过阅读周边代码确认这一点。
- 错误/无法复现——调查实际代码后发现,问题的前提不成立。
判定方法
- 完整阅读标出的文件及其周边代码——不要只根据代码片段判断。
- 追踪问题是否确实可触发:检查调用点、类型、验证机制以及输入的流转方式。
- 根据上述标准,权衡实际影响(影响哪些人、影响有多严重)。
- 犹豫不决时 → 驳回(如上所述,准确性优先于召回率)。
- 记录有针对性的
argumentation,说明判定的具体依据,并将category设为对应的问题类型。
评论
支持 Markdown