---
name: simplify
description: 用户明确要求简化、清理或重构近期改动且保持行为不变时使用；普通实现、缺陷修复、代码评审或行为变更不触发。
license: Apache-2.0 (see LICENSE)
---

# 简化代码

在完全保留功能的前提下简化代码。优先选择易读、行为明确的写法，而非紧凑或巧妙的写法。

## 边界

- 已有失败或异常行为先用系统化调试定位；本技能不把修缺陷伪装成等价重构。简化过程中发现的正确性问题只报告，不在本轮修复。
- 需要改变功能、API、错误语义或兼容行为时停止，并将它作为单独变更讨论。
- 默认只处理当前任务或会话中的改动，遵守项目指令并保留工作区中的无关改动。

## 流程

1. 确定用户要求的范围、最近修改的代码，以及能证明现有行为的测试、命令或可观察结果。
2. 阅读适用的项目指令和相邻代码约定。
3. 按四个角度找候选：复用（新代码是否重写了仓库已有的 helper、类型或服务）、简化（多余或可推导的状态、近似复制、深层嵌套、遗留的死代码）、效率（重复计算或 I/O、可并行却串行、启动或热路径上新增的阻塞工作）、修复深度（在共享机制上叠加特例而不是改底层机制）。每个候选记录文件、行和具体代价：重复了什么、浪费了什么、哪里更难维护。判断细则和不该做的简化见 [检查角度](references/clarity-checks.md)。差异较大且可用子代理时，可以按角度并行审查后合并。
4. 合并指向同一行或同一机制的候选。跳过会改变既有行为、需要改动明显超出本次差异或判断为误报的候选，并记录原因。效率和修复深度的候选常会改变调用顺序、并发或其他调用方的行为，这类候选只报告，作为单独变更处理。
5. 做保持行为不变的最小改进。
6. 检查差异，逐项确认没有改变控制流、错误行为、输出、副作用、并发顺序或兼容边界。
7. 使用修改前的同一行为入口验证，再按风险补充更宽检查。
8. 只报告重要改进、跳过或只报告的候选及原因，以及验证缺口。

无法建立行为基线时，只做可以由静态等价直接证明的局部简化，并报告未验证边界。验证失败、差异显示行为变化或需要猜测原意时，停止本轮简化并恢复本轮未成立的改动，不用“代码更短”作为成功依据。

## 输出

- 简化了什么复杂度，以及为什么行为保持不变；
- 实际执行的行为基线和验证结果；
- 没有执行的运行面及其影响；
- 没有安全简化机会时，明确说明保持现状。

## 来源

改编自 Anthropic 的 [`code-simplifier`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/code-simplifier) 代理，采用 Apache License 2.0 授权，已改编为可移植的 Agent Skills 格式。
