Renombrado o extracción de entidades con propagación completa: busca TODOS los consumidores antes de mover/renombrar, actualiza imports, tests y docs en el mismo paso. Invocar cuando el usuario diga 'renombra X a Y', 'extrae esta función a un módulo', 'mueve la clase X al módulo Y', 'separa esto en dos archivos'.
Nunca renombrar sin encontrar primero TODOS los consumidores. Un rename parcial rompe el proyecto silenciosamente (especialmente en Python donde los imports son strings).
rename <viejo> <nuevo> — renombrar función/clase/móduloextract <función> to <módulo> — extraer a nuevo módulomove <archivo> to <destino> — mover archivo con actualización de importssplit <archivo> — dividir módulo grande en partes cohesivasgit status --short
Si hay cambios no commiteados → parar. Pedir que el usuario commitee o stashee antes. El refactor debe empezar desde un estado limpio para que el diff sea legible.
# Para renombrar una clase/función Python
grep -rn "<nombre_viejo>" /Users/PABLO/repos/narrassist/src/ /Users/PABLO/repos/narrassist/api-server/ /Users/PABLO/repos/narrassist/tests/ --include="*.py"
# Para renombrar un componente Vue
grep -rn "<NombreViejo>" /Users/PABLO/repos/narrassist/frontend/src/ --include="*.{vue,ts}"
# Para renombrar un módulo (import)
grep -rn "from.*<módulo_viejo>" /Users/PABLO/repos/narrassist/src/ --include="*.py"
grep -rn "import.*<módulo_viejo>" /Users/PABLO/repos/narrassist/src/ --include="*.py"
Usar subagente Explore si el scope es ambiguo:
subagent_type: "Explore"