What problem does it solve?
Manually renaming exported symbols (functions, classes, interfaces, etc.) across a codebase is extremely error-prone, often leading to missed import statements, stale usage sites, broken builds, failing tests, and silent runtime errors that take hours to debug and fix.
Core Features & Use Cases
- Full consumer discovery: Uses repo_map to identify all direct importers and transitive dependents of the target symbol or file, so no consumer is missed.
- Mandatory end-to-end verification: Requires type checking, test execution, and full codebase search for stale references to confirm no breakage after the rename.
- Real-world use case: When renaming a core utility function used across 20+ modules, this workflow automatically updates all import statements and usage sites, runs validation checks, and confirms zero remaining references to the old name.
Quick Start
Use the safe-rename skill to rename the exported calculateTotal function defined in utils/payment.ts across all files that import or use it.