deprecation-and-migration

Plan and execute deprecation of legacy systems and zero-downtime database schema migrations.

Updated Sep 5, 2026
One-click install
npx skills add https://github.com/nntoan/ultra-omp --skill deprecation-and-migration-nntoan
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: deprecation-and-migration
Source: https://github.com/nntoan/ultra-omp/tree/main/packages/proflow/skills/deprecation-and-migration
Command: npx skills add https://github.com/nntoan/ultra-omp --skill deprecation-and-migration-nntoan

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Removing old systems, APIs, and database columns is risky: hidden consumers depend on undocumented behavior, and in-place schema changes break rolling deploys. This Skill provides a disciplined process for deprecating code and migrating users and schemas without downtime. ## 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 in additive phases (expand, dual-write, backfill, contract) so old and new code stay valid at every deploy. - 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, batch backfilling, switching reads, and dropping the old column in a separate deploy. ## Quick Start Ask the assistant to plan a deprecation and migration for your legacy service or to design an expand/contract migration for renaming a database column 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?▼

Build a production-proven replacement first, announce the deprecation with a migration guide, then migrate consumers incrementally using the Strangler pattern or feature flags. Verify zero active usage via metrics and logs before removing the old code.

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

Use expand/contract: 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 in place.

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 requires providing migration tooling, documentation, and support.

Why do rolling deploys break when a column is renamed in one release?▼

During rollout, old and new code run simultaneously, so one version queries a column that no longer exists. Expand/contract keeps both old and new schema shapes valid at every deploy step, making each phase independently reversible.

When should I maintain legacy code instead of deprecating it?▼

Maintain it when the system still provides unique value that no replacement covers. Deprecate only when a proven alternative exists and migration cost is justified against the ongoing maintenance, security, and onboarding cost of keeping both systems.