skills/deprecate/SKILL.md
Manage deprecation and migration of old systems, APIs, or features. Use when removing legacy code, sunsetting features, consolidating duplicate implementations, or planning the lifecycle of a new system. Don't use for one-off refactors (use `refactor-plan`), in-flight code simplification, or removing dead code with zero callers (just delete it).
npx skillsauth add helderberto/skills deprecateInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Code is a liability, not an asset. Every line carries ongoing cost: tests, docs, security patches, dependency updates, mental overhead. Deprecation is the discipline of removing code that no longer earns its keep. Migration is the process of moving users safely from the old to the new.
Most teams build well, few remove well. This skill addresses the gap.
Functionality has value; code has cost. When the same functionality can be provided with less code or better abstractions, the old code should go.
With enough users, every observable behavior becomes depended on — including bugs, timing quirks, and undocumented side effects. Deprecation requires active migration, not just announcement. Users can't "just switch" when they depend on behaviors the replacement doesn't replicate.
When building something new, ask: "How would we remove this in 3 years?" Clean interfaces, feature flags, and minimal surface area are easier to deprecate.
Before deprecating anything:
1. Does this system still provide unique value?
→ Yes: maintain it. No: proceed.
2. How many users/consumers depend on it?
→ Quantify the migration scope. If unknown, find out before announcing.
3. Does a replacement exist?
→ No: build the replacement first. Never deprecate without an alternative.
4. Who owns the deprecation?
→ Without a named owner, deprecations stall indefinitely.
5. What is the timeline?
→ Open-ended deprecations never finish. Pick a date.
@deprecated JSDoc, runtime warning, etc.)| Signal | Suggests | |--------|----------| | Replacement exists and is mature | Migrate | | Old system has acute pain (security CVEs, perf cliff, can't hire for it) | Migrate urgently | | Old system works, new system speculative | Maintain — don't migrate for novelty | | Migration cost > 5x maintenance cost | Maintain unless strategic reason | | Single consumer, can be coordinated 1:1 | Migrate, low ceremony | | Many consumers, behaviors leaked | Migrate carefully, long timeline |
After completing a deprecation:
testing
Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.
documentation
Compact the current conversation into a handoff doc so a fresh agent can continue the work. Use when user asks to "handoff", "/handoff", "hand this off", or wants to end a session mid-task. Don't use for summarising completed work, writing PRDs/plans/ADRs, or committing changes.
development
Create new agent skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, or build a new skill, or asks "make a skill for X".
development
Tell the agent to zoom out and give broader context or a higher-level perspective. Use when you're unfamiliar with a section of code or need to understand how it fits into the bigger picture.