该技能用于对代码进行保持行为不变的重构,目标不是减少行数,而是提升可读性、可理解性、可修改性与可调试性。适用时机:功能完成且测试通过后实现仍显臃肿;代码审查中可读性或复杂度被指出;遇到深层嵌套、超长函数或含义不清的命名;重构赶工写出的代码;合并散落逻辑;合入重复或不一致改动后。不适用:代码已清晰;尚未理解代码作用;性能关键且简化版明显更慢;即将整体重写的临时代码。
五项原则:1. 精确保持行为,输入输出、副作用、错误行为与边界情况均不变,不确定则不做;2. 遵循项目约定,阅读 CLAUDE.md 等规范,参照邻近代码的导入顺序、函数风格、命名、错误处理与类型标注;3. 清晰优先于取巧,显式代码优于需停顿解析的紧凑写法;4. 保持平衡,避免过度简化,如过度内联、合并无关逻辑、删除有扩展或测试价值的抽象、只追求行数;5. 限定改动范围,默认只简化近期修改的代码。
流程:先理解再动手(审阅职责、调用关系、边界与错误路径、测试、git blame 中的历史原因);再识别机会(深层嵌套、50行以上长函数、嵌套三元、布尔参数、重复条件、误导性或缩写命名、解释“是什么”的冗余注释、重复逻辑、死代码、无价值抽象、过度工程、冗余类型断言);然后逐步修改,每次一处并跑测试,重构与功能变更分开提交,改动超过 500 行时考虑 codemod 等自动化;最后整体复核前后差异,若更难理解就回退。
验证清单:测试无需修改即通过、构建无新告警、linter 通过、改动可增量审查、diff 干净、遵循项目约定、未削弱错误处理、未留下死代码。数量级较大的复核可交由子智能体或编排器执行。