Skip to content
Back to skills

Deprecation And Migration

ASecurity

Safe deprecation of features and migration between versions. Use when removing features, changing APIs, or migrating data schemas. Covers deprecation notices, migration guides, and sunset timelines.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 8, 2026
documentationtypescriptshellgitapidatabasedocumentation

Works with

  • cursor
  • cli
  • api

Security analysis

A100/100

Scanned September 8, 2026

npx -y skills add VidyaBodepudi/Code-Skills --skill deprecation-and-migration --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Deprecation And Migration?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Deprecation And Migration
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vidyabodepudi-deprecation-and-migration/badge)](https://www.skillsdirectory.com/skills/vidyabodepudi-deprecation-and-migration)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: deprecation-and-migration
description: >
  Safe deprecation of features and migration between versions. Use
  when removing features, changing APIs, or migrating data schemas.
  Covers deprecation notices, migration guides, and sunset timelines.
version: 1.0.0
permissions:
  - fs.read
  - fs.write
  - shell.exec
triggers:
  - context: "deprecating a feature"
  - context: "removing an API endpoint"
  - context: "migrating data schemas"
  - command: "/ship"
platforms:
  - claude-code
  - cursor
  - gemini-cli
  - copilot
  - codex
  - opencode
  - windsurf
  - kiro
dependencies:
  - git-workflow-and-versioning@^1.0.0
author: codehands-core
signed: true
tier: 2
---

## Overview

Deprecation is making a promise: "this will be removed, here's what to use instead, and here's how much time you have." This skill ensures deprecated features have clear notices, migration paths, and respectful timelines.

## When to Use

- When removing a feature or API endpoint
- When changing a public API signature (breaking change)
- When migrating database schemas
- When replacing one library/tool with another
- NOT for internal-only changes with no external consumers

## Process

### 1. Deprecation Notice

Before removing anything, add a deprecation notice:
```typescript
/**
 * @deprecated Use `newFunction()` instead. Will be removed in v3.0.0.
 */
function oldFunction() { ... }
```

### 2. Migration Guide

Write a migration guide:
```markdown
## Migrating from v1 to v2

### Breaking Changes
1. `oldFunction()` removed → use `newFunction()`
2. `/api/v1/users` removed → use `/api/v2/users`

### Step-by-Step
1. Update import: `import { newFunction } from 'package'`
2. Replace all calls to `oldFunction(a, b)` with `newFunction({ a, b })`
3. Run tests to verify
```

### 3. Sunset Timeline

- **Deprecation notice**: v2.0 (current release)
- **Last supported version**: v2.x (minimum 1 major version)
- **Removal**: v3.0 (never remove in a minor/patch version)

## Common Rationalizations

| Rationalization | Reality |
|---|---|
| "Nobody uses this feature" | If you don't have usage metrics, you don't know. Add deprecation logging first, then decide. |
| "We can just remove it" | Removing without notice breaks consumers. Even internal consumers. Deprecate first. |

## Red Flags

- Removing features without deprecation notice
- Breaking changes in minor/patch versions
- No migration guide for breaking changes
- No usage metrics before deciding to deprecate

## Verification

- [ ] Deprecation notice with replacement and removal version
- [ ] Migration guide written
- [ ] Breaking changes in CHANGELOG
- [ ] Major version bump for breaking changes (semver)

## See Also

- `codehands:git-workflow-and-versioning` — Semver for breaking changes
- `codehands:documentation-and-adrs` — ADR for deprecation decision

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in documentation →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.