deprecation-and-migration

Plans and executes deprecation and migration of legacy systems, APIs, and features.

1|Updated May 29, 2026
One-click install
npx skills add https://github.com/memasanz/agent-harness --skill deprecation-and-migration-memasanz
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: deprecation-and-migration
Source: https://github.com/memasanz/agent-harness/tree/main/.github/skills/deprecation-and-migration
Command: npx skills add https://github.com/memasanz/agent-harness --skill deprecation-and-migration-memasanz

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Engineering teams accumulate legacy code, zombie systems, and duplicate implementations that silently increase maintenance cost and security risk. 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 patterns including the Strangler Pattern, Adapter Pattern, and feature-flag-based migration, with code examples for incremental cutover. - Advisory vs Compulsory Deprecation: Guidance on choosing between soft nudges and hard deadlines, plus templates for deprecation notices and migration guides. - Use Case: You are replacing a legacy task service with a new implementation. Use this Skill to announce the deprecation, migrate consumers one at a time behind a feature flag, verify zero remaining usage, and remove the old code, tests, and documentation. ## Quick Start Ask the agent to plan the deprecation of a legacy API 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 an API without breaking existing consumers?

Deprecate an API by first shipping a production-proven replacement, then publishing a deprecation notice with a migration guide. Migrate consumers incrementally using the strangler pattern or feature flags, and only remove the old API 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. You start with a small canary percentage, scale to full traffic on the new system, and remove the old system once it handles zero requests.

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 is the default; a hard deadline requires providing migration tooling, documentation, and support.

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

Use the adapter pattern: create a class that keeps the old interface but delegates calls to the new implementation. Consumers keep working unchanged while you migrate the backend, then you remove the adapter once all consumers switch.

What is zombie code and how should it be handled?

Zombie code is unmaintained code with no owner that still has active consumers, often shown by stale commits, failing tests, and unpatched vulnerabilities. It must either get an assigned owner and proper maintenance, or be deprecated with a concrete migration plan.

When should you not deprecate a legacy 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.