Detect changes
detect_changesIdentify the full blast radius of a git diff by tracing changed symbols through the code graph to find all transitively impacted files.
Instructions
Map a git diff to its BLAST RADIUS. Resolves changed files to the symbols they define, then runs ONE multi-source graph traversal to the transitive impact set. RESPONSE: base + merge_base SHA, changed_files list, then impacted = prefix-grouped tree rows (name label hop; full qn = group prefix + dot + name) + an impacted_modules rollup; impacted_total + truncated are exact. Seeds (the changed symbols) are excluded from impacted; a changed file reached from another changed file is not counted as extra impact. format="json" returns the same model as structured JSON.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | Max traversal hops from the changed symbols. | |
| limit | No | Per-symbol impacted rows shown (nearest hops first). impacted_total is always exact and the impacted_modules rollup always complete regardless. | |
| scope | No | files: changed files only (no traversal). impact (default): files + the transitive impact set. | |
| since | No | Git ref or tag to compare from (e.g. HEAD~5, v0.5.0). Diffs <ref>...HEAD. | |
| format | No | tree | |
| project | Yes | ||
| direction | No | inbound (default) = the blast radius: transitive CALLERS of the changed symbols. outbound = what the changed code depends on. both = union. | inbound |
| base_branch | No | main |