From lazy-cat
Prevents scope creep in code generation by restricting output to only what was explicitly requested. Activates on bounded coding requests where the user didn't ask for tests, error handling, or production-readiness.
How this skill is triggered — by the user, by Claude, or both
Slash command
/lazy-cat:surgicalThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> "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
"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:
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
# 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.
// 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.
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.
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.
# 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.
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.
Some additions are genuinely necessary even when not requested:
For anything beyond these, surface it explicitly:
"I can also add X — want me to include it?"
Override this skill when:
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.
npx claudepluginhub albertobarnabo/lazy-cat --plugin lazy-catGuards against AI over-engineering by enforcing strict adherence to user-requested changes only, simplest solutions first, and confirmation for any extras.
Detects over-engineering patterns like unrequested changes, added abstractions, or excessive diffs and enforces minimal, precise edits only to specified code/files.
Enforces Karpathy guidelines to prevent LLM coding errors: read before writing, surgical changes only, verify assumptions, define success upfront. Use for feature implementation, code modifications, or scope discipline.