--- name: impact description: Blast radius analysis via GitNexus CLI (gitnexus). CLI ONLY - NO MCP server exists, never use readMcpResource with gitnexus://. allowed-tools: Bash, Read, Grep, Glob model: haiku --- # GitNexus Impact Analysis > **CLI ONLY — no MCP server exists. Never use `readMcpResource` with `gitnexus://` URIs.** Analyze the blast radius of changing a symbol — who calls it, what processes it participates in, and what tests cover it. > **Self-Evolving Skill**: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues. ## When to Use - Before modifying a function with many callers - "What breaks if I change X?" - "Is it safe to modify Y?" - "What's the blast radius of changing Z?" ## Workflow ### Step 0: Pre-flight — Ensure CLI Is Callable The `gitnexus` binary is installed via npm/mise. The mise shim may fail if node isn't active in the current project. Run this pre-flight before any gitnexus command: ```bash # Test if gitnexus is actually callable (not just a broken shim) gitnexus --version 2>/dev/null || mise use node@25.8.0 ``` All commands below run from the repo root. If multiple repos are indexed in the workspace, add `--repo ` to specify the target. Otherwise `--repo` is optional. ### Step 1: Auto-Reindex If Stale ```bash gitnexus status ``` If stale (indexed commit ≠ HEAD), **automatically reindex before proceeding** — do not ask the user: ```bash gitnexus analyze ``` Then re-check status to confirm index is current. ### Step 2: Upstream Blast Radius ```bash gitnexus impact "" --depth 3 ``` This shows everything that depends on the symbol (callers, transitive callers up to depth 3). If multiple candidates are returned, disambiguate: ```bash gitnexus impact "" --uid "" --depth 3 # or gitnexus impact "" --file "" --depth 3 ``` ### Step 3: Downstream Dependencies (Optional) ```bash gitnexus impact "" --direction downstream --depth 3 ``` Shows what the symbol depends on — useful for understanding if dependencies might change. ### Step 4: Test Coverage ```bash gitnexus impact "" --include-tests ``` Shows which test files exercise this symbol. ### Step 5: Risk Assessment Based on the number of direct dependents: | Dependents | Risk Level | Recommendation | | ---------- | ------------ | --------------------------------------------------- | | < 5 | **LOW** | Safe to modify with basic testing | | 5–20 | **MEDIUM** | Review all callers, run related tests | | 20–50 | **HIGH** | Consider backward-compatible API, extensive testing | | 50+ | **CRITICAL** | Needs deprecation strategy, phased migration | ### Step 6: Structured Report Present: - **Risk level** with dependent count - **Top affected processes** — execution flows that include this symbol - **Direct callers** — functions/methods that call this directly - **Test coverage** — tests that exercise this symbol (or gaps) - **Recommendation** — safe to modify, needs tests, needs migration plan ## Example User: "What breaks if I change RangeBarProcessor?" ```bash gitnexus impact "RangeBarProcessor" --depth 3 gitnexus impact "RangeBarProcessor" --include-tests ``` Output: "CRITICAL risk — 73 dependents across 12 processes. 8 test files cover it. Recommend backward-compatible changes only." ## Post-Execution Reflection After this skill completes, reflect before closing the task: 0. **Locate yourself.** — Find this SKILL.md's canonical path before editing. 1. **What failed?** — Fix the instruction that caused it. 2. **What worked better than expected?** — Promote to recommended practice. 3. **What drifted?** — Fix any script, reference, or dependency that no longer matches reality. 4. **Log it.** — Evolution-log entry with trigger, fix, and evidence. Do NOT defer. The next invocation inherits whatever you leave behind.