# `Choreo.Analysis.Tracing`
[🔗](https://github.com/code-shoily/choreo/blob/v0.14.1/lib/choreo/analysis/tracing.ex#L1)

Analysis functions for cross-diagram semantic tracing in Choreo.

# `analyze`

```elixir
@spec analyze(Choreo.t(), Yog.node_id(), Yog.node_id()) :: {:ok, map()} | :error
```

Performs nested, cross-domain analysis on a trace path starting from `from`
down to `to`. Threads through domain-specific metadata for each node.

# `impact_analysis`

```elixir
@spec impact_analysis(Choreo.t(), Yog.node_id()) :: [Yog.node_id()]
```

Returns a list of all nodes that are transitively impacted by `target_id`
along trace edges.

# `trace_path`

```elixir
@spec trace_path(Choreo.t(), Yog.node_id(), Yog.node_id()) ::
  {:ok, [Yog.node_id()]} | :error
```

Finds the tracing path (sequence of nodes) from `from` to `to` using trace edges.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
