understand-diff
Permite que seu agente analise mudanças em códigos. Ele ajuda a entender o que foi alterado, quais partes foram afetadas e os riscos.
O que ela faz
Analisa as mudanças no seu código para te ajudar a entender o que foi alterado, quais partes do projeto são afetadas e quais os riscos envolvidos.
Quando usar
- ✓Ao revisar o código de outra pessoa.
- ✓Antes de juntar suas mudanças ao projeto principal.
- ✓Quando você quer entender o impacto de uma alteração.
Exemplo do que pedir para a IA
“Analise as mudanças neste código e me diga o que pode ser afetado.”
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
Ele compara as alterações do seu código com um 'mapa' do projeto (chamado 'knowledge graph'). Esse mapa mostra como as partes do código se conectam. Assim, ele identifica o que mudou diretamente e o que pode ser impactado por essas mudanças.
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 Egonex-AI/Understand-Anything --skill understand-diffOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/Egonex-AI/Understand-Anything/main/understand-anything-plugin/skills/understand-diff/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.
/understand-diff
Analisa as mudanças atuais no código em relação ao grafo de conhecimento no diretório de dados do projeto (.ua/knowledge-graph.json, ou o legado .understand-anything/knowledge-graph.json quando esse diretório está presente).
Referência da Estrutura do Grafo
O JSON do grafo de conhecimento tem esta estrutura:
project— {nome, descrição, linguagens, frameworks, analisadoEm, hashCommitGit}nodes[]— cada um tem {id, tipo, nome, caminhoArquivo?, resumo, tags[], complexidade, notasLinguagem?}- Tipos de nó de código: arquivo, função, classe, módulo, conceito
- Tipos de nó que não são de código: config, documento, serviço, tabela, endpoint, pipeline, schema, recurso
- Tipos de nó de domínio/conhecimento: domínio, fluxo, etapa, artigo, entidade, tópico, alegação, fonte
- IDs usam o tipo de nó como prefixo, por exemplo,
file:path,function:path:name,config:path,article:path
edges[]— cada um tem {origem, destino, tipo, direção, peso}- Tipos de chave: imports, contém, chama, depende_de, configura, documenta, implanta, aciona, contém_fluxo, etapa_fluxo, relacionado, cita
layers[]— cada um tem {id, nome, descrição, idsNodos[]}tour[]— cada um tem {ordem, título, descrição, idsNodos[]}
Como Ler Eficientemente
- Use Grep para pesquisar dentro do JSON por entradas relevantes ANTES de ler o arquivo completo
- Leia apenas as seções que você precisa — não despeje o grafo inteiro no contexto
- Nomes de nós e resumos são os campos mais úteis para entender
- Arestas mostram como os componentes se conectam — siga imports e chamadas para cadeias de dependência
Instruções
Resolva o diretório de dados
$UA_DIR. ExecuteUA_DIR=$([ -d .understand-anything ] && echo .understand-anything || echo .ua)— este é o legado.understand-anything/quando ele já existe, caso contrário, o novo.ua/. Verifique se$UA_DIR/knowledge-graph.jsonexiste. Se não, diga ao usuário para executar/understandprimeiro.Obtenha a lista de arquivos alterados (NÃO leia o grafo ainda):
- Se estiver em um branch com alterações não commitadas:
git diff --name-only - Se estiver em um branch de funcionalidade:
git diff main...HEAD --name-only(ou o branch base) - Se o usuário especificar um número de PR: obtenha o diff desse PR
- Se estiver em um branch com alterações não commitadas:
Leia os metadados do projeto e verifique a atualidade do grafo — use Grep ou Read com um limite de linhas para extrair a seção
"project", incluindogitCommitHashcomoGRAPH_COMMIT_RAW, então:- Resolva-o como um commit antes de usá-lo em qualquer diff do Git. A partir da raiz do projeto, compare o commit resolvido com
git rev-parse HEADe inspecione as alterações commitadas e na árvore de trabalho do escopo do projeto:GRAPH_COMMIT=$(git rev-parse --verify --end-of-options "${GRAPH_COMMIT_RAW}^{commit}" 2>/dev/null) git rev-parse HEAD git diff --name-only "$GRAPH_COMMIT" HEAD -- . git diff --cached --name-only -- . git diff --name-only -- . git ls-files --others --exclude-standard -- . - O pathspec
-- .é obrigatório: commits que tocam apenas um projeto monorepo irmão não devem tornar este grafo obsoleto. Uma incompatibilidade de hash por si só não é obsoleta quando o diff do projeto está vazio. - Ignore o diretório de dados selecionado (
.ua/ou o legado.understand-anything/) em cada saída de comando porque ele contém artefatos gerados do grafo, não desvios de código do projeto. - Se o diff commitado ou qualquer comando da árvore de trabalho relatar arquivos do projeto, avise antes da análise de impacto que o grafo pode omitir essas alterações. Sugira: Execute
/understandpara atualizar o grafo. - Execute o diff do commit apenas quando
GRAPH_COMMIT_RAWfor resolvido com sucesso. Se o commit do grafo ou os metadados do Git estiverem faltando, inválidos ou indisponíveis, forneça um breve aviso de melhor esforço e continue em vez de bloquear.
- Resolva-o como um commit antes de usá-lo em qualquer diff do Git. A partir da raiz do projeto, compare o commit resolvido com
Encontre nós para arquivos alterados — para cada caminho de arquivo alterado, use Grep para pesquisar no grafo de conhecimento por:
- Nós com valores
"filePath"correspondentes (por exemplo,grep "changed/file/path") - Isso encontra nós em nível de arquivo (incluindo tipos que não são de código) E nós de função/classe definidos nesses arquivos
- Anote os valores
idde todos os nós correspondentes
- Nós com valores
Encontre arestas conectadas (1 salto) — para cada ID de nó correspondente, use Grep para procurar esse ID nas arestas para encontrar:
- O que importa ou depende dos nós alterados (chamadores upstream)
- O que os nós alterados importam ou chamam (dependências downstream)
- Estes são os "componentes afetados" — coisas que podem quebrar ou precisar de atualização
Identifique camadas afetadas — Use Grep para os IDs de nós correspondentes na seção
"layers"para determinar quais camadas arquiteturais são tocadas.Forneça análise estruturada:
…
Perguntas frequentes
O que é um 'knowledge graph'?
É como um mapa detalhado do seu projeto que mostra as conexões entre diferentes partes do código, arquivos, e outros componentes.
O que significa 'riscos'?
Riscos são as chances de que uma mudança cause problemas em outras partes do projeto. A ferramenta tenta identificar essas conexões para alertar sobre possíveis problemas.
Preciso ter o 'knowledge graph' pronto antes de usar?
Sim, a ferramenta precisa desse mapa do projeto para funcionar. Se ele não existir, você precisará rodar um comando anterior para criá-lo.
Detalhes
Descrição original do autor
Use when you need to analyze git diffs or pull requests to understand what changed, affected components, and risks
Popularidade
- Estrelas no GitHub
- 87 mil
- Posição no ranking
- #842
- Licença
- MIT
- Atualizada em
- 12/10/2026
Comentários
- …
Mais skills deste repositório
understand-chat
Faz seu agente entender e explicar bases de código. É útil para analisar código existente ou responder perguntas sobre como um programa funciona.
Egonex-AI/Understand-Anything
understand-dashboard
Ajuda seu agente a ver como um projeto de código está organizado. Ele cria um mapa interativo para entender as partes e como elas se conectam.
Egonex-AI/Understand-Anything
understand-domain
Faz seu agente extrair o conhecimento de negócios de um código. Ele gera um gráfico que mostra o fluxo de como as coisas funcionam.
Egonex-AI/Understand-Anything
understand-explain
Ajuda seu agente a explicar partes específicas de um código. Ele fornece detalhes sobre um arquivo, função ou módulo.
Egonex-AI/Understand-Anything
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC