simplify · diff
git:20260905.751659e to git:20260919.7add278
19 added, 34 removed. Audit A to A.
---
name: simplify
- description: 用户明确要求简化、清理或重构近期改动且保持行为不变时使用;普通代码修改不自动触发。
+ description: 用户明确要求简化、清理或重构近期改动且保持行为不变时使用;普通实现、缺陷修复、代码评审或行为变更不触发。
license: Apache-2.0 (see LICENSE)
---
# 简化代码
- 在完全保留功能的前提下简化和完善代码。优先选择易读、行为明确的代码,而非紧凑或巧妙的写法。
-
- ## 原则
-
- 1. 保留功能
- - 不得改变功能、输出、副作用或外部可见行为。
- - 除非用户明确要求,否则行为变更不在范围内。
-
- 2. 遵守项目规范
- - 阅读并遵守仓库中适用的指令文件,例如 `AGENTS.md` 或 `CLAUDE.md`。
- - 项目已有约定优先于下面的通用默认规则。
- - 适用时,保持导入方式一致、顶层返回类型明确、组件属性清晰,并遵循已有的错误处理模式和命名约定。
-
- 3. 提高清晰度
- - 减少不必要的复杂度和嵌套。
- - 消除冗余代码和抽象。
- - 使用清晰的变量名和函数名提高可读性。
- - 整合紧密相关的逻辑,不混合独立职责。
- - 删除仅复述显而易见代码的注释。
- - 避免嵌套三元表达式;多条件判断使用 `if`/`else` 链或 `switch`。
- - 清晰度优先于简短。
+ 在完全保留功能的前提下简化代码。优先选择易读、行为明确的写法,而非紧凑或巧妙的写法。
- 4. 避免过度简化
- - 不要删除有助于组织代码的有效抽象。
- - 不要引入难以调试的密集单行代码或巧妙结构。
- - 不要把过多职责放进一个函数或组件。
- - 不要为了减少行数牺牲可维护性。
+ ## 边界
- 5. 保持范围收敛
- - 除非用户明确要求扩大清理范围,否则只完善当前任务或会话中修改的代码。
- - 保留工作区中用户的无关改动。
+ - 已有失败或异常行为先用系统化调试定位;本技能不把修缺陷伪装成等价重构。
+ - 需要改变功能、API、错误语义或兼容行为时停止,并将它作为单独变更讨论。
+ - 默认只处理当前任务或会话中的改动,遵守项目指令并保留工作区中的无关改动。
## 流程
- 1. 确定最近修改的代码及其现有行为。
+ 1. 确定用户要求的范围、最近修改的代码,以及能证明现有行为的测试、命令或可观察结果。
2. 阅读适用的项目指令和相邻代码约定。
- 3. 找出具体的降复杂度或提高可读性的机会。
+ 3. 找出具体的降复杂度或提高清晰度机会。候选较多或取舍不清时阅读 [清晰度检查](references/clarity-checks.md)。
4. 做保持行为不变的最小改进。
- 5. 检查差异,确认没有意外的语义变化或范围扩张。
- 6. 在项目指令允许的范围内,执行与改动规模相称的验证。
+ 5. 检查差异,逐项确认没有改变控制流、错误行为、输出、副作用、并发顺序或兼容边界。
+ 6. 使用修改前的同一行为入口验证,再按风险补充更宽检查。
7. 只报告重要改进和验证缺口。
+
+ 无法建立行为基线时,只做可以由静态等价直接证明的局部简化,并报告未验证边界。验证失败、差异显示行为变化或需要猜测原意时,停止本轮简化并恢复本轮未成立的改动,不用“代码更短”作为成功依据。
+
+ ## 输出
+
+ - 简化了什么复杂度,以及为什么行为保持不变;
+ - 实际执行的行为基线和验证结果;
+ - 没有执行的运行面及其影响;
+ - 没有安全简化机会时,明确说明保持现状。
## 来源
改编自 Anthropic 的 [`code-simplifier`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/code-simplifier) 代理,采用 Apache License 2.0 授权。改动包括转换为可移植的 Agent Skills 格式、移除 Claude 专用的模型选择,以及通用化项目指令处理方式。