Pular para o conteúdo
Skillpedia
Código em geral87 mil · #842

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

https://github.com/Egonex-AI/Understand-Anything/blob/main/understand-anything-plugin/skills/understand-diff/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/Egonex-AI/Understand-Anything/blob/main/understand-anything-plugin/skills/understand-diff/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-diff

Ou 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.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.

/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

  1. Use Grep para pesquisar dentro do JSON por entradas relevantes ANTES de ler o arquivo completo
  2. Leia apenas as seções que você precisa — não despeje o grafo inteiro no contexto
  3. Nomes de nós e resumos são os campos mais úteis para entender
  4. Arestas mostram como os componentes se conectam — siga imports e chamadas para cadeias de dependência

Instruções

  1. Resolva o diretório de dados $UA_DIR. Execute UA_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.json existe. Se não, diga ao usuário para executar /understand primeiro.

  2. 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
  3. 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", incluindo gitCommitHash como GRAPH_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 HEAD e 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 /understand para atualizar o grafo.
    • Execute o diff do commit apenas quando GRAPH_COMMIT_RAW for 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.
  4. 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 id de todos os nós correspondentes
  5. 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
  6. Identifique camadas afetadas — Use Grep para os IDs de nós correspondentes na seção "layers" para determinar quais camadas arquiteturais são tocadas.

  7. 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

repo: Egonex-AI/Understand-Anything

Popularidade

Estrelas no GitHub
87 mil
Posição no ranking
#842
Licença
MIT
Atualizada em
12/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas