How Graphify works.
What the parser can prove is parsed, the rest is labelled as guessed, and the output is yours.
Two stages.
One is deterministic. The other says so when it is not.
Code is parsed
Thirty-six tree-sitter grammars walk every source file locally. Functions, imports and calls become edges because a parser found them.
Everything else is read
Docs, PDFs, SQL schemas and Terraform are joined by the model backend you configure, and every edge is labelled inferred.
Three files, all yours.
In graphify-out, in your repo: one to open, one to read, one for a machine.
graphify-out/graph.html an interactive graph
graphify-out/GRAPH_REPORT.md god nodes, communities, surprises
graphify-out/graph.json the graph itselfAn edge is a claim.
Every claim carries a tag saying how it was arrived at, which a similarity score cannot offer.
- EXTRACTED
- Straight from the syntax tree. Parse it again and the parser finds it again.
- INFERRED
- A model joined the dots. Usually right, and marked as the judgment it is.
- AMBIGUOUS
- Evidence Graphify could not resolve: dynamic dispatch, reflection, an import built from a string. Flagged, not guessed.
What neither of them finds.
Neither finds connections, and connections are what the hard questions about code are made of. What breaks if I change this is a question about the caller of a caller of a caller. Chunking cuts the links before retrieval begins; grep answers only the hop you can phrase as a string.
The retrieval literature has reached the same diagnosis. GraphRAG (Edge et al., 2024) puts a knowledge graph on top of chunk retrieval to recover the structure chunking threw away. Graphify starts from the graph, so an answer arrives as a path through your real code.
The honest limit: for fuzzy search over large volumes of prose, embeddings are still the better tool.
Three verbs.
Each one answers with a path you can open.
$ graphify query AuthService # everything joined to a symbol
$ graphify path AuthService Db # the route between two of them
$ graphify explain <edge> # why this edge exists at all