Skip to content

docs: add graphify knowledge graph of the repository - #127

Merged
ffquintella merged 1 commit into
mainfrom
docs/graphify-knowledge-graph
Oct 16, 2026
Merged

ffquintella merged 1 commit into
mainfrom
docs/graphify-knowledge-graph

Conversation

@ffquintella

Copy link
Copy Markdown
Owner

What this changes

Adds a graphify knowledge graph of the whole repository: graphify-out/GRAPH_REPORT.md (audit report: god nodes, communities, surprising connections, suggested questions), graphify-out/graph.html (interactive view, aggregated to one node per community) and the curated community labels. It also gitignores the outputs that should not be committed.

Why

To give a navigable map of how the layers relate (DAL → ServerServices → API → ClientServices → GUIClient, plus the TreeDataGrid / plugin-SDK submodules and the docs/roadmap corpus). Not tied to a roadmap item.

How it was verified

  • Built with /graphify .: 3,203 files detected; 3,028 code files extracted by AST (40,984 nodes), and 175 docs, images and one PDF extracted semantically by 15 agents (609 nodes, 694 edges, 26 hyperedges). Final graph: 41,244 nodes, 139,201 edges, 788 communities.
  • Checked that no committed file contains an absolute local path.
  • No code changed, so no build or test run.

Things a reviewer should know

  • Not committed (gitignored): graph.json (~79 MB, over GitHub's 50 MB warning limit), cache/ (~255 MB), manifest.json, cost.json, and the per-machine .graphify_* state. The manifest is excluded on purpose: without the matching graph.json and cache, a teammate's graphify --update would treat every file as unchanged and build an almost empty graph. Anyone who wants to run graphify query locally runs /graphify . once.
  • graphify's health check flagged problems. 9,407 edges point at symbols outside the repo (mostly .NET framework types) and were dropped. 109 edges point from a node to itself. About 17k repeated edges between the same two nodes were merged into one, mostly migration designer files referencing DateTime hundreds of times.
  • Not covered. The 226 .sql files added nothing, because tree_sitter_sql isn't installed, so the numbered Structure/ and Data/ upgrade scripts are missing from the graph. 4 C# files had parse errors and were only partly read, including src/GUIClient/Validation/ValidationExtensions.cs and src/Tools/AiGovernance/AiModelEvaluator.cs. graphify skipped 14 files it flagged as sensitive: the certificates and keys, docs/security/SECRETS.md, and src/GUIClient/Styles/Tokens.axaml (likely a false positive).
  • The 45 largest communities were named by hand. The other 743 got automatic names from their main folder and most-connected node.
  • graph.html is generated output (about 2 MB). It will go stale as the code changes, and nothing regenerates it automatically.

Checklist

Tests

  • New behaviour has tests: n/a, documentation output only, no code changed.
  • Bug fix has a regression test: n/a.
  • No assertion was weakened, skipped or deleted.
  • dotnet test src/netrisk.sln passes: not run, no code changed.

Database

n/a, no schema change.

Security

  • No credential, key or certificate is added to the repository. graphify skipped the files under src/*/Certificates and docs/security/SECRETS.md before extraction, and no committed file contains a local path.
  • Other security items: n/a, no API, secret-handling or HTTP code changed.

UI compliance (desktop GUI)

n/a, no src/GUIClient/Views change.

Docs

  • CHANGELOG entry: none added. This is a contributor-facing artefact, not a user-visible product change.

🤖 Generated with Claude Code

Add the graphify report (GRAPH_REPORT.md), the interactive community view
(graph.html) and the curated community labels for the whole repository:
41,244 nodes, 139,201 edges, 788 communities. The raw graph.json (~80 MB),
the extraction cache, the --update manifest and per-machine state are
gitignored, since they are too large for the repository or only valid on the
machine that built them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ffquintella
ffquintella merged commit e2c98a8 into main Oct 16, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant