deprecation-and-migration

Plans and executes deprecation of legacy systems with incremental migration patterns.

2|Updated Jul 11, 2026
One-click install
npx skills add https://github.com/MoofonLi/dev-ready --skill deprecation-and-migration-moofonli
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: deprecation-and-migration
Source: https://github.com/MoofonLi/dev-ready/tree/main/src/dev_ready/templates/claude/skills/deprecation-and-migration
Command: npx skills add https://github.com/MoofonLi/dev-ready --skill deprecation-and-migration-moofonli

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Removing old systems, APIs, and features is hard because consumers depend on undocumented behaviors, and teams lack a disciplined process for sunsetting code without breaking production. This Skill provides a structured decision framework and migration playbook for retiring code safely. ## Core Features & Use Cases - Deprecation Decision Framework: Evaluate whether to maintain or sunset a system by quantifying consumers, migration cost, and ongoing maintenance burden, with advisory vs compulsory deprecation guidance. - Migration Patterns: Apply the Strangler pattern, Adapter pattern, feature-flag cutovers, and expand/contract database schema migrations with dual-write and batched backfill steps. - Zombie Code & Red Flag Detection: Identify unmaintained code with active consumers and common rationalizations that delay necessary removal. - Use Case: When renaming a PostgreSQL column, 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 — so old and new code stay valid at every step. ## Quick Start Ask the agent to plan the deprecation of a legacy API or service, including a migration guide and an incremental cutover strategy for all current consumers.

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 shipping a production-proven replacement, then announcing with a migration guide and timeline. Migrate consumers incrementally using the Strangler pattern or feature flags, and only remove the old system after metrics 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 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 with tooling and support.

When should I not deprecate a legacy system?

Do not deprecate when the system still provides unique value, no working replacement exists, or migration cost clearly exceeds the ongoing maintenance cost. Deprecating without an alternative leaves consumers stranded.

Why do database migrations fail during deployment rollouts?

Failures happen when a schema change ships in the same deploy as the code using it — during rollout, old and new code run simultaneously and one queries a column that does not exist. Ship additive changes first and destructive changes in a separate deploy.