refactor-manager
Dirige una refactorizacion segura de codigo Python en 5 fases (analisis, plan, refactor, validacion, iteracion) con los cambios aprobados antes de ejecutarse. Usar cuando hay que reestructurar codigo
Files5
View on GitHubSKILL.mdskills/refactor-manager/SKILL.md
GitHubrefactor-manager
Skill para que Manager dirija refactorización segura de código Python, reduciendo riesgo y manteniendo invariantes.
Basado en protocolo de Principal Engineer: separación estricta entre análisis, plan y ejecución.
Overview
El Manager usa esta skill para refactorizar código de forma controlada:
- Fase 1 (Análisis): el agente lee código, identifica problemas, documenta hallazgos (sin modificar)
- Fase 2 (Plan): Manager revisa hallazgos y aprueba cambio mínimo propuesto
- Fase 3 (Refactor): el agente ejecuta SOLO cambios aprobados
- Fase 4 (Validación): Tests + ruff + regresión verifican cero impacto
- Fase 5 (Iteración): Si fallos, el agente propone fix mínimo (no reescribir)
Invariante: Nunca cambiar comportamiento observable sin aprobación explícita.
Workflow
Prerequisitos
- Archivo target identificado (path absoluto o relativo)
- Manager disponible para revisar plan (fase 2)
- Proyecto con tests + ruff configurado
Paso 1: Verificar Turno
python .agent/agent_controller.py
Si rol es BUILDER, informar al usuario: "Este skill es para Manager".
Paso 2: Cargar Contexto
Leer en orden:
.agent/rules/manager/refactoring-protocol.md- reglas y protocolo- Archivo target - entender código actual
- Casos de uso existentes - identificar invariantes
Paso 3: Ejecutar FASE 1 — Análisis
Objetivo: Entender antes de tocar.
Tarea para el agente:
Analiza este archivo: [path]
NO MODIFIQUES NADA. Solo documenta:
1. ¿Qué hace el código?
2. ¿Cuáles son las responsabilidades?
3. Detecta:
- Acoplamiento innecesario
- Complejidad sin justificación
- Duplicidad de código
- Code smells (nombres confusos, funciones grandes, etc)
4. ¿Cuáles son los invariantes? (comportamiento que no puede cambiar)
5. ¿Hay incertidumbres? Márcalas como HIPÓTESIS
Salida:
[Análisis]
- ¿Qué hace?
- Responsabilidades
- Problemas detectados
- Invariantes
- Hipótesis/incertidumbres
El agente entrega reporte de análisis (NO código modificado).
REGLA CRÍTICA: Si hay dudas en fase 1 -> DETENERSE y preguntar.
Paso 4: Manager Revisa Análisis
Manager lee reporte y decide:
- CONTINUAR: Acepta análisis, propone refactor mínimo
- PROFUNDIZAR: Pide análisis más detallado de ciertos aspectos
- RECHAZAR: El alcance es demasiado amplio o riesgoso
Si continuar, pasar a FASE 2.
Paso 5: Ejecutar FASE 2 — Plan
Objetivo: Definir el cambio mínimo útil.
Tarea para el agente:
Basándote en el análisis previo, propone UN refactor pequeño:
1. ¿Cuál es el cambio propuesto?
2. ¿Por qué mejora el código?
3. ¿Qué NO se va a tocar?
4. ¿Cuáles son los riesgos?
5. ¿Cómo validaremos que no se rompió nada?
Alternativas descartadas (y por qué):
- [alternativa 1] Descartada - Razón
- [alternativa 2] Descartada - Razón
Salida:
[Plan]
- Cambio propuesto
- Justificación
- Qué no se toca
- Riesgos
- Estrategia de validación
El agente entrega propuesta de plan (sin código).
Paso 6: Manager Aprueba Plan
Manager lee plan y decide:
- APROBADO: Procede a FASE 3
- AJUSTES: Pide cambios al plan (scope, riesgos, etc)
- RECHAZADO: Plan no cumple criterios
Si no aprobado, iterar Fase 2 o abandonar.
Paso 7: Ejecutar FASE 3 — Refactor
Objetivo: Aplicar SOLO el cambio definido.
Tarea para el agente:
Implementa el plan aprobado:
1. Lee el código original
2. Aplica SOLO los cambios del plan (sin extras)
3. Mantén invariantes intactos
4. Código debe ser:
- Completo (no fragmentos rotos)
- Consistente con el proyecto
- Legible
Salida: Código modificado listo para validación
El agente entrega código refactorizado.
REGLA: Si tentación de hacer "un cambio más" → DETENER y documentar para próxima iteración.
Paso 8: Ejecutar FASE 4 — Validación
Objetivo: Demostrar que no se rompió nada.
Tarea para el agente + sistemas automáticos:
Valida que el refactor no rompe nada:
1. Syntax check: python -m py_compile [archivo]
2. Imports: python -c "import [módulo]"
3. Linting: ruff check [archivo]
4. Tests:
- ¿Qué tests existentes usan este código?
- ¿Todos los tests pasan?
- ¿Coverage se mantiene?
5. Regresión manual:
- Casos felices (happy path)
- Edge cases
- Error handling
6. Comportamiento observable:
- ¿El código hace exactamente lo mismo que antes (desde afuera)?
Salida:
[Validación]
- Casos a testear
- Tests sugeridos (si hay gaps)
- Resultado: PASS / FAIL / PARCIAL
- Riesgos abiertos (si hay)
Si FAIL → pasar a FASE 5. Si PASS → refactor completado exitosamente.
Paso 9: Ejecutar FASE 5 — Iteración (si hay errores)
Objetivo: Corregir sin reescribir.
Si tests fallan:
1. Analiza causa raíz:
- ¿Qué test falla exactamente?
- ¿Por qué? (síntomas vs causa real)
- ¿Es el refactor o era pre-existente?
2. Propone fix MÍNIMO:
- Una línea si posible
- Máximo 3-5 líneas
- NUNCA reescribir funciones completas
3. Aplica fix y reintentar validación
4. Si sigue fallando después de 2 intentos:
→ Reportar y abandonar el refactor
→ Documentar bloqueador
REGLA: Si necesitas reescribir > 20% del código del plan → DETENER. El plan fue deficiente.
Paso 10: Manager Aprueba o Rechaza
Manager revisa:
- Código refactorizado (lectura directa, no confíes en logs)
- Reporte de validación
- Hallazgos de cada fase
Decisión final:
- APROBADO: Refactor listo para merge/commit
- RECHAZADO CON FEEDBACK: Documento qué cambiar, reintentar
- CANCELADO: Aprendizajes documentados para futuro
Invariantes NO Negociables
PROHIBIDO:
- Cambiar comportamiento observable sin autorización explícita
- Modificar APIs públicas o contratos externos
- Introducir dependencias nuevas sin justificación
- Mezclar refactor con rediseño o migración
- Reescribir en lugar de refactor mínimo
- Ignorar resultados de tests
- Asumir comportamiento (siempre validar)
✅ OBLIGATORIO:
- Análisis antes de cualquier cambio
- Plan aprobado antes de ejecución
- Separación estricta: análisis ≠ ejecución
- Validación exhaustiva después
- Documentar decisiones y bloqueadores
- Si hay duda → preguntar, no asumir
Roles y Responsabilidades
Manager (Tú)
- Aprobación de Fase 1 (análisis comprensible?)
- Aprobación de Fase 2 (plan aceptable?)
- Validación final (código respetuoso con invariantes?)
- Decisión final: aprobado/rechazado/ajustes
Agente IA (Claude Code)
- Fase 1: Análisis (no escribir código)
- Fase 2: Propuesta de plan (no escribir código)
- Fase 3: Refactor controlado
- Fase 4: Validación automatizada
- Fase 5: Fix mínimo iterativo
Sistema (Tests + Ruff)
- Validación sintáctica
- Linting
- Regresión automatizada
- Behavioural tests
Ejemplo: Refactorizar run_pytest_safe.py
# Manager inicia invocando la skill por su trigger en Claude Code:
# /refactor (query: "Refactoriza scripts/run_pytest_safe.py")
#
# Target: scripts/run_pytest_safe.py
# Scope: Mejorar error handling (no cambiar comportamiento)
# Constraint: Debe seguir 5 fases del protocolo
# Manager rol: revisa cada fase
#
# [DEPRECATED - WT-2026-254a] La invocacion legacy via
# python scripts/orquestador.py --skill /refactor --query "..."
# pertenecia al motor Goose/Claw, deprecado. No usar en proyectos nuevos.
# El agente ejecuta:
# FASE 1: Analiza run_pytest_safe.py
# → Identifica: exception handling inconsistente, nombres confusos, etc
# → Documenta invariantes: exit codes (0=ok, 1=fail, 2=error)
# → Propone cambios: mejorar try/except, clarificar nombres
#
# FASE 2: Manager aprueba plan
# → El agente propone: agregar type hints, mejorar docstrings
# → Manager: "Aprobado, pero SOLO error handling, no type hints aún"
# → Plan ajustado: mínimo cambio
#
# FASE 3: Refactor
# → El agente aplica cambios aprobados
#
# FASE 4: Validación
# → Tests pasan? ✓
# → Ruff clean? ✓
# → Comportamiento igual? ✓
#
# FASE 5: Iteración
# → Refactor exitoso, fin
Troubleshooting
P: ¿Qué si el agente propone un cambio demasiado grande en FASE 2? R: Rechazar y pedir subdivisión. El plan debe ser mínimo.
P: ¿Qué si tests fallan en FASE 4? R: Fase 5: analizar causa raíz, fix mínimo. Si 2+ intentos fallan, abandonar.
P: ¿Puedo hacer dos refactors en uno? R: No. Un refactor = una responsabilidad. Si necesitas dos, crear dos tickets.
P: ¿Debo seguir TODAS las 5 fases? R: Sí. Cada fase previene errores diferentes. Saltarse una es riesgoso.
Prompts asociados
Esta skill define el protocolo (5 fases). Los prompts operativos viven en archivos hermanos:
PROMPT_TEMPLATE.md— Meta-prompt largo: rol, invariantes, clasificacion A/B/C/D, preflight, criterios de aceptacion, plan de rollback. Pasalo como contexto base al agente ejecutor.EXECUTION_PROMPT.md— Prompts cortos del dia a dia: analisis + plan, aplicar sub-fase, foco en zona concreta, auditoria "no hace falta refactor", tests de caracterizacion.../../prompts/orchestrator_refactor_bootstrap.md— Paste-ready para arrancar una sesion nueva de refactor con cualquier backend.
Referencias
.agent/rules/manager/refactoring-protocol.md— Protocolo completoCLAUDE.mdsección 3l — Integración TICKET #010WP-2026-010— Plan de implementación (legacy-compat: ticket historico de origen; ver glosario WOT-2026-010a)