用途
Simplify 是一个代码审查与修复技能,用于在实现工作完成后对已变更的代码进行质量验证。它的核心目标是:审查所有变更文件,找出可复用机会、质量问题与效率问题,并直接修复发现的问题。
该技能强调“变更的代码是唯一的审查目标”。每个审查维度独立运行,各自看到完整的 diff,并在不知道其他代理结果的情况下报告发现。主代理负责汇总并应用修复。
主要能力
Simplify 通过三个并行审查代理完成工作:
-
代码复用审查(Code Reuse Review):查找新代码中重复了代码库已有功能的部分。搜索工具目录(utils/、helpers/、lib/、common/、shared/)、变更文件相邻的文件以及被变更文件导入的文件;标记重复现有功能的新函数、可使用现有工具的内联逻辑,以及重新实现标准库或已安装依赖中已有功能的代码。
-
代码质量审查(Code Quality Review):查找 hacky 模式、不必要的复杂性和抽象边界违规。检查的模式包括:冗余状态、参数蔓延、轻微变体的复制粘贴、泄漏的抽象、字符串类型化代码、不必要的注释。
-
效率审查(Efficiency Review):查找不必要的工作、错过的并发和资源管理问题。检查的模式包括:不必要的工作(循环中重复计算、重复读取文件、重复 API 调用、循环内数据库查询)、错过的并发(顺序 await 独立操作)、热路径膨胀、重复的无操作更新、不必要的存在性检查(TOCTOU)、内存问题、过于宽泛的操作。
使用方式
该技能遵循严格的流程:
阶段 1:识别变更
- 运行 git diff 查看未暂存的变更
- 若无输出,运行 git diff HEAD 检查已暂存的变更
- 若仍无输出,检查用户提到或本次对话中较早编辑过的最近修改文件
- 若无法识别变更,通知用户并停止
- 捕获完整 diff 输出,作为三个代理的输入
阶段 2:并行启动三个审查代理
- 通过 Agent 工具在单条消息中同时派发三个代理
- 每个代理接收完整 diff 及其审查提示
- 不向代理提供其他代理的发现,也不指示代理修复问题(代理只报告发现)
阶段 3:修复问题
- 等待三个代理全部完成
- 汇总三个代理的发现
- 去重重叠的发现
- 对每个可操作的发现应用最小修复,不捆绑无关改进,不扩大修复范围
- 对误报静默跳过
- 运行测试套件验证未引入回归
- 若修复后测试失败,回退该修复并报告为需要人工关注的问题
- 简要总结修复内容(或确认代码已干净)
适用场景
- 任何实现工作之后需要代码质量验证时
- 用户说“simplify”“clean up”“review the changes”或“check the code”时
- run-plan 执行之后、review-work 之前,作为中间质量检查
- 用户怀疑近期变更中存在重复逻辑、低效或 hacky 模式时
限制
以下情况不应使用该技能:
- 没有变更(无 diff 输出)时
- 用户想要完整代码库审计时(该技能只审查 diff)
- 用户只想要格式化或 lint 修复时
- 目标是计划验证时(应使用 review-work)
该技能还列出了反模式:未先运行 git diff 就审查、顺序运行代理、只给每个代理部分 diff、只报告发现而不修复、与跳过的发现争论或解释、审查未变更的代码、修复后不运行测试、将“顺便”改进捆绑进修复。
过渡
简化完成后:
- 若这是实现后的质量检查,建议过渡到 review-work 进行独立计划验证
- 若发现问题并已修复,用户可能想再次运行 simplify 验证修复是否干净
- 若审查中发现 bug,建议使用 systematic-debugging
该技能本身不调用下一个技能,它报告结果并让用户决定下一步。