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
Mensagem pronta para colar
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-analysisOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/sql-object-impact-analysis/SKILL.md -o SKILL.mdConteú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
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.
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
- Pesquise todos os arquivos
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.
- Pesquise todo o código da aplicação (C#, Java, JS/TS, Angular, o que quer que o repositório contenha) por:
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
Produza o relatório (veja Formato de Saída abaixo).
Formato de Saída
Sempre estruture o relatório como:
- Objeto Alvo — nome exato, tipo (tabela/coluna/proc/view/trigger) e esquema
- Dependentes SQL Diretos — lista de procs/views/triggers/funções que o referenciam diretamente, agrupados por tipo de objeto
- 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
- 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
- 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
- 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
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
cpp-testing
Faz seu agente escrever e melhorar testes para código C++. Ajuda a configurar ferramentas de teste e a corrigir erros.
affaan-m/ECC
csharp-testing
Ajuda seu agente a criar testes para código C# e .NET. Ele usa as melhores práticas para garantir que os testes sejam eficientes e confiáveis.
affaan-m/ECC
django-tdd
Faz seu agente aplicar estratégias de teste para Django com pytest-django e TDD. É útil para escrever testes robustos e garantir a qualidade do código, especialmente para APIs DRF.
affaan-m/ECC