# 弃用与迁移 (deprecation-and-migration)

> 指导如何下线旧系统、API 或功能，把使用方安全迁移到新实现，并用扩展/收缩方式完成数据库结构变更。

- 分类: [架构调优](https://www.myskills.tools/zh/categories/architecture-tuning/)
- 来源: 社区 · Addy Osmani
- 代码仓库: https://github.com/addyosmani/agent-skills/tree/main/skills/deprecation-and-migration (commit 9f91cc4)
- SKILL.md: https://github.com/addyosmani/agent-skills/blob/main/skills/deprecation-and-migration/SKILL.md
- 安装命令: `npx skills add addyosmani/agent-skills --skill deprecation-and-migration`
- 许可证: MIT
- 兼容工具: Claude Code, Codex, Cursor, Copilot, Gemini CLI
- 权限: read-repo ✓, write-files ✓, shell ✓, network ✗
- 状态: 扫描通过
- 规则扫描无法覆盖所有风险，安装前请阅读此技能的 SKILL.md，确认权限后再使用。

## 核心规则

没有可用的替代方案就不要弃用，数据库列也绝不原地修改。

## 执行阶段

1. **做弃用决策** — 评估系统是否仍有独特价值、依赖方数量、迁移成本和继续维护的代价，默认选择建议式弃用。
2. **先建替代方案** — 替代方案需覆盖关键用例、附带文档和迁移指南，并已在生产环境验证，然后发布弃用公告。
3. **逐步迁移** — 逐个迁移使用方，可用绞杀者模式、适配器或功能开关；数据库按扩展、回填、收缩分阶段进行。
4. **移除旧系统** — 通过指标和日志确认零使用后，删除旧代码、测试、文档、配置和弃用公告。

## 权限说明（据 SKILL.md 整理）

| 能力 | 是否需要 | 说明 |
|---|---|---|
| 文件写入 | 需要 | 编写替代代码、适配器、迁移脚本和弃用公告，并删除旧代码及相关测试和文档。 |
| 命令执行 | 需要 | 运行测试和集成检查以验证行为一致，并在合并前执行迁移的回滚（down）路径。 |
| 网络外发 | 不需要 | 技能未要求访问外部网络或服务。 |

## SKILL.md 头部信息（YAML）

```yaml
---
name: deprecation-and-migration
description: Manages deprecation and migration. Use when removing old systems, APIs, or features. Use when migrating users from one implementation to another. Use when migrating a database schema in production, such as renaming or dropping a column without downtime (expand/contract). Use when deciding whether to maintain or sunset existing code.
---
```

首页: https://www.myskills.tools/zh/ · URL: https://www.myskills.tools/zh/skills/deprecation-and-migration/
