impact-analysis · git:20260907.dc703b6 · 2026-09-07 · sha256 64e832bd8c563beb

impact-analysis git:20260907.dc703b6A

Immutable. This exact content is served forever at /api/v1/blob/64e832bd8c563beb.

---
name: impact-analysis
description: Trace the structural blast radius of a proposed or actual code change with ai-architect. Use for implementation planning, pull-request review, regression analysis, dependency checks, or identifying callers, importers, users, communities, and processes affected by a symbol or diff.
---

# Impact Analysis

Use the eight-tool `core` profile. Treat graph results as a lower bound wherever the tool reports heuristic resolution, dynamic dispatch, or coverage gaps.

For Rust caller or impact questions, request `lsp: true` in `analyze_codebase`
and make rust-analyzer available. Inspect `lsp_status.state`: `disabled` means
static-only analysis; `failed` means analysis continued and may retain partial
LSP results. Record the error and treat affected conclusions as unverified until
source checks or a successful rerun support them. `completed` means the pass
returned, not that every call resolved. Record unresolved sites and coverage gaps.

If a full-profile workflow supplies a `check_security_gates` receipt, inspect
both `gates_passed` and `assessment_complete`. A true pass with an incomplete
assessment is not security clearance: report skipped checks, unresolved symbols
and warnings. This core-profile workflow does not invoke that additional tool.

## Workflow

1. Call `health_check`. Build or refresh the graph with `analyze_codebase`, and keep the exact returned `graph_path`.
2. If an actual unified diff or base/head refs exist, call `detect_changes`. Do not invent a diff for a proposal that has not been implemented.
3. Use `search_codebase` to resolve every proposed or changed symbol to an exact qualified name. Confirm important targets with `get_symbol` or `get_context`.
4. Call `get_impact` for each target. Page callers through `next_offset`. Treat importers, users, and implementors as capped summaries; use `query_graph` with an explicit `ORDER BY` when a complete paged list matters.
5. Call `query_graph` with `graph="missed"`. Inspect flagged ranges and search relevant source, including unflagged files, even when no gaps are flagged before making a negative claim about callers, dependencies, or test coverage. Clean parsing can still miss relationships.
6. Follow high-risk dependents with `get_context` or `get_symbol`. Use sibling graphs only when the user supplies or authorizes those graph paths.

## Deliverable

Separate direct graph evidence from inference. Report affected symbols, callers and dependency types, communities, graph-derived processes, co-change hints, coverage gaps, and unverified risks. Preserve the tool's epistemic qualifier instead of upgrading a lower-bound result into a completeness claim.