Refactor Safely
Plan and execute safe refactoring using dependency analysis
SKILL.md.claude/skills/refactor-safely/skill.md
GitHubRefactor Safely
Use the codebase-memory-mcp knowledge graph (project C-Marcos-Proyectos-Zenda) to plan and execute refactoring with confidence.
Steps
search_graph(name_pattern=...)osearch_graph(query=...)para localizar el símbolo a refactorizar y suqualified_name.trace_path(function_name=..., mode="calls", direction="inbound", risk_labels=true)para ver TODO lo que depende de él (callers directos e indirectos) y su nivel de riesgo por distancia.query_graph(query="MATCH (f:Function)-[:CALLS]->(t) WHERE t.qualified_name = '<qn>' RETURN f.qualified_name")para un listado preciso de sitios a tocar en un rename/cambio de firma.- Antes de aplicar cambios grandes, revisa
query_graphcontransitive_loop_depth/linear_scan_in_loopsi el refactor toca código en un hot path. - Después del cambio, corre
detect_changes(base_branch="main")para verificar el impacto real contra lo planeado.
Safety Checks
- Nunca asumas el
qualified_name— siempre confírmalo consearch_graphprimero (get_code_snippetsugiere alternativas si es ambiguo). - Revisa callers inbound antes de cambiar una firma pública.
- Corre
detect_changesdespués del refactor para confirmar que el radio de impacto coincide con lo esperado.
Reglas de eficiencia de tokens
- Usa
depthbajo (2-3) entrace_pathsalvo que el grafo confirme que necesitas más saltos. - En
query_graph, añadeLIMITexplícito en el Cypher para no traer resultados masivos. - Objetivo: planear el refactor en ≤5 llamadas a herramientas de grafo.