From constellation
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.
How this skill is triggered — by the user, by Claude, or both
Slash command
/constellation:impact-analysisThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
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.
Run an impact analysis when any of the following apply:
If the change is purely additive (new file, new function, no signature changes to existing exports), impact analysis is usually unnecessary — skip it.
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;
The impactAnalysis response includes a breakingChangeRisk field (low | medium | high | critical). Use this as the headline risk indicator. Cross-reference with:
| Signal | Where to find it | What it tells you |
|---|---|---|
| Affected file count | data.impactScope.filesAffected | Blast radius |
| Public API exposure | data.breakdown.isPublicApi | External consumers may break |
| Test coverage | data.breakdown.testCoverage | Confidence in catching regressions |
| Direct dependents | data.directDependents[] | Where to look first |
| Recommendations | data.recommendations[] | Suggested mitigation steps |
Risk thresholds (rule of thumb):
When presenting results to the user, structure as:
N files, M symbols affected; public API: yes/nodirectDependentsFor high or critical risk, lead with the warning and offer to suggest a safer change order.
If the code_intel call fails:
| Failure | Fallback |
|---|---|
| MCP unavailable | Use Grep to find textual usages of the symbol; warn the result is incomplete (misses indirect/dynamic refs) |
AUTH_ERROR, PROJECT_NOT_INDEXED | Note the error briefly, suggest /constellation:diagnose, then fall back to Grep |
SYMBOL_NOT_FOUND | Symbol 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.
/constellation:impact <symbol> [file] — one-shot slash command equivalent/constellation:deps <file> — dependency-only view/constellation:unused — proactive dead-code scanSearches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.
npx claudepluginhub shiftinbits/constellation-claude --plugin constellation