deprecation-and-migration

Plan structured code removal and incremental migration from legacy systems to replacements.

1|Updated Apr 13, 2026
One-click install
npx skills add https://github.com/insightriot/signal --skill deprecation-and-migration-insightriot
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: deprecation-and-migration
Source: https://github.com/insightriot/signal/tree/main/plugin/skills/ship/deprecation-and-migration
Command: npx skills add https://github.com/insightriot/signal --skill deprecation-and-migration-insightriot

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Engineering teams accumulate dead code, zombie systems, and duplicate implementations because removing code is harder than writing it. This Skill provides a disciplined process for deciding what to deprecate, migrating consumers safely, and fully removing old systems without breaking dependents. ## Core Features & Use Cases - Deprecation Decision Framework: A five-question checklist to determine whether a system should be maintained, migrated, or removed, including quantifying consumer count and maintenance cost. - Migration Patterns: Concrete implementations of the Strangler Pattern, Adapter Pattern, and feature-flag-based migration with TypeScript examples for incremental cutover. - Zombie Code Detection: Criteria for identifying unmaintained code with active consumers, plus guidance on assigning ownership or planning removal. - Use Case: When replacing a legacy task service, use this Skill to announce the deprecation with a migration guide, migrate consumers one at a time behind a feature flag, verify zero remaining usage via logs, and then delete the old code, tests, and documentation. ## Quick Start Ask the AI to plan the deprecation of a legacy service and produce a migration guide with an incremental cutover strategy for all current consumers.

Frequently Asked Questions about deprecation-and-migration

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I deprecate a legacy system without breaking consumers?▼

Build a production-proven replacement first, announce the deprecation with a migration guide, then migrate consumers incrementally using the Strangler Pattern or feature flags. Only remove the old system after metrics and logs confirm zero active usage.

What is the difference between advisory and compulsory deprecation?▼

Advisory deprecation uses warnings and documentation so users migrate on their own timeline, while compulsory deprecation sets a hard removal deadline. Default to advisory; use compulsory only when security risk or maintenance cost justifies forcing migration, and always provide tooling.

How do I migrate users from an old API to a new one incrementally?▼

Use the Strangler Pattern to route traffic gradually from old to new, or an Adapter that translates the old interface to the new implementation. Feature flags let you switch individual consumers one at a time and verify behavior before full cutover.

When should I remove dead code instead of keeping it?▼

Remove code when it no longer provides unique value and a replacement exists, since every line carries ongoing maintenance, security, and onboarding cost. If functionality might be needed later, rebuilding is usually cheaper than indefinite maintenance.

What is zombie code and how do I handle it?▼

Zombie code is unmaintained code with no owner but active consumers, often showing no commits in 6+ months and unpatched vulnerabilities. Either assign an owner and maintain it properly, or deprecate it with a concrete migration plan.