From typegraph
Verifies TypeScript refactor safety by tracing call chains, checking import cycles, assessing module boundaries, and listing references before renaming, moving modules, or changing interfaces.
npx claudepluginhub guyowen/typegraph-mcpThis skill uses the workspace's default tool permissions.
Verify a refactor is safe before making changes by checking call chains, circular dependencies, and module boundaries.
Analyzes TypeScript symbol change impact using blast radius, dependents, and module boundary analysis. Ideal for assessing refactor risks, what breaks, or modifying shared symbols.
Safely refactors code by renaming symbols, extracting modules, splitting functions/services using GitNexus tools for impact analysis, dry-run previews, and change detection.
Executes large-scale code refactoring with risk assessment, patterns like extract/inline/move/rename, strangler migrations, impact analysis, and test-driven safety rules for JS/TS/Python codebases.
Share bugs, ideas, or general feedback.
Verify a refactor is safe before making changes by checking call chains, circular dependencies, and module boundaries.
Call ts_trace_chain on the symbol being refactored to understand its full definition chain. This reveals all the layers of indirection the refactor needs to preserve.
Call ts_import_cycles filtered to the file being refactored. If the file participates in a cycle, the refactor must not break or worsen it.
Call ts_module_boundary with the files involved in the refactor (source + destination). Check:
Call ts_references on the key symbol to get the complete list of call sites that need updating.
Present a safety assessment:
User: "I want to move AuthService from packages/core to apps/gateway"
1. ts_trace_chain -> AuthService defined in core, consumed via Layer in gateway
2. ts_import_cycles -> No cycles involving AuthService.ts
3. ts_module_boundary -> 12 incoming edges (other core modules import it), 3 outgoing
4. ts_references -> 23 references across 15 files
CAUTION: AuthService has 12 incoming edges within packages/core.
Moving it to apps/gateway would break the core -> gateway dependency direction.
Consider: keep the interface in core, move only the Live implementation.