Pular para o conteúdo
Skillpedia
Testes40 mil · #5376

sql-object-impact-analysis

Mostra onde um item do banco de dados (tabela, coluna) é usado antes de alterá-lo. Ajuda a entender o impacto das mudanças em todo o sistema e no código.

O que ela faz

Esta ferramenta ajuda a descobrir tudo que usa uma parte específica do seu banco de dados (como uma tabela ou coluna) antes de você fazer alguma alteração. Ela procura em todo o código do programa e no banco de dados para mostrar o que pode quebrar.

Quando usar

  • ✓Quando você quer mudar uma tabela ou coluna e não sabe o que será afetado.
  • ✓Ao trabalhar com um sistema antigo onde é difícil rastrear dependências.
  • ✓Quando você precisa de um relatório sobre o impacto de uma alteração no banco de dados.

Exemplo do que pedir para a IA

“O que usa a coluna 'email_cliente' da tabela 'clientes'?”

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/github/awesome-copilot/blob/main/skills/sql-object-impact-analysis/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/sql-object-impact-analysis/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta primeiro procura por referências diretas no código SQL e depois em todo o código do programa (como C# ou JavaScript). Ela organiza os resultados para mostrar o que depende do item que você quer modificar.

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 github/awesome-copilot --skill sql-object-impact-analysis

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/sql-object-impact-analysis/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.

Análise de Impacto de Objetos SQL

Você está realizando um rastreamento de dependência pré-mudança para um objeto de banco de dados (tabela, coluna, stored procedure, view, função ou trigger) dentro de uma base de código legada ou desconhecida. O objetivo é uma resposta única e confiável para: "Se eu mudar isso, o que mais será afetado?"

Quando usar isso

Acione quando o usuário:

  • Nomeia uma tabela, coluna, stored procedure, view ou trigger específico e pergunta o que o utiliza, o que depende dele, ou se é seguro alterar/renomear/excluir
  • Está prestes a modificar um elemento de esquema em uma base de código sem ORM, ou uma pilha legada mista (SQL bruto + stored procs + código de acesso a dados escrito manualmente)
  • Pede um "raio de explosão", "análise de impacto" ou "rastreamento de dependência" de um objeto de banco de dados específico

Não use isso para:

  • Otimização geral de desempenho SQL (use sql-optimization)
  • Revisão de qualidade/segurança de código SQL (use sql-code-review)
  • Análise de exposição de privacidade/PII (use data-breach-blast-radius)
  • Documentação em nível de arquitetura de uma base de código inteira (use doc-and-modernize)

Processo

  1. Confirme o objeto alvo e seus nomes exatos. Pergunte se for ambíguo (por exemplo, várias tabelas com nomes semelhantes, ou o usuário diz "a tabela de clientes" sem especificar o esquema). Obtenha o identificador preciso antes de pesquisar.

  2. Pesquise primeiro na camada SQL:

    • Pesquise todos os arquivos .sql, definições de stored procedure, views, funções e triggers na pasta de scripts do repositório/banco de dados por referências diretas ao nome do objeto
    • Para uma coluna: verifique cada proc/view/trigger que a seleciona, insere, atualiza ou filtra
    • Para uma tabela: verifique cada proc/view/trigger que a referencia, mais relacionamentos de chave estrangeira para/de outras tabelas
    • Para uma stored procedure: verifique cada outra proc que a chama, e cada job/etapa de agente agendado que a invoca
    • Observe também referências indiretas — SQL dinâmico (EXEC(@sql)), sinônimos e views construídas sobre views
  3. Pesquise na camada de aplicação:

    • Pesquise todo o código da aplicação (C#, Java, JS/TS, Angular, o que quer que o repositório contenha) por:
      • Strings SQL diretas referenciando o nome do objeto
      • Nomes de métodos ou classes de ORM/camada de acesso a dados que mapeiam para ele (por exemplo, um método de repositório chamando a stored procedure)
      • Manipuladores de endpoint de API que, em última instância, chamam o caminho de dados afetado
    • Rastreie uma camada adiante onde for razoável: um componente frontend consome um endpoint que toca este objeto? Anote, mas não persiga exaustivamente todos os consumidores de UI — sinalize "consumidores downstream adicionais provavelmente existem" se a trilha esfriar em vez de adivinhar.
  4. Classifique cada achado por confiança:

    • Direto — nome do objeto encontrado literalmente no código/SQL
    • Indireto — alcançado via cadeia de chamadas de proc, mapeamento de ORM ou SQL dinâmico que não pôde ser totalmente resolvido estaticamente
    • Incertain — plausível, mas não verificado (por exemplo, construção de SQL dinâmico que não pôde ser rastreada até um nome de objeto literal)
    • Nunca apresente um achado Incertain como se fosse Direto — sinalize-o claramente para que o leitor saiba que precisa verificar manualmente
  5. Produza o relatório (veja Formato de Saída abaixo).

Formato de Saída

Sempre estruture o relatório como:

  1. Objeto Alvo — nome exato, tipo (tabela/coluna/proc/view/trigger) e esquema
  2. Dependentes SQL Diretos — lista de procs/views/triggers/funções que o referenciam diretamente, agrupados por tipo de objeto
  3. Dependentes de Código de Aplicação — lista de arquivos/classes/métodos que o referenciam, agrupados por camada (acesso a dados, API/serviço, frontend), com caminhos de arquivo
  4. Referências Indiretas / Dinâmicas — qualquer coisa encontrada via SQL dinâmico, sinônimos ou cadeias de chamadas que não puderam ser totalmente resolvidas — rotuladas claramente como necessitando de verificação manual
  5. Resumo de Risco — um parágrafo: este objeto é usado de forma restrita (baixo risco) ou tem um amplo alcance (alto risco)? Destaque qualquer coisa que toque um job agendado, integração externa ou camada de relatórios especificamente, pois esses geralmente são esquecidos
  6. Etapas de Verificação Sugeridas — ações concretas a serem tomadas antes de fazer a mudança (por exemplo, "execute essas duas procs em dados de staging primeiro", "verifique se o endpoint do ReportingService em X depende desta coluna")

Diretrizes

  • Nunca afirme que uma dependência é completa ou exaustiva — a pesquisa de texto estático não consegue capturar todas as construções de SQL dinâmico ou mapeamentos de ORM baseados em reflexão. Declare explicitamente o método de pesquisa usado e seus limites no relatório.

…

Perguntas frequentes

O que é 'blast radius'?

'Blast radius' é o raio de impacto de uma mudança. Significa: se eu mudar isso, o quão longe e o que mais será afetado?

Essa ferramenta encontra TUDO que usa o objeto?

Ela faz um esforço grande para encontrar o máximo possível, mas em códigos muito complexos ou com construções dinâmicas, pode haver referências que só podem ser descobertas manualmente. Ela avisa sobre isso.

Preciso saber programar para usar isso?

Não. A ferramenta é feita para quem não é programador também. Ela apresenta as informações de forma clara para ajudar na sua decisão.

Detalhes

Descrição original do autor

Before modifying a table, column, stored procedure, view, or trigger in a legacy codebase, trace every place that references it — across other SQL objects (procs, views, triggers) AND application code (C#, Angular/TypeScript, JS, or any language in the repo) — and produce a structured blast-radius report so you know what breaks before you change it. Use when the user asks 'what uses this column/ta

repo: github/awesome-copilot

Popularidade

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas