用途
refactor-code 是一个重构专用技能,目标是在不改变代码行为的前提下,改善代码的清晰度与可维护性。当用户需要提升可读性、降低复杂度或消除重复代码时,可以调用该技能。
主要能力与原则
技能围绕以下核心原则展开:
- 保持功能不变:只改变代码的实现方式,不改变代码做什么;所有原有功能、输出与行为必须保持一致。
- 清晰优先于简洁:更倾向于可读、显式的代码,而不是取巧的紧凑写法;三行清晰的代码优于一行令人费解的代码。
- 增量修改:以小步、可验证的方式推进,而非大规模重写;每一步都应通过测试。
- 测试先行:重构前确认测试存在;如果没有测试,先编写测试或与用户讨论。
技能关注的可改进点包括:可读性(更好的命名、更清晰的结构、说明性变量)、复杂度(减少嵌套、抽取函数、简化条件)、重复(DRY 违规、复制粘贴的逻辑)以及抽象程度(既不过度取巧,也不过于冗长)。
反模式(不应做的事)
- 改变行为——这是重构,不是重写
- 过度抽象——不要为一次性代码创建框架
- 嵌套三元表达式——多个条件时优先使用 if/else 或 switch
- 密集的单行代码——优先考虑可调试性而非行数
- 过早优化——清晰优先,测量后再优化
- 删除自己尚未完全理解的“无用”代码
- 未经明确讨论就破坏公共接口
使用方式
技能规定了一套重构流程:
- 彻底理解:阅读代码,理解其用途与调用方
- 检查测试:若缺失,先编写或标记风险
- 说明计划:改动前描述要做什么以及为什么
- 增量修改:一次只做一项重构
- 每次改动后运行测试:测试失败则立即回滚
- 验证行为:确保重构后的代码与原始代码完全一致
- 总结改动:记录改了什么以及为什么
在输入处理上:如果没有提供明确的目标,检查最近修改的文件(git diff --name-only HEAD~5);如果仍不明确,则询问用户想要重构哪部分代码。技能强调:绝不重构尚未完整阅读的代码;如果目标不存在,应当指出。
关于项目上下文:技能要求始终参考项目的 CLAUDE.md 中的既有编码标准与约定,重构后的代码应匹配项目风格,而不是强加外部偏好。关于范围:默认聚焦最近修改的代码,除非用户明确要求更大范围;不要重构与当前改动无关的、正常工作的代码。
防幻觉规则
- 先完整阅读:在提出修改建议前理解完整上下文
- 验证调用方存在:修改接口前先确认哪些代码在使用它
- 前后都测试:不要假定行为被保留,要实际验证
- 检查导入:不要引用不存在的模块或函数
- 验证模式:不要假定项目使用了某些模式,要先检查
常见重构手法
技能列出了一些常见模式及适用时机:
- 抽取函数:重复代码或过长的函数
- 重命名:不清晰或误导性的命名
- 引入说明性变量:难以阅读的复杂表达式
- 用多态替换条件:基于类型的复杂 switch/if 链
- 抽取类/模块:一个函数做了太多事情
- 内联:不必要的间接层损害了清晰度
- 替换魔法数字:无法解释的字面量
平衡
好的重构在改善代码的同时,不应让调试更难、让扩展更难、为追求“优雅”而降低清晰度,或创建没人要求的抽象。技能指出:存疑时,别碰正常工作的代码——最好的重构往往是你没有去做的那一次。
限制
该技能的介绍资料未提供关于具体支持平台、安装方式、收费模式或性能效果的说明,这些信息暂未提供。