‹ 首页

surgical-changes

@developersglobal · 收录于 1 周前

Enforces minimal code modifications — touch only what you must. Prevents drive-by refactoring, comment deletions, and style changes unrelated to the task.

适合你,如果常因代码审查中无关修改而返工

/ 下载安装
surgical-changes.skill双击,或拖进 Claude 桌面版 / Cowork,即完成安装↓ .skill↓ .zip
用别的 agent?下载 .zip 解压,把文件夹放进它的技能目录
Claude Code~/.claude/skills/(项目级 .claude/skills/)
Codex CLI~/.codex/skills/
Cursor自动读取上面两处目录
其他工具见其文档的「skills」目录;两个下载是同一份文件,只是名字不同
/ 通过 npx 安装 校验哈希
npx oh-my-skill add developersglobal/ai-agent-skills/surgical-changes
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- developersglobal/ai-agent-skills/surgical-changes
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify developersglobal/ai-agent-skills/surgical-changes
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
64GitHub stars
~927上下文体积 · 单文件
镜像托管

怎么用

技能原文 SKILL.md作者撰写 · MIT · f47f948
Overview

Every changed line is a line the reviewer must inspect, a line that could introduce a regression, and a line that will appear in the git blame forever. Unnecessary changes are costly.

AI agents often "improve" adjacent code, reformat files, rename variables for consistency, or delete "dead" code — all without being asked. This creates noisy diffs, unexpected behavior changes, and broken trust.

This skill enforces a hard rule: every changed line must trace directly to the user's request.

When to Use
  • Any time you are modifying existing code (not creating new files)
  • When your diff is larger than you expected
  • When reviewing your own generated changes before presenting them
Process
Step 1: Establish the Change Boundary
  1. Read the task carefully. Write down exactly which files and functions need to change.
  2. Draw a mental boundary: "Everything outside this boundary is out of scope."
  3. List what you will NOT change, even if you'd do it differently:
  4. Adjacent functions
  5. Variable naming conventions
  6. Comment style
  7. Import order
  8. Formatting/whitespace (unless fixing a specific bug)

Verify: You can name the specific functions/lines that need to change.

Step 2: Make Only the Required Changes
  1. Make the changes — and only the changes — within the defined boundary.
  2. If you notice something wrong outside the boundary:
  3. Mention it in a comment — don't fix it silently
  4. Example: "Note: I noticed fetchUser has no error handling, but I'm leaving that for a separate PR."
  5. If your changes made imports/variables/functions unused: remove only those created by YOUR changes. Leave pre-existing dead code alone (unless asked).

Verify: No line changed that wasn't part of the defined scope.

Step 3: Review Your Own Diff
  1. Read through your diff line by line.
  2. For each changed line, ask: "Why did I change this?"
  3. If you can't answer → revert it
  4. Flag any changes that are purely cosmetic and ask: "Should I include this?"

Verify: Every changed line has a clear reason directly tied to the task.

Step 4: Document Scope Decisions
  1. In your PR/commit message, explicitly note what you chose NOT to change and why:
  2. "Did not refactor the adjacent parseDate function — out of scope for this fix."
Common Rationalizations (and Rebuttals)

| Excuse | Rebuttal | |--------|----------| | "I improved it while I was there" | That's a separate PR. Drive-by improvements hide bugs and inflate diffs. | | "The old comment was wrong" | Fix comments related to your change. Leave others for a documentation PR. | | "I made the code more consistent" | Consistency PRs should be standalone. Don't bundle them. | | "It's just whitespace" | Whitespace changes cause merge conflicts and obscure real diffs in blame. | | "The dead code is obviously wrong" | File an issue. Don't delete pre-existing code without explicit approval. |

Red Flags
  • Your diff is 3× larger than the feature size suggests
  • You changed files that aren't related to the task
  • You reformatted a file "while you were there"
  • You renamed variables for consistency
  • You deleted comments or code you didn't fully understand
  • Your PR description says "and also fixed a few other things"
Verification
  • [ ] Every changed line traces to the task description
  • [ ] No cosmetic-only changes bundled in (or explicitly approved)
  • [ ] Pre-existing dead code left untouched (or flagged, not deleted)
  • [ ] Changes to adjacent unrelated code: zero
  • [ ] Diff size is proportional to task size
References
  • [simplicity-first skill](../simplicity-first/SKILL.md)
  • [code-review skill](../code-review/SKILL.md)
  • Karpathy: "They still sometimes change/remove comments and code they don't sufficiently understand as side effects, even if orthogonal to the task."
按 MIT 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。