What your install analyses
"Does ArchGraph support Kotlin?" has no single answer, because three independent things decide what you get and each fails differently.
| Layer | Decides | When it fails |
|---|---|---|
| Parse | whether functions, classes and files appear at all | the language is missing from the graph, and the report names it |
| Resolve | whether a call edge is compiler-verified or name-matched | edges still appear, from the heuristic, and the report says why |
| Analyse | whether you get control flow, data flow and inter-procedural taint | those node and edge types are absent |
A language can parse perfectly, resolve heuristically, and have no deep analysis at all — the three answers are independent, and a support matrix that collapses them into one column will be wrong about something. Which languages sit where is in the linked document, where a test checks it against the code; this page deliberately carries no count of its own, because a number here is the part that rots first.
The per-build answer — pinned indexer versions, what each one needs from your repository, which deep engines the published image carries, and how to read every field of the extraction report:
→ docs/CAPABILITIES.md in archgraph-api
Every enumeration in that document is checked against the code by a test: the language table against the grammar registry, the version block against the Dockerfile's pins, the report vocabularies against the values the code can emit. It exists because three other documents described analyses the shipped image does not run, and read as true for months.
Why an empty answer is not an answer
The failure this whole area is prone to is a tool returning nothing and the reader taking that as a finding. Nothing found and nothing looked for are different, and ArchGraph reports which:
taint_pathsempty — did the engine run and find no tainted flow, or was security labelling switched off?taint_enginedistinguishesnonefromdisabled.- An empty per-language status — did every indexer vanish, or did this
incremental run simply have no changed files to look at?
incrementalanswers it. - A missing language — is there no Kotlin in this repository, or is the
Kotlin grammar not installed?
unavailable_languagesanswers it.
Each of those pairs was one indistinguishable value until it was split.