| name | refactorizacion-excelente |
| description | Refactoriza código sin romper nada. Mejora estructura, legibilidad y mantenibilidad preservando el comportamiento. Con tests de respaldo. |
| license | MIT |
| compatibility | opencode |
♻️ Refactorización Excelente
Refactorizar es mejorar la estructura interna sin cambiar el comportamiento externo. Esta skill se centra en el proceso seguro de refactorización. Para detectar qué simplificar, usa la skill simplificacion-codigo.
Reglas de oro
- Antes de tocar, ten tests. Si no hay tests para ese código, escríbelos primero.
- Un cambio a la vez. No mezcles refactors con nuevas features.
- Commits atómicos. Cada mejora estructural es un commit separado con mensaje claro.
- Ejecuta tests tras cada cambio. Si algo se rompe, sabes exactamente qué fue.
- El comportamiento no cambia. Si un test que antes pasaba ahora falla, te has pasado.
El proceso seguro
1. Blindar
- Escribe o verifica tests para el código que vas a tocar
- Asegúrate de que pasan en verde antes de empezar
2. Aislar
- Identifica el alcance exacto del cambio
- ¿Qué archivos? ¿Qué funciones? ¿Qué dependencias?
3. Refactorizar (un cambio)
- Aplica UNA mejora (renombrar, extraer, aplanar...)
- No hagas dos cosas a la vez
4. Verificar
- Ejecuta los tests. ¿Siguen en verde?
- ¿El comportamiento es idéntico?
- Si algo falla, revierte y entiende por qué
5. Commit
- Mensaje claro:
refactor: extraer validación de usuario a helper
- Un commit por cada cambio lógico
6. Repetir
- Vuelve al paso 3 con la siguiente mejora
- No hagas todo de golpe
Lo que NO debes refactorizar
- Código sin tests
- Código que no entiendes completamente
- Código de terceros (librerías)
- "Porque no me gusta el estilo" sin beneficio claro
Relación con otras skills
simplificacion-codigo: detecta QUÉ simplificar (duplicación, funciones largas, malos nombres...)
refactorizacion-excelente (esta skill): CÓMO hacerlo de forma segura (tests, atomicidad, verificación)
verificacion-rigurosa: valida el resultado final
debug-forense: si algo se rompe durante la refactorización