用途
Hard Cut 适用于一个功能应当彻底消亡、而不是继续残留的场景。它提供的不是工具库或运行时,而是一套删除规范和执行流程,用来指导对功能的完全移除。
主要能力
- 删除功能的完整表面,包括导出、命令与标志、路由、界面入口、特性开关,以及文档和示例。
- 删除实现与胶水代码,包括调用点、类型、状态、测试、文档和注释。
- 不保留兼容别名、弃用垫片、回退解析、迁移桥接或已死导出。
- 删除被删行为的测试,只为仍然存在的行为保留测试。
- 删除描述已删代码或悼念旧功能的注释。
- 如果移除暴露出相邻死代码,继续切割直到依赖图干净。
使用方式
该技能的执行流程分为若干步骤。
- 找到真正的表面区域:检查导出、命令和标志、路由、界面入口、特性开关,以及文档和示例。
- 使用 rg 追踪引用。
- 删除实现与胶水代码:调用点、类型、状态、测试、文档和注释。
- 再次用 grep 搜索被移除的名称及明显的别名。
- 对存活下来的产品运行最诚实的窄范围验证。
规则
- 删除表面,不要将其弃用。
- 除非用户明确要求,否则不要留下 throw new Error("Not implemented")、占位提示、"功能已移除"横幅或关于恢复功能的 TODO。
- 不要保留兼容别名、弃用垫片、回退解析、迁移桥接或已死导出。
- 删除被删行为的测试,只为仍然存在的行为保留测试。
- 删除描述已删代码或悼念旧功能的注释。
- 如果移除暴露出相邻死代码,继续切割直到依赖图干净。
坏味道清单
以下信号表明删除不够彻底:弃用通知、未实现抛错、存根处理器、死的枚举或联合成员、永远为假的功能标志分支、未使用的环境变量和配置,以及只证明已删功能曾经存在的测试。
倾向
如果在删除更多代码和留下僵尸表面之间抉择,就删除更多代码。
限制
资料暂未提供该技能的具体安装命令、支持平台、收费方式或与其他工具的集成细节。