--- name: execute-parallel description: Ejecuta automáticamente issues del plan de ejecución paralela argument-hint: [--group N] [--sequential] [--sort] [--dry-run] [--cleanup] disable-model-invocation: true user-invocable: true allowed-tools: Bash, Read, Write --- # execute-parallel Ejecuta automáticamente issues en paralelo usando git worktrees. Unifica sort, plan y ejecución. ## Sintaxis ```bash /execute-parallel # Ejecutar TODOS los grupos /execute-parallel --group 1 # Solo Grupo 1 /execute-parallel --sequential # Sin paralelismo /execute-parallel --dry-run # Ver plan sin ejecutar /execute-parallel --sort # Solo analizar y generar plan /execute-parallel --cleanup # Solo limpiar worktrees ``` ## Binario El orquestador está en `utils/parallel-executor/` y se compila a `bin/parallel-executor`. ```bash # Si no existe el binario, compilar primero if [ ! -f "bin/parallel-executor" ]; then cd utils/parallel-executor && make build && cd ../.. fi ``` ## Flujo ### 1. Verificar binario ```bash EXECUTOR="./bin/parallel-executor" if [ ! -f "$EXECUTOR" ]; then echo "Compilando parallel-executor..." cd utils/parallel-executor && make build && cd ../.. fi ``` ### 2. Parsear argumentos del usuario y ejecutar Mapear los argumentos directamente al binario: ```bash ./bin/parallel-executor $ARGS ``` **Flags disponibles:** - `--sort` → analizar issues y generar PARALLEL_EXECUTION_ORDER.md - `--dry-run` → mostrar plan y worktrees que se crearían - `--group N` → ejecutar solo grupo N - `--sequential` → ejecutar sin paralelismo - `--timeout N` → timeout en minutos por issue (default: 30) - `--cleanup` → solo limpiar worktrees existentes - `--plan file` → usar plan alternativo ### 3. Mostrar resumen Después de ejecutar, mostrar: - Resultados por issue (éxito/fallo) - Ruta a logs y summary - Estado de worktrees ### 4. Limpiar plan si exitoso Si todos los issues completaron exitosamente, eliminar `PARALLEL_EXECUTION_ORDER.md`. ## Arquitectura ``` utils/parallel-executor/ ├── main.go # CLI + orquestación ├── core/ │ ├── parser.go # Parseo del plan markdown (puro) │ ├── planner.go # Topological sort + conflictos (puro) │ ├── parser_test.go │ └── planner_test.go ├── shell/ │ ├── worktree.go # Git worktree CRUD │ ├── executor.go # Ejecutar claude en worktree │ └── logger.go # Logging a disco ├── go.mod, go.work # DevFactory como dependencia └── Makefile ``` ## Convenciones - Usa DevFactory: `Result[T]`, `MapSlice`, `FilterSlice`, `Reduce` - Patrón pure core / impure shell - Logs persistentes en `logs/` - Timeout 30 min por issue (configurable) - Limpieza automática de worktrees al terminar - Plan se auto-genera si no existe (`--sort` implícito) ## Reglas - SIEMPRE verificar que el binario existe antes de ejecutar - SIEMPRE mostrar dry-run antes de una ejecución real si el usuario no especificó flags - SIEMPRE limpiar worktrees al terminar - Si no hay plan, generarlo automáticamente