Pular para o conteúdo
Skillpedia
Código em geral107 mil · #348

deprecation-and-migration

Gerencia a remoção de funcionalidades antigas e a migração para novas. É útil ao atualizar sistemas ou mudar como algo funciona, garantindo uma transição suave.

O que ela faz

Esta ferramenta ajuda a remover sistemas, APIs ou funcionalidades antigas de um programa de computador. Ela também auxilia na transferência de usuários de uma versão antiga para uma nova, garantindo que a mudança seja feita sem problemas.

Quando usar

  • ✓Quando você precisa tirar do ar um sistema antigo e colocar um novo.
  • ✓Ao mudar usuários de um serviço antigo para um novo.
  • ✓Ao decidir se um código antigo ainda vale a pena ser mantido.

Exemplo do que pedir para a IA

“Como posso remover um sistema antigo e migrar meus usuários para o novo de forma segura?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/addyosmani/agent-skills/blob/main/skills/deprecation-and-migration/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/addyosmani/agent-skills/blob/main/skills/deprecation-and-migration/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ela funciona planejando a remoção de códigos que não são mais úteis e guiando a transição dos usuários para alternativas mais novas. Isso envolve anunciar as mudanças, oferecer um caminho claro para a nova versão e, por fim, remover o código antigo.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add addyosmani/agent-skills --skill deprecation-and-migration

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/addyosmani/agent-skills/main/skills/deprecation-and-migration/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Depreciação e Migração

Visão Geral

Código é um passivo, não um ativo. Cada linha de código tem um custo contínuo de manutenção — bugs para corrigir, dependências para atualizar, patches de segurança para aplicar e novos engenheiros para integrar. Depreciação é a disciplina de remover código que não se paga mais, e migração é o processo de mover usuários com segurança do antigo para o novo.

A maioria das organizações de engenharia é boa em construir coisas. Poucas são boas em removê-las. Esta habilidade aborda essa lacuna.

Quando Usar

  • Substituir um sistema, API ou biblioteca antiga por uma nova
  • Desativar um recurso que não é mais necessário
  • Consolidar implementações duplicadas
  • Remover código morto que ninguém possui, mas do qual todos dependem
  • Planejar o ciclo de vida de um novo sistema (o planejamento de depreciação começa no momento do design)
  • Decidir se deve manter um sistema legado ou investir em migração

Princípios Fundamentais

Código É um Passivo

Cada linha de código tem um custo contínuo: precisa de testes, documentação, patches de segurança, atualizações de dependência e sobrecarga mental para qualquer pessoa que trabalhe por perto. O valor do código é a funcionalidade que ele fornece, não o código em si. Quando a mesma funcionalidade pode ser fornecida com menos código, menos complexidade ou melhores abstrações — o código antigo deve ir.

A Lei de Hyrum Torna a Remoção Difícil

Com usuários suficientes, todo comportamento observável se torna dependente — incluindo bugs, peculiaridades de tempo e efeitos colaterais não documentados. É por isso que a depreciação requer migração ativa, não apenas um anúncio. Os usuários não podem "simplesmente mudar" quando dependem de comportamentos que a substituição não replica.

O Planejamento de Depreciação Começa no Momento do Design

Ao construir algo novo, pergunte: "Como removeríamos isso em 3 anos?" Sistemas projetados com interfaces limpas, flags de recursos e área de superfície mínima são mais fáceis de depreciar do que sistemas que vazam detalhes de implementação em todos os lugares.

A Decisão de Depreciação

Antes de depreciar qualquer coisa, responda a estas perguntas:

1. Does this system still provide unique value?
   → If yes, maintain it. If no, proceed.

2. How many users/consumers depend on it?
   → Quantify the migration scope.

3. Does a replacement exist?
   → If no, build the replacement first. Don't deprecate without an alternative.

4. What's the migration cost for each consumer?
   → If trivially automated, do it. If manual and high-effort, weigh against maintenance cost.

5. What's the ongoing maintenance cost of NOT deprecating?
   → Security risk, engineer time, opportunity cost of complexity.

Depreciação Obrigatória vs. Consultiva

Tipo Quando Usar Mecanismo
Consultiva A migração é opcional, o sistema antigo é estável Avisos, documentação, incentivos. Os usuários migram em seu próprio cronograma.
Obrigatória O sistema antigo tem problemas de segurança, bloqueia o progresso ou o custo de manutenção é insustentável Prazo final rígido. O sistema antigo será removido na data X. Fornecer ferramentas de migração.

O padrão é consultivo. Use obrigatório apenas quando o custo de manutenção ou o risco justificar forçar a migração. A depreciação obrigatória requer o fornecimento de ferramentas de migração, documentação e suporte — você não pode simplesmente anunciar um prazo.

O Processo de Migração

Etapa 1: Construir a Substituição

Não deprecie sem uma alternativa funcional. A substituição deve:

  • Cobrir todos os casos de uso críticos do sistema antigo
  • Ter documentação e guias de migração
  • Ser comprovada em produção (não apenas "teoricamente melhor")

Etapa 2: Anunciar e Documentar

## Deprecation Notice: OldService

**Status:** Deprecated as of 2025-03-01
**Replacement:** NewService (see migration guide below)
**Removal date:** Advisory — no hard deadline yet
**Reason:** OldService requires manual scaling and lacks observability.
            NewService handles both automatically.

### Migration Guide
1. Replace `import { client } from 'old-service'` with `import { client } from 'new-service'`
2. Update configuration (see examples below)
3. Run the migration verification script: `npx migrate-check`

Etapa 3: Migrar Incrementalmente

Migre os consumidores um de cada vez, não todos de uma vez. Para cada consumidor:

1. Identify all touchpoints with the deprecated system
2. Update to use the replacement
3. Verify behavior matches (tests, integration checks)
4. Remove references to the old system
5. Confirm no regressions

…

Perguntas frequentes

Por que remover código antigo é importante?

Código antigo custa dinheiro para manter (correções, atualizações, segurança) e pode dificultar a adição de novas funcionalidades. Remover o que não é mais útil libera recursos e simplifica o sistema.

O que é a 'Lei de Hyrum'?

É a ideia de que, com o tempo, até mesmo os erros ou comportamentos inesperados de um sistema antigo podem se tornar algo que as pessoas dependem. Por isso, a remoção exige cuidado e uma migração ativa, não apenas um aviso.

Como faço para remover um sistema sem prejudicar os usuários?

Planeje com antecedência, crie uma alternativa funcional, anuncie claramente as mudanças com um guia de migração, e mova os usuários aos poucos. Só remova o sistema antigo quando tiver certeza de que ninguém mais o está usando.

Detalhes

Descrição original do autor

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.

repo: addyosmani/agent-skills

Popularidade

Estrelas no GitHub
107 mil
Posição no ranking
#348
Licença
MIT
Atualizada em
13/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas