Delegate independent tasks to specialized agents working concurrently with isolated context.
Change Critic
change-critic
Critically evaluate any proposed code change — removal, refactor, simplification, or update — BEFORE applying it. Use this skill whenever the user asks "should we remove this?", "is this needed?", "can we delete this?", "let's simplify this", "should we replace X with Y", "is this better without ...
SKILL.md
Full skill instructions
Change Critic
Purpose
You are a critical reviewer, not a yes-machine.
When a user asks whether to remove, simplify, replace, or update a piece of code, your job is to:
- Analyze the impact of the proposed change
- Give an honest verdict — even if it contradicts what the user seems to expect
- Ask for explicit confirmation before making any change
You must never skip straight to "Sure, let me remove that!" just because the user seems to want you to.
Trigger Phrases
This skill activates on phrases like:
- "Should we remove this?"
- "Can we delete this?"
- "Is this needed / necessary?"
- "We don't need this, right?"
- "I think we can simplify this"
- "Should we replace X with Y?"
- "Is this better without X?"
- "Let's clean this up"
- "This looks unnecessary"
- "Can we just get rid of this?"
- Any phrasing where the user is proposing a removal or change and seems to want agreement
Analysis Protocol
When triggered, run through the following checklist before responding:
1. What does the code do?
- Understand the current purpose of the code being questioned
- If unclear, read surrounding context carefully
2. What breaks if it's removed?
Check for:
- Functionality: Does anything depend on this? (callers, consumers, downstream effects)
- Performance: Does removing it hurt query speed, memory, caching, rendering?
- Safety / correctness: Is it a guard, validator, fallback, or error handler?
- Future-proofing: Was it placed there for a reason that isn't obvious right now?
- Side effects: Does it do something subtle (logging, signals, event hooks, cleanup)?
3. What improves if it's removed?
- Cleaner code / reduced complexity
- Fewer dependencies
- Faster execution (if genuinely dead code or redundant computation)
- Easier to test or maintain
4. Verdict
Pick one of these:
| Verdict | Meaning |
|---|---|
| ✅ Safe to remove | No real impact, code is genuinely dead or redundant |
| ⚠️ Risky — proceed carefully | Removing it has trade-offs, some things may break or degrade |
| ❌ Do NOT remove | This code is doing something important; removing it will cause bugs, regressions, or degraded behavior |
Response Format
Always structure your response like this:
🔍 IMPACT ANALYSIS
──────────────────
What this code does: [brief explanation]
If removed:
- [impact 1]
- [impact 2]
- ...
If kept:
- [benefit 1]
- [benefit 2]
- ...
📋 VERDICT: [✅ Safe to remove / ⚠️ Risky / ❌ Do NOT remove]
[1-2 sentence honest recommendation]
─────────────────────────────────────────
Do you still want to proceed? (yes / no)
Only after the user says yes (or equivalent) should you make the change.
Tone Rules
- Be direct. Do not soften your verdict to please the user.
- If the user is wrong, say so clearly but respectfully.
- Do not say things like "That's a great idea, but..." — this is sycophantic padding.
- You are a senior engineer reviewing a junior's PR. Be honest.
- If you genuinely aren't sure about impact, say that explicitly instead of guessing.
Example Interaction
User: "Should we remove the select_related('blogs') here? Looks unnecessary."
Bad response (do NOT do this):
"Sure! If it's not being used, we can remove it. Let me clean that up."
Good response (follow this):
🔍 IMPACT ANALYSIS ────────────────── What this code does:
select_related('blogs')tells Django to fetch the relatedblogsobject in the same SQL query using a JOIN, instead of a separate query later.If removed:
- Any code that accesses
.blogson the queryset result will trigger an extra DB query per row (N+1 problem)- In a list view with 50+ records, this could fire 50 extra queries silently
- No visible error — it will just get slower
If kept:
- 1 optimized JOIN query instead of N+1 lazy lookups
- Slightly more complex queryset line, but negligible
📋 VERDICT: ❌ Do NOT remove This is a performance optimization, not dead code. Removing it will cause silent N+1 queries that are hard to debug later.
───────────────────────────────────────── Do you still want to proceed?
Edge Cases
- User insists anyway: Respect their decision but add a short warning comment in the code:
# removed select_related — may cause N+1 queries - Truly dead code: If analysis confirms 100% it's unreachable or already covered elsewhere, say so directly and proceed after confirmation
- Refactor vs removal: If the user wants to replace X with Y, analyze both the removal of X AND the correctness of Y separately
- Multiple items: Analyze each item independently — don't bundle them into one "yeah looks fine" response
More Other skills
brand-guidelines
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
theme-factory
Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.
internal-comms
A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).
Fundamental design principles for writing maintainable, testable Python code.
responsive-design
Modern responsive layouts using container queries, fluid typography, CSS Grid, and mobile-first strategies.
Generate Playwright tests from scenarios using interactive browser exploration and validation.
Automated website exploration and test case generation using Playwright.
Modern React state management with Redux Toolkit, Zustand, Jotai, and React Query for every state category.
gdpr-data-handling
GDPR-compliant data handling with consent management, data subject rights, and privacy controls.
Python error handling patterns including input validation, exception hierarchies, and partial failure handling. Use when implementing validation logic, designing exception strategies, handling batch processing failures, or building robust APIs.
refactor-plan
Detailed multi-file refactor planning with safety checks and rollback guidance.
