through a codebase graph essentially. That's all done on the codebase preprocessing on setup. Then when you want to generate a doc it recursively goes through that graph, passes context to the LLM and generates sections for each of the main sub areas