用途
该技能是一个强制性的代码审查验证协议。它要求在任何代码审查发现被报告之前,必须完成一系列验证步骤,以减少误报。协议指出,跳过这些步骤会导致误报,浪费开发者时间并损害对审查的信任。
主要能力
协议包含以下核心机制:
反虚构门控(gate 0):适用于所有审查/验证技能。在做出任何判定之前,必须回显当前轮次从已读取源中引用的确切审查对象。对于代码发现,需要文件:行号加上当前重新读取的代码;对于差异审查,需要实际的差异块;对于结构化报告,需要从解析后的源文件中打印发现的 id、文件、行号和描述。对象是唯一的事实来源,禁止从分支名、工作目录、周围文件或回忆中推断。
硬门控序列:每个发现需依次通过锚定、证据、严重性、格式四个步骤。锚定要求读取完整的包含符号或模块;证据要求运行对应问题类型的验证检查并提供工具输出、文件:行号引用或明确的搜索结论;严重性需匹配校准表;格式需符合 [FILE:LINE] ISSUE_TITLE。
报告前验证检查清单:包括是否阅读了实际代码(完整函数/类而非仅差异上下文)、是否搜索了所有引用、是否检查了周围代码、是否对照当前文档验证了语法、是否区分了“错误”与“不同风格”、是否考虑了有意设计。
按问题类型验证:针对“未使用的变量/函数”“缺少验证/错误处理”“类型断言/不安全转换”“潜在内存泄漏/竞态条件”“性能问题”等类型,分别列出了必须执行的检查步骤和常见误报。
严重性校准:将问题分为 Critical(阻塞合并)、Major(应修复)、Minor(可考虑修复)、Informational(无需操作)和完全不标记。Informational 级别用于需要新增依赖或模块的改进、新增代码建议、架构想法等,不计入可操作问题数量。
不应标记的模式:列出了 TypeScript、React、测试和通用场景下有效但常被误报的模式,以及上下文敏感规则的标记条件。
使用方式
该技能需在报告任何代码审查发现之前加载并遵循。协议要求逐项应用硬门控,每个发现需通过锚定、证据、严重性、格式检查。最终验证包括确认每个发现通过了反虚构门控、硬门控序列,并重新阅读每个发现确认其确实存在问题、能指出证明问题的具体行、领域专家会同意这是问题而非风格偏好、修复能提供真实价值。每个发现需格式化为 [FILE:LINE] ISSUE_TITLE。如果是重新审查,仅验证之前的修复,不引入新发现。如不确定,则移除该发现、标记为问题而非议题,或通过阅读更多代码上下文进行验证。
适用场景
适用于所有代码审查场景,旨在减少误报并提高审查质量。特定技能如 verify-llm-artifacts、review-llm-artifacts、llm-artifacts-detection 具体实现了该协议。
限制
该协议要求严格遵循门控流程,可能增加审查时间。对于不确定的发现,建议移除或转为问题而非议题。Informational 级别不计入可操作问题数,判定时应完全忽略。