---
url: /wave-agent/specs/commands/simplify-skill.md
description: 审查已变更代码的质量问题（重复、低效）并通过 `/simplify` 自动修复
---

# 功能规格说明：Simplify Skill

**创建日期**：2026-06-29

## 用户场景与测试 *（必填）*

### 用户故事：审查并应用质量清理（优先级：P1）

作为开发者，我希望审查已更改的代码以发现重用机会、质量问题和效率问题，并自动应用修复，以便在不手动寻找改进的情况下保持代码整洁。

**为什么是这个优先级**：这是核心价值——一步完成审查 + 自动修复。它补充了 `/code-review`（仅报告错误），专注于质量并应用修复。

**独立测试**：进行带有明显重复或低效率的更改，运行 `/simplify`，并验证问题在工作树中被修复。

**验收场景**：

1. **假设**有 git 更改（已暂存或未暂存），**当**用户运行 `/simplify` 时，**则** skill 通过 `git diff`（或 `git diff HEAD` 用于已暂存更改）收集 diff 并审查所有更改的文件。
2. **假设**没有 git 更改，**当**用户运行 `/simplify` 时，**则** skill 审查用户提到的或 agent 在对话中较早编辑的最近修改的文件。
3. **假设**发现质量问题，**当**第 3 阶段执行时，**则** skill 直接在代码中修复每个问题。
4. **假设**发现是误报或不值得处理，**当** skill 评估它时，**则**它记录并继续而不争论。

***

### 用户故事：并行三维质量审查（优先级：P2）

作为开发者，我希望审查并行覆盖三个独立的质量维度——代码重用、代码质量和效率——以便以低延迟获得全面覆盖。

**为什么是这个优先级**：并行审查减少延迟并为每个维度提供专注的上下文。三个维度覆盖最常见的质量退化模式。

**独立测试**：进行带有重用问题（复制现有工具）、质量问题（复制粘贴代码）和效率问题（可以并行的顺序调用）的更改，运行 `/simplify`，并验证三个问题都被修复。

**验收场景**：

1. **假设** skill 进入第 2 阶段，**当**它执行时，**则**它在单条消息中并发启动三个 agent，每个接收完整 diff。
2. **假设** Code Reuse agent 运行，**当**它审查更改时，**则**它搜索可以替代新编写代码的现有工具/辅助函数，并标记重复和可以使用现有工具的内联逻辑。
3. **假设** Code Quality agent 运行，**当**它审查更改时，**则**它标记冗余状态、参数膨胀、有变化的复制粘贴、泄漏的抽象、字符串类型代码、不必要的 JSX 嵌套和不必要的注释。
4. **假设** Efficiency agent 运行，**当**它审查更改时，**则**它标记不必要的工作、错过的并发、热路径膨胀、重复的无操作更新、不必要的存在性检查、内存问题和过于宽泛的操作。

***

### 用户故事：无错误的质量聚焦（优先级：P2）

作为开发者，我希望 `/simplify` 只专注于质量而不寻找错误，以便我可以将其用作独立于完整错误审查的快速清理通道。

**为什么是这个优先级**：分离关注点（质量 vs 正确性）让开发者为工作选择合适的工具。错误寻找需要不同的、更仔细的审查（由 `/code-review` 提供）。

**独立测试**：在包含微妙错误的更改上运行 `/simplify`；验证 skill 不报告错误（它专注于质量）。然后运行 `/code-review` 并验证错误被捕获。

**验收场景**：

1. **假设** skill 描述声明"Quality only — it does not hunt for bugs; use /code-review for that"，**当** skill 执行时，**则**审查 agent 专注于重用/质量/效率，而非正确性错误。
2. **假设**开发者想要错误审查，**当**他们改为运行 `/code-review` 时，**则**错误被报告。

***

### 边界情况

* **如果没有 git 更改且没有文件被最近编辑会怎样？** skill 审查用户提到的或 agent 在对话中较早编辑的最近修改文件。如果无法识别，skill 没有可审查的内容。
* **如果三个 agent 产生冲突的修复会怎样？** 第 3 阶段汇总发现并直接修复每个问题；冲突由主 agent 按顺序应用修复来解决。
* **如果修复引入新问题会怎样？** skill 在修复后不重新审查；它应用修复并总结。后续的 `/simplify` 或 `/code-review` 可以捕获回归。
* **如果 AI 尝试自动触发 skill 会怎样？** frontmatter 中的 `disable-model-invocation: true` 阻止自动调用；它仅通过 `/simplify` 由用户调用。
* **如果发现是误报会怎样？** skill 记录并继续——它不与发现争论，直接跳过。
