I answer those kinds of questions by piping my entire codebase into a large context model (like Claude or o3-mini or Gemini) and prompting it directly.
Here's a recent example:
files-to-prompt datasette tests -e py -c | \
llm -m gemini-2.0-flash-exp -u \
'which of these files contain tests that indirectly exercise the label_column_for_table() function'
https://gist.github.com/simonw/bee455c41d463abc6282a5c9c132c...