W
AI-Wiki
ENTITY

code-review

定义

code-review 是工程类技能中的一个 Model-invoked 技能,用来对自某个固定起点以来的 diff 做双轴审查。

它不是泛泛地看“当前代码好不好”,而是围绕一个明确边界展开:审查对象限定为从固定点开始直到当前变更的 diff。这个技能的核心结构是两条并行审查轴:

  • Standards:检查变更是否符合仓库自身的编码规范,并同时满足 Fowler smell baseline。
  • Spec:检查变更是否忠实实现了最初的 issue、规格说明或 PRD。

这两个审查轴由并行 sub-agents 分别运行,目的是避免彼此污染:规范性判断不应被“需求大体实现了”所稀释,而规格符合性判断也不应被代码风格好坏所转移焦点。

身份与调用方式

code-review 属于 Model-invoked 技能,而不是 User-invoked skills 技能。

这意味着它有两层身份特征:

  • 用户可以显式调用它。
  • 当任务形态匹配时,代理也可以自动调用它。

在该技能体系中,Model-invoked 技能承载的是可复用的工程纪律;相较之下,User-invoked 技能更偏向编排与组织流程。code-review 明确属于前者,因此它代表的是一种可重复执行的审查方法,而不是单纯的命令入口。

角色职责

code-review 的职责不是实现功能,也不是设计方案,而是在实现完成后,对变更做结构化把关。其主要职责包括:

  • 锁定一个固定起点作为审查基线。
  • 仅审查该固定起点之后产生的 diff,而不是无限扩大到整个代码库。
  • 分别从 StandardsSpec 两条轴线给出判断。
  • 让两条轴线以并行子代理方式工作,减少相互影响。

它在工程工作流中的位置也很明确:implement 技能在提交前会以 /code-review 作为收尾步骤之一。这说明 code-review 是实现闭环中的正式检查环节,而非可有可无的附加动作。

两条审查轴

Standards 轴

Standards 轴关注的是“这份代码写得是否符合仓库标准”。其判断依据至少包含两部分:

  • 仓库自身的编码规范。
  • Fowler smell baseline。

这意味着 Standards 轴并不只检查格式、命名或表层风格,也会把代码异味作为基线的一部分来判断。只要变更违反了仓库约定,或在 Fowler 式的代码异味基线上明显失守,就属于这条轴线应指出的问题。

Spec 轴

Spec 轴关注的是“这份实现是否忠实于原始需求”。其判断目标不是代码漂不漂亮,而是:

  • 是否 faithfully implement 了来源性的需求描述。
  • 该来源通常是 originating issue、spec,或 PRD。

换言之,Spec 轴会把审查重心放在功能边界、约束条件、预期行为以及需求完整性上,而不是代码风格本身。

并行子代理机制

code-review 的一个关键设计是:Standards 与 Spec 由并行 sub-agents 运行

这样做的直接目的,是避免“彼此污染”。这里的污染主要指两类偏差:

  • 因为代码风格、结构或异味看起来不错,就放松对需求符合性的追问。
  • 因为功能大致满足需求,就忽略编码规范或设计异味上的明显问题。

把两条轴线拆开后,每个子代理只承担自己的判断职责,最后再汇总结果。这个结构强调的是审查独立性,而不是把所有判断揉成一个模糊的总体印象。

审查边界与限制

code-review 的边界非常明确,至少包含以下几点:

  • 审查对象是 diff,不是整个仓库。
  • 这个 diff 必须是自固定点以来的变更。
  • 它审查的是两条明确轴线:Standards 与 Spec。
  • 它不是通用讨论技能,也不是需求访谈技能。

因此,如果没有固定起点,或者无法界定“从哪里开始算本次变更”,这个技能的审查边界就会变得不清晰。它依赖一个已知基线,随后只看该基线之后的改动。

同样,它也不负责把需求从零澄清出来;若前置规格尚不明确,通常需要借助其他技能先完成规格收敛,例如 grill-me、grilling、to-spec 或与 共享语言、domain-modeling 相关的工作。

在工程流程中的位置

在工程技能集合中,code-review 属于日常代码工作的一部分,与 tddimplementdiagnosing-bugscodebase-design 等技能并列,但职责不同。

一个典型关系是:

  • implement 负责按 spec 或 tickets 实现工作。
  • implement 会在预先约定的接缝上驱动 tdd
  • 在提交前,用 code-review 对固定起点以来的 diff 做最终双轴审查。

因此,code-review 更像实现完成后的纪律化验收关卡:既看实现是否符合仓库标准,也看是否真正完成了原始规格。

细节与例外

根据现有来源,可以明确保留的细节包括:

  • 它是 Model-invoked,不是 User-invoked。
  • 它审查的是固定起点以来的 diff。
  • 它包含且只明确给出了两条审查轴:StandardsSpec
  • Standards 明确包含“仓库编码规范 + Fowler smell baseline”。
  • Spec 明确对应“originating issue/PRD”的忠实实现。
  • 两个子代理是并行运行,目的在于避免相互污染。

目前来源中没有进一步给出:

  • 固定起点应如何选取的具体算法。
  • 两个子代理最终如何汇总输出的固定格式。
  • 审查发现问题后的自动修复流程。

因此这些内容不应被擅自补造成该技能的既有规则。

相关条目