agentsclimarketplace

Impact analysis

Skill ShiftinBits/constellation-claude/skills/impact-analysis

Codebase Understanding for Claude Code

Install
npx -y skills add ShiftinBits/constellation-claude --skill impact-analysis

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

This skill should be used before any non-trivial code modification to assess the blast radius and risk of the change. Trigger when the user discusses renaming, refactoring, deleting, moving, restructuring, or modifying code. Also trigger when the user asks "what would break if...", "is X safe to remove", or wants to estimate risk before a refactor.

SKILL.md

4.2 KB, as published. Nobody here has run it

Impact Analysis

Use the code_intel tool to assess the impact of proposed code changes before they happen, identifying affected files, dependents, public API exposure, and risk level.

When to Run

Run an impact analysis when any of the following apply:

  • About to rename, move, delete, or significantly modify a code symbol
  • About to change a function signature, class shape, or exported interface
  • Considering removing code suspected to be dead
  • Planning a multi-file refactor and need a safe order
  • User asks "what uses X?", "what would break?", "is X safe to remove?"

If the change is purely additive (new file, new function, no signature changes to existing exports), impact analysis is usually unnecessary — skip it.

How to Run

Call the code_intel tool with this code:

const result = await api.impactAnalysis({
	symbolName: "TargetSymbol",
	filePath: "src/path/to/file.ts", // optional, helps disambiguate
	depth: 3
});
return result;

For broader context (large refactors, whole-file changes), pair with dependency mapping:

const [impact, deps, dependents] = await Promise.all([
	api.impactAnalysis({ symbolName, filePath, depth: 3 }),
	api.getDependencies({ filePath, depth: 2 }),
	api.getDependents({ filePath, depth: 2 }),
]);
return { impact, deps, dependents };

For confirming dead code:

const usage = await api.traceSymbolUsage({ symbolName, filePath });
return usage;

Interpreting Results

The impactAnalysis response includes a breakingChangeRisk field (low | medium | high | critical). Use this as the headline risk indicator. Cross-reference with:

SignalWhere to find itWhat it tells you
Affected file countdata.impactScope.filesAffectedBlast radius
Public API exposuredata.breakdown.isPublicApiExternal consumers may break
Test coveragedata.breakdown.testCoverageConfidence in catching regressions
Direct dependentsdata.directDependents[]Where to look first
Recommendationsdata.recommendations[]Suggested mitigation steps

Risk thresholds (rule of thumb):

  • Low: < 5 files affected, internal-only, good test coverage → proceed normally
  • Medium: 5–15 files affected, or some public surface → review dependents before changing
  • High: > 15 files affected, exported API, or low test coverage → stage the change, add tests first
  • Critical: Core infrastructure, security-adjacent, or hub modules → pause, propose a migration plan

Reporting Format

When presenting results to the user, structure as:

  1. Symbol — name, kind, location
  2. Risk — level + one-sentence rationale
  3. ScopeN files, M symbols affected; public API: yes/no
  4. Top dependents — first 5–10 from directDependents
  5. Test coverage — percentage if available
  6. Recommendation — concrete next step (proceed / review listed files / stage in N steps / add tests first)

For high or critical risk, lead with the warning and offer to suggest a safer change order.

Fallbacks

If the code_intel call fails:

FailureFallback
MCP unavailableUse Grep to find textual usages of the symbol; warn the result is incomplete (misses indirect/dynamic refs)
AUTH_ERROR, PROJECT_NOT_INDEXEDNote the error briefly, suggest /constellation:diagnose, then fall back to Grep
SYMBOL_NOT_FOUNDSymbol may be renamed/deleted/misspelled. Try a broader searchSymbols or confirm the file path

A partial Grep-based assessment is always better than skipping the analysis.

Related

  • /constellation:impact <symbol> [file] — one-shot slash command equivalent
  • /constellation:deps <file> — dependency-only view
  • /constellation:unused — proactive dead-code scan

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.