deprecation-and-migration

Plans deprecation and incremental migration of legacy systems, APIs, and database schemas.

3|Updated Jul 28, 2026
One-click install
npx skills add https://github.com/marcmarti9/agentit --skill deprecation-and-migration-marcmarti9
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: deprecation-and-migration
Source: https://github.com/marcmarti9/agentit/tree/main/skills/deprecation-and-migration
Command: npx skills add https://github.com/marcmarti9/agentit --skill deprecation-and-migration-marcmarti9

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Teams are good at building systems but poor at removing them, leaving zombie code, unmaintained dependencies, and risky in-place schema changes that break production during rollouts. This Skill provides a disciplined process for deciding what to deprecate, migrating consumers safely, and removing old code without downtime. ## Core Features & Use Cases - Deprecation Decision Framework: Quantify consumer count, migration cost, and maintenance cost before choosing advisory or compulsory deprecation. - Migration Patterns: Apply the Strangler pattern, Adapter pattern, and feature-flag cutovers to move consumers incrementally from old to new implementations. - Expand/Contract Schema Migrations: Rename or drop database columns in additive phases (expand, dual-write, backfill, contract) so old and new code stay valid at every deploy. - Use Case: When renaming a name column to full_name in production, follow the five-phase expand/contract sequence with batched backfills and a tested down path instead of a risky in-place rename. ## Quick Start Use the deprecation-and-migration skill to plan a zero-downtime migration that renames the users.name column to full_name in production.

Frequently Asked Questions about deprecation-and-migration

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

FAQPage Schema
How do I rename a database column in production without downtime?▼

Use the expand/contract pattern: add the new column as nullable, dual-write both columns, backfill existing rows in throttled batches, switch reads to the new column, then drop the old column in a separate later deploy. Never rename a column in place.

How to deprecate an API or system safely?▼

First build a production-proven replacement, then announce the deprecation with a migration guide and tooling, migrate consumers incrementally, and verify zero active usage via metrics and logs before removing the old code, tests, and documentation.

What is the difference between advisory and compulsory deprecation?▼

Advisory deprecation uses warnings and documentation so users migrate on their own timeline when the old system is stable. Compulsory deprecation sets a hard removal deadline and is reserved for security issues or unsustainable maintenance cost, and it requires providing migration tooling and support.

When should I use the Strangler pattern vs an adapter for migration?▼

Use the Strangler pattern when routing traffic incrementally from an old system to a new one until the old handles zero percent. Use an adapter when consumers must keep the old interface while the backend implementation is swapped underneath.

Why do schema migrations fail during deployment rollouts?▼

Failures happen when a schema change ships in the same deploy as the code depending on it, because old and new code run simultaneously and one queries a column that does not exist. Additive phases keep both code versions valid at every step.

What are the limitations of keeping legacy code just in case?▼

Unused code still incurs maintenance cost through security patches, dependency updates, and onboarding overhead. If functionality is needed later it can be rebuilt, and zombie code with no owner must either receive investment or a concrete removal plan.