From 89ed895e259b8852e1676deb3fa61bbbef92ead7 Mon Sep 17 00:00:00 2001 From: wwj Date: Sat, 7 Feb 2026 12:45:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20code-review=20=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=A2=9E=E5=8A=A0=E9=A3=8E=E9=99=A9=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E5=92=8C=E8=8C=83=E5=9B=B4=E7=BA=A6=E6=9D=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - /code-review 修复选项细化为三级:仅 Critical、全部、跳过 - 每个选项附带详细风险说明,帮助用户做出判断 - /fix 新增 [code-review] 前缀触发的变更范围强制约束 - 约束包括:只改 diff 文件、禁止重构、禁止改变现有行为 --- .claude/commands/code-review.md | 41 +++++++++++++++++++++++---------- .claude/commands/fix.md | 11 +++++++++ 2 files changed, 40 insertions(+), 12 deletions(-) diff --git a/.claude/commands/code-review.md b/.claude/commands/code-review.md index ed60d92..0771653 100644 --- a/.claude/commands/code-review.md +++ b/.claude/commands/code-review.md @@ -103,16 +103,33 @@ description: 对当前分支的变更进行代码审查 **结论为「通过」**:直接结束,不询问。 **结论为「需修改后通过」或「需重新设计」**: -1. 使用 AskUserQuestion 询问用户是否需要自动修复 -2. 选项: - - 「自动修复」:调用 `/fix` 命令,将所有 [Critical] 和 [Improvement] 问题作为输入 - - 「跳过」:结束审查 -3. 用户选择修复时,调用 Skill 工具执行 `/fix`,参数格式: - ``` - 根据代码审查结果修复以下问题: - 1. [文件:行号] 问题描述 - 2. [文件:行号] 问题描述 - ... - ``` -注意:[Nit] 类问题不纳入自动修复范围。 +使用 AskUserQuestion 询问用户,提供以下选项和风险说明: + +``` +请选择修复方式: + +1. 只修复严重问题(推荐) + 仅修复 [Critical] 问题。范围最小,只改必须修的 bug, + 不会影响现有功能的正常运行。 + +2. 修复全部问题 + 修复 [Critical] + [Improvement] 问题。改动范围较大, + Improvement 属于建议性改进,修复过程中可能改变现有代码行为, + 存在引入新问题的风险。 + +3. 跳过 + 不做任何修改,仅保留审查报告供参考。 +``` + +用户选择后,调用 Skill 工具执行 `/fix`,参数格式: +``` +[code-review] 根据代码审查结果修复以下问题: +1. [文件:行号] 问题描述 +2. [文件:行号] 问题描述 +... +``` + +注意: +- [Nit] 类问题不纳入自动修复范围 +- 参数必须以 `[code-review]` 开头,触发 /fix 的变更范围约束 diff --git a/.claude/commands/fix.md b/.claude/commands/fix.md index 6adb36e..6b05a3b 100644 --- a/.claude/commands/fix.md +++ b/.claude/commands/fix.md @@ -8,6 +8,17 @@ description: 快速修复(定位 → 修复 → 验证) 「$ARGUMENTS」— 问题描述或错误信息 +## ⚠️ 来自 code-review 的变更范围约束 + +**当输入以 `[code-review]` 开头时**,必须遵循以下强制规则: + +| 规则 | 说明 | +|------|------| +| 只改变更范围内的文件 | 仅修改 `git diff` 涉及的文件,禁止修改未变更的代码 | +| 禁止重构 | 不做代码风格调整、不重命名变量、不提取函数 | +| 禁止改变现有行为 | 修复不能导致原有正常功能不可用 | +| 最小修改 | 每个问题用最少的代码改动解决,不做额外"顺手"优化 | + ## 流程 ### 1. 定位问题