deprecation-and-migration

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

Updated May 21, 2026
One-click install
npx skills add https://github.com/nicorevo/AI-SDLC-Template --skill deprecation-and-migration-nicorevo
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: deprecation-and-migration
Source: https://github.com/nicorevo/AI-SDLC-Template/tree/main/.opencode/skills/deprecation-and-migration
Command: npx skills add https://github.com/nicorevo/AI-SDLC-Template --skill deprecation-and-migration-nicorevo

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Removing old systems, APIs, and features is hard because consumers depend on undocumented behaviors, and risky migrations (especially database schema changes) can break production during rollouts. This Skill provides a disciplined process for deciding what to deprecate, migrating consumers safely, and removing code without regressions. ## Core Features & Use Cases - Deprecation Decision Framework: Structured questions to decide whether to maintain, sunset, or replace a system, including advisory vs compulsory deprecation guidance. - Migration Patterns: Step-by-step guidance for the Strangler pattern, Adapter pattern, feature-flag cutovers, and expand/contract database schema migrations with tested down paths. - Zombie Code & Verification Checklists: Criteria for identifying unmaintained code and checklists to verify zero active usage before removal. - Use Case: You need to rename a heavily used database column. The Skill walks you through expand (add nullable column), dual-write, batched backfill, read switch, and a separate destructive deploy — so old and new code both work at every step. ## Quick Start Use the deprecation-and-migration skill to plan the migration of our legacy task service to the new implementation, including a safe schema change strategy.

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

Build a production-proven replacement first, announce the deprecation with a migration guide, then migrate consumers incrementally one at a time. Only remove the old system after metrics and logs confirm zero active usage.

How to rename a database column 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, 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. Compulsory deprecation requires providing migration tooling, documentation, and support.

When should I use the strangler pattern for migration?▼

Use the strangler pattern when replacing a system incrementally: run old and new in parallel and shift traffic gradually from 0% to 100%. Once the old system handles no traffic, remove it.

Why do database migrations fail during deployment rollouts?▼

Failures happen when a schema change ships in the same deploy as the code using it, so old and new code run simultaneously against incompatible schemas. Additive changes first and destructive changes in a separate deploy prevent this.

What is zombie code and how should it be handled?▼

Zombie code is unmaintained code with no owner that still has active consumers, often with failing tests or vulnerable dependencies. Either assign an owner and maintain it properly, or deprecate it with a concrete migration plan.