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,而不是无限扩大到整个代码库。
- 分别从 Standards 与 Spec 两条轴线给出判断。
- 让两条轴线以并行子代理方式工作,减少相互影响。
它在工程工作流中的位置也很明确: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 属于日常代码工作的一部分,与 tdd、implement、diagnosing-bugs、codebase-design 等技能并列,但职责不同。
一个典型关系是:
implement负责按 spec 或 tickets 实现工作。implement会在预先约定的接缝上驱动 tdd。- 在提交前,用
code-review对固定起点以来的 diff 做最终双轴审查。
因此,code-review 更像实现完成后的纪律化验收关卡:既看实现是否符合仓库标准,也看是否真正完成了原始规格。
细节与例外
根据现有来源,可以明确保留的细节包括:
- 它是 Model-invoked,不是 User-invoked。
- 它审查的是固定起点以来的 diff。
- 它包含且只明确给出了两条审查轴:Standards 与 Spec。
- Standards 明确包含“仓库编码规范 + Fowler smell baseline”。
- Spec 明确对应“originating issue/PRD”的忠实实现。
- 两个子代理是并行运行,目的在于避免相互污染。
目前来源中没有进一步给出:
- 固定起点应如何选取的具体算法。
- 两个子代理最终如何汇总输出的固定格式。
- 审查发现问题后的自动修复流程。
因此这些内容不应被擅自补造成该技能的既有规则。
相关条目
- Model-invoked skills
- User-invoked skills
- tdd
- grill-me
- grilling
- 共享语言
- Productivity
- mattpocock skills README 摘要