用途:hard-cut 用于重构或行为变更场景,尤其是涉及 schema、契约、持久化状态、路由、配置、功能开关、枚举/值集合或架构的改动。其核心是只保留一条规范代码路径,删除旧形态处理,不保留草稿或遗留行为,除非有具体证据表明存在真实的外部兼容边界。
主要能力:默认将旧形态视为内部草稿形态,除非有证据表明它们已被持久化外部或用户数据、磁盘或数据库状态、跨进程或服务边界的线格式、文档化或公开支持的契约、或重构边界之外的实际依赖所使用。仅存在旧代码不构成兼容义务。
硬性规则:不添加回退行为、兼容分支、垫片、适配器、强制转换、别名或双形态支持;不添加用于检测或拒绝旧形态的快速失败守卫;不添加断言拒绝旧形态的测试;优先删除旧形态处理;更新生产者、消费者、夹具和测试以仅使用规范形态;删除死代码、死条件、过时注释和旧形态翻译辅助;仅保留当前规范契约的验证,验证可拒绝畸形当前形态输入,但不得基于遗留判别器、旧字段名、别名、旧枚举成员或草稿格式分支;在向后兼容与简化之间选择简化。
执行流程:识别规范目标形态;追踪该形态的每个生产者和消费者;更新所有活跃代码路径以仅发出和消费规范形态;更新夹具、测试数据、构建器和快照;删除遗留处理、分支、注释和辅助;仅保留正确性所需的当前形态验证;若存在真实外部兼容边界,隔离并指出确切文件、函数、边界及无法移除的原因。
审查清单:拒绝在条件后保留旧形态行为的更改;拒绝新旧形态之间的翻译层;拒绝仅为拒绝遗留输入而添加的验证分支;拒绝仅为纪念已放弃草稿格式而添加的测试;删除描述已移除草稿格式的死辅助和注释;为规范契约保留一个所有者。
交付物:仅交付支持规范形态的最小实现、仅针对规范形态的更新测试、移除过时遗留形态测试、不为旧形态添加新拒绝测试、不专用于识别遗留格式的运行时逻辑。
例外规则:仅当移除旧形态会破坏已持久化的外部或用户数据、磁盘或数据库状态、跨边界线格式或真实公开契约时才例外。若存在此类边界,不要在其他地方发明新兼容层,指出确切文件和函数,描述具体的持久化或公开依赖,并将兼容性讨论限制在该边界内。