# 复杂度与测试质量法

## 复杂度即成本

能删除、合并或修改现有机制解决的，不得新增机制。同一业务规则只保留一个权威实现；被替代的代码、测试和兼容路径随改动删除。

新增护栏前必须回答三问：故障发生概率多大，后果多重，下游是否已有检测或恢复能力。答不上来，或已有兜底足以承接，不加。同一处反复只增不减，停止补丁，回查根因。

取舍位次：过测试 → 显意图 → 无重复 → 最少元素。

## 先搜，再想简单的（owner 2026-09-20）

> 逐字：「请你们思考实现方式的时候。多搜搜互联网，多想简单的方式，不是在那加加加，加一堆烂机制最终还要烧我的token来删！」
> 指针：源卷 `~/.claude/projects/-Users-akagilnc-WorkSpace-ak-pi-workflow-roles/e4b50c8e-15c7-4c92-9263-959efadb24eb.jsonl`，owner uuid `04255552-6b2a-45ee-9e9e-59a068b960cc`。

动手写机制之前：先搜互联网，确认这是不是已知问题、生态里有没有现成解法（官方文档优先）。再问最简单的做法是什么——包括「换一个前置选择」而不是「给现有选择打补丁」。

自撰机制是最后手段。同一处只增不减时，回查根因，不得靠再补一层收场。

## 测试对行为负责

测试只保**调用输入正确**的最短确定性案：从真实入口进入，在外部可见的结构化结果上断言，秒级完成。涉真实宿主、真实 LLM、真实并发、真实网络的行为，不写测试；以真跑为证。

修复的证明是**变异真跑**：装回旧逻辑，真实入口秒级报红；恢复后绿。命令与结果入回执：指针（runId/toolCallId）或摘抄结论皆合格，以读者能直接核为准（仓级 CLAUDE.md 证据条款）。不为证明修复造测试；拆掉的证明性测试不得换形再造。

测试向 spec 负责，不向实现妥协：不得靠放松断言、删除失败路径或 mock 被测行为使测试变绿。

盯生成物一律禁止：不得对自由文本、LLM 产出内容、图片像素等任何生成产物建立机械依赖——锁措辞、锁句式、锁模板、数条数、埋哨兵、比像素，都算。契约断言只落在结构化字段上；生成物只可特征化观察，不可约束。

已有测试能表达真实行为的，修改或复用，不另建平行测试。只锁定内部结构、非契约文本、重复结论、失效行为或单纯覆盖率的测试，应当删除。

生产代码和测试代码都计算复杂度。新增任何测试，都必须证明它提供了现有体系没有的必要价值。

## 测试分级

按尺寸分级，不按名义分类。小型：单进程单模块、不碰外部资源、秒级完成。中型：单机之内，可跨进程、可碰本机资源。大型：完整系统真实链路。行为证明放在够用的最小尺寸；大型只保留中小型无法证明的行为。

名实必须相符：占着小型名义、消耗大型资源的测试，按错位缺陷处理。重型名单单列、串行调度，入列逐个有理由。

日常施工只跑触及面的聚焦测试；全量到绿只在家族或批次的**最终待合并状态**跑一次——**家族车道上的逐腿交卷不是收尾，不得据此索取全量**；之后再有修复，在新的最终状态重跑全量。

**最终待合并状态**只有一个：本票或本家族全部轮次结束、判官已 converged、PR 已开之后，即将并入目标分支的那一个 HEAD；CI 在它上面通过一次即为全量。其后再有修复 commit，新 HEAD 才是新的最终状态。将作监/修内司的每次交卷（含闸内重交）、切片轮次、修理轮次、审官中间轮次都不是最终状态——审官不得据此索全量，派单也不得把本机全量写进这些轮次的验收。

## 未完成交卷

unfinished 只认两因：**缺前置**——处置当下仍缺少已声明的前置产物、决定或答复，且该缺失使剩余派工当前无法合法执行；**违宪约束**——继续施工将违反 authority 或既裁法源。两因之外的一切理由（执行窗口、时间、工作量、难度等），不得作为 unfinished 成立依据，审官一律封驳。

据实以两因交卷不构成违规，但不自动 pass；所称阻断须可由卷宗独立核对，声明与引用本身不能证明缺失或因果。

## 预警参考线

给审官的触发线，由审官自行判断，不是机械闸。超线不必然有罪，但须专项审视、当事方须给出说明：

- 全量测试墙钟参考尺 120 秒（宿主另有明文终线从宿主）；单文件耗时占全量一成以上，同须审视。
- 单元测试跑得快；跑得不快的，就不是单元测试——单测过 0.1 秒即算慢。整套构建加测试，本厂线 180 秒（业内老线十分钟是给大项目的）——凿掉的每一分钟，是每条腿每次交卷省下的一分钟。测试耗时占比失衡即先三问再跑：该跑吗？时长合理吗？非全量不可吗？
- 单次交卷变更以 200–400 行为宜（生产＋测试；纯删除与机械改名不计）——缺陷检出最佳区间即在此，过 400 急坠。超出须逐项证明必要价值，或说明为何不可拆。
- 同一处代码短期内反复改写、返工占比持续超约四分之一：系统病，回查根因。
