deprecation-and-migration

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

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Engineering teams struggle to remove old systems, APIs, and features safely. This Skill provides a disciplined process for deprecating code and migrating users, including zero-downtime database schema changes, so removal doesn't break consumers. ## Core Features & Use Cases - Deprecation Decision Framework: Evaluate whether to maintain or sunset a system by quantifying consumers, migration cost, and ongoing maintenance cost. - Migration Patterns: Apply the Strangler pattern, Adapter pattern, feature flag cutovers, and expand/contract database migrations with worked examples. - Zombie Code Triage: Identify unmaintained code with active consumers and decide between assigning ownership or planning removal. - Use Case: You need to rename a database column in production without downtime. Follow the expand/contract workflow: add the new nullable column, dual-write, backfill in batches, switch reads, then drop the old column in a separate deploy. ## Quick Start Ask the AI to plan a deprecation and migration path for your legacy service or database schema change, including consumer migration steps and rollback safety.

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 building a production-proven replacement, then announcing with documentation and migration tooling. Migrate consumers incrementally, verify zero active usage through metrics and logs, and only then remove the old system.

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

Rename a column using expand/contract: add the new column as nullable, dual-write both columns, backfill existing rows in 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, while compulsory deprecation sets a hard removal deadline. Default to advisory; use compulsory only when security risk or maintenance cost justifies forcing migration.

When should I use the Strangler pattern for migration?▼

Use the Strangler pattern when replacing a system that handles live traffic. Run old and new systems in parallel, route traffic incrementally from old to new, and remove the old system once it handles zero percent of traffic.

Why do database migrations fail during deployment rollouts?▼

Migrations fail when schema changes are coupled to code changes: during rollout, old and new code run simultaneously and one queries a column that doesn't exist. Fix this with additive phases so both code versions are valid at every step.

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

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