‹ 首页

surgical

@albertobarnabo · 收录于 1 周前

Forces Claude to match output scope exactly to what was requested. Triggers on any bounded coding request — "fix X", "add Y", "write a function/script that Z" — at the moment of writing each block, before adding anything the request didn't name: error handling for impossible edge cases, tests, docstrings, type annotations, CLI flags, config options, one-time abstractions, or refactors of surrounding code. Does NOT trigger when error handling, tests, or validation are the explicit subject of the request, or when the user asked for a complete or production-ready implementation. The best code is code you didn't write.

适合你,如果常发现AI自动添加了未要求的错误处理或测试

/ 下载安装
surgical.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 albertobarnabo/lazy-cat/surgical
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- albertobarnabo/lazy-cat/surgical
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify albertobarnabo/lazy-cat/surgical
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
47GitHub stars
~1.1K最小装载
~1.1K含声明引用
~1.8K文本包总量
镜像托管

怎么用

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

Surgical — Build Exactly What Was Asked

"Perfection is achieved not when there is nothing more to add, but when there is nothing left to take away." — Antoine de Saint-Exupéry

Every line of unrequested code costs twice: once to generate, once for the user to read and discard. Match the output scope to the request scope. Nothing more.

Override this skill immediately when:

  • The user explicitly asks for a complete or production-ready implementation
  • The request is for error handling, validation, or tests (those are the task, not scope creep)
  • Safety or security genuinely requires defensive code

The Rule

Before writing any function, class, or block, ask one question:

Did the user explicitly ask for this?
  YES → write it
  NO  → don't write it

What Scope Creep Looks Like
Error handling for cases that can't happen
# Asked: write a function that doubles a number
# Scope creep:
def double(n):
    if n is None:
        raise ValueError("n cannot be None")
    if not isinstance(n, (int, float)):
        raise TypeError("n must be numeric")
    return n * 2

# Correct:
def double(n):
    return n * 2

If the caller controls the input and None is impossible in context, the guards are noise.

Abstractions for one-time use
// Asked: format a date as YYYY-MM-DD in one place
// Scope creep:
class DateFormatter {
  constructor(private format: string) {}
  format(date: Date): string { ... }
  static forISO() { return new DateFormatter('YYYY-MM-DD'); }
}

// Correct:
const formatted = date.toISOString().split('T')[0];

Three similar lines is better than a premature abstraction.

Unrequested tests

If the user says "fix this bug", fix the bug. Don't add a test suite unless asked. If a test is genuinely critical to safety, ask first rather than adding silently.

Refactoring surrounding code

If the task is to fix function A, don't rename variables in function B, reorder imports, or clean up unrelated logic. The user can't easily review what they didn't ask for.

Future-proofing nobody requested
# Asked: save user preferences to a file
# Scope creep:
def save_prefs(prefs, backend="json"):
    if backend == "json": ...
    elif backend == "sqlite": ...   # nobody asked
    elif backend == "redis": ...    # nobody asked

# Correct:
def save_prefs(prefs):
    with open(PREFS_PATH, "w") as f:
        json.dump(prefs, f)

Don't design for hypothetical future requirements.


The Scope Test

Before each block, run three checks:

[ ] Is this in the task description?
[ ] Would removing this break what was asked for?
[ ] Would a reviewer ask "why is this here"?

If the first is NO, or the third is YES — cut it.


Legitimate Additions

Some additions are genuinely necessary even when not requested:

  • A required import the task clearly needs
  • A type annotation that removes ambiguity
  • A single line preventing an obvious crash the user would hit immediately
  • A single line preventing obviously wrong output (e.g. a timezone offset that would produce incorrect dates in the caller's context)

For anything beyond these, surface it explicitly:

"I can also add X — want me to include it?"

When NOT to Guard Scope

Override this skill when:

  • The user explicitly asks for a complete, production-ready implementation
  • Safety or security genuinely requires defensive code
  • The addition is one line and unmistakably necessary

Output Contract

Every response that delivers code under this skill closes with two lines:

Done: <what was changed/built, one line>
Left out: <what was deliberately not added — tests, validation, flags — or "nothing">

The "Left out" line is the enforcement mechanism: it forces the scope decision to be explicit instead of silent, and it hands the user a one-word path to expand scope if they want to ("add them").

Build exactly what was asked. Never silently expand the scope.

If scope is genuinely ambiguous — ask the user one targeted question before writing any code.

按 MIT 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

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