From alfred-dev
Safely refactors code using tests as safety net. Identifies code smells like long functions, duplication, poor names; applies small verifiable changes without altering observable behavior.
npx claudepluginhub 686f6c61/alfred-dev --plugin alfred-devThis skill uses the workspace's default tool permissions.
Este skill guía un proceso de refactorización seguro. La regla de oro es que la refactorización nunca cambia el comportamiento observable del sistema, solo mejora su estructura interna. Para garantizar esto, los tests existentes actúan como red de seguridad: deben pasar antes, durante y después de la refactorización.
Refactors code to improve structure, readability, and maintainability while preserving behavior. Guides test-driven cycle, checklists, and patterns like extract function.
Safely refactors code using tests to improve readability, cohesion, and maintainability without changing behavior. Triggers on 'refactor', 'clean up code', 'simplify', 'reduce complexity', 'technical debt'.
Applies disciplined refactoring in small, verifiable steps to improve code structure without changing behavior: extract functions, rename, move code.
Share bugs, ideas, or general feedback.
Este skill guía un proceso de refactorización seguro. La regla de oro es que la refactorización nunca cambia el comportamiento observable del sistema, solo mejora su estructura interna. Para garantizar esto, los tests existentes actúan como red de seguridad: deben pasar antes, durante y después de la refactorización.
La refactorización y la adición de funcionalidad son dos actividades distintas que nunca se mezclan en el mismo commit. Si se detecta un bug durante la refactorización, se anota y se corrige en un commit separado.
Identificar el code smell. Antes de refactorizar, tener claro qué problema se está resolviendo. Los code smells más comunes son:
Verificar que los tests pasan ANTES de empezar. HARD-GATE: ejecutar la suite de tests completa (o al menos los tests del módulo afectado) y confirmar que todo está en verde. No se refactoriza sobre una base rota.
Si no hay tests suficientes, escribirlos primero. Si el área a refactorizar no tiene cobertura de tests, escribir tests de caracterización que capturen el comportamiento actual antes de cambiar nada. Estos tests se commitean por separado.
Aplicar la refactorización en pasos pequeños. Cada paso debe ser:
Técnicas comunes: extraer función, renombrar, mover a módulo, introducir parámetro, reemplazar condicional con polimorfismo, simplificar expresión.
Ejecutar tests después de cada paso. No acumular múltiples cambios sin verificar. Si un test se rompe, deshacer el último paso y analizar por qué.
Verificar que los tests SIGUEN pasando al final. Ejecutar la suite completa una última vez. Comparar el comportamiento observable: mismos inputs deben producir mismos outputs.
Hacer commit separado. El commit de refactorización va aparte del commit de nueva funcionalidad. Mensaje descriptivo: refactor: extraer lógica de validación a módulo independiente.