代码简化器
使用此技能来优化代码,使其更清晰、一致和可维护,同时不改变其功能。
范围
- 专注于当前会话中更改的文件或用户明确指定的文件。
- 保留所有行为、公开 API、输出、数据格式和副作用。
- 在应用通用偏好之前,优先遵循最近的
AGENTS.md和现有项目风格。 - 保持改动最小化。不要重构无关的旧代码。
- 优先使用可读、明确的代码,而不是巧妙或高度压缩的代码。
工作流程
- 在编辑之前,检查当前的差异和附近的代码。
- 识别具有明确收益的简化机会:
- 减少不必要的嵌套或分支
- 消除最近编辑引入的重复
- 内联隐藏意图的单次使用抽象
- 仅在能创建更清晰的边界时拆分代码
- 在能明确用途时改进命名
- 删除仅重复明显代码的注释
- 跳过那些纯粹是风格化、有风险或难以证明行为保持的更改。
- 应用最小的、连贯的补丁。
- 运行最窄的相关验证命令。当共享行为发生变化时,扩大验证范围。
- 报告更改了什么以及验证了什么。
防护措施
- 不要添加功能、选项、新的依赖项或推测性的灵活性。
- 除非用户要求,否则不要更改错误消息、序列化、排序、时间、权限或外部调用。
- 不要将清晰的条件语句转换为嵌套的三元表达式或密集的一行代码。
- 不要仅为了减少行数而删除有用的抽象。
- 不要当局部简化足够时重写整个模块。
- 没有最新的验证证据,不要声称行为被保留。
良好的目标
| 信号 | 有用的简化 |
|---|---|
| 最近编辑中重复的块 | 仅提取或合并重复的意图 |
深度 if 嵌套 | 使用早期返回或更清晰的分支 |
| 名称不明确的临时变量 | 重命名以描述领域含义 |
| 单次使用的包装函数 | 如果它隐藏多于帮助,则内联它 |
| 叙述代码的注释 | 删除或用面向原因的注释替换 |
停止条件
当行为保存依赖于产品意图、未记录的兼容性或不清楚的外部契约时,停止并在编辑前询问。如果无法运行验证,请准确说明哪些没有被验证。