---
name: development-review
description: 通用开发的 Review 方法 owner；mode=design 审查实现前方案与验收设计，mode=implementation 审查已验证产物；返回 findings 和返工目标，不修改产物或执行发布。
---

# Development Review

## 目标

先明确 mode=design 或 implementation，不因尚无代码跳过方案审查。两个 mode 都按证据输出 findings，由总流程决定下一步。

## 方案 Review（mode=design）

检查目标覆盖、现有能力复用证据、owner/主链路唯一性、重要反例、失败边界、可行性，以及验收是否会放过不完整结果；缺证据即 finding，方案自洽不等于成立。
新项目、技术栈替换及新增关键运行/部署依赖，核对 Design 的技术决策是否有需求/环境依据、真实替代项的取舍（有分叉时）及关键可行性证据；仅列技术名称、凭习惯选择或将必要选择留到编码时均返回 Design。沿用小改与用户指定选择按其适用边界检查，不强制凑候选或追加审批。
从原用户目标独立核对设计的交付与黄金验收使用链路，不仅检查方案自洽：逐步走查动作、系统反馈、继续操作和最终判定，检查交付前提能否落实、AI 自验与用户判断是否分清。只有入口/测试清单、需要审查者补步骤，或全部测试通过仍拿不到原用户结果时，返回 Design。豁免必须符合任务范围与用户行为不变的事实，不能仅因没有 UI、改动在底层或尚未发布而成立；纯内部和用户明确限定的产物交付不强加运行环境。
大型交付从日志的原始输入记录定位相关原件，核对用途、版本、有效修订与必要阶段边界；检查本部分书面方案的“来源 → 有效要求 → 设计 → 验证”对应关系，不能仅检查 AI 的提炼。功能/交互要求不能因原件是 HTML 就降为样式参考；明确只是参考的部分也不自动升级成硬约束。漏项、未解释偏差、缺当前部分书面设计或待决提案冒充有效约定均是 finding。实现 Review 从产物反查同一来源与已确认变更，不能靠实现、测试和后来改写的标准相互一致放过漂移。结论关联对象版本和证据，复用原日志，不另建验收表。

跨架构设计按合同的旧能力／用户目标／候选能力双向对账，独立核对原始来源和旧新真实入口。先确认方案覆盖当前有效目标；旧→新有未解释的用户可见变化，或目标→新有必需能力被列为未来、没有可触发入口或完整使用场景，都是 finding。其它分支的成功测试不能抵销。

性能或成本列为 Required 时，检查门槛是否在实现前按可复现条件固定，候选比较与验收是否覆盖真实用户等待、代表使用量和关键冷/热分支；只有理论推断或单次最佳值是 finding。不因当前任务没有性能取舍而要求例行压测。

核对本次拟实现部分是否已具体设计；整体设计允许后续细节待定，但不得遗留影响当前实现的未决选择。通过结论标明适用范围，不扩展到未审查的待细化部分。问题给出对应设计位置、影响和修正方向；未关闭 finding 返回 Design，通过返回 design-review: passed。后续补充或改变设计后审查受影响部分。不运行代码维护性脚本，不要求子代理，不复制完整方案。以下环节仅适用于 implementation。

## 进入

- 有实现产物时，在验证证据稳定后进入；
- 用户明确要求代码 review、PR review、风险扫描或拟议修复评审时可直接进入；
- 纯文档、措辞和普通元信息只做内容、结构和 diff review，不运行代码维护性脚本；
- 普通局部改动使用轻量 review，L3-L4、跨模块、结构大改或用户明确要求时执行完整 findings-first review。

## 自动检查

源码、脚本、测试或运行链路配置改动先运行一次项目已有的 diff-only maintainability 检查；项目没有该检查时直接按下面的 findings-first 方法审查，不为满足流程临时发明脚本。项目检查的预算、参数与阻塞级别由项目自身定义。不得为消除普通净增长扩大无关范围、压缩可读性或删除类型/协议保护。

## Findings-first 审查

1. 明确 diff、触达文件、相邻合同和受影响测试。
2. 重建改动前后真实用户或调用方可观察行为。
3. 优先检查正确性、边界、状态迁移、异步、数据流、API/UI 合同和运行失败模式。
4. 判断测试是否保护稳定外部行为；只有真实回归路径缺保护时才把缺测试列为 finding。
5. 检查改动是否把单次实例抬成全局机制、把局部经验固化为公共合同，或让抽象层级高于证据；同时检查重复真相、隐藏 fallback、无收益抽象，以及小 diff 保留的错误 owner、重复生命周期和确定迁移债。
6. 双向比较删除无收益路径与继续压缩造成的欠设计，按全生命周期净复杂度选择修正，不预设抽象或最小改动为答案。
7. 对重复 UI 骨架判断是否应采用共享骨架、类型化配置和薄壳组合。
8. 输出按严重级别排序的 findings、证据、风险和可信修复方向。

净增长本身不是 finding；更小实现只有在不新增双 owner、错误边界、迁移债和恢复缺口时才是有效反例。强行压行、隐藏或转移复杂度同样是 finding。

## 条件主观复核

只有以下情况才读取[主观可维护性复核](references/subjective-review.md)：

- 自动检查告警需要主观判断；
- 抽象、owner、文件或目录边界发生明显变化；
- 改动跨模块、规模较大或维护风险明显；
- 用户明确要求二次复核。

自动检查通过后的普通局部改动不追加完整主观复核。

## 通过与返工

- 只要存在一个未关闭 finding，Review 就不通过，返回 `rework` 和 Design 或 Implementation 目标。
- 修改产物后，旧验证证据失效；必须重新验证并再次 Review。
- 只有 findings 清零后才允许输出 `no findings` 或等价通过结论。
- 外部阻塞导致 finding 无法关闭时，明确阻塞项和风险，结论仍然不通过。

## 输出

顺序固定为：

1. 按严重级别排序的 findings；
2. 开放问题或前提假设；
3. `no findings` 或未通过结论、自动检查范围、主要警告和剩余风险。

本阶段不修改实现、不重新执行功能验证，也不 commit、push、release 或 deploy。
