# Review And Simplify Changes

> 审查 git diff 或指定文件范围内的代码复用、质量、效率、清晰度和规范问题，然后可选地应用安全的 Codex 驱动修复。当用户要求"简化代码""审查变更代码""检查代码复用""审查代码质量""审查……"时使用。触发词：简化代码、审查变更、检查复用、代码质量审查、simplify code、review changes、check reuse、code quality review

- Skill: `kscz0000/review-and-simplify-changes` (Agent Skill)
- Install (CLI): `npx skillmds@latest add kscz0000/review-and-simplify-changes`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kscz0000/review-and-simplify-changes/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: kscz0000 (https://skillmd.com/u/kscz0000)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/kscz0000/review-and-simplify-changes

---


# 审查与简化变更
## 何时使用

当你需要审查 git diff 或指定文件范围内的代码复用、质量、效率、清晰度和规范问题，然后可选地应用安全的 Codex 驱动修复时使用此技能。当用户要求"简化代码""审查变更代码""检查代码复用""审查代码质量""审查……"时触发。


审查变更代码中的复用、质量、效率和清晰度问题。使用 Codex 子代理并行审查，但保持这些子代理为只读：它们只能检查代码并将发现反馈给主代理。只有主代理可以应用高置信度、行为保持不变的修复。

## 模式

根据用户请求选择模式：

- `review-only`：用户要求审查、审计或检查变更
- `safe-fixes`：用户要求简化、清理或重构变更
- `fix-and-validate`：与 `safe-fixes` 相同，但在编辑后还运行最小范围的相关验证

如果用户未指定，默认为：

- "审查""审计""检查" → `review-only`
- "简化""清理""重构" → `safe-fixes`

## 步骤 1：确定范围和 Diff 命令

优先按以下顺序确定范围：

1. 用户明确指定的文件或路径
2. 当前 git 变更
3. 当前 Codex 轮次中之前编辑过的文件
4. 最近修改的已跟踪文件（仅当用户要求审查但没有任何 diff 时使用）

如果没有明确范围，停下来简要说明。

使用 git 变更时，根据仓库状态确定最小的正确 diff 命令：

- 未暂存的工作：`git diff`
- 已暂存的工作：`git diff --cached`
- 用户明确请求的分支或提交比较：使用该确切的 diff 目标
- 混合暂存和未暂存的工作：两者都审查

不要假设 `git diff HEAD` 是正确的默认值，当更小的 diff 可用时应优先使用更小的 diff。

在审查规范或应用修复之前，读取仓库的本地指令文件和受影响区域的相关项目文档。优先使用最接近的适用指导，例如：

- `AGENTS.md`
- 仓库工作流文档
- 受影响模块的架构或风格文档

使用这些指令来区分真实问题和有意的本地模式。

## 步骤 2：并行启动四个只读审查子代理

当范围足够大时，使用 Codex 子代理进行并行审查。对于极小的 diff 或非常小的单个文件，可以在本地审查。

生成子代理时：

- 给每个子代理相同的范围
- 告诉每个子代理只检查其被分配的审查角色
- 告诉每个子代理它正在执行只读审查
- 不允许子代理编辑文件、运行 `apply_patch`、暂存变更、提交或执行其他状态变更操作
- 要求仅返回简洁、结构化的发现
- 要求每个子代理报告文件、行号或符号、问题、建议修复和置信度
- 要求每个子代理仅将发现返回给主代理；它们不得自行实施修复

使用四个审查角色。

### 子代理 1：代码复用审查

审查变更中的复用机会：

1. 搜索已解决相同问题的现有辅助函数、工具函数或共享抽象。
2. 标记变更中引入的重复函数或近似重复的逻辑。
3. 标记应该调用现有辅助函数而不是重新实现的内联逻辑。

此子代理为只读。它不得编辑文件、应用补丁或进行任何其他工作区变更。

推荐子代理角色：`explorer`（用于广泛的代码库查找），或 `reviewer`（如果更强的审查比广泛搜索更有用）。

### 子代理 2：代码质量审查

审查相同变更的代码质量问题：

1. 不必要的冗余状态、缓存值或派生值存储
2. 由于在现有调用链中传递新参数导致的参数膨胀
3. 略有变化的复制粘贴，应该成为共享抽象
4. 模块边界间的抽象泄漏或所有权违规
5. 已有类型化契约、枚举或常量的情况下仍使用字符串类型值

此子代理为只读。它不得编辑文件、应用补丁或进行任何其他工作区变更。

推荐子代理角色：`reviewer`

### 子代理 3：效率审查

审查相同变更的效率问题：

1. 重复工作、重复读取、重复 API 调用或不必要的重新计算
2. 可以安全并发执行的顺序工作
3. 在启动、渲染、请求或其他热路径上添加了无明确需求的新工作
4. 在操作本身可以直接尝试并通过错误处理完成时的存在性预检查
5. 内存增长、缺少清理或监听器/订阅泄漏
6. 代码只需要子集时过于宽泛的读取或扫描

此子代理为只读。它不得编辑文件、应用补丁或进行任何其他工作区变更。

推荐子代理角色：`reviewer`

### 子代理 4：清晰度与规范审查

审查相同变更的清晰度、本地规范和平衡性问题：

1. 违反本地项目约定或模块模式
2. 不必要的复杂性、深层嵌套、弱命名或冗余注释
3. 过于紧凑或巧妙而降低可读性的代码
4. 过度简化，将不同的关注点折叠成一个不清晰的单元
5. 死代码、死抽象或没有价值的间接层

此子代理为只读。它不得编辑文件、应用补丁或进行任何其他工作区变更。

推荐子代理角色：`reviewer`

仅报告对可维护性、正确性或成本有实质性改善的问题。不要仅仅为了让代码看起来不同而改动代码。

## 步骤 3：汇总发现

等待所有审查子代理完成，然后合并它们的发现。

此步骤由主代理负责。将子代理的输出仅视为审查输入，而不是将代码变更委派回去的许可。

将发现标准化为此格式：

1. 文件及行号或最近的符号
2. 类别：复用、质量、效率或清晰度
3. 为什么这是问题
4. 建议修复
5. 置信度：高、中或低

在编辑前，丢弃弱的、重复的或与指令冲突的发现。

## 步骤 4：谨慎修复问题

在 `review-only` 模式下，报告发现后即停止。

在 `safe-fixes` 或 `fix-and-validate` 模式下：

- 此技能中只有主代理可以应用修复
- 仅应用高置信度、行为保持不变的修复
- 跳过需要产品或架构判断的主观重构
- 当本地模式是有意的或由指令支持的，予以保留
- 将编辑范围限制在已审查的文件内，除非需要小的相邻变更才能正确完成修复

优先的修复类型：

- 用现有辅助函数替换重复代码
- 移除冗余状态或死代码
- 在不改变行为的情况下简化控制流
- 收窄过于宽泛的操作
- 在范围受控时重命名不清楚的局部变量

不要作为此技能的一部分暂存、提交或推送变更。

## 步骤 5：必要时验证

在 `fix-and-validate` 模式下，主代理完成编辑后，对受影响范围运行最小范围的相关验证。

示例：

- 受影响模块的定向测试
- 受影响目标的类型检查或编译
- 如果这是项目真正的安全门，运行格式化或 lint 检查

优先使用快速、范围受限的验证，而非完整套件运行，除非变更范围证明了需要更全面的验证。

如果因用户要求不运行而跳过验证，请明确说明。

## 步骤 6：总结结果

以简要结果收尾：

- 审查了什么
- 修复了什么（如果有）
- 有意保留不改的是什么
- 是否运行了验证

如果代码在此审查标准下已经干净，直接说明，而不是制造编辑。

## 局限性

- 仅当任务明确匹配其上游来源和本地项目上下文时使用此技能。
- 在应用变更之前，验证命令、生成的代码、依赖项、凭证和外部服务行为。
- 不要将示例替代为环境特定的测试、安全审查或用户对破坏性或高成本操作的批准。

