Como ler o grafo que o Graphify gera do seu código (e o que fazer com ele)

O Graphify grava a saída em uma pasta graphify-out/ com três arquivos: graph.html pra navegar clicando, filtrando e buscando, GRAPH_REPORT.md pra ler e graph.json pras ferramentas consultarem. A ordem certa de leitura começa pelo relatório, que já entrega os god nodes (o nó de maior betweenness centrality), as conexões entre arquivos ranqueadas por quão inesperadas são e de 4 a 5 perguntas sugeridas. Depois disso o mapa vira instrução: commit da pasta, seção no CLAUDE.md apontando o relatório e o servidor MCP com 10 ferramentas, pro assistente consultar o grafo em vez de varrer o repositório no Grep
Fala aí, beleza? Terminou de gerar, você abre o HTML e a tela vira um monte de bolinha ligada por linha
E aí, o que fazer com isso?
Essa é a parte que quase ninguém conta. O Graphify não te entrega um desenho bonito pra printar no LinkedIn, ele te entrega uma estrutura consultável
São três saídas diferentes, cada uma pra um consumidor diferente: uma pra você navegar, uma pra você ler e uma pra máquina perguntar
O valor real só aparece quando você sabe ler as três e devolve isso como contexto pro assistente, em vez de deixar o grafo aberto numa aba morrendo de tédio 😀
O que você precisa antes de ler o grafo
Lista curta, sem enrolação:
- O Graphify instalado. A instalação oficial é com
uv tool install graphifyy, e o pacote também aceitapipx install graphifyyepip install graphifyy - O
graphify installrodado, que registra a skill/graphifynos assistentes detectados, entre eles Claude Code, Cursor e GitHub Copilot - A pasta
graphify-out/já gerada, com os três arquivos dentro:graph.html,GRAPH_REPORT.mdegraph.json
uv tool install graphifyy
graphify install
Duas coisas que tiram um peso das costas antes de começar
O parsing é local e determinístico, feito com tree-sitter: não tem vector store, não tem conta, não tem chave de API e nada sai da máquina por padrão
E se o mapa já existe e o código andou, tu não precisa refazer tudo do zero: existe o graphify update, que atualiza o grafo já gerado sobre a pasta graphify-out/ (graph.json, GRAPH_REPORT.md e graph.html)
O projeto vive no repositório oficial no GitHub, caso tu queira olhar a fonte antes de instalar qualquer coisa na tua máquina
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 45min
Como ler o grafo do Graphify passo a passo
A ordem importa MUITO aqui. Quase todo mundo começa errado, abrindo o HTML primeiro
- Comece pelo
GRAPH_REPORT.md, não pelo HTML. Ele é o resumo legível e já entrega mastigado o que tu levaria uma hora clicando pra descobrir: os god nodes, as conexões entre arquivos ranqueadas por quão inesperadas são, e um fecho com 4 a 5 perguntas que aquele grafo está em posição privilegiada de responder. O erro comum deste passo: abrir ograph.htmlprimeiro, se perder na teia de bolinhas e concluir que a ferramenta é enfeite - Entenda o que é um god node antes de sair caçando um. God node é o nó de maior centralidade de intermediação (betweenness centrality), ou seja, o arquivo ou função que conecta o maior número de comunidades. Não é o arquivo maior, nem o mais chamado: é o que fica no meio do caminho de todo mundo. O erro comum deste passo: confundir god node com "arquivo grande" e sair refatorando o cara errado
- Leia as comunidades como subsistemas. O grafo é montado com NetworkX e agrupado pelo algoritmo de Leiden (via graspologic), e cada comunidade que ele acha representa um subsistema do projeto. Se você conhece aquela sensação de "essa parte aqui é o módulo de cobrança", é exatamente isso, só que descoberto pela topologia e não pelo nome da pasta
- Leia um nó. Cada nó carrega
id(identificador estável),label(nome legível),file_type(code,document,paper,imageourationale) esource_file, de onde ele veio. Repare nofile_type: o grafo não é só código, documento e imagem entram como nó também - Leia uma aresta. Cada aresta carrega
sourceetarget(os ids dos nós),relation(o verbo da ligação, por exemplocalls,imports,implements,semantically_similar_to),confidence,confidence_score(só em INFERRED) esource_file. Orelationé o que muda tudo: "A importa B" e "A parece semanticamente próximo de B" são histórias completamente diferentes. O erro comum deste passo: tratar toda linha do desenho como se fosse chamada de função - Trate as tags de confiança como níveis de prova diferentes. Isso aqui é o detalhe mais honesto da ferramenta, se liga na tabela logo abaixo
- Aí sim abre o
graph.html. Com o relatório lido, a visualização interativa no navegador vira exploração dirigida: tu clica, filtra e busca procurando uma coisa específica, não passeando. O erro comum deste passo: usar o HTML como ferramenta de descoberta em vez de ferramenta de confirmação - Percorra salto a salto pelos comandos. Tem
/graphify query, que responde perguntas sobre a estrutura,/graphify path, que traça como duas partes do código se conectam, e/graphify explain, que percorre por que um nó importa. Na consulta tu passa a pergunta entre aspas, e ainda existem dois parâmetros opcionais documentados:--dfse--context <c> - Guarde o
graph.jsonsabendo o que ele é. Ele é o grafo completo no formato node-link do NetworkX, que é o formato que as ferramentas consultam. Não é arquivo pra você ler no olho, é arquivo pra máquina perguntar
A tabela do passo 6, que na minha opinião é a parte mais subestimada da saída:
| Tag | O que significa | Como tratar |
|---|---|---|
| EXTRACTED | Achado direto na fonte (uma chamada de função, um import), sempre com confiança 1.0 | Fato, pode agir em cima |
| INFERRED | Ligação deduzida pelo modelo, marcada como julgamento e com confidence_score |
Hipótese, confere antes |
| AMBIGUOUS | Evidência que o Graphify não conseguiu resolver: dynamic dispatch, reflexão, import montado por string | Ponto cego conhecido, olha no código |
Sacou a jogada? O AMBIGUOUS existe justamente pra evidência não resolvida ficar sinalizada como incerta em vez de virar chute silencioso no meio do mapa
E olha que isso é ouro: as arestas AMBIGUOUS são um mapa dos lugares onde o teu código é mágico demais pra ser lido estaticamente 😛
Como transformar o grafo em instrução para o Claude Code
Aqui é a virada. Ler o grafo é bom, mas o ganho de verdade é o assistente ler por você
- Commite a pasta
graphify-out/. Ela foi pensada pra ir pro repositório, assim quem faz pull recebe o mapa pronto sem precisar reconstruir nada. Um dev novo entra no time e o contexto já está lá - Confira a seção que a integração escreve no
CLAUDE.md. Ela instrui o Claude a lergraphify-out/GRAPH_REPORT.mdantes de responder perguntas de arquitetura. É o pulo do gato: em vez de o assistente adivinhar a estrutura, ele consulta o resumo que já foi calculado - Saiba onde a skill mora. No Claude Code, o
graphify installgrava a skill em~/.claude/skills/graphify/SKILL.md. Com a flag--project, o destino passa a ser dentro do diretório atual, por exemplo.claude/skills/graphify/SKILL.md. O erro comum deste passo: instalar global, trocar de máquina e achar que a ferramenta quebrou - Repare no hook. A integração instala um hook
PreToolUsenosettings.json, que dispara antes de cada chamada deGlobeGrep. Traduzindo: bem no momento em que o assistente ia sair varrendo arquivo no braço, ele é lembrado de que existe um mapa. Vale a mesma manutenção que você faz em qualquer arquivo de config que envelhece no projeto, tipo quando descobre que o projeto ainda aponta pro Sonnet 3.5 e ninguém tinha percebido - Suba o servidor MCP se quiser o assistente consultando o grafo direto. O suporte a MCP vem de um extra do pacote
graphifyy, o extramcp, e o servidor sobe assim (stdio é o padrão):
python -m graphify.serve graphify-out/graph.json
- Use o modo HTTP quando o grafo for compartilhado. Mesmo comando, com transporte e porta:
python -m graphify.serve graphify-out/graph.json --transport http --port 8080
- Saiba o que o MCP coloca na mão do assistente. São 10 ferramentas expostas, entre elas
query_graph,get_node,get_neighbors(todos os vizinhos diretos de um nó, com detalhe das arestas),shortest_path(como duas partes do código se ligam, salto a salto),list_prs,get_pr_impactetriage_prs - Não esqueça dos resources. O servidor também publica recursos: o
GRAPH_REPORT.mdcompleto, estatísticas do grafo, os god nodes, as conexões surpreendentes entre comunidades e as perguntas sugeridas. É contexto pronto, sem o assistente gastar token pra descobrir
O erro comum de TODA essa seção é um só: pedir arquitetura pro assistente sem apontar o relatório
Aí ele faz o que sempre fez, sai varrendo o repositório no Grep, enche a janela de contexto de arquivo irrelevante e te devolve um resumo meia boca. Tendo o mapa no repo e não usando, é desperdício puro
O que eu vi lendo o grafo na prática
Meu hábito, antes de qualquer ferramenta dessas, sempre foi o mesmo: eu quero ver o desenho antes de escrever código
No vídeo abaixo eu mostro uma skill de diagrama rodando do zero, e o caminho lá é o inverso do Graphify: em vez de partir de um repositório que já existe, eu descrevo o sistema e a IA desenha
Instalei direto pelo terminal, escolhi a opção de uso no Claude Code e aceitei a forma de instalação que o próprio instalador recomendou, sem configuração extra
Descrevi tudo em português no prompt: um e-commerce com vitrine, carrinho e checkout no frontend, uma API separada, banco relacional guardando catálogo, pedidos e clientes, cache pra produtos e sessões de carrinho, fila pra processar pedido de forma assíncrona e envio de e-mail transacional
Fechei pedindo que o checkout se integrasse a um serviço de pagamento externo, porque construir pagamento do zero não é viável, envolve integração bancária e burocracia que ninguém quer
Especificar a stack foi escolha minha, por domínio técnico. Quem não manja pode deixar a própria IA sugerir as tecnologias, funciona também
A IA localizou a skill, gerou o arquivo HTML e devolveu o caminho no fim, com aviso de diagrama pronto e validado
Abri no navegador e li o fluxo de ponta a ponta: cliente chega na loja, passa pelo checkout, o pagamento sai pro serviço externo e o webhook desse serviço volta pra API, que grava o pedido novo no banco
E aí veio a parte engraçada: eu fui lendo pela cor dos blocos pra identificar o que era banco e o que era frontend, e me corrigi ao vivo sobre qual cor era qual haha
Isso diz uma coisa que vale pro Graphify também: desenho não se lê no olho, se lê na legenda. É exatamente por isso que o file_type do nó e o relation da aresta importam mais que a bolinha na tela
No vídeo tu vê em movimento a instalação, o prompt em português e a navegação no HTML depois de pronto
Na própria página eu troquei o tema da visualização e mostrei a exportação como caminho pra mandar o diagrama pro sócio ou pro cliente
O que eu destaquei lá e repito aqui: o valor do desenho é enxergar a responsabilidade de cada peça e a ordem das chamadas, não a lista de serviços. Lista de serviço qualquer um escreve no papel
Outra coisa que eu gosto: devolver o diagrama pra própria IA depois, como material pra ela revisar o plano e apontar o que ficou faltando. O mapa deixa de ser enfeite e vira insumo
E elogiei o fato de rodar uma checagem de qualidade antes de entregar, que é bem diferente do resultado bruto de pedir "desenha a arquitetura aí" pra uma IA genérica
Posicionei aquilo como etapa de pré-planejamento, antes de escrever código, com o diagrama guardado em algum lugar (repositório, drive) pra ser consultado e ampliado conforme o sistema cresce. Que é, olha só, exatamente o argumento de commitar a graphify-out/
Mostrei ainda que não é só arquitetura: dá pra fazer workflow (CI/CD, aprovações, chamadas de ferramenta, resposta a incidente), diagrama de sequência de quem chama quem e em que ordem, fluxo de dados e ciclo de vida da aplicação
No fim do trecho eu começo a mostrar que a ferramenta também lê repositório já existente, mas a fala corta antes da demonstração…
Sobre economia de contexto, um aviso honesto pra tu não criar expectativa errada: o benchmark oficial de 71,5x menos tokens por consulta foi medido em um corpus misto de 52 arquivos (os repositórios nanoGPT, minGPT e micrograd, mais 5 PDFs do ArXiv e 4 imagens)
O próprio README avisa que o ganho escala com o tamanho e a composição do corpus, e que em base puramente de código o esperado fica na faixa de 5x a 10x
Não é número meu, é o que está documentado. E 5x a 10x já é MUITA coisa pra quem vive vendo o assistente torrar contexto no Grep
Quando vale abrir o grafo (e o que perguntar em cada caso)
Entrei num projeto novo e não sei por onde tudo passa:
Abre o GRAPH_REPORT.md e vai direto nos god nodes
É o nó de maior betweenness centrality, o cara que conecta o maior número de comunidades. Se tu entender esses poucos arquivos, tu já entendeu por onde o sangue do projeto circula
Preciso mexer aqui, mas não sei o que isso encosta lá:
Use /graphify path pra traçar como duas partes do código se conectam, ou shortest_path pelo MCP, que devolve a ligação salto a salto
Pergunta boa: "como o checkout chega no banco de pedidos?" e leia o caminho inteiro antes de encostar em qualquer linha
Vou refatorar esse arquivo, ele importa mesmo?
/graphify explain percorre por que um nó importa, e get_neighbors te dá todos os vizinhos diretos com detalhe das arestas
Olha o relation de cada vizinho: calls e imports doem de um jeito, semantically_similar_to dói de outro (ou nem dói)
Chegou PR e eu preciso saber o tamanho do estrago:
Aqui entram list_prs, get_pr_impact e triage_prs
Serve bem pra PR chato de manutenção, aquele que troca uma dependência ou um modelo chamado no projeto inteiro, tipo quando o código ainda chama o Opus 4.1 em canto que ninguém lembrava que existia
Não sei nem o que perguntar:
Sério, esse é o caso mais comum e tem resposta pronta
O GRAPH_REPORT.md termina com 4 a 5 perguntas que aquele grafo está em posição privilegiada de responder. Começa por elas e você já entra no assunto com pergunta que o mapa sabe responder bem
E não pula as conexões entre arquivos ranqueadas por quão inesperadas são: é ali que mora o acoplamento que ninguém documentou
Conclusão
Recapitulando o que interessa
O grafo do Graphify não vira produtividade enquanto ele estiver bonito numa aba do navegador. Ele vira produtividade quando entra no fluxo do assistente
A ordem que funciona: lê o GRAPH_REPORT.md primeiro, entende god node e comunidade, aprende a ler nó e aresta (principalmente as tags EXTRACTED, INFERRED e AMBIGUOUS), e só depois abre o graph.html pra confirmar o que você já sabe
O próximo passo prático é bem curto: roda graphify update pra manter o mapa em dia, commita a graphify-out/ pro time inteiro receber o contexto no pull, e começa pelas perguntas sugeridas no relatório
Pra fechar, quem está por trás: o repositório oficial vive em github.com/Graphify-Labs/graphify, mantido pela Graphify Labs, empresa fundada por Safi Shamsi e integrante do batch Summer 2026 da Y Combinator
Bora abrir esse relatório e ver o que teu projeto tem escondido? 🙂
até o próximo post!
Perguntas frequentes
Onde o Graphify salva o grafo depois de gerar?
Tudo fica dentro da pasta graphify-out/, em três arquivos: graph.html para navegar no navegador, GRAPH_REPORT.md com o resumo legível e graph.json com o grafo completo em formato node-link do NetworkX. Essa pasta foi pensada para ser commitada no repositório, então quem faz pull já recebe o mapa pronto sem precisar gerar de novo.
Qual a diferença entre EXTRACTED, INFERRED e AMBIGUOUS nas arestas do Graphify?
EXTRACTED é o que foi achado direto na fonte, tipo uma chamada de função ou um import, e sempre vem com confiança 1.0. INFERRED é uma ligação deduzida pelo modelo, tratada como julgamento e acompanhada de um confidence_score. AMBIGUOUS é evidência que o Graphify não conseguiu resolver, como dynamic dispatch, reflexão ou import montado por string, e fica sinalizada como incerta em vez de virar chute silencioso no grafo.
O que é um god node no grafo do Graphify?
É o nó de maior centralidade de intermediação (betweenness centrality) do grafo, ou seja, o arquivo ou função que conecta o maior número de comunidades. Não é o arquivo maior nem o mais chamado, é o que fica no meio do caminho de todo mundo. O GRAPH_REPORT.md já lista os god nodes prontos, sem precisar caçar isso no graph.html.
Quais comandos do Graphify servem pra percorrer o grafo salto a salto?
São três: /graphify query, que responde perguntas sobre a estrutura do código sem precisar abrir o graph.html, /graphify path, que traça como duas partes do código se conectam, e /graphify explain, que percorre por que um nó importa. Na consulta você passa a pergunta entre aspas, e ainda existem dois parâmetros opcionais documentados, –dfs e –context <c>.
O Graphify manda o código pra algum servidor externo?
Não. O parsing é local e determinístico, feito com tree-sitter, sem vector store, sem conta e sem chave de API. Por padrão, nada sai da máquina.
Dá pra atualizar o grafo sem gerar tudo de novo?
Dá sim, com o comando graphify update, que atualiza o grafo já existente em cima da pasta graphify-out/, cobrindo graph.json, GRAPH_REPORT.md e graph.html. Serve exatamente pra quando o código andou e o mapa antigo ficou desatualizado.
O que o servidor MCP do Graphify expõe além das consultas básicas?
Ele expõe 10 ferramentas ao assistente, entre elas query_graph, get_node, get_neighbors, shortest_path, list_prs, get_pr_impact e triage_prs. Também publica recursos como o GRAPH_REPORT.md completo, estatísticas do grafo, os god nodes, as conexões surpreendentes entre comunidades e as perguntas sugeridas.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
O que é o graphify e como ele transforma seu projeto em um grafo de conhecimento?
O graphify transforma seu projeto em um grafo de conhecimento que a IA consulta direto, sem grep. Leitura do código é local, via tree-sitter, sem LLM.
Graphify funciona no Cursor, Codex e Gemini CLI ou só no Claude Code?
O Graphify funciona no Cursor, Codex, Gemini CLI e mais 14 assistentes: veja como a integração muda de ferramenta pra ferramenta antes de instalar.
O que é o Graphify e como ele muda a forma como o Claude Code entende seu projeto?
O Graphify transforma seu projeto em um grafo de conhecimento consultável pelo Claude Code, Cursor, Codex e Gemini CLI. Entenda como funciona.
