← ClaudeAtlas

deprecation-migrationlisted

Use when deprecating old code or APIs, migrating to a new system, or upgrading dependencies — staged deprecation paths and migration strategies that preserve behavior across the transition. Triggers on "deprecate", "migrate", "sunset API", "弃用", "迁移", "升级依赖", "更新这个库", "upgrade dependency".
int2t05/engineering-skills · ★ 3 · API & Backend · score 76
Install: claude install-skill int2t05/engineering-skills
# Deprecation and Migration Code is a liability, not an asset. Every line carries maintenance cost — bugs, dependency updates, security patches, onboarding overhead. Deprecation is the discipline of removing code that no longer earns its keep; migration is the process of moving users safely from old to new. Most organizations build things well; few remove them well. Hyrum's Law makes removal hard: with enough users, every observable behavior becomes depended on — including bugs, timing quirks, and undocumented side effects. Deprecation therefore requires active migration, not just announcement. Plan removal at design time — systems with clean interfaces, feature flags, and minimal surface area are far easier to sunset. ## When to use - Replacing an old system, API, or library with a new one. - Sunsetting a feature that's no longer needed, or consolidating duplicate implementations. - Removing dead code that nobody owns but everybody depends on. - Planning the lifecycle of a new system (deprecation planning starts at design time). - Deciding whether to maintain a legacy system or invest in migration. - Upgrading a dependency or framework version, including major/breaking upgrades (see `references/dependency-upgrade.md`). - Moving data between systems (dual-write, backfill, CDC, cutover) — see `references/data-migration.md`. **Not for:** patching a security vulnerability in place (use `security-review`); routine commits (use `git-workflow`). ## Steps ### 1. Make the depr