Pular para o conteúdo
Skillpedia
APIs e servidores (backend)41 mil · #4864

dependency-upgrade

Faz seu agente atualizar dependências importantes do projeto. Ele analisa compatibilidade e testa as mudanças.

O que ela faz

Esta ferramenta ajuda a atualizar partes importantes do código do seu projeto para versões mais novas. Ela verifica se as atualizações são compatíveis e sugere como fazer a atualização em etapas para evitar problemas.

Quando usar

  • ✓Ao atualizar a versão principal de um 'framework' (como React ou Angular).
  • ✓Quando uma biblioteca que você usa tem uma atualização de segurança importante.
  • ✓Ao modernizar partes antigas do seu código.

Exemplo do que pedir para a IA

“Como posso atualizar o React para a versão 18 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/wshobson/agents/blob/main/plugins/framework-migration/skills/dependency-upgrade/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/wshobson/agents/blob/main/plugins/framework-migration/skills/dependency-upgrade/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta analisa as dependências do seu projeto, verifica possíveis conflitos e ajuda a planejar a atualização em fases. Ela também pode automatizar testes para garantir que tudo continue funcionando.

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 wshobson/agents --skill dependency-upgrade

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/framework-migration/skills/dependency-upgrade/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.

Upgrade de Dependências

Domine upgrades de versões principais de dependências, análise de compatibilidade, estratégias de upgrade em fases e abordagens de testes abrangentes.

Quando Usar Esta Habilidade

  • Upgrade de versões principais de frameworks
  • Atualização de dependências com vulnerabilidades de segurança
  • Modernização de dependências legadas
  • Resolução de conflitos de dependências
  • Planejamento de caminhos de upgrade incrementais
  • Teste de matrizes de compatibilidade
  • Automação de atualizações de dependências

Revisão de Versionamento Semântico

MAJOR.MINOR.PATCH (e.g., 2.3.1)

MAJOR: Breaking changes
MINOR: New features, backward compatible
PATCH: Bug fixes, backward compatible

^2.3.1 = >=2.3.1 <3.0.0 (minor updates)
~2.3.1 = >=2.3.1 <2.4.0 (patch updates)
2.3.1 = exact version

Análise de Dependências

Auditoria de Dependências

# npm
npm outdated
npm audit
npm audit fix

# yarn
yarn outdated
yarn audit

# Check for major updates
npx npm-check-updates
npx npm-check-updates -u  # Update package.json

Análise da Árvore de Dependências

# See why a package is installed
npm ls package-name
yarn why package-name

# Find duplicate packages
npm dedupe
yarn dedupe

# Visualize dependencies
npx madge --image graph.png src/

Matriz de Compatibilidade

// compatibility-matrix.js
const compatibilityMatrix = {
  react: {
    "16.x": {
      "react-dom": "^16.0.0",
      "react-router-dom": "^5.0.0",
      "@testing-library/react": "^11.0.0",
    },
    "17.x": {
      "react-dom": "^17.0.0",
      "react-router-dom": "^5.0.0 || ^6.0.0",
      "@testing-library/react": "^12.0.0",
    },
    "18.x": {
      "react-dom": "^18.0.0",
      "react-router-dom": "^6.0.0",
      "@testing-library/react": "^13.0.0",
    },
  },
};

function checkCompatibility(packages) {
  // Validate package versions against matrix
}

Estratégia de Upgrade em Fases

Fase 1: Planejamento

# 1. Identify current versions
npm list --depth=0

# 2. Check for breaking changes
# Read CHANGELOG.md and MIGRATION.md

# 3. Create upgrade plan
echo "Upgrade order:
1. TypeScript
2. React
3. React Router
4. Testing libraries
5. Build tools" > UPGRADE_PLAN.md

Fase 2: Atualizações Incrementais

# Don't upgrade everything at once!

# Step 1: Update TypeScript
npm install typescript@latest

# Test
npm run test
npm run build

# Step 2: Update React (one major version at a time)
npm install react@17 react-dom@17

# Test again
npm run test

# Step 3: Continue with other packages
npm install react-router-dom@6

# And so on...

Fase 3: Validação

// tests/compatibility.test.js
describe("Dependency Compatibility", () => {
  it("should have compatible React versions", () => {
    const reactVersion = require("react/package.json").version;
    const reactDomVersion = require("react-dom/package.json").version;

    expect(reactVersion).toBe(reactDomVersion);
  });

  it("should not have peer dependency warnings", () => {
    // Run npm ls and check for warnings
  });
});

Tratamento de Mudanças Quebradoras (Breaking Changes)

Identificando Mudanças Quebradoras

# Check the changelog directly
curl https://raw.githubusercontent.com/facebook/react/master/CHANGELOG.md

Codemod para Correções Automatizadas

# Run jscodeshift with transform URL
npx jscodeshift -t <transform-url> <path>

# Example: Rename unsafe lifecycle methods
npx jscodeshift -t https://raw.githubusercontent.com/reactjs/react-codemod/master/transforms/rename-unsafe-lifecycles.js src/

# For TypeScript files
npx jscodeshift -t https://raw.githubusercontent.com/reactjs/react-codemod/master/transforms/rename-unsafe-lifecycles.js --parser=tsx src/

# Dry run to preview changes
npx jscodeshift -t https://raw.githubusercontent.com/reactjs/react-codemod/master/transforms/rename-unsafe-lifecycles.js --dry src/

Script de Migração Personalizado

// migration-script.js
const fs = require("fs");
const glob = require("glob");

glob("src/**/*.tsx", (err, files) => {
  files.forEach((file) => {
    let content = fs.readFileSync(file, "utf8");

    // Replace old API with new API
    content = content.replace(
      /componentWillMount/g,
      "UNSAFE_componentWillMount",
    );

    // Update imports
    content = content.replace(
      /import { Component } from 'react'/g,
      "import React, { Component } from 'react'",
    );

    fs.writeFileSync(file, content);
  });
});

Estratégia de Testes

Testes Unitários

// Garanta que os testes passem antes e depois do upgrade
npm run test

// Atualize utilitários de teste, se necessário

…
Perguntas frequentes

O que são 'dependências'?

São outras partes de código que seu projeto usa para funcionar, como bibliotecas ou 'frameworks'.

O que são 'breaking changes'?

São mudanças em uma atualização que podem quebrar o funcionamento do seu código antigo, exigindo ajustes.

Por que atualizar em fases?

Atualizar tudo de uma vez pode causar muitos erros difíceis de resolver. Fazer em etapas permite identificar e corrigir problemas menores antes que se tornem grandes.

Detalhes

Descrição original do autor

Manage major dependency version upgrades with compatibility analysis, staged rollout, and comprehensive testing. Use when upgrading framework versions, updating major dependencies, or managing breaking changes in libraries.

repo: wshobson/agents

Popularidade

Estrelas no GitHub
41 mil
Posição no ranking
#4864
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas