deprecation-and-migration

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

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Removing old systems, APIs, and database columns is risky: 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 safely, without downtime or stranded consumers. ## Core Features & Use Cases - Deprecation Decision Framework: Structured criteria for deciding whether to maintain, deprecate, or sunset a system, including advisory vs compulsory deprecation and zombie code detection. - Migration Patterns: Step-by-step guidance for the Strangler pattern, Adapter pattern, and feature-flag-based cutovers, plus the Churn Rule for who owns migration work. - Expand/Contract Schema Migrations: A phased approach (expand, dual-write, backfill, switch reads, contract) for renaming or dropping database columns in production without downtime. - Use Case: You need to rename a name column to full_name in a live PostgreSQL database. The Skill walks you through adding the new nullable column, dual-writing, backfilling in batches, switching reads, and dropping the old column in a separate deploy. ## Quick Start Ask the AI to plan a safe migration for renaming a production database column using the expand/contract pattern with rollback steps.

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 without downtime?▼

Use the expand/contract pattern: 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, because old and new code run simultaneously during rollouts.

How to deprecate an API or service safely?▼

First build a production-proven replacement, then publish a deprecation notice with a migration guide and tooling. Migrate consumers incrementally, verify zero active usage via metrics and logs, and only then remove 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 risks or unsustainable maintenance cost, and it requires providing migration tooling and support.

When should I use the Strangler pattern vs feature flags for migration?▼

Use the Strangler pattern to shift traffic incrementally from an old system to a new one until the old handles zero percent. Use feature flags when you need per-consumer or per-user cutover control and fast rollback between old and new implementations.

Why should a schema migration have a tested down path?▼

A migration without a tested down path cannot be reversed, which means the deploy that applied it cannot be rolled back safely. Write and run the down migration before merging so every phase is independently reversible.

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

Zombie code is unmaintained code with no owner that still has active consumers, often showing stale dependencies and failing tests. It must either be assigned an owner and properly maintained, or deprecated with a concrete migration plan.