用途:crank-test-prune 用于对测试套件做“实用化”精简。其判断标准是重写测试(rewrite test):测试的目的在于捕捉行为回归,而不是锁定代码形态;因此倾向于激进裁剪,用更少但更尖锐的测试替代厚重且阻碍重构的套件。
主要能力与规则:范围内每个测试必须且只能得到一个判定——KEEP、DELETE、REFACTOR 或 MERGE,不做抽样。期望值必须来自 oracle(真实 fixture 中手工核验的字面值或已提交的快照),不得用被测代码自身的公式重算。冗余按整个套件判断而非按文件:同一接缝上锁定同一行为的两个测试,即使分布在不同文件,也只有一个 KEEP、一个 DELETE;保留更接近真实接缝者,接缝同等时保留更便宜更快者,重复覆盖的慢速端到端测试只在少量 happy-path 旅程中存续。该技能只编辑和删除测试代码,绝不修改生产代码;若发现生产缺陷,只报告不修复。基线比较一律在一次性 worktree 中进行,禁止使用 git stash。
判定含义:KEEP 表示通过重写测试、在某个接缝上锁定独特可观察行为。DELETE 适用于实现细节测试、同义反复断言、契约形态断言(只断结构、类型或连线)、文案固定测试(断言描述、标签、警告或日志措辞)以及与保留测试重复者。REFACTOR 适用于行为值得锁定但断言过弱,例如扫描全部值检查某属性而非断言一个已知具体用例。MERGE 适用于行为值得锁定但测试不值当独立 setup,例如单一工作流的单断言片段或只锁定偶然过渡状态的孤立测试,应折叠进端到端旅程测试,判定行需写明目标测试。
流程:1. 范围——从参数确定受审测试树(默认整个套件),记录测试文件清单和运行命令;2. 判定——按目录或模块分发子代理,每个测试返回一行判定(文件、测试名、判定、一行理由),再自行在套件层面调和冗余与合并;3. 应用——执行 DELETE、REFACTOR、MERGE,应用代理仅可改动所属判定行中的测试文件,不得为绕过工具而移动、重命名或删除仓库配置,遇到干扰应报告并停止;并发编辑导致的 git status 变化应忽略;4. 验证——运行完整套件并修复因裁剪造成的破坏,直到全绿;5. 报告——输出判定表、各判定计数、净行数变化及发现的生产缺陷。
适用场景与限制:适合需要提升测试可维护性、消除实现细节耦合和重复覆盖的项目。使用前应先阅读 VOCABULARY.md 理解接缝、oracle、实现细节测试、重写测试、旅程测试与冗余测试等术语;子代理按 SUBAGENT-TIERS.md 的标准层级解析。具体运行命令、参数格式及配套文件内容暂未提供。