get_execution_flows
Top entry points and their call traces, showing how the codebase actually executes end to end. Opt-in, off by default.
Runtime call flow, not static structure. get_execution_flows scores
the codebase's entry points and traces each one's call graph breadth-first,
so the agent sees which functions run in sequence when the program
actually executes, and whether that flow crosses architectural
community boundaries along the way.
Off by default
Registered but not part of the default tool surface in any mode. Turn it on per repo:
# .repowise/config.yaml
mcp:
tools: ["+get_execution_flows"]or per launch with repowise mcp --tools "+get_execution_flows". See
Configuring the tool surface for the
full +/- delta syntax.
When to call
- Orienting in an unfamiliar system: what actually happens when
the program runs, beyond the static module map
get_overviewgives. - Tracing one entry point: pass
entry_pointto walk a specific symbol's call chain instead of the top-scored ones. - Spotting layering violations:
crosses_communityflags a flow that jumps between architectural clusters.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
top_n | number | 10 | Number of top-scored entry points to trace. |
max_depth | number | 8 | Max trace depth per flow. |
entry_point | string | — | Trace from a specific symbol id instead, overriding top_n scoring. |
repo | string | — | Repository alias. "all" is not supported. |
Returns
| Field | Meaning |
|---|---|
total_entry_points | Number of flows traced |
flows | One entry per entry point, sorted by entry_point_score descending |
Each flows entry:
| Field | Meaning |
|---|---|
entry_point | Node id of the entry point |
entry_point_name | Its short name |
entry_point_score | Entry-point ranking score |
trace | The BFS call path from this entry point |
depth | How deep the trace went |
crosses_community | true if the trace crosses an architectural community boundary |
communities_visited | Which communities the trace passed through |
Example
get_execution_flows()
get_execution_flows(entry_point="src/cli/main.py::main", max_depth=4)Things worth knowing
- Parameters are bounded.
top_nclamps to 1-50,max_depthto 1-20, regardless of what's passed. - Excluded files never leak downstream. Entry points in excluded paths are dropped up front, and excluded nodes reached later in a trace are filtered out of it too.
- A missing
entry_pointsymbol errors immediately rather than falling back to top-N scoring, so a typo doesn't silently return the wrong flow.
Follow up on any trace node with
get_context(include=["callers", "callees"])
for the detail this tool's trace doesn't carry: signatures, docs, and
ownership.
get_dependency_path
Shortest dependency path between two files or modules, plus visual context (common ancestors, shared neighbors, bridge suggestions) when no direct path exists. Opt-in, off by default.
Dependency graph
How repowise builds the two-tier dependency graph (file nodes and symbol nodes) with import resolution, call resolution, heritage extraction, and community detection.