deprecation-and-migration

Plans and executes deprecation of legacy systems with incremental migration patterns.

Updated Jun 13, 2026
One-click install
npx skills add https://github.com/22Teikk/22Teikk-Agent-Skills-Hub --skill deprecation-and-migration-22teikk
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: deprecation-and-migration
Source: https://github.com/22Teikk/22Teikk-Agent-Skills-Hub/tree/main/core/skills/deprecation-and-migration
Command: npx skills add https://github.com/22Teikk/22Teikk-Agent-Skills-Hub --skill deprecation-and-migration-22teikk

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Teams are good at building systems but poor at removing them, leaving zombie code, duplicate implementations, and unmaintained legacy services that accumulate security debt and maintenance cost. This Skill provides a disciplined process for deciding what to deprecate, migrating consumers safely, and fully removing old code. ## Core Features & Use Cases - Deprecation Decision Framework: A structured checklist to evaluate whether a system still provides unique value, quantify consumer impact, and compare migration cost against ongoing maintenance cost. - Migration Patterns: Concrete implementations of the Strangler Pattern, Adapter Pattern, and feature-flag-based migration with Kotlin code examples for incremental cutover. - Advisory vs Compulsory Deprecation: Guidance on choosing between optional migration with warnings and hard-deadline removal with mandatory migration tooling. - Use Case: When replacing a legacy task service with a new implementation, 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 metrics, and then delete the old code, tests, and configuration. ## Quick Start Ask the agent to plan the deprecation of a legacy API or service and produce a migration guide with an incremental cutover strategy for all existing 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 API without breaking existing consumers?▼

Deprecate a legacy API by first shipping a production-proven replacement, then publishing a deprecation notice with a migration guide and deadline. Migrate consumers incrementally using the strangler pattern or feature flags, and only remove the old system after metrics confirm zero active usage.

What is the strangler pattern for system migration?▼

The strangler pattern runs old and new systems in parallel while routing traffic incrementally from old to new, typically moving from 0% to a 10% canary, then 50%, then 100%. Once the old system handles no traffic, it is removed.

When should deprecation be compulsory instead of advisory?▼

Use compulsory deprecation only when the old system has security issues, blocks progress, or has unsustainable maintenance cost. Advisory deprecation with warnings and documentation is the default, and compulsory removal requires providing migration tooling and support.

How do I migrate users from an old interface to a new implementation?▼

Use the adapter pattern to translate calls from the old interface to the new implementation, so consumers keep their existing code while the backend changes. Alternatively, gate the switch behind a feature flag and migrate consumers one at a time.

What is zombie code and how should it be handled?▼

Zombie code is unmaintained code with no owner that still has active consumers, often showing no commits in 6+ months and unpatched vulnerable dependencies. It must either be assigned an owner and maintained properly, or deprecated with a concrete migration plan.

When should I not deprecate an old system?▼

Do not deprecate when the system still provides unique value, when no working replacement exists, or when migration cost clearly exceeds the long-term maintenance cost. Deprecating without a proven alternative leaves consumers stranded.