Prompt file imported from TiiZss/BreakingLab (
.github/prompts/plan-breakingLab-execution.prompt.md). Copyright stays with the author.
Eres un agente técnico encargado de ejecutar la mejora de BreakingLab en un horizonte de 60-90 días. Trabaja sobre el repo actual y prioriza primero el core, después release/CI y finalmente los labs embebidos. No propongas reescrituras amplias salvo que una limitación estructural lo haga imprescindible. Tu objetivo es reducir riesgo real, mejorar velocidad del runtime, aumentar escalabilidad operativa, reforzar la funcionalidad de soporte y formalizar el proceso de actualización.
Modo de trabajo:
- Avanza por fases y no saltes a fases posteriores si falta cerrar policy gates o contrato.
- Antes de cambiar código, confirma el riesgo concreto y el archivo afectado.
- Tras cada bloque relevante, produce evidencia: qué cambió, cómo se validó y qué queda pendiente.
- Si encuentras una contradicción entre roadmap y backlog, corrige primero el plan o la issue antes de implementar.
Reglas obligatorias:
- Ninguna ruta de uso normal puede instalar paquetes, añadir repositorios o modificar persistencia del host fuera de install, doctor o update.
- Toda mitigación de ejecución dinámica debe cubrir breakinglab.sh, lib/menu.sh, lib/utils.sh, config/projects.conf y scripts/hooks.
- Ningún cambio del contrato de configuración puede cerrarse sin migración, compatibilidad temporal y criterio de retirada del modo legacy.
- Todo cambio que toque Docker, privilegios, apertura de URLs, instalación o update debe validarse en Linux y WSL2.
- archive/ queda fuera del alcance operativo salvo justificación explícita.
- No mezcles en una sola entrega refactor profundo del core con cambios profundos de labs.
- No cierres un cambio de actualización sin rollback probado.
- No asumas compatibilidad multiplataforma sin evidencia.
- No mezcles cambios de política, cambios de contrato y cambios de labs en una misma entrega si eso empeora la trazabilidad.
- No trates labs de terceros como si fueran código propio salvo que exista una excepción aprobada.
Fases obligatorias:
- Fase 0. Inventario y ownership.
- Fase 0.5. Policy gates y límites de alcance.
- Fase 1. Seguridad del core.
- Fase 2. Contrato de configuración y migración.
- Fase 3. Supply chain, rendimiento runtime, red y recursos.
- Fase 4. Funcionalidad operativa.
- Fase 5. Update, release y compatibilidad.
- Fase 6. CI, pruebas, logging y observabilidad.
- Fase 7. Labs embebidos.
- Fase 8. Documentación operativa y cierre.
Orden de ejecución:
- Inventariar el repo y clasificar componentes por ownership y estrategia de mantenimiento.
- Cerrar policy gates y límites de alcance.
- Endurecer seguridad del core: hosts, hooks, rutas públicas, ejecución dinámica y menú.
- Definir el nuevo contrato de configuración y el validador asociado.
- Diseñar la migración del contrato con compatibilidad temporal y retirada del modo legacy.
- Formalizar supply chain, pinning de imágenes y política de import.
- Mejorar rendimiento del runtime: caché de estado Docker, healthchecks y menor latencia del menú.
- Hacer configurable la red y añadir perfiles de recursos por lab.
- Rehacer la estrategia de compose sanitization con casos soportados claros.
- Añadir comandos operativos: doctor, validate, verify, dry-run, lock y update-lab.
- Rediseñar update/install con backup, rollback y validación post-cambio.
- Extender CI a validación real y pruebas mínimas.
- Formalizar logging, observabilidad básica y diagnóstico.
- Auditar y gobernar labs embebidos según ownership.
- Cerrar documentación operativa, runbook y Definition of Done común.
Prioridades:
- P0: seguridad del core, runtime safety, contrato de configuración, rollback, validación multiplataforma.
- P1: rendimiento del runtime, supply chain, CI mínima, migración del contrato, red configurable.
- P2: modularización del core, logging mejorado, auditoría profunda de labs propios.
- P3: modernización extensa de labs o mejoras opcionales de UX no bloqueantes.
Entregables mínimos:
- Backlog priorizado con épicas, historias, estimaciones y dependencias.
- Roadmap de 90 días con hitos.
- Validaciones mínimas para seguridad, runtime, update y plataforma.
- Criterios de aceptación y Definition of Done comunes.
- Política de mantenimiento por lab.
Formato de salida esperado en cada iteración importante:
- Contexto confirmado.
- Riesgo o problema que se va a tratar.
- Cambio propuesto o ejecutado.
- Evidencia de validación.
- Riesgo residual.
- Siguiente paso.
Plantilla obligatoria por fase:
- Fase actual.
- Objetivo de la fase.
- Issues BL-* cubiertas.
- Archivos afectados.
- Cambios planeados o ejecutados.
- Validación Linux.
- Validación WSL2.
- Rollback.
- Riesgos residuales.
- Criterio de salida de fase.
Checklist de salida de fase:
- El objetivo de la fase quedó cumplido o explícitamente acotado.
- Las issues asociadas están alineadas con el backlog.
- Existe evidencia de validación suficiente.
- El rollback es conocido si la fase toca seguridad, config o update.
- La documentación impactada quedó identificada.
Anti-goals:
- No optimizar primero UX si runtime safety y contrato siguen abiertos.
- No introducir nueva complejidad técnica sin beneficio medible.
- No usar compatibilidad hacia atrás indefinida; toda excepción legacy debe tener fecha o criterio de retirada.
- No ampliar scope a archive/ ni a reingeniería interna de labs de terceros.
- No cerrar fases por percepción; solo por evidencia comprobable.
Criterios de éxito:
- Menú y status más rápidos y medibles.
- Configuración validable antes de ejecución.
- Updates con rollback definido y probado.
- CI con validación real, no solo lint.
- Linux y WSL2 verificados en rutas críticas.
- Labs clasificados por ownership y estrategia de update.
Archivos clave:
- d:\Scripts\BreakingLab\breakinglab.sh
- d:\Scripts\BreakingLab\install.sh
- d:\Scripts\BreakingLab\lib\utils.sh
- d:\Scripts\BreakingLab\lib\hosts.sh
- d:\Scripts\BreakingLab\lib\menu.sh
- d:\Scripts\BreakingLab\lib\yaml_utils.sh
- d:\Scripts\BreakingLab\config\projects.conf
- d:\Scripts\BreakingLab\config\projects.d
- d:\Scripts\BreakingLab\scripts\hooks
- d:\Scripts\BreakingLab\README.md
- d:\Scripts\BreakingLab\CHANGELOG.md
- d:\Scripts\BreakingLab\test_awk.sh
- d:\Scripts\BreakingLab\test_gh_fetch.sh
- d:\Scripts\BreakingLab.github\workflows\shellcheck.yml
- d:\Scripts\BreakingLab\projects\dvws-node-2
- d:\Scripts\BreakingLab\projects\dvwsnode2
- d:\Scripts\BreakingLab\projects\vulpy5
Reglas de cierre:
- Toda tarjeta crítica debe tener validación manual, impacto en documentación y rollback.
- Toda tarjeta de config debe referenciar el contrato y la migración.
- Toda tarjeta de plataforma debe incluir evidencia Linux/WSL2.
- Toda tarjeta de labs debe indicar si el componente es propio, fork mantenido, snapshot o vendorizado.
- Toda entrega debe dejar el backlog y el documento maestro alineados.
Resultado final esperado:
- Un core más seguro y menos implícito.
- Un contrato de configuración validable y migrado.
- Un runtime más rápido y estable.
- Un proceso de update/release con rollback real.
- Un pipeline de calidad útil.
- Una política clara para labs embebidos.
