← ClaudeAtlas

assessing-impactlisted

Pre-change blast-radius report for a symbol or file. Walks tree-sitting references, augments with a plain-text scan over non-parsed files (configs, plain docs), and clusters affected sites by feature (`_FEATURES.md`) or top-level package. Use when about to refactor, rename, or delete something in a repo you don't own — "what breaks if I change `validateUser`", "who calls this", "is this safe to remove", "where is this used", "blast radius", "impact analysis". This is the CONVERGENT pre-change risk skill — for "what is this repo?" use exploring-codebases; for "where is X?" use searching-codebases.
oaustegard/claude-skills · ★ 124 · Data & Documents · score 84
Install: claude install-skill oaustegard/claude-skills
# Assessing Impact Cheap, ad-hoc impact analysis for a single target. Not a graph database — a focused walk over an AST cache plus a complementary text scan, clustered into a report that's easy to summarize. **Use this when** you're about to refactor / rename / delete a symbol in a repo you don't work in daily, and you want a single artifact that says: "these N files will need to change, in these M packages, with these tests likely affected." **Don't use this for** deep ongoing impact analysis on your own codebase — stand up GitNexus, SourceGraph, or your IDE's index. This skill is for the one-shot case. ## Setup ```bash uv venv /home/claude/.venv 2>/dev/null uv pip install --python /home/claude/.venv/bin/python tree-sitter export PYTHON=/home/claude/.venv/bin/python export IMPACT=/mnt/skills/user/assessing-impact/scripts/impact.py ``` The script depends on the `tree-sitting` skill — it imports `engine.py` directly. The bundled grammars live with `tree-sitting`; no separate language-pack install needed. ## Workflow ### 1. Run the report ```bash $PYTHON $IMPACT /path/to/repo SYMBOL_NAME ``` Or target a whole file: ```bash $PYTHON $IMPACT /path/to/repo path/to/module.py ``` ### 2. Read the data, write the summary The script prints a structured markdown report. Treat it as **input** for your final summary, not the deliverable. It deliberately doesn't assign a "high/medium/low" risk label — that's your job, after weighing: - Refs concentrated in one package (low bla