deprecation-and-migration

Plans and executes deprecation of legacy systems and zero-downtime database schema migrations.

Updated Mar 14, 2026
One-click install
npx skills add https://github.com/yourlabpt/yourlabpt_website --skill deprecation-and-migration-yourlabpt
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: deprecation-and-migration
Source: https://github.com/yourlabpt/yourlabpt_website/tree/main/projects/skills/deprecation-and-migration
Command: npx skills add https://github.com/yourlabpt/yourlabpt_website --skill deprecation-and-migration-yourlabpt

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Removing old systems, APIs, and database columns is risky: consumers depend on undocumented behavior, schema changes can break running code during rollouts, and unmaintained zombie code accumulates security debt. This Skill provides a disciplined process for deprecating systems and migrating users safely. ## Core Features & Use Cases - Deprecation Decision Framework: Quantify consumer count, migration cost, and maintenance cost before deciding between advisory and 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 without downtime using additive phases, dual-writes, batched backfills, and tested down migrations. - Use Case: You need to rename a name column to full_name in production. The Skill walks you through adding the nullable column, dual-writing, backfilling in batches, switching reads, and dropping the old column in a separate deploy. ## Quick Start Help me plan the deprecation of our legacy task service and migrate all consumers to the new implementation without downtime.

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 or service without breaking consumers?▼

Deprecate an API by first shipping a production-proven replacement, then announcing with a migration guide and tooling. Migrate consumers incrementally using the Strangler pattern or feature flags, verify zero active usage via metrics and logs, and only then remove the old code.

How to rename a database column in production without downtime?▼

Rename a column using expand/contract: add the new nullable column, 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 in place, since old and new code run simultaneously during rollouts.

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 it, and always provide 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 them.

Why do database migrations fail during deployment rollouts?▼

Migrations fail 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. Coupling a safe add with a destructive drop, or merging without a tested down path, also causes failures.

What should I do with zombie code that nobody owns?▼

Zombie code with active consumers but no owner must either get an assigned maintainer who invests in it, or be deprecated with a concrete migration plan. Leaving it in limbo accumulates security vulnerabilities and compatibility debt.