Impact analysis
Use impact_bundle when you need a bounded, target-centered change-impact packet rather than several unrelated symbol lookups.
Prerequisites
Section titled “Prerequisites”- The repository is adopted and its freshness is understood.
- You have a stable search, outline, or navigation result for the code target.
Resolve the target first
Section titled “Resolve the target first”Search for the exact symbol or defining text. Prefer a row with target_ref:
{ "query": "ResultCompleteness", "path_class": "runtime", "limit": 10}Copy the selected target_ref unchanged. This avoids reranking an overloaded name inside the impact request.
Legacy symbol input is available when no target exists. If equal-rank candidates are ambiguous, Frigg returns disambiguation and does not run child sections. Resolve a target and retry instead of guessing.
Run the bundle
Section titled “Run the bundle”{ "target": { "kind": "result_match", "result_handle": "<RESULT_HANDLE>", "match_id": "m1", "target_scope": "<OPAQUE_SCOPE>" }, "include_implementations": true, "include_test_mentions": true, "response_mode": "compact"}Use repository_id only as an equality assertion when a target already names its repository. path_class defaults to runtime for legacy symbol resolution.
Read sections independently
Section titled “Read sections independently”Do not reduce the bundle to one count. For every section, inspect three independent dimensions:
executiontrustcompleteness
| Section | Evidence | Trust caution |
|---|---|---|
symbol |
The resolved target. | Confirm target_selection when legacy symbol input was used. |
reference |
Definition/declaration/reference rows. | Navigation mode controls precision; completeness controls coverage. |
incoming_call |
Caller rows. | Read availability and navigation mode. |
implementation |
Implementation edges. | Included automatically by target kind or forced by include_implementations. |
test_mention |
Exact literal mentions under test/tests. |
A mention does not prove runtime execution or test coverage. |
execution=included with exact total=0 is an honest zero. omitted_by_policy means the section did not run by design. not_run_target_unresolved means target resolution failed. Neither omission is evidence of absence.
Outgoing calls are deliberately excluded because current callee edges are provisional. Run outgoing_calls separately and verify material edges with source reads, references, or structural search.
Follow proof targets
Section titled “Follow proof targets”Included sections can expose child result handles and proof_targets. Each proof target identifies its section, handle/match pair, target scope, and the canonical action ID that reads it.
Prefer the matching next_actions proof-read entry. It carries an exact read_match request. If you invoke read_match manually, keep the section’s result handle paired with its own match ID.
Use presentation_mode=citation on the proof read when the analysis needs line-addressable evidence.
Continue incomplete investigation
Section titled “Continue incomplete investigation”impact_bundle summarizes child sections but does not pretend every child is exhaustive. The aggregate completeness preserves child incompleteness.
When a section is truncated or incomplete:
- follow its canonical next action when provided;
- re-run the underlying navigation tool with the resolved target for deeper paging;
- report heuristic or unavailable coverage explicitly;
- never upgrade the compact summary into a stronger claim than the section contract supports.
Verify impact claims
Section titled “Verify impact claims”Before presenting a blast-radius conclusion:
- proof-read the defining symbol and material references;
- verify provisional outgoing edges separately if relevant;
- distinguish literal test mentions from executed coverage;
- state omitted, unavailable, heuristic, partial, or truncated sections;
- use exact totals only where
completeness.totalis present.
Source Anchors
Section titled “Source Anchors”../frigg/crates/cli/src/mcp/types/navigation.rs../frigg/crates/cli/src/mcp/types/target.rs../frigg/crates/cli/src/mcp/types/completeness.rs../frigg/crates/cli/src/mcp/server/navigation_tools/impact_bundle.rs../frigg/crates/cli/tests/tool_handlers/navigation.rs../frigg/crates/cli/tests/tool_handlers/proof_handle_producers.rs